21 REAL(KIND=8),
DIMENSION(:),
ALLOCATABLE :: X
22 REAL(KIND=8),
DIMENSION(:),
ALLOCATABLE :: Xnew
23 REAL(KIND=8) :: t=0.d0
26 print*,
'Model MAOOAM v1.3' 27 print*,
'Loading information...' 37 IF (
writeout)
OPEN(10,file=
'evol_field.dat')
43 print*,
'Starting the transient time evolution...' 48 IF (mod(t/
t_trans*100.d0,0.1)<t_up)
WRITE(*,
'(" Progress ",F6.1," %",A,$)') t/
t_trans*100.d0,char(13)
51 print*,
'Starting the time evolution...' 63 IF (mod(t,
tw)<
dt)
THEN 67 IF (mod(t/
t_run*100.d0,0.1)<t_up)
WRITE(*,
'(" Progress ",F6.1," %",A,$)') t/
t_run*100.d0,char(13)
70 print*,
'Evolution finished.' 74 IF (
writeout)
OPEN(10,file=
'mean_field.dat')
program maooam
Fortran 90 implementation of the modular arbitrary-order ocean-atmosphere model MAOOAM.
Module to load the initial condition.
integer ndim
Number of variables (dimension of the model)
subroutine, public step(y, t, dt, res)
Routine to perform an integration step (Heun algorithm). The incremented time is returned.
real(kind=8) tw
Write all variables every tw time units.
logical writeout
Write to file boolean.
real(kind=8) t_run
Effective intergration time (length of the generated trajectory)
subroutine, public acc(x)
Accumulate one state.
The equation tensor for the coupled ocean-atmosphere model with temperature which allows for an exten...
real(kind=8), dimension(:), allocatable, public ic
Initial condition vector.
Module with the integration routines.
subroutine, public init_stat
Initialise the accumulators.
The model parameters module.
real(kind=8) function, dimension(0:ndim), public mean()
Function returning the mean.
real(kind=8) dt
Integration time step.
subroutine, public load_ic
Subroutine to load the initial condition if IC.nml exists. If it does not, then write IC...
subroutine, public init_integrator
Routine to initialise the integration buffers.
real(kind=8) t_trans
Transient time period.
subroutine, public init_aotensor
Subroutine to initialise the aotensor tensor.