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