Back to OASIS3-MCT home
In
oasis3-mct/lib/psmile/src :
mod_oasis_coupler.F90
:
definition of the global structure prism_coupler
type prism_coupler_type
!--- fixed at initialization ---
type(mct_aVect) ::
aVect1 ! primary aVect (on source grid)
type(mct_aVect) ::
aVect2 ! extra aVect needed for mapping (on target grid)
character(len=ic_xl) :: rstfile !
restart file
character(len=ic_xl) :: inpfile !
restart file
character(len=ic_xl) :: fldlist !
field list
integer(kind=ip_i4_p) ::
nflds ! number of fields
integer(kind=ip_i4_p),pointer ::
varid(:) ! varid for each field
integer(kind=ip_i4_p) ::
namID ! namcouple ID
integer(kind=ip_i4_p) :: partID !
associated partition ID
integer(kind=ip_i4_p) :: routerID ! router ID
integer(kind=ip_i4_p) :: mapperID ! mapper ID
integer(kind=ip_i4_p) ::
ops ! namcouple operation
(ip_exported,...)
integer(kind=ip_i4_p) ::
comp ! other model compid
integer(kind=ip_i4_p) ::
tag ! comm tag
integer(kind=ip_i4_p) ::
seq ! sequence number
integer(kind=ip_i4_p) ::
dt ! coupling period (secs)
integer(kind=ip_i4_p) ::
lag ! put lag += put sooner (secs)
integer(kind=ip_i4_p) :: maxtime ! max
time for the coupler
integer(kind=ip_i4_p) ::
trans ! transformation (ip_average,...)
integer(kind=ip_i4_p) :: conserv !
conserve operation (ip_cnone,ip_cglobal,...)
integer(kind=ip_i4_p) :: getput !
get/put flag
logical
::
sndrcv ! send recv flag
logical
::
output ! output flag
logical
::
input ! input flag
logical
::
snddiag ! diagnose src fields as part of coupling
logical
::
rcvdiag ! diagnose rcv fields as part of coupling
real(kind=ip_double_p):: sndmult ! field
multiplier term
real(kind=ip_double_p):: sndadd !
field addition term
real(kind=ip_double_p):: rcvmult ! field
multiplier term
real(kind=ip_double_p):: rcvadd !
field addition term
!--- time varying info ---
integer(kind=ip_i4_p) ::
ltime ! time at last coupling
integer(kind=ip_i4_p),pointer ::
avcnt(:) ! counter for averaging
integer(kind=ip_i4_p),pointer :: status(:) !
status of variables in coupler
end type prism_coupler_type
integer(kind=ip_i4_p)
::
prism_mcoupler ! max couplers
integer(kind=ip_i4_p) ,public :: prism_ncoupler = 0
type(prism_coupler_type),public, pointer :: prism_coupler(:)
integer(kind=ip_i4_p) ,public ::
lcouplerid ! last coupler id
integer(kind=ip_i4_p) ,public :: lcouplertime
! last coupler time