Merge branch 'MNH-54X' into MNH-54X-dev-IO
authorPhilippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Fri, 20 Apr 2018 07:41:26 +0000 (09:41 +0200)
committerPhilippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Fri, 20 Apr 2018 07:41:26 +0000 (09:41 +0200)
27 files changed:
1  2 
MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam.src
MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz
MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
MY_RUN/KTEST/007_16janvier/009_diag/run_diag_xyz
conf/profile_mesonh.ihm
src/LIB/SURCOUCHE/src/mode_field.f90
src/MNH/default_desfmn.f90
src/MNH/goto_model_wrapper.f90
src/MNH/ground_paramn.f90
src/MNH/ini_modeln.f90
src/MNH/ini_radiations_ecmwf.f90
src/MNH/ini_surf_rad.f90
src/MNH/init_ground_paramn.f90
src/MNH/modd_radiationsn.f90
src/MNH/phys_paramn.f90
src/MNH/radiations.f90
src/MNH/read_desfmn.f90
src/MNH/read_exsegn.f90
src/MNH/reset_exseg.f90
src/MNH/stationn.f90
src/MNH/write_desfmn.f90
src/MNH/write_lfifm1_for_diag_supp.f90
src/MNH/write_lfin.f90
src/MNH/write_stationn.f90
src/Makefile.MESONH.mk
src/configure

@@@ -4,7 -5,17 +5,17 @@@
  #MNH_LIC for details. version 1.
  set -x
  set -e
 -ln -fs ../002_prep_ideal_case/REUNION_IDEA.*??? .
 -ln -sf ../001_prep_pgd/REUNION_PGD_1km5.* .
 +ln -fs ../002_prep_ideal_case/REUNION_IDEA.{des,lfi,nc} .
 +ln -sf ../001_prep_pgd/REUNION_PGD_1km5.{des,lfi,nc} .
