MODULE TYPE_GMVS

USE PARKIND1  ,ONLY : JPIM

IMPLICIT NONE
SAVE

!--------------------------------------------------------------------
! Type declarations used for GMV (see yomgmv.F90)

! Modifications:
! 03/07/16 C. Fischer - add Aladin NHS auxiliary array
! 03/10/31 M. Tudor   - add physics tendencies for predictor-corrector
! 20-Feb-2005 Vivoda  - 3TL Eul PC scheme,  GWADV scheme for PC_FULL
! 16-Jul-2005 R. Brozkova - Cleaning VDAUX; introducing "X" in NFTHER GMV
! K. Yessad 07-02-2007: Splitting alti/surf for (gw) in NH+LGWADV.
! K. Yessad 07-03-2007: Remove useless (gw)_surf interpolations in NH+LGWADV.
! N. Wedi and K. Yessad (Jan 2008): different dev for NH model and PC scheme
! K. Yessad (Sep 2008): remove lpc_xidt
! End Modifications
!--------------------------------------------------------------------

TYPE TYPE_T0
! Pointers to arrays at time t and some dimensions
INTEGER(KIND=JPIM) :: NDIM
INTEGER(KIND=JPIM) :: NDIMS
INTEGER(KIND=JPIM) :: NDIMUV
! Field pointers in GMV
INTEGER(KIND=JPIM) :: MU
INTEGER(KIND=JPIM) :: MV
INTEGER(KIND=JPIM) :: MT
INTEGER(KIND=JPIM) :: MTL
INTEGER(KIND=JPIM) :: MTM
INTEGER(KIND=JPIM) :: MDIV
INTEGER(KIND=JPIM) :: MVOR
INTEGER(KIND=JPIM) :: MUL
INTEGER(KIND=JPIM) :: MVL
INTEGER(KIND=JPIM) :: MSPD
INTEGER(KIND=JPIM) :: MSPDL
INTEGER(KIND=JPIM) :: MSPDM
INTEGER(KIND=JPIM) :: MSVD
INTEGER(KIND=JPIM) :: MSVDL
INTEGER(KIND=JPIM) :: MSVDM
INTEGER(KIND=JPIM) :: MNHX
INTEGER(KIND=JPIM) :: MNHXL
INTEGER(KIND=JPIM) :: MNHXM
INTEGER(KIND=JPIM) :: MEDOT
! Field pointers in GMVS
INTEGER(KIND=JPIM) :: MSP
INTEGER(KIND=JPIM) :: MSPL
INTEGER(KIND=JPIM) :: MSPM
END TYPE TYPE_T0
!-------------------------------------------------------------------------
TYPE TYPE_T9
! Pointers to arrays at time t-dt and some dimensions
INTEGER(KIND=JPIM) :: NDIM
INTEGER(KIND=JPIM) :: NDIMS
! Field pointers in GMV
INTEGER(KIND=JPIM) :: MU
INTEGER(KIND=JPIM) :: MV
INTEGER(KIND=JPIM) :: MT
INTEGER(KIND=JPIM) :: MTL
INTEGER(KIND=JPIM) :: MTM
INTEGER(KIND=JPIM) :: MEDOT
INTEGER(KIND=JPIM) :: MUNL
INTEGER(KIND=JPIM) :: MUNL_SI
INTEGER(KIND=JPIM) :: MVNL
INTEGER(KIND=JPIM) :: MVNL_SI
INTEGER(KIND=JPIM) :: MTNL
INTEGER(KIND=JPIM) :: MTNL_SI
INTEGER(KIND=JPIM) :: MSPNL
INTEGER(KIND=JPIM) :: MSPNL_SI
INTEGER(KIND=JPIM) :: MVCASRS
INTEGER(KIND=JPIM) :: MRDLASR
INTEGER(KIND=JPIM) :: MVWVNL
INTEGER(KIND=JPIM) :: MSVDNL_SI
INTEGER(KIND=JPIM) :: MSPDNL
INTEGER(KIND=JPIM) :: MSPDNL_SI
INTEGER(KIND=JPIM) :: MYNL
INTEGER(KIND=JPIM) :: MDIV
INTEGER(KIND=JPIM) :: MVOR
INTEGER(KIND=JPIM) :: MUL
INTEGER(KIND=JPIM) :: MVL
INTEGER(KIND=JPIM) :: MSPD
INTEGER(KIND=JPIM) :: MSPDL
INTEGER(KIND=JPIM) :: MSPDM
INTEGER(KIND=JPIM) :: MSVD
INTEGER(KIND=JPIM) :: MSVDL
INTEGER(KIND=JPIM) :: MSVDM
INTEGER(KIND=JPIM) :: MNHX
INTEGER(KIND=JPIM) :: MGW
INTEGER(KIND=JPIM) :: MCURHS
INTEGER(KIND=JPIM) :: MCVRHS
INTEGER(KIND=JPIM) :: MCTRHS
INTEGER(KIND=JPIM) :: MCSPRHS
INTEGER(KIND=JPIM) :: MCSPDRHS
INTEGER(KIND=JPIM) :: MCSVDRHS
INTEGER(KIND=JPIM) :: MCUNL
INTEGER(KIND=JPIM) :: MCVNL
INTEGER(KIND=JPIM) :: MCTNL
INTEGER(KIND=JPIM) :: MCSPNL
INTEGER(KIND=JPIM) :: MCVWVNL
INTEGER(KIND=JPIM) :: MCSPDNL
INTEGER(KIND=JPIM) :: MCUPT
INTEGER(KIND=JPIM) :: MCVPT
INTEGER(KIND=JPIM) :: MCTPT
INTEGER(KIND=JPIM) :: MDPHI
INTEGER(KIND=JPIM) :: MNHXNL
INTEGER(KIND=JPIM) :: MCNHXNL

! Field pointers in GMVS
INTEGER(KIND=JPIM) :: MSP
INTEGER(KIND=JPIM) :: MSPL
INTEGER(KIND=JPIM) :: MSPM
INTEGER(KIND=JPIM) :: MCSPPT
INTEGER(KIND=JPIM) :: MDBBC
INTEGER(KIND=JPIM) :: MGWS

END TYPE TYPE_T9
!-------------------------------------------------------------------------
TYPE TYPE_T1
! Pointers to arrays at time t+dt and some dimensions
INTEGER(KIND=JPIM) :: NDIM
INTEGER(KIND=JPIM) :: NDIMS
! Field pointers in GMVT1
INTEGER(KIND=JPIM) :: MU
INTEGER(KIND=JPIM) :: MV
INTEGER(KIND=JPIM) :: MT
INTEGER(KIND=JPIM) :: MSPD
INTEGER(KIND=JPIM) :: MSVD
INTEGER(KIND=JPIM) :: MVOR
INTEGER(KIND=JPIM) :: MDIV
! MNHX    - pointer to the term "X" at time "t+dt" 
INTEGER(KIND=JPIM) :: MNHX
! Field pointers in GMVT1S
INTEGER(KIND=JPIM) :: MSP
END TYPE TYPE_T1
!-------------------------------------------------------------------------
TYPE TYPE_PH9
! Pointers to arrays at time "t-dt" for ECMWF physics
! Field pointers in GMV
INTEGER(KIND=JPIM) :: MU
INTEGER(KIND=JPIM) :: MV
INTEGER(KIND=JPIM) :: MT
! Field pointers in GMVS
INTEGER(KIND=JPIM) :: MSP
END TYPE TYPE_PH9
!-------------------------------------------------------------------------
END MODULE TYPE_GMVS