+ if [ "x${MNH_ECRAD}" != "x" ]  ; then
+ ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/RAD* .
+ ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/*.nc .
+ sed -e's/ECMW/ECRA/g' EXSEG1.nam.src > EXSEG1.nam
+ else
+ cp EXSEG1.nam.src EXSEG1.nam
+ fi
  rm -f REUNI.1.* OUT*
  time ${MPIRUN} MESONH${XYZ}
@@@ -5,11 -5,23 +5,23 @@@
  #MNH_LIC for details. version 1.
  set -x
  set -e
- #rm -f 16JAN* OUT*  EXSEG?.nam 
- cp EXSEG1.nam.src EXSEG1.nam
- cp EXSEG2.nam.src EXSEG2.nam
+ rm -f 16JAN* OUT*  EXSEG?.nam 
 -ln -sf  ../004_arp2lfi/16JAN_06_MNH.*??? .
 -ln -sf  ../006_preal/16JAN_06_MNH2.*??? .
 -ln -sf  ../003_nest/16JAN98_36km.neste1.* .
 -ln -sf  ../003_nest/16JAN98_9km.neste1.* .
 +ln -sf  ../004_arp2lfi/16JAN_06_MNH.{des,lfi,nc} .
 +ln -sf  ../006_preal/16JAN_06_MNH2.{des,lfi,nc} .
 +ln -sf  ../003_nest/16JAN98_36km.neste1.{des,lfi,nc} .
 +ln -sf  ../003_nest/16JAN98_9km.neste1.{des,lfi,nc} .
+ if [ "x${MNH_ECRAD}" != "x" ]  ; then
+ ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/RAD* .
+ ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/*.nc .
+ sed -e's/ECMW/ECRA/g' EXSEG1.nam.src > EXSEG1.nam
+ sed -e's/ECMW/ECRA/g' EXSEG2.nam.src > EXSEG2.nam
+ else
+ cp EXSEG1.nam.src EXSEG1.nam
+ cp EXSEG2.nam.src EXSEG2.nam
+ fi
  time ${MPIRUN} MESONH${XYZ}
@@@ -120,7 -127,7 +125,7 @@@ export VERSION_NCL=${VERSION_NCL
  ##########################################################
  ##########################################################
  #
- export XYZ="-\${ARCH}-R\${MNH_REAL}I\${MNH_INT}-\${VERSION_XYZ}\${VER_USER:+-\${VER_USER}}-\${VER_MPI}-\${OPTLEVEL}"
 -export XYZ="-\${ARCH}\${MNH_REAL:+\${MNH_REAL}}I\${MNH_INT}-\${VERSION_XYZ}\${MNH_ECRAD:+-ECRAD}\${VER_USER:+-\${VER_USER}}-\${VER_MPI}-\${OPTLEVEL}"
++export XYZ="-\${ARCH}-R\${MNH_REAL}I\${MNH_INT}-\${VERSION_XYZ}\${MNH_ECRAD:+-ECRAD}\${VER_USER:+-\${VER_USER}}-\${VER_MPI}-\${OPTLEVEL}"
  #[ "x\${VER_USER}" != "x" ] && export XYZ="\${XYZ}-\${VER_USER}"
  # PATH to find tools like "makegen, etc ..."
  export BIN_TOOLS=${BIN_TOOLS}
index c632526,0000000..6b69eb2
mode 100644,000000..100644
--- /dev/null
@@@ -1,4504 -1,0 +1,4504 @@@
- TFIELDLIST(IDX)%NDIMS      = 2
 +!MNH_LIC Copyright 2016-2018 CNRS, Meteo-France and Universite Paul Sabatier
 +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 +!MNH_LIC for details. version 1.
 +!-----------------------------------------------------------------
 +! Original version:
 +!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 +!-----------------------------------------------------------------
 +MODULE MODE_FIELD
 +!
 +USE MODD_CONF,      ONLY : CPROGRAM
 +USE MODD_IO_ll,     ONLY : NVERB_DEBUG,NVERB_INFO,NVERB_WARNING,NVERB_ERROR,NVERB_FATAL
 +USE MODD_PARAMETERS
 +USE MODD_TYPE_DATE, ONLY : DATE_TIME
 +#if defined(MNH_IOCDF4)
 +USE NETCDF,         ONLY : NF90_FILL_INT, NF90_FILL_REAL
 +#endif
 +!
 +USE MODE_MSG
 +!
 +IMPLICIT NONE
 +!
 +INTEGER,PRIVATE,PARAMETER :: MAXFIELDS = 250
 +INTEGER,PARAMETER :: TYPEUNDEF = -1, TYPEINT = 1, TYPELOG = 2, TYPEREAL = 3, TYPECHAR = 4, TYPEDATE = 5
 +!
 +TYPE TFIELDPTR_C0D
 +  CHARACTER(LEN=:),     POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_C0D
 +!
 +TYPE TFIELDPTR_L0D
 +  LOGICAL,              POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_L0D
 +!
 +TYPE TFIELDPTR_N0D
 +  INTEGER,              POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_N0D
 +!
 +TYPE TFIELDPTR_N2D
 +  INTEGER,DIMENSION(:,:), POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_N2D
 +!
 +TYPE TFIELDPTR_N3D
 +  INTEGER,DIMENSION(:,:,:),POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_N3D
 +!
 +TYPE TFIELDPTR_X0D
 +  REAL,                 POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_X0D
 +!
 +TYPE TFIELDPTR_X1D
 +  REAL,DIMENSION(:),    POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_X1D
 +!
 +TYPE TFIELDPTR_X2D
 +  REAL,DIMENSION(:,:),  POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_X2D
 +!
 +TYPE TFIELDPTR_X3D
 +  REAL,DIMENSION(:,:,:),POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_X3D
 +!
 +TYPE TFIELDPTR_X4D
 +  REAL,DIMENSION(:,:,:,:),POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_X4D
 +!
 +TYPE TFIELDPTR_T0D
 +  TYPE(DATE_TIME),      POINTER :: DATA => NULL()
 +END TYPE TFIELDPTR_T0D
 +!
 +!Structure describing the characteristics of a field
 +TYPE TFIELDDATA
 +  CHARACTER(LEN=NMNHNAMELGTMAX) :: CMNHNAME  = '' !Name of the field (for MesoNH, non CF convention)
 +  CHARACTER(LEN=NSTDNAMELGTMAX) :: CSTDNAME  = '' !Standard name (CF convention)
 +  CHARACTER(LEN=32)  :: CLONGNAME = '' !Long name (CF convention)
 +  CHARACTER(LEN=40)  :: CUNITS    = '' !Canonical units (CF convention)
 +  CHARACTER(LEN=2)   :: CDIR      = '' !Type of the data field (XX,XY,--...)
 +  CHARACTER(LEN=4)   :: CLBTYPE   = 'NONE' !Type of the lateral boundary (LBX,LBY,LBXU,LBYV)
 +  CHARACTER(LEN=100) :: CCOMMENT  = '' !Comment (for MesoNH, non CF convention)
 +  INTEGER            :: NGRID     = -1 !Localization on the model grid
 +  INTEGER            :: NTYPE     = TYPEUNDEF !Datatype
 +  INTEGER            :: NDIMS     = 0  !Number of dimensions
 +  LOGICAL            :: LTIMEDEP  = .FALSE. !Is the field time-dependent?
 +  !
 +#if defined(MNH_IOCDF4)
 +  INTEGER            :: NFILLVALUE =  NF90_FILL_INT  !Fill value for integer fields
 +  REAL               :: XFILLVALUE =  NF90_FILL_REAL !Fill value for real fields
 +                                                     !NF90_FILL_REAL is the default fill value
 +                                                     !used by netCDF to pre-fill real and also double
 +                                                     !variables
 +#else
 +  INTEGER            :: NFILLVALUE =  -2147483647            !Fill value for integer fields
 +  REAL               :: XFILLVALUE =  9.9692099683868690e+36 !Fill value for real fields
 +#endif
 +  INTEGER            :: NVALIDMIN  = -2147483646 !Minimum valid value for integer fields
 +  INTEGER            :: NVALIDMAX  =  2147483647 !Maximum valid value for integer fields
 +  REAL               :: XVALIDMIN  = -1.E36 !Minimum valid value for real fields
 +  REAL               :: XVALIDMAX  =  1.E36 !Maximum valid value for real fields
 +  !
 +  TYPE(TFIELDPTR_C0D),DIMENSION(:),ALLOCATABLE :: TFIELD_C0D !Pointer to the character string fields (one per nested mesh)
 +  !
 +  TYPE(TFIELDPTR_L0D),DIMENSION(:),ALLOCATABLE :: TFIELD_L0D !Pointer to the scalar logical fields (one per nested mesh)
 +  !
 +  TYPE(TFIELDPTR_N0D),DIMENSION(:),ALLOCATABLE :: TFIELD_N0D !Pointer to the scalar integer fields (one per nested mesh)
 +  TYPE(TFIELDPTR_N2D),DIMENSION(:),ALLOCATABLE :: TFIELD_N2D !Pointer to the integer 2D fields (one per nested mesh)
 +  TYPE(TFIELDPTR_N3D),DIMENSION(:),ALLOCATABLE :: TFIELD_N3D !Pointer to the integer 3D fields (one per nested mesh)
 +  !
 +  TYPE(TFIELDPTR_X0D),DIMENSION(:),ALLOCATABLE :: TFIELD_X0D !Pointer to the scalar real fields (one per nested mesh)
 +  TYPE(TFIELDPTR_X1D),DIMENSION(:),ALLOCATABLE :: TFIELD_X1D !Pointer to the real 1D fields (one per nested mesh)
 +  TYPE(TFIELDPTR_X2D),DIMENSION(:),ALLOCATABLE :: TFIELD_X2D !Pointer to the real 2D fields (one per nested mesh)
 +  TYPE(TFIELDPTR_X3D),DIMENSION(:),ALLOCATABLE :: TFIELD_X3D !Pointer to the real 3D fields (one per nested mesh)
 +  TYPE(TFIELDPTR_X4D),DIMENSION(:),ALLOCATABLE :: TFIELD_X4D !Pointer to the real 4D fields (one per nested mesh)
 +  !
 +  TYPE(TFIELDPTR_T0D),DIMENSION(:),ALLOCATABLE :: TFIELD_T0D !Pointer to the scalar date/time fields (one per nested mesh)
 +END TYPE TFIELDDATA
 +!
 +LOGICAL,SAVE :: LFIELDLIST_ISINIT = .FALSE.
 +TYPE(TFIELDDATA),DIMENSION(MAXFIELDS),SAVE :: TFIELDLIST
 +!
 +CONTAINS
 +!
 +SUBROUTINE INI_FIELD_LIST(KMODEL)
 +!
 +USE MODD_CONF, ONLY: NMODEL
 +!
 +INTEGER,INTENT(IN),OPTIONAL :: KMODEL
 +!
 +INTEGER :: IDX, IMODEL
 +CHARACTER(LEN=42) :: YMSG
 +!
 +!F90/95: TFIELDLIST(1) = TFIELDDATA('UT','x_wind','m s-1','XY','X_Y_Z_U component of wind (m/s)',2)
 +!F2003:
 +!TFIELDLIST(1) = TFIELDDATA(CMNHNAME='UT',CSTDNAME='x_wind',CUNITS='m s-1',CDIR='XY',&
 +!                           CCOMMENT='X_Y_Z_U component of wind (m/s)',NGRID=2)
 +!
 +CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_LIST','called')
 +IF (LFIELDLIST_ISINIT) THEN
 +  CALL PRINT_MSG(NVERB_ERROR,'GEN','INI_FIELD_LIST','already called')
 +  RETURN
 +END IF
 +LFIELDLIST_ISINIT = .TRUE.
 +!
 +IF (PRESENT(KMODEL)) THEN
 +  IMODEL = KMODEL
 +ELSE
 +  IF (NMODEL/=1) THEN
 +    IMODEL = NMODEL
 +  ELSE !NMODEL is not necessary known here => allocating for max allowed number of models
 +    IMODEL = JPMODELMAX
 +  END IF
 +END IF
 +IF (IMODEL==0) CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_FIELD_LIST','allocating fields for zero models not allowed')
 +!
 +WRITE(YMSG,'("allocating fields for up to ",I4," model(s)")') IMODEL
 +CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_LIST',YMSG)
 +!
 +IDX = 1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'MNHVERSION'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH version'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'MASDEV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH version (without bugfix)'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'BUGFIX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH bugfix number'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'BIBUSER'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH: user binary library'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPECHAR
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VERSION'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SURFEX version (without BUG)'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'BUG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SURFEX bugfix number'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PROGRAM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH family: used program'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPECHAR
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'FILETYPE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'type of this file'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPECHAR
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'MY_NAME'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'filename (no extension)'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPECHAR
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DAD_NAME'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'filename of the dad file'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPECHAR
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DXRATIO'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DXRATIO'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Resolution ratio between this mesh and its father in x-direction'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DYRATIO'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DYRATIO'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Resolution ratio between this mesh and its father in y-direction'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'XSIZE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'XSIZE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Number of model 1 grid points in x-direction in the model 2 physical domain'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'YSIZE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'YSIZE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Number of model 1 grid points in y-direction in the model 2 physical domain'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'XOR'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'XOR'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Horizontal position of this mesh relative to its father'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'YOR'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'YOR'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Vertical position of this mesh relative to its father'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'STORAGE_TYPE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'STORAGE_TYPE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Storage type for the information written in the FM files'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPECHAR
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'IMAX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'IMAX'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'x-dimension of the physical domain'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'JMAX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'JMAX'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'y-dimension of the physical domain'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'KMAX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'KMAX'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'z-dimension of the physical domain'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'JPHEXT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'JPHEXT'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Number of horizontal external points on each side'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RPK'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RPK'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Projection parameter for conformal projection'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LONORI'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LONORI'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Longitude of the point of coordinates x=0, y=0 for conformal projection'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LATORI'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LATORI'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Latitude of the point of coordinates x=0, y=0 for conformal projection'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LONOR'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LONOR'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Longitude of 1st mass point'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LATOR'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LATOR'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Latitude of 1st mass point'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'THINSHELL'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'THINSHELL'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for thinshell approximation'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LAT0'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LAT0'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Reference latitude for conformal projection'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LON0'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LON0'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Reference longitude for conformal projection'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'BETA'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'BETA'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Rotation angle for conformal projection'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'XHAT'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = 'projection_x_coordinate'
 +TFIELDLIST(IDX)%CLONGNAME  = 'XHAT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XX'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Position x in the conformal or cartesian plane'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X1D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'YHAT'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = 'projection_y_coordinate'
 +TFIELDLIST(IDX)%CLONGNAME  = 'YHAT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'YY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Position y in the conformal or cartesian plane'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X1D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ZHAT'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ZHAT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'ZZ'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Height level without orography'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X1D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ZTOP'
 +TFIELDLIST(IDX)%CSTDNAME   = 'altitude_at_top_of_atmosphere_model'
 +TFIELDLIST(IDX)%CLONGNAME  = 'ZTOP'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Height of top level'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DXHAT'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DXHAT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XX'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Horizontal stretching in x'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X1D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DYHAT'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DYHAT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'YY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Horizontal stretching in y'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X1D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ALT'
 +TFIELDLIST(IDX)%CSTDNAME   = 'altitude'
 +TFIELDLIST(IDX)%CLONGNAME  = 'ALT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_ALTitude'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DIRCOSXW'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DIRCOSXW'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X director cosinus of the normal to the ground surface'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DIRCOSYW'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DIRCOSYW'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Y director cosinus of the normal to the ground surface'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DIRCOSZW'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DIRCOSZW'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Z director cosinus of the normal to the ground surface'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'COSSLOPE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'COSSLOPE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'cosinus of the angle between i and the slope vector'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SINSLOPE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SINSLOPE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'sinus of the angle between i and the slope vector'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'MAP'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MAP'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Map factor'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'latitude'
 +TFIELDLIST(IDX)%CSTDNAME   = 'latitude'
 +TFIELDLIST(IDX)%CLONGNAME  = 'latitude'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_north'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_latitude at mass point'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'longitude'
 +TFIELDLIST(IDX)%CSTDNAME   = 'longitude'
 +TFIELDLIST(IDX)%CLONGNAME  = 'longitude'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_east'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_longitude at mass point'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'latitude_u'
 +TFIELDLIST(IDX)%CSTDNAME   = 'latitude_at_u_location'
 +TFIELDLIST(IDX)%CLONGNAME  = 'latitude at u location'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_north'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_latitude at u point'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'longitude_u'
 +TFIELDLIST(IDX)%CSTDNAME   = 'longitude_at_u_location'
 +TFIELDLIST(IDX)%CLONGNAME  = 'longitude at u location'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_east'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_longitude at u point'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'latitude_v'
 +TFIELDLIST(IDX)%CSTDNAME   = 'latitude_at_v_location'
 +TFIELDLIST(IDX)%CLONGNAME  = 'latitude at v location'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_north'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_latitude at v point'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'longitude_v'
 +TFIELDLIST(IDX)%CSTDNAME   = 'longitude_at_v_location'
 +TFIELDLIST(IDX)%CLONGNAME  = 'longitude at v location'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_east'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_longitude at v point'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'latitude_f'
 +TFIELDLIST(IDX)%CSTDNAME   = 'latitude_at_f_location'
 +TFIELDLIST(IDX)%CLONGNAME  = 'latitude at f location'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_north'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_latitude at f point'
 +TFIELDLIST(IDX)%NGRID      = 5
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'longitude_f'
 +TFIELDLIST(IDX)%CSTDNAME   = 'longitude_at_f_location'
 +TFIELDLIST(IDX)%CLONGNAME  = 'longitude at f location'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_east'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_longitude at f point'
 +TFIELDLIST(IDX)%NGRID      = 5
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LAT'
 +! TFIELDLIST(IDX)%CSTDNAME   = 'latitude'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LAT'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_north'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_latitude'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LON'
 +! TFIELDLIST(IDX)%CSTDNAME   = 'longitude'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LON'
 +TFIELDLIST(IDX)%CUNITS     = 'degrees_east'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_longitude'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ZS'
 +TFIELDLIST(IDX)%CSTDNAME   = 'surface_altitude'
 +TFIELDLIST(IDX)%CLONGNAME  = 'ZS'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'orography'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ZSMT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ZSMT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'smooth orography'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SLEVE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SLEVE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for SLEVE coordinate'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_L0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LEN1'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LEN1'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Decay scale for smooth topography'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LEN2'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LEN2'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Decay scale for small-scale topography deviation'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTMOD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTMOD'
 +TFIELDLIST(IDX)%CUNITS     = 'seconds since YYYY-MM-DD HH:MM:SS.S'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Time and date of model beginning'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEDATE
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_T0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTCUR'
 +TFIELDLIST(IDX)%CSTDNAME   = 'time'
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTCUR'
 +TFIELDLIST(IDX)%CUNITS     = 'seconds since YYYY-MM-DD HH:MM:SS.S'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Current time and date'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEDATE
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_T0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTRAD_FULL'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTRAD_FULL'
 +TFIELDLIST(IDX)%CUNITS     = 'seconds since YYYY-MM-DD HH:MM:SS.S'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Time and date of last full radiation call'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEDATE
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_T0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTRAD_CLLY'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTRAD_CLLY'
 +TFIELDLIST(IDX)%CUNITS     = 'seconds since YYYY-MM-DD HH:MM:SS.S'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Time and date of last radiation call for only cloudy verticals'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEDATE
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_T0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTDCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTDCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'seconds since YYYY-MM-DD HH:MM:SS.S'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Time and date of the last deep convection call'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEDATE
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_T0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTEXP'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTEXP'
 +TFIELDLIST(IDX)%CUNITS     = 'seconds since YYYY-MM-DD HH:MM:SS.S'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Time and date of experiment beginning'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEDATE
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTSEG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTSEG'
 +TFIELDLIST(IDX)%CUNITS     = 'seconds since YYYY-MM-DD HH:MM:SS.S'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Time and date of segment beginning'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEDATE
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'L1D'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'L1D'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for 1D model version'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'L2D'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'L2D'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for 2D model version'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PACK'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PACK'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical to compress 1D or 2D FM files'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CARTESIAN'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CARTESIAN'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for cartesian geometry'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBOUSS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBOUSS'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for Boussinesq approximation'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SURF'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SURF'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Kind of surface processes parameterization'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPECHAR
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_C0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CPL_AROME'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CPL_AROME'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for AROME coupling file'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'COUPLING'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'COUPLING'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Logical for coupling file'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'UT'
 +TFIELDLIST(IDX)%CSTDNAME   = 'x_wind'
 +TFIELDLIST(IDX)%CLONGNAME  = 'UT'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_U component of wind'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VT'
 +TFIELDLIST(IDX)%CSTDNAME   = 'y_wind'
 +TFIELDLIST(IDX)%CLONGNAME  = 'VT'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_V component of wind'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'WT'
 +TFIELDLIST(IDX)%CSTDNAME   = 'upward_air_velocity'
 +TFIELDLIST(IDX)%CLONGNAME  = 'WT'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_vertical wind'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'THT'
 +TFIELDLIST(IDX)%CSTDNAME   = 'air_potential_temperature'
 +TFIELDLIST(IDX)%CLONGNAME  = 'THT'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_potential temperature'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'UM'
 +TFIELDLIST(IDX)%CSTDNAME   = 'x_wind'
 +TFIELDLIST(IDX)%CLONGNAME  = 'UM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_U component of wind'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VM'
 +TFIELDLIST(IDX)%CSTDNAME   = 'y_wind'
 +TFIELDLIST(IDX)%CLONGNAME  = 'VM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_V component of wind'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'WM'
 +TFIELDLIST(IDX)%CSTDNAME   = 'upward_air_velocity'
 +TFIELDLIST(IDX)%CLONGNAME  = 'WM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_vertical wind'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DUM'
 +TFIELDLIST(IDX)%CSTDNAME   = 'x_wind'
 +TFIELDLIST(IDX)%CLONGNAME  = 'DUM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_U component of wind'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DVM'
 +TFIELDLIST(IDX)%CSTDNAME   = 'y_wind'
 +TFIELDLIST(IDX)%CLONGNAME  = 'DVM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_V component of wind'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DWM'
 +TFIELDLIST(IDX)%CSTDNAME   = 'upward_air_velocit'
 +TFIELDLIST(IDX)%CLONGNAME  = 'DWM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_vertical wind'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'TKET'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'TKET'
 +TFIELDLIST(IDX)%CUNITS     = 'm2 s-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Turbulent Kinetic Energy'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'TKEMS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'TKEMS'
 +TFIELDLIST(IDX)%CUNITS     = 'm2 s-3'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Turbulent Kinetic Energy adv source'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PABST'
 +TFIELDLIST(IDX)%CSTDNAME   = 'air_pressure'
 +TFIELDLIST(IDX)%CLONGNAME  = 'PABST'
 +TFIELDLIST(IDX)%CUNITS     = 'Pa'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_ABSolute Pressure'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Moist variables (rho Rn)'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 4
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X4D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RVT'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = 'humidity_mixing_ratio'
 +TFIELDLIST(IDX)%CLONGNAME  = 'RVT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Vapor mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RCT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RCT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Cloud mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RRT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RRT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Rain mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RIT'
 +!TODO: check stdname
 +TFIELDLIST(IDX)%CSTDNAME   = 'cloud_ice_mixing_ratio'
 +TFIELDLIST(IDX)%CLONGNAME  = 'RIT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Ice mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RST'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RST'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Snow mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RGT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RGT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Graupel mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RHT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RHT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Hail mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +TFIELDLIST(IDX)%NDIMS      = 3
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SUPSATMAX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SUPSATMAX'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Supersaturation'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'NACT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'NACT'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Nact'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SSPRO'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SSPRO'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Supersaturation'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'NPRO'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'NPRO'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Nact'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPAP'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPAP'
 +TFIELDLIST(IDX)%CUNITS     = 'kg m-2 s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous Precipitating Aerosol Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACPAP'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACPAP'
 +TFIELDLIST(IDX)%CUNITS     = 'kg m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ACcumulated Precipitating Aerosol Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'EFIELDU'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'EFIELDU'
 +TFIELDLIST(IDX)%CUNITS     = 'V m-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_EFIELDU'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'EFIELDV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'EFIELDV'
 +TFIELDLIST(IDX)%CUNITS     = 'V m-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_EFIELDV'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'EFIELDW'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'EFIELDW'
 +TFIELDLIST(IDX)%CUNITS     = 'V m-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_EFIELDW'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'NI_IAGGS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'NI_IAGGS'
 +TFIELDLIST(IDX)%CUNITS     = 'C m-3 s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_NI_IAGGS'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'NI_IDRYG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'NI_IDRYG'
 +TFIELDLIST(IDX)%CUNITS     = 'C m-3 s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_NI_IDRYG'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'NI_SDRYG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'NI_SDRYG'
 +TFIELDLIST(IDX)%CUNITS     = 'C m-3 s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_NI_SDRYG'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INDUC_CG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INDUC_CG'
 +TFIELDLIST(IDX)%CUNITS     = 'C m-3 s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_INDUC_CG'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'TRIG_IC'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'TRIG_IC'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_FLASH_MAP_TRIG_IC'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'IMPACT_CG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'IMPACT_CG'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_FLASH_MAP_IMPACT_CG'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'AREA_CG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'AREA_CG'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_FLASH_MAP_2DAREA_CG'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'AREA_IC'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'AREA_IC'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_FLASH_MAP_2DAREA_IC'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'FLASH_3DCG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'FLASH_3DCG'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_FLASH_MAP_3DCG'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'FLASH_3DIC'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'FLASH_3DIC'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_FLASH_MAP_3DIC'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PHC'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PHC'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'pH in cloud'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PHR'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PHR'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'pH in rain'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LSUM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LSUM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Large Scale U component'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LSVM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LSVM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Large Scale V component'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LSWM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LSWM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Large Scale vertical wind'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LSTHM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LSTHM'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Large Scale potential Temperature'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LSRVM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LSRVM'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Large Scale Vapor Mixing Ratio'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RIMX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RIMX'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Number of points in the lateral absorbing layer in the x direction'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_N0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RIMY'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RIMY'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Number of points in the lateral absorbing layer in the y direction'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_N0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'HORELAX_UVWTH'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'HORELAX_UVWTH'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Switch to activate the HOrizontal RELAXation'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_L0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBXUM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBXUM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBXU'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBXUM'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBXVM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBXVM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBX'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBXVM'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBXWM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBXWM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBX'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBXWM'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBYUM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBYUM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBY'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBYUM'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBYVM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBYVM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBYV'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBYVM'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBYWM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBYWM'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBY'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBYWM'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBXTHM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBXTHM'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBX'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBXTHM'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBYTHM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBYTHM'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBY'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBYTHM'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'HORELAX_TKE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'HORELAX_TKE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Switch to activate the HOrizontal RELAXation'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPELOG
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_L0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBXTKEM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBXTKEM'
 +TFIELDLIST(IDX)%CUNITS     = 'm2 s-2'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBX'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBXTKEM'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'LBYTKEM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'LBYTKEM'
 +TFIELDLIST(IDX)%CUNITS     = 'm2 s-2'
 +! TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = 'LBY'
 +TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBYTKEM'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DRYMASST'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DRYMASST'
 +TFIELDLIST(IDX)%CUNITS     = 'kg'
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Total Dry Mass'
 +TFIELDLIST(IDX)%NGRID      = 0
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X0D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'BL_DEPTH'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'BL_DEPTH'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_BL_DEPTH'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SBL_DEPTH'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SBL_DEPTH'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_BL_SDEPTH'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'WTHVMF'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'WTHVMF'
 +TFIELDLIST(IDX)%CUNITS     = 'm K s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_WTHVMF'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SRCT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SRCT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_normalized 2nd_order moment s_r_c/2Sigma_s2'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SIGS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SIGS'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Sigma_s from turbulence scheme'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RHOREFZ'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RHOREFZ'
 +TFIELDLIST(IDX)%CUNITS     = 'kg m-3'
 +TFIELDLIST(IDX)%CDIR       = 'ZZ'
 +TFIELDLIST(IDX)%CCOMMENT   = 'rhodz for reference state without orography'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X1D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'THVREFZ'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'THVREFZ'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'ZZ'
 +TFIELDLIST(IDX)%CCOMMENT   = 'thetavz for reference state without orography'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 1
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X1D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'EXNTOP'
 +TFIELDLIST(IDX)%CSTDNAME   = 'dimensionless_exner_function'
 +TFIELDLIST(IDX)%CLONGNAME  = 'EXNTOP'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = '--'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Exner function at model top'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 0
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +IDX = IDX+1
 +!
 +!
 +IF (TRIM(CPROGRAM) == 'MESONH' .OR. TRIM(CPROGRAM) == 'DIAG' .OR. TRIM(CPROGRAM) == 'LFICDF') THEN
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'US_PRES'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'US_PRES'
 +!TODO: units?
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_US_PRES'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VS_PRES'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'VS_PRES'
 +!TODO: units?
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_VS_PRES'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'WS_PRES'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'WS_PRES'
 +!TODO: units?
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_WS_PRES'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'THS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'THS_CLD'
 +!TODO: units?
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_THS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Source of Moist variables'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 4
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X4D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RVS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RVS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RVS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RCS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RCS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RCS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RRS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RRS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RRS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RIS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RIS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RIS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RSS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RSS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RSS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RGS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RGS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RGS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RHS_CLD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RHS_CLD'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RHS_CLD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CLDFR'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CLDFR'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_CLouD FRaction'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CIT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CIT'
 +TFIELDLIST(IDX)%CUNITS     = 'm-3'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Cloud Ice concentration'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +END IF ! CPROGRAM=MESONH .OR. DIAG .OR. LFICDF
 +!
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RHODREF'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RHODREF'
 +TFIELDLIST(IDX)%CUNITS     = 'kg m-3'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Dry density for reference state with orography'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'THVREF'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'THVREF'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Thetav for reference state with orography'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +!
 +IF (TRIM(CPROGRAM)=='MESONH' .OR. TRIM(CPROGRAM)=='DIAG' .OR. TRIM(CPROGRAM) == 'LFICDF') THEN
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTHRAD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTHRAD'
 +TFIELDLIST(IDX)%CUNITS     = 'K s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_RADiative heating/cooling rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'FLALWD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'FLALWD'
 +TFIELDLIST(IDX)%CUNITS     = 'W m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Downward Long Waves on FLAT surface'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DIRFLASWD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DIRFLASWD'
 +TFIELDLIST(IDX)%CUNITS     = 'W m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_DIRect Downward Short Waves on FLAT surface'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SCAFLASWD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SCAFLASWD'
 +TFIELDLIST(IDX)%CUNITS     = 'W m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_SCAttered Downward Short Waves on FLAT surface'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DIRSRFSWD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DIRSRFSWD'
 +TFIELDLIST(IDX)%CUNITS     = 'W m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_DIRect Downward Short Waves'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CLEARCOL_TM1'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CLEARCOL_TM1'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'TRACE OF CLOUD'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_N2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ZENITH'
 +TFIELDLIST(IDX)%CSTDNAME   = 'zenith_angle'
 +TFIELDLIST(IDX)%CLONGNAME  = 'ZENITH'
 +TFIELDLIST(IDX)%CUNITS     = 'rad'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ZENITH'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'AZIM'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'AZIM'
 +TFIELDLIST(IDX)%CUNITS     = 'rad'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_AZIMuth'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DIR_ALB'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DIR_ALB'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_DIRect ALBedo'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SCA_ALB'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SCA_ALB'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_SCAttered ALBedo'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'EMIS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'EMIS'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_EMISsivity'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
- ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
++TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
-   CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',        IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XEMIS
++ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'TSRAD'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'TSRAD'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_RADiative Surface Temperature'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +END IF !CPROGRAM=MESONH .OR. DIAG .OR. LFICDF
 +!
 +!
 +IF ( (TRIM(CPROGRAM) /= 'PGD' .AND. TRIM(CPROGRAM) /= 'NESPGD' .AND. TRIM(CPROGRAM) /= 'SPAWN') ) THEN
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'COUNTCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'COUNTCONV'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_COUNTCONV'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_N2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DTHCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DTHCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'K s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_CONVective heating/cooling rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DRVCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DRVCONV'
 +TFIELDLIST(IDX)%CUNITS     = 's-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_CONVective R_v tendency'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DRCCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DRCCONV'
 +TFIELDLIST(IDX)%CUNITS     = 's-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_CONVective R_c tendency'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DRICONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DRICONV'
 +TFIELDLIST(IDX)%CUNITS     = 's-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_CONVective R_i tendency'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PRCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PRCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_CONVective instantaneous Precipitation Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PACCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PACCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_CONVective ACcumulated Precipitation rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PRSCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PRSCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_CONVective instantaneous Precipitation Rate for Snow'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DSVCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DSVCONV'
 +TFIELDLIST(IDX)%CUNITS     = 's-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Tracer tendencies'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 4
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X4D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PRLFLXCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PRLFLXCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Liquid Precipitation Convective Flux'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PRSFLXCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PRSFLXCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Solid Precipitation Convective Flux'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'UMFCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'UMFCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'kg s-1 m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Updraft Convective Mass Flux'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'DMFCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'DMFCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'kg s-1 m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Downdraft Convective Mass Flux'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'MFCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MFCONV'
 +TFIELDLIST(IDX)%CUNITS     = 'kg s-1 m-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Convective Mass Flux'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CAPE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CAPE'
 +TFIELDLIST(IDX)%CUNITS     = 'J kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Convective Available Potentiel Energy'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CLTOPCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CLTOPCONV'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Convective cloud top level'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_N2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CLBASCONV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CLBASCONV'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'Convective cloud base level'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEINT
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_N2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'IC_RATE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'IC_RATE'
 +TFIELDLIST(IDX)%CUNITS     = 's-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_IntraCloud lightning Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CG_RATE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CG_RATE'
 +TFIELDLIST(IDX)%CUNITS     = 's-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_CloudGround lightning Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'IC_TOTAL_NB'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'IC_TOTAL_NB'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_IntraCloud lightning Number'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'CG_TOTAL_NB'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'CG_TOTAL_NB'
 +TFIELDLIST(IDX)%CUNITS     = '1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_CloudGround lightning Number'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +END IF !CPROGRAM/=PGD , NESPGD, SPAWN
 +!
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SSO_ANIS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SSO_ANIS'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_SSO_ANISOTROPY'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SSO_SLOPE'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SSO_SLOPE'
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_SSO_SLOPE'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SSO_DIR'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SSO_DIR'
 +TFIELDLIST(IDX)%CUNITS     = 'degree'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_SSO_DIR'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'AVG_ZS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'AVG_ZS'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_AVG_ZS'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SIL_ZS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SIL_ZS'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_SIL_ZS'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'MAX_ZS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MAX_ZS'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_MAX_ZS'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'MIN_ZS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'MIN_ZS'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_MIN_ZS'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'SSO_STDEV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'SSO_STDEV'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_SSO_STDEV'
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPRC'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPRC'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous Cloud Precipitation Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACPRC'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACPRC'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ACcumulated Cloud Precipitation Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INDEP'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INDEP'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous Cloud Deposition Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACDEP'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACDEP'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ACcumulated Cloud Deposition Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPRR'
 +TFIELDLIST(IDX)%CSTDNAME   = 'rainfall_rate'
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPRR'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous Precipitation Rain Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPRR3D'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPRR3D'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous 3D Rain Precipitation flux'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'EVAP3D'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'EVAP3D'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1 s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous 3D Rain Evaporation flux'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACPRR'
 +TFIELDLIST(IDX)%CSTDNAME   = 'rainfall_amount'
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACPRR'
 +!PW: TODO: CF-convention prefers 'kg m-2'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ACcumulated Precipitation Rain Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPRS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPRS'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous PRecipitation Snow Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACPRS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACPRS'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ACcumulated PRecipitation Snow Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPRG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPRG'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous PRecipitation Graupel Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACPRG'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACPRG'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ACcumulated PRecipitation Graupel Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPRH'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPRH'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_INstantaneous PRecipitation Hail Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACPRH'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACPRH'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_ACcumulated PRecipitation Hail Rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'INPRT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'INPRT'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Total INstantaneaous PRecipitation rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +!No permanent variable associated to this field
 +!ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'ACPRT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'ACPRT'
 +TFIELDLIST(IDX)%CUNITS     = 'm'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Total ACcumulated PRecipitation rate'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +!No permanent variable associated to this field
 +!ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VT_FLX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'VT_FLX'
 +TFIELDLIST(IDX)%CUNITS     = 'K m s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'WT_FLX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'WT_FLX'
 +TFIELDLIST(IDX)%CUNITS     = 'K m s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 4
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RTHS_EDDY_FLUX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RTHS_EDDY_FLUX'
 +!TODO PW: units?
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VU_FLX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'VU_FLX'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-2'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'RVS_EDDY_FLUX'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'RVS_EDDY_FLUX'
 +!TODO PW: units?
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .TRUE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +!
 +IF (TRIM(CPROGRAM)=='REAL' .OR. TRIM(CPROGRAM) == 'LFICDF') THEN
 +!PW: not yet known: IF (LFILTERING) THEN
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'UT15'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'UT15'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_U component of Total wind'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VT15'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'VT15'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_V component of Total wind'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'TEMPTOT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'TEMPTOT'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_TOTal TEMPerature'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PRESTOT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PRESTOT'
 +TFIELDLIST(IDX)%CUNITS     = 'Pa'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_TOTal PRESsure'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'HUMTOT'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'HUMTOT'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_TOTal specific HUMidity'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'UT16'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'UT16'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_U component of Environmental wind'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VT16'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'VT16'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_V component of Environmental wind'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'TEMPENV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'TEMPENV'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_ENVironmental TEMPerature'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PRESENV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PRESENV'
 +TFIELDLIST(IDX)%CUNITS     = 'Pa'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_ENVironmental PRESsure'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 2
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'HUMENV'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'HUMENV'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_ENVironmental specific HUMidity'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'UT17'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'UT17'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_U component of Basic wind'
 +TFIELDLIST(IDX)%NGRID      = 2
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VT17'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'VT17'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_V component of Basic wind'
 +TFIELDLIST(IDX)%NGRID      = 3
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'TEMPBAS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'TEMPBAS'
 +TFIELDLIST(IDX)%CUNITS     = 'K'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_BASic TEMPerature'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'PRESBAS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'PRESBAS'
 +TFIELDLIST(IDX)%CUNITS     = 'Pa'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_BASic PRESsure'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'HUMBAS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'HUMBAS'
 +TFIELDLIST(IDX)%CUNITS     = 'kg kg-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_BASic specific HUMidity'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = 'VTDIS'
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = 'VTDIS'
 +TFIELDLIST(IDX)%CUNITS     = 'm s-1'
 +TFIELDLIST(IDX)%CDIR       = 'XY'
 +TFIELDLIST(IDX)%CCOMMENT   = 'X_Y_Z_Total disturbance tangential wind'
 +TFIELDLIST(IDX)%NGRID      = 1
 +TFIELDLIST(IDX)%NTYPE      = TYPEREAL
 +TFIELDLIST(IDX)%NDIMS      = 3
 +TFIELDLIST(IDX)%LTIMEDEP   = .FALSE.
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 +IDX = IDX+1
 +!
 +!END IF !LFILTERING
 +END IF !CPROGRAM==REAL .OR. LFICDF
 +!
 +!
 +WRITE(YMSG,'("number of used fields=",I4," out of ",I4)') IDX-1,MAXFIELDS
 +CALL PRINT_MSG(NVERB_INFO,'GEN','INI_FIELD_LIST',TRIM(YMSG))
 +!
 +#if 0
 +!
 +IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 +TFIELDLIST(IDX)%CMNHNAME   = ''
 +TFIELDLIST(IDX)%CSTDNAME   = ''
 +TFIELDLIST(IDX)%CLONGNAME  = ''
 +TFIELDLIST(IDX)%CUNITS     = ''
 +TFIELDLIST(IDX)%CDIR       = ''
 +TFIELDLIST(IDX)%CLBTYPE    = ''
 +TFIELDLIST(IDX)%CCOMMENT   = ''
 +TFIELDLIST(IDX)%NGRID      = 
 +TFIELDLIST(IDX)%NTYPE      = 
 +TFIELDLIST(IDX)%NDIMS      = 
 +TFIELDLIST(IDX)%LTIMEDEP   = 
 +ALLOCATE(TFIELDLIST(IDX)%TFIELD_xxxD(IMODEL))
 +IDX = IDX+1
 +#endif
 +!
 +CONTAINS
 +SUBROUTINE ERR_INI_FIELD_LIST()
 +  WRITE(YMSG,'( "IDX>MAXFIELDS (",I5,")" )') MAXFIELDS
 +  CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_FIELD_LIST',TRIM(YMSG))
 +END SUBROUTINE ERR_INI_FIELD_LIST
 +!
 +END SUBROUTINE INI_FIELD_LIST
 +!
 +SUBROUTINE FIND_FIELD_ID_FROM_MNHNAME(HMNHNAME,KID,KRESP,ONOWARNING)
 +!
 +CHARACTER(LEN=*),            INTENT(IN) :: HMNHNAME !Name of the field to find
 +INTEGER,                     INTENT(OUT):: KID      !Index of the field
 +INTEGER,                     INTENT(OUT):: KRESP    !Return-code 
 +LOGICAL, OPTIONAL,           INTENT(IN) :: ONOWARNING !If true, do not print warning
 +!
 +INTEGER :: IDX,JI
 +INTEGER :: ICOUNT
 +INTEGER,SAVE :: IFIRSTGUESS=1 !Store first field to test
 +CHARACTER(LEN=64) :: YMSG
 +LOGICAL :: GNOWARNING
 +!
 +!PW: TODO: possible optimizations:
 +! * Classement alphanumerique + index vers 1er champ commencant par caractere
 +! * Classement dans l'ordre des ecritures + stockage dernier hit + reboucler depuis le debut => DONE
 +!
 +IF (.NOT.LFIELDLIST_ISINIT) THEN
 +  CALL PRINT_MSG(NVERB_FATAL,'GEN','FIND_FIELD_ID_FROM_MNHNAME','TFIELDLIST not yet initialized')
 +END IF
 +!
 +KID = 0
 +KRESP = 0
 +ICOUNT = 0
 +IDX = IFIRSTGUESS
 +!
 +IF (PRESENT(ONOWARNING)) THEN
 +  GNOWARNING = ONOWARNING
 +ELSE
 +  GNOWARNING = .FALSE.
 +END IF
 +!
 +DO
 +  ICOUNT = ICOUNT + 1
 +  IF (TRIM(TFIELDLIST(IDX)%CMNHNAME)=='') THEN !Last entry
 +    IDX = 1
 +  ELSE IF (TRIM(TFIELDLIST(IDX)%CMNHNAME)==TRIM(HMNHNAME)) THEN
 +    KID = IDX
 +    EXIT
 +  ELSE 
 +    IDX = IDX + 1
 +    IF (IDX>MAXFIELDS) IDX = 1
 +  END IF
 +  IF (IDX == IFIRSTGUESS) EXIT !All entries have been tested
 +END DO
 +!
 +IF (KID==0) THEN
 +  !Field not found
 +  KRESP = -1
 +  IF (.NOT.GNOWARNING) THEN
 +    CALL PRINT_MSG(NVERB_WARNING,'GEN','FIND_FIELD_ID_FROM_MNHNAME','field '//TRIM(HMNHNAME)//' not known')
 +  ELSE
 +    CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIND_FIELD_ID_FROM_MNHNAME','field '//TRIM(HMNHNAME)//' not known (not unexpected)')
 +  END IF
 +ELSE
 +  IFIRSTGUESS = IDX+1
 +  IF (IFIRSTGUESS>MAXFIELDS) IFIRSTGUESS = 1
 +  WRITE(YMSG,'( "field ",A16," found after ",I4," attempt(s)" )') TRIM(HMNHNAME),ICOUNT
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIND_FIELD_ID_FROM_MNHNAME',TRIM(YMSG))
 +END IF
 +!
 +END SUBROUTINE FIND_FIELD_ID_FROM_MNHNAME
 +!
 +!
 +SUBROUTINE ALLOC_FIELD_SCALARS
 +!
 +USE MODD_DYN_n
 +USE MODD_PARAM_n
 +!
 +CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS','called')
 +!
 +IF (LFIELDLIST_ISINIT) THEN
 +  CALL PRINT_MSG(NVERB_FATAL,'GEN','ALLOC_FIELD_SCALARS','TFIELDLIST already initialized')
 +END IF
 +!
 +!
 +IF (.NOT.ASSOCIATED(NRIMX)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' NRIMX was not associated')
 +  ALLOCATE(NRIMX)
 +END IF
 +IF (.NOT.ASSOCIATED(NRIMY)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' NRIMY was not associated')
 +  ALLOCATE(NRIMY)
 +END IF
 +IF (.NOT.ASSOCIATED(LHORELAX_UVWTH)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' LHORELAX_UVWTH was not associated')
 +  ALLOCATE(LHORELAX_UVWTH)
 +END IF
 +IF (.NOT.ASSOCIATED(LHORELAX_TKE)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' LHORELAX_TKE was not associated')
 +  ALLOCATE(LHORELAX_TKE)
 +END IF
 +IF (.NOT.ASSOCIATED(CSURF)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' CSURF was not associated')
 +  ALLOCATE(CHARACTER(LEN=4) :: CSURF)
 +  CSURF = ''
 +END IF
 +!
 +END SUBROUTINE ALLOC_FIELD_SCALARS
 +!
 +!
 +SUBROUTINE INI_FIELD_SCALARS
 +!
 +USE MODD_DYN_n
 +USE MODD_FIELD_n
 +USE MODD_GRID_n
 +USE MODD_TIME_n
 +USE MODD_PARAM_n
 +!
 +INTEGER :: IID,IRESP
 +!
 +CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS','called')
 +!
 +IF (.NOT.LFIELDLIST_ISINIT) THEN
 +  CALL PRINT_MSG(NVERB_FATAL,'GEN','FIND_FIELD_ID_FROM_MNHNAME','TFIELDLIST not yet initialized')
 +END IF
 +!
 +!
 +IF (.NOT.ASSOCIATED(XZTOP)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XZTOP was not associated')
 +  ALLOCATE(XZTOP)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('ZTOP',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XZTOP
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(LSLEVE)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' LSLEVE was not associated')
 +  ALLOCATE(LSLEVE)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('SLEVE',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LSLEVE
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(XLEN1)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XLEN1 was not associated')
 +  ALLOCATE(XLEN1)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('LEN1',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XLEN1
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(XLEN2)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XLEN2 was not associated')
 +  ALLOCATE(XLEN2)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('LEN2',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XLEN2
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(TDTMOD)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTMOD was not associated')
 +  ALLOCATE(TDTMOD)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTMOD',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTMOD
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(TDTCUR)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTCUR was not associated')
 +  ALLOCATE(TDTCUR)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTCUR',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTCUR
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(TDTRAD_FULL)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTRAD_FULL was not associated')
 +  ALLOCATE(TDTRAD_FULL)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_FULL',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTRAD_FULL
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(TDTRAD_CLONLY)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTRAD_CLONLY was not associated')
 +  ALLOCATE(TDTRAD_CLONLY)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_CLLY',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTRAD_CLONLY
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(TDTDCONV)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTDCONV was not associated')
 +  ALLOCATE(TDTDCONV)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTDCONV',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTDCONV
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(CSURF)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' CSURF was not associated')
 +  ALLOCATE(CHARACTER(LEN=4) :: CSURF)
 +  CSURF = ''
 +END IF
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SURF',IID,IRESP)
 +TFIELDLIST(IID)%TFIELD_C0D(1)%DATA=>CSURF
 +!
 +IF (.NOT.ASSOCIATED(XDRYMASST)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XDRYMASST was not associated')
 +  ALLOCATE(XDRYMASST)
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DRYMASST',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XDRYMASST
 +END IF
 +!
 +IF (.NOT.ASSOCIATED(NRIMX)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' NRIMX was not associated')
 +  ALLOCATE(NRIMX)
 +END IF
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RIMX',IID,IRESP)
 +TFIELDLIST(IID)%TFIELD_N0D(1)%DATA=>NRIMX
 +IF (.NOT.ASSOCIATED(NRIMY)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' NRIMY was not associated')
 +  ALLOCATE(NRIMY)
 +END IF
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RIMY',IID,IRESP)
 +TFIELDLIST(IID)%TFIELD_N0D(1)%DATA=>NRIMY
 +!
 +IF (.NOT.ASSOCIATED(LHORELAX_UVWTH)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' LHORELAX_UVWTH was not associated')
 +  ALLOCATE(LHORELAX_UVWTH)
 +END IF
 +CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_UVWTH',IID,IRESP)
 +TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LHORELAX_UVWTH
 +!
 +IF (.NOT.ASSOCIATED(LHORELAX_TKE)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' LHORELAX_TKE was not associated')
 +  ALLOCATE(LHORELAX_TKE)
 +END IF
 +CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_TKE',IID,IRESP)
 +TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LHORELAX_TKE
 +!
 +END SUBROUTINE INI_FIELD_SCALARS
 +!
 +!
 +SUBROUTINE FIELDLIST_GOTO_MODEL(KFROM, KTO)
 +!
 +USE MODD_REF
 +!
 +USE MODD_ADV_n
 +USE MODD_CONF_n
 +USE MODD_DEEP_CONVECTION_n
 +USE MODD_DEF_EDDY_FLUX_n
 +USE MODD_DEF_EDDYUV_FLUX_n
 +USE MODD_DYN_n
 +USE MODD_ELEC_n
 +USE MODD_FIELD_n
 +USE MODD_GR_FIELD_n
 +USE MODD_GRID_n
 +USE MODD_HURR_FIELD_n
 +USE MODD_LIMA_PRECIP_SCAVENGING_n
 +USE MODD_LSFIELD_n
 +USE MODD_PARAM_n
 +USE MODD_PAST_FIELD_n
 +USE MODD_CH_PH_n
 +USE MODD_PRECIP_n
 +USE MODD_RADIATIONS_n
 +USE MODD_REF_n
 +USE MODD_TIME_n
 +USE MODD_TURB_n
 +!
 +INTEGER, INTENT(IN) :: KFROM, KTO
 +!
 +!LOGICAL,SAVE :: GFIRST_CALL=.TRUE.
 +INTEGER :: IID,IID2,IRESP
 +CHARACTER(LEN=64) :: YMSG
 +!
 +WRITE(YMSG,'( I4,"->",I4 )') KFROM,KTO
 +CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',TRIM(YMSG))
 +!
 +! IF (GFIRST_CALL) THEN
 +!   !This is necessary because the first time this subroutine is called
 +!   !the TFIELDLIST is not yet initialized.
 +!   !The use of this subroutine is not useful the first timebecause the
 +!   !data for the fields has not yet been allocated.
 +!   GFIRST_CALL = .FALSE.
 +!   RETURN
 +! END IF
 +!
 +IF (.NOT.LFIELDLIST_ISINIT) THEN
 +  CALL PRINT_MSG(NVERB_WARNING,'GEN','FIELDLIST_GOTO_MODEL','TFIELDLIST not yet initialized')
 +  RETURN
 +END IF
 +!
 +! Initialize some pointers
 +!
 +IF (KFROM == KTO) THEN
 +  IF (.NOT.ALLOCATED(XRHODREFZ) .AND. CPROGRAM/='NESPGD' .AND. CPROGRAM/='PGD') THEN
 +    CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XRHODREFZ not yet allocated')
 +  END IF
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RHOREFZ',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XRHODREFZ
 +  !
 +  IF (.NOT.ALLOCATED(XTHVREFZ) .AND. CPROGRAM/='NESPGD' .AND. CPROGRAM/='PGD') THEN
 +    CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XTHVREFZ not yet allocated')
 +  END IF
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('THVREFZ',IID,IRESP)
 +  TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XTHVREFZ
 +END IF
 +!
 +!
 +!
 +!
 +! Save current state for allocated arrays
 +!
 +!
 +!
 +!
 +!
 +! MODD_FIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('UT',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XUT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VT',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WT',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XWT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('THT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XTHT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('TKET', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XTKET
 +CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPABST
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RT',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X4D(KFROM)%DATA => XRT
 +!
 +IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RVT)
 +END IF
 +IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RCT)
 +END IF
 +IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RRT)
 +END IF
 +IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RIT)
 +END IF
 +IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RST',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RST)
 +END IF
 +IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RGT)
 +END IF
 +IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>XRT(:,:,:,CONF_MODEL(KFROM)%IDX_RHT)
 +END IF
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SUPSATMAX',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSUPSAT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NACT',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XNACT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSPRO',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSSPRO
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NPRO',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XNPRO
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SRCT',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSRCT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SIGS',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSIGS
 +!
 +IF (CPROGRAM == 'MESONH') THEN
 +  !
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('US_PRES',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRUS_PRES
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VS_PRES',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRVS_PRES
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('WS_PRES',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRWS_PRES
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('THS_CLD',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRTHS_CLD
 +  !
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RS_CLD',IID,IRESP); TFIELDLIST(IID)%TFIELD_X4D(KFROM)%DATA => XRRS_CLD
 +  !
 +  IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RVS_CLD',IID,IRESP)
 +    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRRS_CLD(:,:,:,CONF_MODEL(KFROM)%IDX_RVT)
 +  END IF
 +  IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RCS_CLD',IID,IRESP)
 +    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRRS_CLD(:,:,:,CONF_MODEL(KFROM)%IDX_RCT)
 +  END IF
 +  IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RRS_CLD',IID,IRESP)
 +    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRRS_CLD(:,:,:,CONF_MODEL(KFROM)%IDX_RRT)
 +  END IF
 +  IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RIS_CLD',IID,IRESP)
 +    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRRS_CLD(:,:,:,CONF_MODEL(KFROM)%IDX_RIT)
 +  END IF
 +  IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RSS_CLD',IID,IRESP)
 +    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRRS_CLD(:,:,:,CONF_MODEL(KFROM)%IDX_RST)
 +  END IF
 +  IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RGS_CLD',IID,IRESP)
 +    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRRS_CLD(:,:,:,CONF_MODEL(KFROM)%IDX_RGT)
 +  END IF
 +  IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RHS_CLD',IID,IRESP)
 +    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRRS_CLD(:,:,:,CONF_MODEL(KFROM)%IDX_RHT)
 +  END IF
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLDFR',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XCLDFR
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CIT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XCIT
 +  !
 +END IF
 +!
 +! MODD_PAST_FIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('UM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XUM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XWM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DUM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDUM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DVM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDVM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DWM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDWM
 +!
 +! MODD_LIMA_PRECIP_SCAVENGING_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPAP',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XINPAP
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPAP',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XACPAP
 +!
 +! MODD_ELEC_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EFIELDU',IID,IRESP);  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XEFIELDU
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EFIELDV',IID,IRESP);  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XEFIELDV
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EFIELDW',IID,IRESP);  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XEFIELDW
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IAGGS',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XNI_IAGGS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IDRYG',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XNI_IDRYG
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NI_SDRYG',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XNI_SDRYG
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INDUC_CG',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XIND_RATE
 +!
 +! MODD_CH_PH_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('PHC',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPHC
 +CALL FIND_FIELD_ID_FROM_MNHNAME('PHR',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPHR
 +!
 +! MODD_LSFIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSUM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLSUM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSVM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLSVM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSWM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLSWM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSTHM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLSTHM
 +IF(LUSERV) CALL FIND_FIELD_ID_FROM_MNHNAME('LSRVM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLSRVM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXUM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBXUM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXVM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBXVM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXWM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBXWM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYUM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBYUM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYVM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBYVM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYWM', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBYWM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXTHM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBXTHM
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYTHM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLBYTHM
 +!
 +! MODD_DYN_n variables
 +!
 +!***NONE***
 +!
 +! MODD_ADV_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('TKEMS',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRTKEMS
 +!
 +! MODD_GRID_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZS',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XZS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZSMT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XZSMT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('XHAT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA => XXHAT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('YHAT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA => XYHAT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZHAT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA => XZHAT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZTOP', IID,IRESP); TFIELDLIST(IID)%TFIELD_X0D(KFROM)%DATA => XZTOP
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DXHAT',IID,IRESP); TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA => XDXHAT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DYHAT',IID,IRESP); TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA => XDYHAT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ALT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XZZ
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DIRCOSXW',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XDIRCOSXW
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DIRCOSYW',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XDIRCOSYW
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DIRCOSZW',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XDIRCOSZW
 +CALL FIND_FIELD_ID_FROM_MNHNAME('COSSLOPE',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XCOSSLOPE
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SINSLOPE',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XSINSLOPE
 +CALL FIND_FIELD_ID_FROM_MNHNAME('MAP',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XMAP
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LAT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XLAT
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LON',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XLON
 +!
 +! MODD_TIME_n variables
 +!
 +!***NONE***
 +!
 +! MODD_PARAM_n variables
 +!
 +!***NONE***
 +!
 +! MODD_TURB_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('BL_DEPTH', IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XBL_DEPTH
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SBL_DEPTH',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XSBL_DEPTH
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WTHVMF',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XWTHVMF
 +!
 +! MODD_REF_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RHODREF',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRHODREF
 +CALL FIND_FIELD_ID_FROM_MNHNAME('THVREF', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XTHVREF
 +!
 +! MODD_RADIATIONS_n variables
 +!
 +IF (CPROGRAM=='MESONH') THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTHRAD',      IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDTHRAD
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('FLALWD',      IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XFLALWD
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DIRFLASWD',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDIRFLASWD
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('SCAFLASWD',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSCAFLASWD
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DIRSRFSWD',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDIRSRFSWD
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLEARCOL_TM1',IID,IRESP); TFIELDLIST(IID)%TFIELD_N2D(KFROM)%DATA => NCLEARCOL_TM1
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('ZENITH',      IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XZENITH
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('AZIM',        IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XAZIM
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DIR_ALB',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDIR_ALB
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('SCA_ALB',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XSCA_ALB
-   CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',        IID,IRESP); XEMIS         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
++  CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',        IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XEMIS
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TSRAD',       IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XTSRAD
 +END IF
 +!
 +! MODD_DEEP_CONVECTION_n variables
 +!
 +IF (TRIM(CPROGRAM) /= 'PGD' .AND. TRIM(CPROGRAM) /= 'NESPGD' .AND. TRIM(CPROGRAM) /= 'SPAWN') THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('COUNTCONV',  IID,IRESP); TFIELDLIST(IID)%TFIELD_N2D(KFROM)%DATA => NCOUNTCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTHCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDTHCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DRVCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDRVCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DRCCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDRCCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DRICONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDRICONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XPRCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XPACCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XPRSCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DSVCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X4D(KFROM)%DATA => XDSVCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRLFLXCONV', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPRLFLXCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRSFLXCONV', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPRSFLXCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UMFCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XUMFCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DMFCONV',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XDMFCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('MFCONV',     IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XMFCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CAPE',       IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XCAPE
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLTOPCONV',  IID,IRESP); TFIELDLIST(IID)%TFIELD_N2D(KFROM)%DATA => NCLTOPCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLBASCONV',  IID,IRESP); TFIELDLIST(IID)%TFIELD_N2D(KFROM)%DATA => NCLBASCONV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('IC_RATE',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XIC_RATE
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CG_RATE',    IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XCG_RATE
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('IC_TOTAL_NB',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XIC_TOTAL_NUMBER
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CG_TOTAL_NB',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XCG_TOTAL_NUMBER
 +END IF
 +!
 +! MODD_GR_FIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_ANIS', IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XSSO_ANISOTROPY
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_SLOPE',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XSSO_SLOPE
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_DIR',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XSSO_DIRECTION
 +CALL FIND_FIELD_ID_FROM_MNHNAME('AVG_ZS',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XAVG_ZS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SIL_ZS',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XSIL_ZS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('MAX_ZS',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XMAX_ZS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('MIN_ZS',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XMIN_ZS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_STDEV',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XSSO_STDEV
 +!
 +! MODD_PRECIP_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XINPRC
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XACPRC
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XINDEP
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XACDEP
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XINPRR
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR3D',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XINPRR3D
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EVAP3D', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XEVAP3D
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XACPRR
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XINPRS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XACPRS
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XINPRG
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XACPRG
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XINPRH
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XACPRH
 +!
 +! MODD_DEF_EDDY_FLUX_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VT_FLX',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA         => XVTH_FLUX_M
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WT_FLX',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA         => XWTH_FLUX_M
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RTHS_EDDY_FLUX',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRTHS_EDDY_FLUX
 +!
 +! MODD_DEF_EDDYUV_FLUX_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VU_FLX',IID,IRESP);        TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVU_FLUX_M
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RVS_EDDY_FLUX',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRVS_EDDY_FLUX
 +!
 +! MODD_HURR_FIELD_n variables
 +!
 +IF (CPROGRAM=='REAL') THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UT15',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XUTOT
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VT15',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVTOT
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TEMPTOT',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XTTOT
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRESTOT',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XPTOT
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('HUMTOT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XQTOT
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UT16',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XUENV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VT16',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVENV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TEMPENV',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XTENV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRESENV',IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XPENV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('HUMENV', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XQENV
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UT17',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XUBASIC
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VT17',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVBASIC
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TEMPBAS',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XTBASIC
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRESBAS',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPBASIC
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('HUMBAS', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XQBASIC
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VTDIS',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XVTDIS
 +END IF
 +!
 +!
 +!
 +!
 +! Current model is set to model KTO
 +!
 +!
 +!
 +!
 +IF( KFROM/=KTO) THEN
 +!
 +! MODD_FIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('UT',   IID,IRESP); XUT    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VT',   IID,IRESP); XVT    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WT',   IID,IRESP); XWT    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('THT',  IID,IRESP); XTHT   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('TKET', IID,IRESP); XTKET  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP); XPABST => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RT',   IID,IRESP); XRT    => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA
 +!
 +IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP)
 +  TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RVT)
 +END IF
 +IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID2,IRESP)
 +  TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RCT)
 +END IF
 +IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID2,IRESP)
 +  TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RRT)
 +END IF
 +IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID2,IRESP)
 +  TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RIT)
 +END IF
 +IF (CONF_MODEL(KTO)%IDX_RST>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID2,IRESP)
 +  TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RST)
 +END IF
 +IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID2,IRESP)
 +  TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RGT)
 +END IF
 +IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID2,IRESP)
 +  TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RHT)
 +END IF
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SUPSATMAX',IID,IRESP); XSUPSAT => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NACT',     IID,IRESP); XNACT   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSPRO',    IID,IRESP); XSSPRO  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NPRO',     IID,IRESP); XNPRO   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SRCT',     IID,IRESP); XSRCT   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SIGS',     IID,IRESP); XSIGS   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +IF (CPROGRAM == 'MESONH') THEN
 +  !
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('RS_CLD',IID,IRESP); XRRS_CLD => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA
 +  !
 +  IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RVS_CLD',IID2,IRESP)
 +    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RVT)
 +  END IF
 +  IF (CONF_MODEL(KTO)%IDX_RCT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RCS_CLD',IID2,IRESP)
 +    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RCT)
 +  END IF
 +  IF (CONF_MODEL(KTO)%IDX_RRT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RRS_CLD',IID2,IRESP)
 +    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RRT)
 +  END IF
 +  IF (CONF_MODEL(KTO)%IDX_RIT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RIS_CLD',IID2,IRESP)
 +    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RIT)
 +  END IF
 +  IF (CONF_MODEL(KTO)%IDX_RST>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RSS_CLD',IID2,IRESP)
 +    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RST)
 +  END IF
 +  IF (CONF_MODEL(KTO)%IDX_RGT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RGS_CLD',IID2,IRESP)
 +    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RGT)
 +  END IF
 +  IF (CONF_MODEL(KTO)%IDX_RHT>0) THEN
 +    CALL FIND_FIELD_ID_FROM_MNHNAME('RHS_CLD',IID2,IRESP)
 +    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RHT)
 +  END IF
 +  !
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('US_PRES',IID,IRESP); XRUS_PRES => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VS_PRES',IID,IRESP); XRVS_PRES => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('WS_PRES',IID,IRESP); XRWS_PRES => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('THS_CLD',IID,IRESP); XRTHS_CLD => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLDFR',  IID,IRESP); XCLDFR    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CIT',    IID,IRESP); XCIT      => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +END IF
 +!
 +! MODD_PAST_FIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('UM', IID,IRESP); XUM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VM', IID,IRESP); XVM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WM', IID,IRESP); XWM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DUM',IID,IRESP); XDUM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DVM',IID,IRESP); XDVM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DWM',IID,IRESP); XDWM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +! MODD_LIMA_PRECIP_SCAVENGING_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPAP',IID,IRESP); XINPAP => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPAP',IID,IRESP); XACPAP => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +!
 +! MODD_ELEC_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EFIELDU',IID,IRESP);  XEFIELDU  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EFIELDV',IID,IRESP);  XEFIELDV  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EFIELDW',IID,IRESP);  XEFIELDW  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IAGGS',IID,IRESP); XNI_IAGGS => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IDRYG',IID,IRESP); XNI_IDRYG => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('NI_SDRYG',IID,IRESP); XNI_SDRYG => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INDUC_CG',IID,IRESP); XIND_RATE => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +! MODD_CH_PH_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('PHC',IID,IRESP); XPHC => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('PHR',IID,IRESP); XPHR => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +! MODD_LSFIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSUM', IID,IRESP); XLSUM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSVM', IID,IRESP); XLSVM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSWM', IID,IRESP); XLSWM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LSTHM',IID,IRESP); XLSTHM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +IF(LUSERV) CALL FIND_FIELD_ID_FROM_MNHNAME('LSRVM',IID,IRESP); XLSRVM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXUM', IID,IRESP); XLBXUM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXVM', IID,IRESP); XLBXVM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXWM', IID,IRESP); XLBXWM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYUM', IID,IRESP); XLBYUM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYVM', IID,IRESP); XLBYVM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYWM', IID,IRESP); XLBYWM  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBXTHM',IID,IRESP); XLBXTHM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LBYTHM',IID,IRESP); XLBYTHM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DRYMASST',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)
 +END IF
 +XDRYMASST => TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA
 +!
 +! MODD_DYN_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RIMX',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA)
 +END IF
 +NRIMX => TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RIMY',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA)
 +END IF
 +NRIMY => TFIELDLIST(IID)%TFIELD_N0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_UVWTH',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)
 +END IF
 +LHORELAX_UVWTH => TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_TKE',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)
 +END IF
 +LHORELAX_TKE => TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA
 +!
 +! MODD_ADV_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('TKEMS',IID,IRESP); XRTKEMS=>TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +! MODD_GRID_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZS',   IID,IRESP); XZS    => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZSMT', IID,IRESP); XZSMT  => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('XHAT', IID,IRESP); XXHAT  => TFIELDLIST(IID)%TFIELD_X1D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('YHAT', IID,IRESP); XYHAT  => TFIELDLIST(IID)%TFIELD_X1D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZHAT', IID,IRESP); XZHAT  => TFIELDLIST(IID)%TFIELD_X1D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ZTOP', IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)
 +END IF
 +XZTOP  => TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DXHAT',IID,IRESP); XDXHAT => TFIELDLIST(IID)%TFIELD_X1D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DYHAT',IID,IRESP); XDYHAT => TFIELDLIST(IID)%TFIELD_X1D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SLEVE',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)
 +END IF
 +LSLEVE => TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LEN1',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)
 +END IF
 +XLEN1 => TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LEN2',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA)
 +END IF
 +XLEN2 => TFIELDLIST(IID)%TFIELD_X0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ALT',     IID,IRESP); XZZ       => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DIRCOSXW',IID,IRESP); XDIRCOSXW => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DIRCOSYW',IID,IRESP); XDIRCOSYW => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DIRCOSZW',IID,IRESP); XDIRCOSZW => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('COSSLOPE',IID,IRESP); XCOSSLOPE => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SINSLOPE',IID,IRESP); XSINSLOPE => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('MAP',  IID,IRESP); XMAP => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LAT',  IID,IRESP); XLAT => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('LON',  IID,IRESP); XLON => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +!
 +! MODD_TIME_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DTMOD',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)
 +END IF
 +TDTMOD => TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DTCUR',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)
 +END IF
 +TDTCUR => TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_FULL',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)
 +END IF
 +TDTRAD_FULL => TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_CLLY',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)
 +END IF
 +TDTRAD_CLONLY => TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('DTDCONV',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA)
 +END IF
 +TDTDCONV => TFIELDLIST(IID)%TFIELD_T0D(KTO)%DATA
 +!
 +! MODD_PARAM_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SURF',IID,IRESP)
 +IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_C0D(KTO)%DATA)) THEN
 +  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
 +                 'TFIELDLIST(IID)%TFIELD_C0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
 +  ALLOCATE(CHARACTER(LEN=4) :: TFIELDLIST(IID)%TFIELD_C0D(KTO)%DATA)
 +END IF
 +CSURF => TFIELDLIST(IID)%TFIELD_C0D(KTO)%DATA
 +!
 +! MODD_TURB_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('BL_DEPTH', IID,IRESP); XBL_DEPTH  => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SBL_DEPTH',IID,IRESP); XSBL_DEPTH => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WTHVMF',   IID,IRESP); XWTHVMF    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +! MODD_REF_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RHODREF',IID,IRESP); XRHODREF => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('THVREF', IID,IRESP); XTHVREF  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +! MODD_RADIATIONS_n variables
 +!
 +IF (CPROGRAM=='MESONH') THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTHRAD',      IID,IRESP); XDTHRAD       => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('FLALWD',      IID,IRESP); XFLALWD       => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DIRFLASWD',   IID,IRESP); XDIRFLASWD    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('SCAFLASWD',   IID,IRESP); XSCAFLASWD    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DIRSRFSWD',   IID,IRESP); XDIRSRFSWD    => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLEARCOL_TM1',IID,IRESP); NCLEARCOL_TM1 => TFIELDLIST(IID)%TFIELD_N2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('ZENITH',      IID,IRESP); XZENITH       => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('AZIM',        IID,IRESP); XAZIM         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DIR_ALB',     IID,IRESP); XDIR_ALB      => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('SCA_ALB',     IID,IRESP); XSCA_ALB      => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
++  CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',        IID,IRESP); XEMIS         => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TSRAD',       IID,IRESP); XTSRAD        => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +END IF
 +!
 +! MODD_DEEP_CONVECTION_n variables
 +!
 +IF (TRIM(CPROGRAM) /= 'PGD' .AND. TRIM(CPROGRAM) /= 'NESPGD' .AND. TRIM(CPROGRAM) /= 'SPAWN') THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('COUNTCONV',  IID,IRESP); NCOUNTCONV       => TFIELDLIST(IID)%TFIELD_N2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DTHCONV',    IID,IRESP); XDTHCONV         => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DRVCONV',    IID,IRESP); XDRVCONV         => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DRCCONV',    IID,IRESP); XDRCCONV         => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DRICONV',    IID,IRESP); XDRICONV         => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',     IID,IRESP); XPRCONV          => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',    IID,IRESP); XPACCONV         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',    IID,IRESP); XPRSCONV         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DSVCONV',    IID,IRESP); XDSVCONV         => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRLFLXCONV', IID,IRESP); XPRLFLXCONV      => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRSFLXCONV', IID,IRESP); XPRSFLXCONV      => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UMFCONV',    IID,IRESP); XUMFCONV         => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('DMFCONV',    IID,IRESP); XDMFCONV         => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('MFCONV',     IID,IRESP); XMFCONV          => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CAPE',       IID,IRESP); XCAPE            => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLTOPCONV',  IID,IRESP); NCLTOPCONV       => TFIELDLIST(IID)%TFIELD_N2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CLBASCONV',  IID,IRESP); NCLBASCONV       => TFIELDLIST(IID)%TFIELD_N2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('IC_RATE',    IID,IRESP); XIC_RATE         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CG_RATE',    IID,IRESP); XCG_RATE         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('IC_TOTAL_NB',IID,IRESP); XIC_TOTAL_NUMBER => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('CG_TOTAL_NB',IID,IRESP); XCG_TOTAL_NUMBER => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +END IF
 +!
 +! MODD_GR_FIELD_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_ANIS', IID,IRESP); XSSO_ANISOTROPY => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_SLOPE',IID,IRESP); XSSO_SLOPE      => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_DIR',  IID,IRESP); XSSO_DIRECTION  => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('AVG_ZS',   IID,IRESP); XAVG_ZS         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SIL_ZS',   IID,IRESP); XSIL_ZS         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('MAX_ZS',   IID,IRESP); XMAX_ZS         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('MIN_ZS',   IID,IRESP); XMIN_ZS         => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('SSO_STDEV',IID,IRESP); XSSO_STDEV      => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +!
 +! MODD_PRECIP_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',  IID,IRESP); XINPRC   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',  IID,IRESP); XACPRC   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',  IID,IRESP); XINDEP   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',  IID,IRESP); XACDEP   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',  IID,IRESP); XINPRR   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR3D',IID,IRESP); XINPRR3D => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('EVAP3D', IID,IRESP); XEVAP3D  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',  IID,IRESP); XACPRR   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',  IID,IRESP); XINPRS   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',  IID,IRESP); XACPRS   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',  IID,IRESP); XINPRG   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',  IID,IRESP); XACPRG   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',  IID,IRESP); XINPRH   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',  IID,IRESP); XACPRH   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +!
 +!
 +! MODD_DEF_EDDY_FLUX_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VT_FLX',        IID,IRESP); XVTH_FLUX_M     => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('WT_FLX',        IID,IRESP); XWTH_FLUX_M     => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RTHS_EDDY_FLUX',IID,IRESP); XRTHS_EDDY_FLUX => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +! MODD_DEF_EDDYUV_FLUX_n variables
 +!
 +CALL FIND_FIELD_ID_FROM_MNHNAME('VU_FLX',       IID,IRESP); XVU_FLUX_M     => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +CALL FIND_FIELD_ID_FROM_MNHNAME('RVS_EDDY_FLUX',IID,IRESP); XRVS_EDDY_FLUX => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +!
 +!
 +! MODD_HURR_FIELD_n variables
 +!
 +IF (CPROGRAM=='REAL') THEN
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UT15',   IID,IRESP); XUTOT   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VT15',   IID,IRESP); XVTOT   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TEMPTOT',IID,IRESP); XTTOT   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRESTOT',IID,IRESP); XPTOT   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('HUMTOT', IID,IRESP); XQTOT   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UT16',   IID,IRESP); XUENV   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VT16',   IID,IRESP); XVENV   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TEMPENV',IID,IRESP); XTENV   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRESENV',IID,IRESP); XPENV   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('HUMENV', IID,IRESP); XQENV   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('UT17',   IID,IRESP); XUBASIC => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VT17',   IID,IRESP); XVBASIC => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('TEMPBAS',IID,IRESP); XTBASIC => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('PRESBAS',IID,IRESP); XPBASIC => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('HUMBAS', IID,IRESP); XQBASIC => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +  CALL FIND_FIELD_ID_FROM_MNHNAME('VTDIS',  IID,IRESP); XVTDIS  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
 +END IF
 +!
 +END IF !KFROM/=KTO
 +!
 +END SUBROUTINE FIELDLIST_GOTO_MODEL
 +!
 +END MODULE MODE_FIELD
@@@ -218,8 -219,9 +218,9 @@@ END MODULE MODI_DEFAULT_DESFM_
  !!                    10/2016 (C.Lac) Add droplet deposition
  !!                   10/2016  (R.Honnert and S.Riette) : Improvement of EDKF and adaptation to the grey zone
  !!                   10/2016  (F Brosse) add prod/loss terms computation for chemistry
 -!!                   07/2017  (V. Masson) adds time step for output files writing.
  !!                   09/2017 Q.Rodier add LTEND_UV_FRC
+ !!                   02/2018 Q.Libois ECRAD
 +!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !-------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
  !!      2014 (Faivre)
  !!      2016  (Leriche) Add MODD_CH_ICE Suppress MODD_CH_DEP_n
  !!      Modification    01/2016  (JP Pinty) Add LIMA
- !!  10/2016     (F Brosse) Add prod/loss terms computation for chemistry  
+ !!  10/2016     (F Brosse) Add prod/loss terms computation for chemistry 
  !!                      07/2017 (M.Leriche) Add DIAG chimical surface fluxes
+ !                   02/2018 Q.Libois ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !-----------------------------------------------------------------
  MODULE MODI_GOTO_MODEL_WRAPPER
  
@@@ -104,7 -109,7 +104,8 @@@ END MODULE MODI_GROUND_PARAM_
  !!      (M.Leriche)            24/03/16 remove flag for chemical surface fluxes
  !!      (M.Leriche)           01/07/2017 Add DIAG chimical surface fluxes
  !!  01/2018      (G.Delautier) SURFEX 8.1
+ !!                   02/2018 Q.Libois ECRAD
 +!!     (P.Wautelet) 28/03/2018 replace TEMPORAL_DIST by DATETIME_DISTANCE
  !-------------------------------------------------------------------------------
  !
  !*       0.     DECLARATIONS
@@@ -273,7 -275,7 +273,8 @@@ END MODULE MODI_INI_MODEL_
  !!                   M.Leriche 10/02/17 prevent negative values in LBX(Y)SVS 
  !!                   M.Leriche 01/07/2017 Add DIAG chimical surface fluxes
  !!                   09/2017 Q.Rodier add LTEND_UV_FRC
+ !!                   02/2018 Q.Libois ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !---------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
@@@ -354,8 -353,10 +355,9 @@@ USE MODD_LBC_
  USE MODD_PASPOL_n
  !
  !
 -USE MODI_GATHER_ll
  USE MODI_INI_BUDGET
  USE MODI_INI_SW_SETUP
+ USE MODI_INI_LW_SETUP
  USE MODI_SET_GRID
  USE MODI_METRICS
  USE MODI_UPDATE_METRICS
@@@ -1970,15 -1993,19 +1988,19 @@@ END I
  !
  !
  CALL INI_SW_SETUP (CRAD,NSWB_MNH,XSW_BANDS)
+ CALL INI_LW_SETUP (CRAD,NLWB_MNH,XLW_BANDS)
  !
  !
 -!       18.1.1 Special initialisation for CO2 content
 +!       17.1.1 Special initialisation for CO2 content
  !              CO2 (molar mass=44) horizontally and vertically homogeneous at 360 ppm
  !
  XCCO2 = 360.0E-06 * 44.0E-03 / XMD
+ #ifdef MNH_ECRAD
+ RCCO2 = 360.0E-06 * 44.0E-03 / XMD
+ #endif
  !
  !
 -!*      18.2   Externalized surface fields
 +!*      17.2   Externalized surface fields
  !              ---------------------------
  !
  ALLOCATE(ZCO2(IIU,IJU))
@@@ -2063,8 -2090,8 +2085,8 @@@ DEALLOCATE(ZCO2
  !
  !* in a RESTART case, reads surface radiative quantities in the MESONH file
  !
- IF (CRAD   == 'ECMW' .AND. CGETRAD=='READ') THEN
+ IF ((CRAD  == 'ECMW' .OR. CRAD  == 'ECRA') .AND. CGETRAD=='READ') THEN
 -  CALL INI_SURF_RAD(HINIFILE, CLUOUT, XDIR_ALB, XSCA_ALB, XEMIS, XTSRAD)
 +  CALL INI_SURF_RAD(TPINIFILE, XDIR_ALB, XSCA_ALB, XEMIS, XTSRAD)
  END IF
  !
  !
@@@ -2095,16 -2122,45 +2117,45 @@@ IF (CRAD   == 'ECMW') THE
        ZBARE(:,:) = 0.
      END IF
  !
 -    CALL INI_RADIATIONS_ECMWF (HINIFILE,HLUOUT,                                           &
 -                               XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP,          &
 -                               CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM,          &
 -                               XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND              )
 +    CALL INI_RADIATIONS_ECMWF (TPINIFILE%CNAME,HLUOUT,                                 &
 +                               XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP,       &
-                                CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB,CAER,NAER,NSTATM,       &
++                               CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM,   &
 +                               XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND )
  !
      DEALLOCATE(ZSEA,ZTOWN,ZBARE)
      ALLOCATE (XAER_CLIM(SIZE(XAER,1),SIZE(XAER,2),SIZE(XAER,3),SIZE(XAER,4)))
      XAER_CLIM(:,:,:,:) =XAER(:,:,:,:)
  !
    END IF
 -    CALL INI_RADIATIONS_ECRAD (HINIFILE,HLUOUT,                                           &
 -                               XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP,          &
 -                               CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM,          &
 -                               XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND              )
+ ELSE IF (CRAD   == 'ECRA') THEN
+ #ifdef MNH_ECRAD
+ !* get cover mask for aerosols
+ !
+   IF (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG  ') THEN
+     ALLOCATE(ZSEA(IIU,IJU))
+     ALLOCATE(ZTOWN(IIU,IJU))
+     ALLOCATE(ZBARE(IIU,IJU))
+     IF (CSURF=='EXTE') THEN
+       CALL GOTO_SURFEX(KMI)
+       CALL MNHGET_SURF_PARAM_n(PSEA=ZSEA,PTOWN=ZTOWN,PBARE=ZBARE)
+     ELSE
+       ZSEA (:,:) = 1.
+       ZTOWN(:,:) = 0.
+       ZBARE(:,:) = 0.
+     END IF
+ !   
++    CALL INI_RADIATIONS_ECRAD (TPINIFILE%CNAME,HLUOUT,                                 &
++                               XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP,       &
++                               CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM,   &
++                               XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND )
+     DEALLOCATE(ZSEA,ZTOWN,ZBARE)
+     ALLOCATE (XAER_CLIM(SIZE(XAER,1),SIZE(XAER,2),SIZE(XAER,3),SIZE(XAER,4)))
+     XAER_CLIM(:,:,:,:) = XAER(:,:,:,:)
+ !
+   END IF
+ #endif
  ELSE
    ALLOCATE (XOZON(0,0,0))
    ALLOCATE (XAER(0,0,0,0))
Simple merge
  !
  INTERFACE
  !
 -    SUBROUTINE INI_SURF_RAD(HINIFILE, HLUOUT, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD)
 +    SUBROUTINE INI_SURF_RAD(TPINIFILE, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD)
  !
 +USE MODD_IO_ll, ONLY : TFILEDATA
  !
 -CHARACTER (LEN=*),      INTENT(IN)  :: HINIFILE  ! Name of the initial file
 -CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
 +TYPE(TFILEDATA),        INTENT(IN)  :: TPINIFILE ! Initial file
  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB  ! Direct albedo
  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSCA_ALB  ! Diffuse albedo
- REAL, DIMENSION(:,:),   INTENT(OUT) :: PEMIS     ! emissivity
+ REAL, DIMENSION(:,:,:),   INTENT(OUT) :: PEMIS     ! emissivity
  REAL, DIMENSION(:,:),   INTENT(OUT) :: PTSRAD    ! radiative surface temperature
  !
  END SUBROUTINE INI_SURF_RAD
@@@ -56,7 -61,7 +56,8 @@@ END MODULE MODI_INI_SURF_RA
  !!    MODIFICATIONS
  !!    -------------
  !!      Original    03/03/03
+ !!                   02/2018 Q.Libois ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !-------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
@@@ -70,10 -73,11 +71,10 @@@ IMPLICIT NON
  !
  !*       0.1   Declarations of dummy arguments :
  !
 -CHARACTER (LEN=*),      INTENT(IN)  :: HINIFILE  ! Name of the initial file
 -CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
 +TYPE(TFILEDATA),        INTENT(IN)  :: TPINIFILE ! Initial file
  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB  ! Direct albedo
  REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSCA_ALB  ! Diffuse albedo
- REAL, DIMENSION(:,:),   INTENT(OUT) :: PEMIS     ! emissivity
+ REAL, DIMENSION(:,:,:),   INTENT(OUT) :: PEMIS     ! emissivity
  REAL, DIMENSION(:,:),   INTENT(OUT) :: PTSRAD    ! radiative surface temperature
  !
  !*       0.2   declarations of local variables
@@@ -64,7 -70,7 +65,8 @@@ END MODULE MODI_INIT_GROUND_PARAM_
  !!      Nov.  2010  (J.Escobar) PGI BUG , add SIZE(CSV) to interface
  !!  06/2016     (G.Delautier) phasage surfex 8
  !!  01/2018      (G.Delautier) SURFEX 8.1
+ !!                   02/2018 Q.Libois ECRAD
 +!!  03/2018     (P.Wautelet)   replace ADD_FORECAST_TO_DATE_SURF by DATETIME_CORRECTDATE
  !-------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
@@@ -123,11 -130,11 +126,11 @@@ REAL, DIMENSION(:),  ALLOCATABLE :: ZEM
  REAL, DIMENSION(:),    ALLOCATABLE :: ZTSRAD    ! radiative temperature
  REAL, DIMENSION(:),    ALLOCATABLE :: ZTSURF
  !
 -TYPE(DATE) :: TDATE_END
 +TYPE(DATE_SURF) :: TDATE_END
  !
  REAL :: ZDURATION
- !
  INTEGER :: ISWB  ! number of SW bands
+ INTEGER :: ILWB  ! number of LW bands
  INTEGER :: IIU   ! 1st array size
  INTEGER :: IJU   ! 2nd array size
  INTEGER :: IIB   ! X array physical boundary
@@@ -57,10 -61,12 +57,12 @@@ TYPE RADIATIONS_
    INTEGER :: NFLUX   ! number of top and ground fluxes in the output
    INTEGER :: NRAD    ! number of satellite radiances to synthesize
    INTEGER :: NAER    ! number od AERosol classes
-   INTEGER :: NSWB    ! number of SW bands
+   INTEGER :: NSWB_OLD    ! number of SW bands in ECMWF original code (usually 6)
+   INTEGER :: NSWB_MNH! number of SW bands practically used (14 if ECRAD, NSWB if original code) 
+   INTEGER :: NLWB_MNH! number of LW bands practically used (16 if RRTM) 
    INTEGER :: NSTATM  ! index od the STAndard ATMosphere level just above
                                 ! the model top
 -  INTEGER, DIMENSION(:,:), POINTER  :: NCLEARCOL_TM1=>NULL() ! trace of cloud/clear columns at
 +!  INTEGER, DIMENSION(:,:), POINTER  :: NCLEARCOL_TM1=>NULL() ! trace of cloud/clear columns at
                                                               ! the previous radiation time step
  !  (to be replaced by a logical array when fmread-writ could treat this kind of data)
    REAL    :: XCCO2   ! CO2 mixing ratio
    REAL, DIMENSION(:,:),   POINTER :: XSRFLWD=>NULL()    ! downward surface LW radiations
    REAL, DIMENSION(:,:),   POINTER :: XSCASRFSWD=>NULL() ! downward surface scaterred SW radiations
  !
 -  REAL, DIMENSION(:,:),   POINTER :: XFLALWD=>NULL()    ! downward LW radiations on flat surface
 +!  REAL, DIMENSION(:,:),   POINTER :: XFLALWD=>NULL()    ! downward LW radiations on flat surface
    REAL, DIMENSION(:,:),   POINTER :: XFLASWD=>NULL()    ! downward SW radiations on flat surface
- !
-   INTEGER                                   :: NSWB_MNH   ! number of SW spectral bands
    REAL, DIMENSION(:),     POINTER :: XSW_BANDS=>NULL()  ! value of the wavelentgh
  !                                                       ! in the middle of each SW spectral band
+   REAL, DIMENSION(:),     POINTER :: XLW_BANDS=>NULL()  ! value of the wavelentgh
+ !                                                       ! in the middle of each LW spectral band
  !
 -  REAL, DIMENSION(:,:,:), POINTER :: XDIRFLASWD=>NULL() ! downward surface direct    SW radiations
 +!  REAL, DIMENSION(:,:,:), POINTER :: XDIRFLASWD=>NULL() ! downward surface direct    SW radiations
  !                                                       ! BEFORE slope and shadows effects
  !                                                       ! for each spectral band
 -  REAL, DIMENSION(:,:,:), POINTER :: XSCAFLASWD=>NULL() ! downward surface diffuse   SW radiations
 +!  REAL, DIMENSION(:,:,:), POINTER :: XSCAFLASWD=>NULL() ! downward surface diffuse   SW radiations
  !                                                       ! BEFORE slope and shadows effects
  !                                                       ! for each spectral band
 -  REAL, DIMENSION(:,:,:), POINTER :: XDIRSRFSWD=>NULL() ! downward surface direct    SW radiations
 +!  REAL, DIMENSION(:,:,:), POINTER :: XDIRSRFSWD=>NULL() ! downward surface direct    SW radiations
  !                                                       ! for each spectral band
  !
 -  REAL, DIMENSION(:,:,:),       POINTER :: XDIR_ALB=>NULL()   ! direct albedo for each spectral band
 -  REAL, DIMENSION(:,:,:),       POINTER :: XSCA_ALB=>NULL()   ! scattered albedo for each spectral band
 -  REAL, DIMENSION(:,:,:),       POINTER :: XEMIS=>NULL()      ! emissivity
 -  REAL, DIMENSION(:,:),         POINTER :: XTSRAD=>NULL()      ! surface temperature
 +!  REAL, DIMENSION(:,:,:),       POINTER :: XDIR_ALB=>NULL()   ! direct albedo for each spectral band
 +!  REAL, DIMENSION(:,:,:),       POINTER :: XSCA_ALB=>NULL()   ! scattered albedo for each spectral band
- !  REAL, DIMENSION(:,:),         POINTER :: XEMIS=>NULL()      ! emissivity
++!  REAL, DIMENSION(:,:,:),       POINTER :: XEMIS=>NULL()      ! emissivity
 +!  REAL, DIMENSION(:,:),         POINTER :: XTSRAD=>NULL()      ! surface temperature
    REAL, DIMENSION(:,:),         POINTER :: XSEA=>NULL()       ! sea fraction
  !
 -  REAL, DIMENSION(:,:),         POINTER :: XZENITH=>NULL()    ! zenithal angle  (radian from the vertical)
 -  REAL, DIMENSION(:,:),         POINTER :: XAZIM=>NULL()      ! azimuthal angle (radian from N, clockwise)
 +!  REAL, DIMENSION(:,:),         POINTER :: XZENITH=>NULL()    ! zenithal angle  (radian from the vertical)
 +!  REAL, DIMENSION(:,:),         POINTER :: XAZIM=>NULL()      ! azimuthal angle (radian from N, clockwise)
    REAL, DIMENSION(:,:),         POINTER :: XALBUV=>NULL()     ! UV albedo
    REAL, DIMENSION(:,:,:),       POINTER :: XSWU    !SW_UP
    REAL, DIMENSION(:,:,:),       POINTER :: XSWD    !SW_DOWN 
@@@ -183,22 -193,23 +189,23 @@@ RADIATIONS_MODEL(KFROM)%XOZON=>XOZO
  RADIATIONS_MODEL(KFROM)%XAER=>XAER
  RADIATIONS_MODEL(KFROM)%XDST_WL=>XDST_WL
  RADIATIONS_MODEL(KFROM)%XAER_CLIM=>XAER_CLIM
 -RADIATIONS_MODEL(KFROM)%XDTHRAD=>XDTHRAD
 +!RADIATIONS_MODEL(KFROM)%XDTHRAD=>XDTHRAD !Done in FIELDLIST_GOTO_MODEL
  RADIATIONS_MODEL(KFROM)%XSRFLWD=>XSRFLWD
  RADIATIONS_MODEL(KFROM)%XSCASRFSWD=>XSCASRFSWD
 -RADIATIONS_MODEL(KFROM)%XFLALWD=>XFLALWD
 +!RADIATIONS_MODEL(KFROM)%XFLALWD=>XFLALWD !Done in FIELDLIST_GOTO_MODEL
  RADIATIONS_MODEL(KFROM)%XFLASWD=>XFLASWD
  RADIATIONS_MODEL(KFROM)%XSW_BANDS=>XSW_BANDS
 -RADIATIONS_MODEL(KFROM)%XDIRFLASWD=>XDIRFLASWD
 -RADIATIONS_MODEL(KFROM)%XSCAFLASWD=>XSCAFLASWD
 -RADIATIONS_MODEL(KFROM)%XDIRSRFSWD=>XDIRSRFSWD
 -RADIATIONS_MODEL(KFROM)%XDIR_ALB=>XDIR_ALB
 -RADIATIONS_MODEL(KFROM)%XSCA_ALB=>XSCA_ALB
 -RADIATIONS_MODEL(KFROM)%XEMIS=>XEMIS
 -RADIATIONS_MODEL(KFROM)%XTSRAD=>XTSRAD
+ RADIATIONS_MODEL(KFROM)%XLW_BANDS=>XLW_BANDS
 +!RADIATIONS_MODEL(KFROM)%XDIRFLASWD=>XDIRFLASWD !Done in FIELDLIST_GOTO_MODEL
 +!RADIATIONS_MODEL(KFROM)%XSCAFLASWD=>XSCAFLASWD !Done in FIELDLIST_GOTO_MODEL
 +!RADIATIONS_MODEL(KFROM)%XDIRSRFSWD=>XDIRSRFSWD !Done in FIELDLIST_GOTO_MODEL
 +!RADIATIONS_MODEL(KFROM)%XDIR_ALB=>XDIR_ALB !Done in FIELDLIST_GOTO_MODEL
 +!RADIATIONS_MODEL(KFROM)%XSCA_ALB=>XSCA_ALB !Done in FIELDLIST_GOTO_MODEL
 +!RADIATIONS_MODEL(KFROM)%XEMIS=>XEMIS !Done in FIELDLIST_GOTO_MODEL
 +!RADIATIONS_MODEL(KFROM)%XTSRAD=>XTSRAD !Done in FIELDLIST_GOTO_MODEL
  RADIATIONS_MODEL(KFROM)%XSEA=>XSEA
 -RADIATIONS_MODEL(KFROM)%XZENITH=>XZENITH
 -RADIATIONS_MODEL(KFROM)%XAZIM=>XAZIM
 +!RADIATIONS_MODEL(KFROM)%XZENITH=>XZENITH !Done in FIELDLIST_GOTO_MODEL
 +!RADIATIONS_MODEL(KFROM)%XAZIM=>XAZIM !Done in FIELDLIST_GOTO_MODEL
  RADIATIONS_MODEL(KFROM)%XALBUV=>XALBUV
  RADIATIONS_MODEL(KFROM)%XSWU=>XSWU
  RADIATIONS_MODEL(KFROM)%XSWD=>XSWD
@@@ -214,9 -225,11 +221,11 @@@ NFLEV=>RADIATIONS_MODEL(KTO)%NFLE
  NFLUX=>RADIATIONS_MODEL(KTO)%NFLUX
  NRAD=>RADIATIONS_MODEL(KTO)%NRAD
  NAER=>RADIATIONS_MODEL(KTO)%NAER
- NSWB=>RADIATIONS_MODEL(KTO)%NSWB
+ NSWB_OLD=>RADIATIONS_MODEL(KTO)%NSWB_OLD
+ NSWB_MNH=>RADIATIONS_MODEL(KTO)%NSWB_MNH
+ NLWB_MNH=>RADIATIONS_MODEL(KTO)%NLWB_MNH
  NSTATM=>RADIATIONS_MODEL(KTO)%NSTATM
 -NCLEARCOL_TM1=>RADIATIONS_MODEL(KTO)%NCLEARCOL_TM1
 +!NCLEARCOL_TM1=>RADIATIONS_MODEL(KTO)%NCLEARCOL_TM1 !Done in FIELDLIST_GOTO_MODEL
  XCCO2=>RADIATIONS_MODEL(KTO)%XCCO2
  XSINDEL=>RADIATIONS_MODEL(KTO)%XSINDEL
  XCOSDEL=>RADIATIONS_MODEL(KTO)%XCOSDEL
@@@ -231,23 -244,23 +240,23 @@@ XOZON=>RADIATIONS_MODEL(KTO)%XOZO
  XAER=>RADIATIONS_MODEL(KTO)%XAER
  XDST_WL=>RADIATIONS_MODEL(KTO)%XDST_WL
  XAER_CLIM=>RADIATIONS_MODEL(KTO)%XAER_CLIM
 -XDTHRAD=>RADIATIONS_MODEL(KTO)%XDTHRAD
 +!XDTHRAD=>RADIATIONS_MODEL(KTO)%XDTHRAD !Done in FIELDLIST_GOTO_MODEL
  XSRFLWD=>RADIATIONS_MODEL(KTO)%XSRFLWD
  XSCASRFSWD=>RADIATIONS_MODEL(KTO)%XSCASRFSWD
 -XFLALWD=>RADIATIONS_MODEL(KTO)%XFLALWD
 +!XFLALWD=>RADIATIONS_MODEL(KTO)%XFLALWD !Done in FIELDLIST_GOTO_MODEL
  XFLASWD=>RADIATIONS_MODEL(KTO)%XFLASWD
- NSWB_MNH=>RADIATIONS_MODEL(KTO)%NSWB_MNH
  XSW_BANDS=>RADIATIONS_MODEL(KTO)%XSW_BANDS
 -XDIRFLASWD=>RADIATIONS_MODEL(KTO)%XDIRFLASWD
 -XSCAFLASWD=>RADIATIONS_MODEL(KTO)%XSCAFLASWD
 -XDIRSRFSWD=>RADIATIONS_MODEL(KTO)%XDIRSRFSWD
 -XDIR_ALB=>RADIATIONS_MODEL(KTO)%XDIR_ALB
 -XSCA_ALB=>RADIATIONS_MODEL(KTO)%XSCA_ALB
 -XEMIS=>RADIATIONS_MODEL(KTO)%XEMIS
 -XTSRAD=>RADIATIONS_MODEL(KTO)%XTSRAD
+ XLW_BANDS=>RADIATIONS_MODEL(KTO)%XLW_BANDS
 +!XDIRFLASWD=>RADIATIONS_MODEL(KTO)%XDIRFLASWD !Done in FIELDLIST_GOTO_MODEL
 +!XSCAFLASWD=>RADIATIONS_MODEL(KTO)%XSCAFLASWD !Done in FIELDLIST_GOTO_MODEL
 +!XDIRSRFSWD=>RADIATIONS_MODEL(KTO)%XDIRSRFSWD !Done in FIELDLIST_GOTO_MODEL
 +!XDIR_ALB=>RADIATIONS_MODEL(KTO)%XDIR_ALB !Done in FIELDLIST_GOTO_MODEL
 +!XSCA_ALB=>RADIATIONS_MODEL(KTO)%XSCA_ALB !Done in FIELDLIST_GOTO_MODEL
 +!XEMIS=>RADIATIONS_MODEL(KTO)%XEMIS !Done in FIELDLIST_GOTO_MODEL
 +!XTSRAD=>RADIATIONS_MODEL(KTO)%XTSRAD !Done in FIELDLIST_GOTO_MODEL
  XSEA=>RADIATIONS_MODEL(KTO)%XSEA
 -XZENITH=>RADIATIONS_MODEL(KTO)%XZENITH
 -XAZIM=>RADIATIONS_MODEL(KTO)%XAZIM
 +!XZENITH=>RADIATIONS_MODEL(KTO)%XZENITH !Done in FIELDLIST_GOTO_MODEL
 +!XAZIM=>RADIATIONS_MODEL(KTO)%XAZIM !Done in FIELDLIST_GOTO_MODEL
  XALBUV=>RADIATIONS_MODEL(KTO)%XALBUV
  XSWU=>RADIATIONS_MODEL(KTO)%XSWU
  XSWD=>RADIATIONS_MODEL(KTO)%XSWD
@@@ -229,8 -229,7 +229,9 @@@ END MODULE MODI_PHYS_PARAM_
  !!      M. Leriche 02/2017 Avoid negative fluxes if sv=0 outside the physics domain
  !!      C.Lac  10/2017 : ch_monitor and aer_monitor extracted from phys_param
  !!                       to be called directly by modeln as the last process 
+ !!                   02/2018 Q.Libois ECRAD
 +!!     28/03/2018 P. Wautelet: replace TEMPORAL_DIST by DATETIME_DISTANCE
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !!-------------------------------------------------------------------------------
  !
  !*       0.     DECLARATIONS
@@@ -589,8 -589,12 +591,8 @@@ IF (CRAD /='NONE') THE
  !
  !  test to see if the partial radiations for cloudy must be called
  !
-   IF (CRAD =='ECMW') THEN
+   IF (CRAD =='ECMW' .OR. CRAD =='ECRA') THEN
 -    CALL TEMPORAL_DIST(TDTCUR%TDATE%YEAR,TDTCUR%TDATE%MONTH,               &
 -                       TDTCUR%TDATE%DAY, TDTCUR%TIME,                      &
 -                       TDTRAD_CLONLY%TDATE%YEAR,TDTRAD_CLONLY%TDATE%MONTH, &
 -                       TDTRAD_CLONLY%TDATE%DAY, TDTRAD_CLONLY%TIME,        &
 -                       ZTEMP_DIST)
 +    CALL DATETIME_DISTANCE(TDTRAD_CLONLY,TDTCUR,ZTEMP_DIST)
      IF( MOD(NINT(ZTEMP_DIST/XTSTEP),NINT(XDTRAD_CLONLY/XTSTEP))==0 ) THEN
        TDTRAD_CLONLY = TDTCUR
        GRAD = .TRUE.
@@@ -720,11 -728,11 +722,11 @@@ CALL SUNPOS_n   ( XZENITH, ZCOSZEN, ZSI
        XLWD(:,:,:)=0.0
        XDTHRADSW(:,:,:)=0.0
        XDTHRADLW(:,:,:)=0.0
 -      CALL RADIATIONS   ( OCLOSE_OUT, HFMFILE, CLUOUT,                             &
 +      CALL RADIATIONS   ( OCLOSE_OUT, TPFILE,                                       &
                 LCLEAR_SKY,OCLOUD_ONLY, NCLEARCOL_TM1,CEFRADL, CEFRADI,COPWSW,COPISW,&
                 COPWLW,COPILW, XFUDG,                                                &
-                NDLON, NFLEV, NRAD_DIAG, NFLUX, NRAD, NAER,NSWB, NSTATM, NRAD_COLNBR,&
-                ZCOSZEN, XSEA, XCORSOL,                                              &
+                NDLON, NFLEV, NRAD_DIAG, NFLUX, NRAD,NAER,NSWB_OLD,NSWB_MNH,NLWB_MNH,      &
+                NSTATM, NRAD_COLNBR, ZCOSZEN, XSEA, XCORSOL,                         &
                 XDIR_ALB, XSCA_ALB, XEMIS, XCLDFR, XCCO2, XTSRAD, XSTATM, XTHT, XRT, &
                 XPABST,XOZON, XAER,XDST_WL, XAER_CLIM, XSVT,                         &
                 XDTHRAD, XFLALWD, XDIRFLASWD, XSCAFLASWD, XRHODREF, XZZ ,            &
       MODULE MODI_RADIATIONS   
  !    ########################
  !
- INTERFACE 
- !
-     SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,OCLEAR_SKY,OCLOUD_ONLY,           &
-                KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW,      &
-                PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, &
-                KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,                              &
-                PDIR_ALB, PSCA_ALB, PEMIS, PCLDFR, PCCO2, PTSRAD, PSTATM,       &
-                PTHT, PRT, PPABST, POZON, PAER,PDST_WL, PAER_CLIM, PSVT,        &
-                PDTHRAD, PSRFLWD, PSRFSWD_DIR,PSRFSWD_DIF,PRHODREF, PZZ,        &
-                PRADEFF, PSWU, PSWD, PLWU, PLWD, PDTHRADSW, PDTHRADLW           )
- !
- USE MODD_IO_ll, ONLY: TFILEDATA
- !
- LOGICAL, INTENT(IN)                  :: OCLOSE_OUT! flag indicating that a FM
-                                                   ! file is opened during this 
-                                                   ! time-step
- TYPE(TFILEDATA),  INTENT(IN)         :: TPFILE    ! Output file
- LOGICAL, INTENT(IN)                  :: OCLOUD_ONLY! flag for the cloud column
-                                                    !    computations only
- LOGICAL, INTENT(IN)                  :: OCLEAR_SKY ! 
- INTEGER, INTENT(IN)                  :: KDLON   ! number of columns where the
-                                                 ! radiation calculations are
-                                                 !         performed
- INTEGER, INTENT(IN)                  :: KFLEV   ! number of vertical levels
-                                                 !    where the radiation
-                                                 ! calculations are performed
- INTEGER, INTENT(IN)                  :: KRAD_DIAG   ! index for the number of
-                                                     !  fields in the output
- INTEGER, INTENT(IN)                  :: KFLUX   ! number of top and ground 
-                                                 ! fluxes for the ZFLUX array
- INTEGER, INTENT(IN)                  :: KRAD    ! number of satellite radiances
-                                                 ! for the ZRAD and ZRADCS arrays
- INTEGER, INTENT(IN)                  :: KAER    ! number of AERosol classes
- INTEGER, INTENT(IN)                  :: KSWB    ! number of SW band  
- INTEGER, INTENT(IN)                  :: KSTATM  ! index of the standard 
-                                                 ! atmosphere level just above
-                                                 !      the model top
- INTEGER, INTENT(IN)                  :: KRAD_COLNBR ! factor by which the memory
-                                                     ! is splitted
- !
-                                                !Choice of :             
- CHARACTER (LEN=*), INTENT (IN)       :: HEFRADL!cloud liquid effective radius calculation
- CHARACTER (LEN=*), INTENT (IN)       :: HEFRADI!cloud ice effective radius calculation
- CHARACTER (LEN=*), INTENT (IN)       :: HOPWSW !cloud water SW optical properties   
- CHARACTER (LEN=*), INTENT (IN)       :: HOPISW !ice water SW optical properties 
- CHARACTER (LEN=*), INTENT (IN)       :: HOPWLW !cloud water LW optical properties
- CHARACTER (LEN=*), INTENT (IN)       :: HOPILW !ice water  LW optical properties
- REAL,              INTENT(IN)        :: PFUDG  ! subgrid cloud inhomogenity factor
- !
- REAL, DIMENSION(:,:),     INTENT(IN) :: PCOSZEN ! COS(zenithal solar angle)
- REAL,                     INTENT(IN) :: PCORSOL ! SOLar constant CORrection
- REAL, DIMENSION(:,:),     INTENT(IN) :: PSEA    ! Land-sea mask
- REAL, DIMENSION(:,:,:),   INTENT(IN) :: PDIR_ALB! Surface direct ALBedo
- REAL, DIMENSION(:,:,:),   INTENT(IN) :: PSCA_ALB! Surface diffuse ALBedo
- REAL, DIMENSION(:,:),     INTENT(IN) :: PEMIS   ! Surface IR EMISsivity
- REAL, DIMENSION(:,:,:),   INTENT(IN) :: PCLDFR  ! CLouD FRaction
- REAL,                     INTENT(IN) :: PCCO2   ! CO2 content
- REAL, DIMENSION(:,:),     INTENT(IN) :: PTSRAD  ! RADiative Surface Temperature
- REAL, DIMENSION(:,:),     INTENT(IN) :: PSTATM  ! selected standard atmosphere
- REAL, DIMENSION(:,:,:),   INTENT(IN) :: PTHT    ! THeta at t
- REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT     ! moist variables at t
- REAL, DIMENSION(:,:,:),   INTENT(IN) :: PPABST  ! pressure at t
- REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT    ! scalar variable ( C2R2 and C1R3  particle) 
- !
- REAL, DIMENSION(:,:,:),   POINTER    :: POZON   ! OZON field from clim.
- REAL, DIMENSION(:,:,:,:), POINTER    :: PAER    ! AERosols optical thickness from clim. 
- REAL, DIMENSION(:,:,:,:), POINTER    :: PDST_WL ! AERosols Extinction.by wavelength 
- REAL, DIMENSION(:,:,:,:), POINTER    :: PAER_CLIM    ! AERosols optical thickness from clim.
-                                                 ! note : the vertical dimension of 
-                                                 ! these fields include the "radiation levels"
-                                                 ! above domain top 
- !
- REAL, DIMENSION(:,:,:), INTENT(IN)   :: PRHODREF ![kg/m3] air density
- REAL, DIMENSION(:,:,:), INTENT(IN)   :: PZZ      ![m] height of layers
- !
- INTEGER, DIMENSION(:,:), INTENT(INOUT)  :: KCLEARCOL_TM1 ! trace of cloud/clear col
-                                                          ! at the previous radiation step
- !                                                 
- REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PDTHRAD ! THeta RADiative Tendancy
- REAL, DIMENSION(:,:),     INTENT(INOUT) :: PSRFLWD ! Downward SuRFace LW Flux
- REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PSRFSWD_DIR ! Downward SuRFace SW Flux DIRect 
- REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PSRFSWD_DIF ! Downward SuRFace SW Flux DIFfuse 
- REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PSWU ! upward SW Flux 
- REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PSWD ! downward SW Flux 
- REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PLWU ! upward LW Flux 
- REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PLWD ! downward LW Flux 
- REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PDTHRADSW ! dthrad sw 
- REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PDTHRADLW !  dthradsw
- REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PRADEFF ! effective radius
- !
- !
- END SUBROUTINE RADIATIONS
- !
- END INTERFACE
- !
- END MODULE MODI_RADIATIONS  
+ CONTAINS
  !
 -!   #######################################################################
 -    SUBROUTINE RADIATIONS (OCLOSE_OUT,HFMFILE,HLUOUT,OCLEAR_SKY,OCLOUD_ONLY,&
 -               KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW,   &
 -               PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB_OLD,   & 
 -               KSWB_MNH,KLWB_MNH, KSTATM,KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,          &
 -               PDIR_ALB, PSCA_ALB,PEMIS, PCLDFR, PCCO2, PTSRAD, PSTATM,   &
 -               PTHT, PRT, PPABST, POZON, PAER, PDST_WL, PAER_CLIM, PSVT,  &
 -               PDTHRAD, PSRFLWD, PSRFSWD_DIR,PSRFSWD_DIF, PRHODREF, PZZ,  &
 -               PRADEFF, PSWU, PSWD, PLWU,PLWD, PDTHRADSW, PDTHRADLW       )
 -!   #######################################################################
 +!   ############################################################################
 +    SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,OCLEAR_SKY,OCLOUD_ONLY,           &
 +               KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW,      &
-                PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, &
-                KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,                              &
-                PDIR_ALB, PSCA_ALB, PEMIS, PCLDFR, PCCO2, PTSRAD, PSTATM,       &
-                PTHT, PRT, PPABST, POZON, PAER,PDST_WL, PAER_CLIM, PSVT,        &
-                PDTHRAD, PSRFLWD, PSRFSWD_DIR,PSRFSWD_DIF,PRHODREF, PZZ,        &
-                PRADEFF, PSWU, PSWD, PLWU, PLWD, PDTHRADSW, PDTHRADLW           )
++               PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB_OLD,    & 
++               KSWB_MNH,KLWB_MNH, KSTATM,KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,    &
++               PDIR_ALB, PSCA_ALB,PEMIS, PCLDFR, PCCO2, PTSRAD, PSTATM,        &
++               PTHT, PRT, PPABST, POZON, PAER, PDST_WL, PAER_CLIM, PSVT,       &
++               PDTHRAD, PSRFLWD, PSRFSWD_DIR,PSRFSWD_DIF, PRHODREF, PZZ,       &
++               PRADEFF, PSWU, PSWD, PLWU,PLWD, PDTHRADSW, PDTHRADLW            )
 +!   ############################################################################
  !
  !!****  *RADIATIONS * - routine to call the SW and LW radiation calculations
  !!
  !!
  !!    IMPLICIT ARGUMENTS
  !!    ------------------
--!!      Module MODD_TIME : structure of TDTCUR
  !!      Module MODD_CST  : constants
  !!        XP00 : reference pressure
  !!        XCPD : calorific capacity of dry air at constant pressure
  !!      J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
  !!      J.Escobar 29/06/2017  : Check if Pressure Decreasing with height <-> elsif PB & STOP 
  !!      Q.LIBOIS  06/2017     : correction on CLOUD_ONLY
+ !!      Q.Libois  02/2018     : ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !-------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
  !              ------------
  !
 -USE PARKIND1 , ONLY : JPRB
 -USE MODE_FMWRIT
 -USE MODE_FM
 -USE MODE_ll
 -USE MODI_ECMWF_RADIATION_VERS2
 -USE MODI_ECRAD_INTERFACE
 +USE PARKIND1,         ONLY: JPRB
- USE YOESW,            ONLY: RTAUA, RPIZA, RCGA
+ USE OYOESW    , ONLY : RTAUA    ,RPIZA    ,RCGA
 -USE MODD_CONF
 -USE MODD_RADIATIONS_n,   ONLY : XDTHRAD, NCLEARCOL_TM1, XFLALWD, &
 -                                XZENITH, XDIR_ALB, XSCA_ALB, XEMIS, XTSRAD, &
 -                                XDIRSRFSWD, XSCAFLASWD, XDIRFLASWD, XAZIM
 -!
 -USE MODD_GRID_n , ONLY : XLAT, XLON
 -USE MODD_GRID , ONLY : XLAT0, XLON0
  !
 -USE MODD_TIME
 +USE MODD_CH_AEROSOL,  ONLY: LORILAM
++USE MODD_CONF,        ONLY: LCARTESIAN
  USE MODD_CST
 +USE MODD_DUST,        ONLY: LDUST
++USE MODD_GRID ,       ONLY: XLAT0, XLON0
++USE MODD_GRID_n ,     ONLY: XLAT, XLON
 +USE MODD_IO_ll,       ONLY: TFILEDATA
 +USE MODD_LUNIT_n,     ONLY: TLUOUT
 +USE MODD_NSV,         ONLY: NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END,     &
 +                            NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END,     &
 +                            NSV_DSTBEG, NSV_DSTEND,               &
 +                            NSV_AERBEG, NSV_AEREND,               &
 +                            NSV_SLTBEG, NSV_SLTEND,               &
 +                            NSV_LIMA,NSV_LIMA_BEG,NSV_LIMA_END,   &
 +                            NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_NI
  USE MODD_PARAMETERS
- USE MODD_PARAM_n,     ONLY: CCLOUD
 +USE MODD_PARAM_LIMA
++USE MODD_PARAM_n,     ONLY: CCLOUD, CRAD
 +USE MODD_PARAM_RAD_n, ONLY: CAOP
  USE MODD_RAIN_ICE_DESCR
 -USE MODD_NSV, ONLY : NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END, &
 -                     NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END, &
 -                     NSV_DSTBEG, NSV_DSTEND, &
 -                     NSV_AERBEG, NSV_AEREND, &
 -                     NSV_SLTBEG, NSV_SLTEND, &
 -                     NSV_LIMA,NSV_LIMA_BEG,NSV_LIMA_END, &
 -                     NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_NI
 -USE MODD_PARAM_n, ONLY : CCLOUD
 +USE MODD_SALT,        ONLY: LSALT
 +USE MODD_TIME
  !
 -USE MODE_THERMO
 -
 -USE MODD_DUST, ONLY: LDUST
 -USE MODD_SALT, ONLY: LSALT
 -USE MODD_CH_AEROSOL, ONLY: LORILAM
 -USE MODD_PARAM_RAD_n, ONLY: CAOP
  USE MODE_DUSTOPT
 -USE MODE_SALTOPT
 -USE MODI_AEROOPT_GET
 -USE MODD_PARAM_LIMA
 -USE MODD_PARAM_n , ONLY : CRAD
 -USE MODD_LUNIT_n
 -USE MODD_TIME_n
 +USE MODE_FIELD,       ONLY: TFIELDDATA,TYPEREAL
 +USE MODE_FMWRIT
 +USE MODE_ll
+ !
  #ifdef MNH_PGI
  USE MODE_PACK_PGI
  #endif
 +USE MODE_SALTOPT
 +USE MODE_THERMO
  !
 -USE MODI_SUM_ll , ONLY : GMINLOC_ll , MIN_ll
 +USE MODI_AEROOPT_GET
 +USE MODI_ECMWF_RADIATION_VERS2
++USE MODI_ECRAD_INTERFACE
 +USE MODI_SUM_ll,      ONLY: GMINLOC_ll, MIN_ll
  !  
  IMPLICIT NONE
  !
@@@ -3323,20 -3177,14 +3374,20 @@@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) 
          END DO
        END DO
      END DO
 -    YRECFM   = 'RRTM_LW_NEB'
 -    YCOMMENT = 'X_Y_Z_LW_NEB'
 -    IGRID    = 1
 -    ILENCH   = LEN(YCOMMENT)
 -    CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,YDIR,ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP)
 +    TZFIELD%CMNHNAME   = 'RRTM_LW_NEB'
 +    TZFIELD%CSTDNAME   = ''
 +    TZFIELD%CLONGNAME  = 'RRTM_LW_NEB'
 +    TZFIELD%CUNITS     = ''
 +    TZFIELD%CDIR       = 'XY'
 +    TZFIELD%CCOMMENT   = 'X_Y_Z_LW_NEB'
 +    TZFIELD%NGRID      = 1
 +    TZFIELD%NTYPE      = TYPEREAL
 +    TZFIELD%NDIMS      = 3
 +    TZFIELD%LTIMEDEP   = .TRUE.
 +    CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D)
      !
      ! spectral bands
-     IF (KSWB==6) THEN
+     IF (KSWB_OLD==6) THEN
        INIR = 4
      ELSE
        INIR = 2
        WRITE(YBAND_NAME(JBAND),'(A3,I1)') 'NIR', JBAND
      END DO
  !
-     DO JBAND=1,KSWB
+     DO JBAND=1,KSWB_OLD
 -      YRECFM   = 'ODAER_'//YBAND_NAME(JBAND)
 -      YCOMMENT = 'X_Y_Z_OD_'//YBAND_NAME(JBAND)
 -      IGRID    = 1
 -      ILENCH   = LEN(YCOMMENT)
 -      CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,YDIR,ZTAUAZ(:,:,:,JBAND),IGRID,ILENCH,YCOMMENT,IRESP)
 -      YRECFM   = 'SSAAER_'//YBAND_NAME(JBAND)
 -      YCOMMENT = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND)
 -      IGRID    = 1
 -      ILENCH   = LEN(YCOMMENT)
 -      CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,YDIR,ZPIZAZ(:,:,:,JBAND),IGRID,ILENCH,YCOMMENT,IRESP)
 -      YRECFM   = 'GAER_'//YBAND_NAME(JBAND)
 -      YCOMMENT = 'X_Y_Z_G_'//YBAND_NAME(JBAND)
 -      IGRID    = 1
 -      ILENCH   = LEN(YCOMMENT)
 -      CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,YDIR,ZCGAZ(:,:,:,JBAND),IGRID,ILENCH,YCOMMENT,IRESP)
 +      TZFIELD%CMNHNAME   = 'ODAER_'//YBAND_NAME(JBAND)
 +      TZFIELD%CSTDNAME   = ''
 +      TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
 +      TZFIELD%CUNITS     = ''
 +      TZFIELD%CDIR       = 'XY'
 +      TZFIELD%CCOMMENT   = 'X_Y_Z_OD_'//YBAND_NAME(JBAND)
 +      TZFIELD%NGRID      = 1
 +      TZFIELD%NTYPE      = TYPEREAL
 +      TZFIELD%NDIMS      = 3
 +      TZFIELD%LTIMEDEP   = .TRUE.
 +      CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTAUAZ(:,:,:,JBAND))
 +      !
 +      TZFIELD%CMNHNAME   = 'SSAAER_'//YBAND_NAME(JBAND)
 +      TZFIELD%CSTDNAME   = ''
 +      TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
 +      TZFIELD%CUNITS     = ''
 +      TZFIELD%CDIR       = 'XY'
 +      TZFIELD%CCOMMENT   = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND)
 +      TZFIELD%NGRID      = 1
 +      TZFIELD%NTYPE      = TYPEREAL
 +      TZFIELD%NDIMS      = 3
 +      TZFIELD%LTIMEDEP   = .TRUE.
 +      CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPIZAZ(:,:,:,JBAND))
 +      !
 +      TZFIELD%CMNHNAME   = 'GAER_'//YBAND_NAME(JBAND)
 +      TZFIELD%CSTDNAME   = ''
 +      TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
 +      TZFIELD%CUNITS     = ''
 +      TZFIELD%CDIR       = 'XY'
 +      TZFIELD%CCOMMENT   = 'X_Y_Z_G_'//YBAND_NAME(JBAND)
 +      TZFIELD%NGRID      = 1
 +      TZFIELD%NTYPE      = TYPEREAL
 +      TZFIELD%NDIMS      = 3
 +      TZFIELD%LTIMEDEP   = .TRUE.
 +      CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCGAZ(:,:,:,JBAND))
      ENDDO
  
-     DO JBAND=1,KSWB
+     DO JBAND=1,KSWB_OLD
        DO JK=IKB,IKE
          JKRAD = JK - JPVEXT
          DO JJ=IJB,IJE
@@@ -187,8 -191,7 +187,9 @@@ END MODULE MODI_READ_DESFM_
  !!      Modification   07/2013   (Bosseur & Filippi) Adds Forefire
  !!      Modification   01/2015   (C. Barthe) Add explicit LNOx
  !!      Modification   2016      (B.VIE) LIMA
 +!!      Modification   11/2016   (Ph. Wautelet) Allocate/initialise some output/backup structures
+ !!      Modification   02/2018   (Q.Libois) ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !-------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
@@@ -284,7 -288,7 +284,8 @@@ END MODULE MODI_READ_EXSEG_
  !!                                               LUSERx-type variables for LIMA
  !!      M.Leriche      06/2017 for spawn and prep_real avoid abort if wet dep for 
  !!                             aerosol and no cloud scheme defined
+ !!      Q.Libois       02/2018  ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !!------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
@@@ -55,7 -60,7 +55,8 @@@ END MODULE MODI_RESET_EXSE
  !!    -------------
  !!      Original    14/09/00
  !!      Modifications  04/06/02  (P Jabouille) reset radiation and convective options
+ !!                   02/2018 Q.Libois ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !-------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
Simple merge
@@@ -141,7 -143,7 +141,8 @@@ END MODULE MODI_WRITE_DESFM_
  !!      Modification   P. Tulet       01/2005  add dust, orilam
  !!      Modification                  05/2006  Remove EPS and OWRIGET
  !!      Modification    01/2016  (JP Pinty) Add LIMA
+ !!                   02/2018 Q.Libois ECRAD
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !-------------------------------------------------------------------------------
  !
  !*       0.    DECLARATIONS
@@@ -163,9 -164,8 +163,10 @@@ END MODULE MODI_WRITE_LFIFM_
  !!       J.escobar     04/08/2015 suit Pb with writ_lfin JSA increment , modif in ini_nsv to have good order initialization
  !!       Modification    01/2016  (JP Pinty) Add LIMA
  !!       M.Mazoyer     04/16 : Add supersaturation fields
 +!!       P.Wautelet    11/07/2016 removed MNH_NCWRIT define
  !!       JP Chaboureau 27/11/2017 add wind tendency forcing
+ !!                   02/2018 Q.Libois move Diagnostic related to the radiations in radiations.f90
 +!!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
  !!                   
  !-------------------------------------------------------------------------------
  !
Simple merge
Simple merge
diff --cc src/configure
@@@ -398,7 -399,7 +402,7 @@@ f
  #
  ${LOCAL}/bin/eval_dollar  profile_mesonh.ihm > profile_mesonh
  chmod +x profile_mesonh
- XYZ=${ARCH}-R${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL}
 -XYZ=${ARCH}${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}${MNH_ECRAD:+-ECRAD}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL}
++XYZ=${ARCH}-R${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}${MNH_ECRAD:+-ECRAD}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL}
  cp profile_mesonh profile_mesonh-${XYZ}
  #
  #  Do some post-install stuff