diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90
index deba33040c375e4b1d856f3300f7781c4f53c988..05c5d892c7d8382ccad61a76c0023b92ccba0d06 100644
--- a/src/LIB/SURCOUCHE/src/mode_field.f90
+++ b/src/LIB/SURCOUCHE/src/mode_field.f90
@@ -3244,109 +3244,93 @@ 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
+  call Goto_model_1field( 'ZTOP', 1, 1, 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
+  call Goto_model_1field( 'SLEVE', 1, 1, 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
+  call Goto_model_1field( 'LEN1', 1, 1, 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
+  call Goto_model_1field( 'LEN2', 1, 1, 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
+  call Goto_model_1field( 'DTMOD', 1, 1, 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
+  call Goto_model_1field( 'DTCUR', 1, 1, 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
+  call Goto_model_1field( 'DTRAD_FULL', 1, 1, 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
+  call Goto_model_1field( 'DTRAD_CLLY', 1, 1, 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
+  call Goto_model_1field( 'DTDCONV', 1, 1, 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 = ''
+  call Goto_model_1field( 'SURF', 1, 1, 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
+  call Goto_model_1field( 'DRYMASST', 1, 1, XDRYMASST )
 END IF
 !
 IF (.NOT.ASSOCIATED(NRIMX)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' NRIMX was not associated')
   ALLOCATE(NRIMX)
+  call Goto_model_1field( 'RIMX', 1, 1, 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)
+  call Goto_model_1field( 'RIMY', 1, 1, 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)
+  call Goto_model_1field( 'HORELAX_UVWTH', 1, 1, 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)
+  call Goto_model_1field( 'HORELAX_TKE', 1, 1, 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
 !
@@ -3430,758 +3414,363 @@ END IF
 !
 ! MODD_FIELD_n variables
 !
-CALL FIND_FIELD_ID_FROM_MNHNAME('ZWS',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X2D(KFROM)%DATA => XZWS
-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('PHIT', IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XPHIT
-CALL FIND_FIELD_ID_FROM_MNHNAME('RT',   IID,IRESP); TFIELDLIST(IID)%TFIELD_X4D(KFROM)%DATA => XRT
-!
-IF (ASSOCIATED(XRT)) THEN
-  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
-ELSE
-  IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN
-    CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',  IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA=>NULL()
-  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=>NULL()
-  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=>NULL()
-  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=>NULL()
-  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=>NULL()
-  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=>NULL()
-  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=>NULL()
-  END IF
-
+call Goto_model_1field( 'ZWS',   kfrom, kto, xzws   )
+call Goto_model_1field( 'UT',    kfrom, kto, xut    )
+call Goto_model_1field( 'VT',    kfrom, kto, xvt    )
+call Goto_model_1field( 'WT',    kfrom, kto, xwt    )
+call Goto_model_1field( 'THT',   kfrom, kto, xtht   )
+call Goto_model_1field( 'TKET',  kfrom, kto, xtket  )
+call Goto_model_1field( 'PABST', kfrom, kto, xpabst )
+call Goto_model_1field( 'PHIT',  kfrom, kto, xphit  )
+call Goto_model_1field( 'RT',    kfrom, kto, xrt    )
+!
+CALL FIND_FIELD_ID_FROM_MNHNAME( 'RT', IID2, IRESP )
+
+IF (CONF_MODEL(KFROM)%IDX_RVT>0) THEN
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RVT', IID, IRESP )
+  call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+  if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RVT)
+  if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA   => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RVT)
+END IF
+IF (CONF_MODEL(KFROM)%IDX_RCT>0) THEN
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RCT', IID, IRESP )
+  call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+  if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RCT)
+  if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA   => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RCT)
+END IF
+IF (CONF_MODEL(KFROM)%IDX_RRT>0) THEN
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RRT', IID, IRESP )
+  call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+  if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RRT)
+  if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA   => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RRT)
+END IF
+IF (CONF_MODEL(KFROM)%IDX_RIT>0) THEN
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RIT', IID, IRESP )
+  call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+  if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RIT)
+  if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA   => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RIT)
+END IF
+IF (CONF_MODEL(KFROM)%IDX_RST>0) THEN
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RST', IID, IRESP )
+  call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+  if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RST)
+  if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA   => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RST)
+END IF
+IF (CONF_MODEL(KFROM)%IDX_RGT>0) THEN
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RGT', IID, IRESP )
+  call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+  if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RGT)
+  if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA   => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%IDX_RGT)
+END IF
+IF (CONF_MODEL(KFROM)%IDX_RHT>0) THEN
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RHT', IID, IRESP )
+  call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+  if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RHT)
+  if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+  TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA   => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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
+call Goto_model_1field( 'SUPSATMAX', kfrom, kto, XSUPSAT )
+call Goto_model_1field( 'NACT',      kfrom, kto, XNACT   )
+call Goto_model_1field( 'SSPRO',     kfrom, kto, XSSPRO  )
+call Goto_model_1field( 'NPRO',      kfrom, kto, XNPRO   )
+call Goto_model_1field( 'SRCT',      kfrom, kto, XSRCT   )
+call Goto_model_1field( 'SIGS',      kfrom, kto, XSIGS   )
 !
 IF (CPROGRAM == 'MESONH') THEN
+  call Goto_model_1field( 'US_PRES', kfrom, kto, XRUS_PRES )
+  call Goto_model_1field( 'VS_PRES', kfrom, kto, XRVS_PRES )
+  call Goto_model_1field( 'WS_PRES', kfrom, kto, XRWS_PRES )
+  call Goto_model_1field( 'THS_CLD', kfrom, kto, XRTHS_CLD )
+
+  call Goto_model_1field( 'RS_CLD', kfrom, kto, XRRS_CLD )
   !
-  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
-  !
+  CALL FIND_FIELD_ID_FROM_MNHNAME( 'RS_CLD', IID2, IRESP )
+
   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)
+    call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+    if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RVT)
+    if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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)
+    call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+    if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RCT)
+    if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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)
+    call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+    if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RRT)
+    if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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)
+    call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+    if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RIT)
+    if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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)
+    call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+    if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RST)
+    if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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)
+    call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+    if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RGT)
+    if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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)
+    call Extend_1field_x3d( tfieldlist(iid), Max( kfrom, kto ) )
+    if ( Associated( TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KFROM)%DATA(:,:,:,CONF_MODEL(KFROM)%IDX_RHT)
+    if ( kfrom /= kto .and. Associated( TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA ) ) &
+    TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA => TFIELDLIST(IID2)%TFIELD_X4D(KTO)%DATA(:,:,:,CONF_MODEL(KTO)%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
-  CALL FIND_FIELD_ID_FROM_MNHNAME('RAINFR',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XRAINFR
-  !
-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) THEN
-  CALL FIND_FIELD_ID_FROM_MNHNAME('LSRVM',IID,IRESP); TFIELDLIST(IID)%TFIELD_X3D(KFROM)%DATA => XLSRVM
-END IF
-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); 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_LVL',IID,IRESP); TFIELDLIST(IID)%TFIELD_N2D(KFROM)%DATA => NCLTOPCONV
-  CALL FIND_FIELD_ID_FROM_MNHNAME('CLBASCONV_LVL',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('ZWS',  IID,IRESP); XZWS   => TFIELDLIST(IID)%TFIELD_X2D(KTO)%DATA
-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('PHIT', IID,IRESP); XPHIT  => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
-CALL FIND_FIELD_ID_FROM_MNHNAME('RT',   IID,IRESP); XRT    => TFIELDLIST(IID)%TFIELD_X4D(KTO)%DATA
-!
-IF (ASSOCIATED(XRT)) THEN
-  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
-ELSE
-  IF (CONF_MODEL(KTO)%IDX_RVT>0) THEN
-    CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID2,IRESP)
-    TFIELDLIST(IID2)%TFIELD_X3D(KTO)%DATA => NULL()
-  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 => NULL()
-  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 => NULL()
-  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 => NULL()
-  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 => NULL()
-  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 => NULL()
-  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 => NULL()
-  END IF
-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
-  CALL FIND_FIELD_ID_FROM_MNHNAME('RAINFR',  IID,IRESP); XRAINFR   => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
+
+  call Goto_model_1field( 'CLDFR',  kfrom, kto, XCLDFR  )
+  call Goto_model_1field( 'CIT',    kfrom, kto, XCIT    )
+  call Goto_model_1field( 'RAINFR', kfrom, kto, XRAINFR )
 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
+call Goto_model_1field( 'UM',  kfrom, kto, XUM  )
+call Goto_model_1field( 'VM',  kfrom, kto, XVM  )
+call Goto_model_1field( 'WM',  kfrom, kto, XWM  )
+call Goto_model_1field( 'DUM', kfrom, kto, XDUM )
+call Goto_model_1field( 'DVM', kfrom, kto, XDVM )
+call Goto_model_1field( 'DWM', kfrom, kto, XDWM )
 !
 ! 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
+call Goto_model_1field( 'INPAP', kfrom, kto, XINPAP )
+call Goto_model_1field( 'ACPAP', kfrom, kto, XACPAP )
 !
 ! 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
+call Goto_model_1field( 'EFIELDU',  kfrom, kto, XEFIELDU  )
+call Goto_model_1field( 'EFIELDV',  kfrom, kto, XEFIELDV  )
+call Goto_model_1field( 'EFIELDW',  kfrom, kto, XEFIELDW  )
+call Goto_model_1field( 'NI_IAGGS', kfrom, kto, XNI_IAGGS )
+call Goto_model_1field( 'NI_IDRYG', kfrom, kto, XNI_IDRYG )
+call Goto_model_1field( 'NI_SDRYG', kfrom, kto, XNI_SDRYG )
+call Goto_model_1field( 'INDUC_CG', kfrom, kto, XIND_RATE )
 !
 ! 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
+call Goto_model_1field( 'PHC', kfrom, kto, XPHC )
+call Goto_model_1field( 'PHR', kfrom, kto, XPHR )
 !
 ! 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
+call Goto_model_1field( 'LSUM',  kfrom, kto, XLSUM  )
+call Goto_model_1field( 'LSVM',  kfrom, kto, XLSVM  )
+call Goto_model_1field( 'LSWM',  kfrom, kto, XLSWM  )
+call Goto_model_1field( 'LSTHM', kfrom, kto, XLSTHM )
 IF (LUSERV) THEN
-  CALL FIND_FIELD_ID_FROM_MNHNAME('LSRVM',IID,IRESP); XLSRVM => TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
+  call Goto_model_1field( 'LSRVM', kfrom, kto, XLSRVM )
 END IF
-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
+call Goto_model_1field( 'LBXUM',  kfrom, kto, XLBXUM  )
+call Goto_model_1field( 'LBXVM',  kfrom, kto, XLBXVM  )
+call Goto_model_1field( 'LBXWM',  kfrom, kto, XLBXWM  )
+call Goto_model_1field( 'LBYUM',  kfrom, kto, XLBYUM  )
+call Goto_model_1field( 'LBYVM',  kfrom, kto, XLBYVM  )
+call Goto_model_1field( 'LBYWM',  kfrom, kto, XLBYWM  )
+call Goto_model_1field( 'LBXTHM', kfrom, kto, XLBXTHM )
+call Goto_model_1field( 'LBYTHM', kfrom, kto, XLBYTHM )
+
+call Goto_model_1field( 'DRYMASST', kfrom, kto, XDRYMASST )
 !
 ! 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
+call Goto_model_1field( 'RIMX', kfrom, kto, NRIMX )
+call Goto_model_1field( 'RIMY', kfrom, kto, NRIMY )
+call Goto_model_1field( 'HORELAX_UVWTH', kfrom, kto, LHORELAX_UVWTH )
+call Goto_model_1field( 'HORELAX_TKE',   kfrom, kto, LHORELAX_TKE   )
 !
 ! MODD_ADV_n variables
 !
-CALL FIND_FIELD_ID_FROM_MNHNAME('TKEMS',IID,IRESP); XRTKEMS=>TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
+call Goto_model_1field( 'TKEMS', kfrom, kto, XRTKEMS  )
 !
 ! 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
+call Goto_model_1field( 'ZS'  ,  kfrom, kto, XZS    )
+call Goto_model_1field( 'ZSMT',  kfrom, kto, XZSMT  )
+call Goto_model_1field( 'XHAT',  kfrom, kto, XXHAT  )
+call Goto_model_1field( 'YHAT',  kfrom, kto, XYHAT  )
+call Goto_model_1field( 'ZHAT',  kfrom, kto, XZHAT  )
+call Goto_model_1field( 'ZTOP',  kfrom, kto, XZTOP  )
+call Goto_model_1field( 'DXHAT', kfrom, kto, XDXHAT )
+call Goto_model_1field( 'DYHAT', kfrom, kto, XDYHAT )
+call Goto_model_1field( 'SLEVE', kfrom, kto, LSLEVE )
+call Goto_model_1field( 'LEN1',  kfrom, kto, XLEN1  )
+call Goto_model_1field( 'LEN2',  kfrom, kto, XLEN2  )
+call Goto_model_1field( 'ALT',   kfrom, kto, XZZ    )
+call Goto_model_1field( 'DIRCOSXW', kfrom, kto, XDIRCOSXW )
+call Goto_model_1field( 'DIRCOSYW', kfrom, kto, XDIRCOSYW )
+call Goto_model_1field( 'DIRCOSZW', kfrom, kto, XDIRCOSZW )
+call Goto_model_1field( 'COSSLOPE', kfrom, kto, XCOSSLOPE )
+call Goto_model_1field( 'SINSLOPE', kfrom, kto, XSINSLOPE )
+call Goto_model_1field( 'MAP',      kfrom, kto, XMAP )
+call Goto_model_1field( 'LAT',      kfrom, kto, XLAT )
+call Goto_model_1field( 'LON',      kfrom, kto, XLON )
 !
 ! 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
+call Goto_model_1field( 'DTMOD',      kfrom, kto, TDTMOD        )
+call Goto_model_1field( 'DTCUR',      kfrom, kto, TDTCUR        )
+call Goto_model_1field( 'DTRAD_FULL', kfrom, kto, TDTRAD_FULL   )
+call Goto_model_1field( 'DTRAD_CLLY', kfrom, kto, TDTRAD_CLONLY )
+call Goto_model_1field( 'DTDCONV',    kfrom, kto, TDTDCONV      )
 !
 ! 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)
-  TFIELDLIST(IID)%TFIELD_C0D(KTO)%DATA=''
-END IF
-CSURF => TFIELDLIST(IID)%TFIELD_C0D(KTO)%DATA
+call Goto_model_1field( 'SURF', kfrom, kto, CSURF )
 !
 ! 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
+call Goto_model_1field( 'BL_DEPTH',  kfrom, kto, XBL_DEPTH  )
+call Goto_model_1field( 'SBL_DEPTH', kfrom, kto, XSBL_DEPTH )
+call Goto_model_1field( 'WTHVMF',    kfrom, kto, XWTHVMF    )
 !
 ! 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
+call Goto_model_1field( 'RHODREF', kfrom, kto, XRHODREF )
+call Goto_model_1field( 'THVREF',  kfrom, kto, XTHVREF  )
 !
 ! 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
+  call Goto_model_1field( 'DTHRAD',       kfrom, kto, XDTHRAD       )
+  call Goto_model_1field( 'FLALWD',       kfrom, kto, XFLALWD       )
+  call Goto_model_1field( 'DIRFLASWD',    kfrom, kto, XDIRFLASWD    )
+  call Goto_model_1field( 'SCAFLASWD',    kfrom, kto, XSCAFLASWD    )
+  call Goto_model_1field( 'DIRSRFSWD',    kfrom, kto, XDIRSRFSWD    )
+  call Goto_model_1field( 'CLEARCOL_TM1', kfrom, kto, NCLEARCOL_TM1 )
+  call Goto_model_1field( 'ZENITH',       kfrom, kto, XZENITH       )
+  call Goto_model_1field( 'AZIM',         kfrom, kto, XAZIM         )
+  call Goto_model_1field( 'DIR_ALB',      kfrom, kto, XDIR_ALB      )
+  call Goto_model_1field( 'SCA_ALB',      kfrom, kto, XSCA_ALB      )
+  call Goto_model_1field( 'EMIS',         kfrom, kto, XEMIS         )
+  call Goto_model_1field( 'TSRAD',        kfrom, kto, 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); 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_LVL',IID,IRESP); NCLTOPCONV     => TFIELDLIST(IID)%TFIELD_N2D(KTO)%DATA
-  CALL FIND_FIELD_ID_FROM_MNHNAME('CLBASCONV_LVL',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
+  call Goto_model_1field( 'COUNTCONV',     kfrom, kto, NCOUNTCONV       )
+  call Goto_model_1field( 'DTHCONV',       kfrom, kto, XDTHCONV         )
+  call Goto_model_1field( 'DRVCONV',       kfrom, kto, XDRVCONV         )
+  call Goto_model_1field( 'DRCCONV',       kfrom, kto, XDRCCONV         )
+  call Goto_model_1field( 'DRICONV',       kfrom, kto, XDRICONV         )
+  call Goto_model_1field( 'PRCONV',        kfrom, kto, XPRCONV          )
+  call Goto_model_1field( 'PACCONV',       kfrom, kto, XPACCONV         )
+  call Goto_model_1field( 'PRSCONV',       kfrom, kto, XPRSCONV         )
+  call Goto_model_1field( 'DSVCONV',       kfrom, kto, XDSVCONV         )
+  call Goto_model_1field( 'PRLFLXCONV',    kfrom, kto, XPRLFLXCONV      )
+  call Goto_model_1field( 'PRSFLXCONV',    kfrom, kto, XPRSFLXCONV      )
+  call Goto_model_1field( 'UMFCONV',       kfrom, kto, XUMFCONV         )
+  call Goto_model_1field( 'DMFCONV',       kfrom, kto, XDMFCONV         )
+  call Goto_model_1field( 'MFCONV',        kfrom, kto, XMFCONV          )
+  call Goto_model_1field( 'CAPE',          kfrom, kto, XCAPE            )
+  call Goto_model_1field( 'CLTOPCONV_LVL', kfrom, kto, NCLTOPCONV       )
+  call Goto_model_1field( 'CLBASCONV_LVL', kfrom, kto, NCLBASCONV       )
+  call Goto_model_1field( 'IC_RATE',       kfrom, kto, XIC_RATE         )
+  call Goto_model_1field( 'CG_RATE',       kfrom, kto, XCG_RATE         )
+  call Goto_model_1field( 'IC_TOTAL_NB',   kfrom, kto, XIC_TOTAL_NUMBER )
+  call Goto_model_1field( 'CG_TOTAL_NB',   kfrom, kto, XCG_TOTAL_NUMBER )
 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
+call Goto_model_1field( 'SSO_ANIS',  kfrom, kto, XSSO_ANISOTROPY )
+call Goto_model_1field( 'SSO_SLOPE', kfrom, kto, XSSO_SLOPE      )
+call Goto_model_1field( 'SSO_DIR',   kfrom, kto, XSSO_DIRECTION  )
+call Goto_model_1field( 'AVG_ZS',    kfrom, kto, XAVG_ZS         )
+call Goto_model_1field( 'SIL_ZS',    kfrom, kto, XSIL_ZS         )
+call Goto_model_1field( 'MAX_ZS',    kfrom, kto, XMAX_ZS         )
+call Goto_model_1field( 'MIN_ZS',    kfrom, kto, XMIN_ZS         )
+call Goto_model_1field( 'SSO_STDEV', kfrom, kto, XSSO_STDEV      )
 !
 ! 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
-!
+call Goto_model_1field( 'INPRC',   kfrom, kto, XINPRC   )
+call Goto_model_1field( 'ACPRC',   kfrom, kto, XACPRC   )
+call Goto_model_1field( 'INDEP',   kfrom, kto, XINDEP   )
+call Goto_model_1field( 'ACDEP',   kfrom, kto, XACDEP   )
+call Goto_model_1field( 'INPRR',   kfrom, kto, XINPRR   )
+call Goto_model_1field( 'INPRR3D', kfrom, kto, XINPRR3D )
+call Goto_model_1field( 'EVAP3D',  kfrom, kto, XEVAP3D  )
+call Goto_model_1field( 'ACPRR',   kfrom, kto, XACPRR   )
+call Goto_model_1field( 'INPRS',   kfrom, kto, XINPRS   )
+call Goto_model_1field( 'ACPRS',   kfrom, kto, XACPRS   )
+call Goto_model_1field( 'INPRG',   kfrom, kto, XINPRG   )
+call Goto_model_1field( 'ACPRG',   kfrom, kto, XACPRG   )
+call Goto_model_1field( 'INPRH',   kfrom, kto, XINPRH   )
+call Goto_model_1field( 'ACPRH',   kfrom, kto, XACPRH   )
 !
 ! 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
+call Goto_model_1field( 'VT_FLX',         kfrom, kto, XVTH_FLUX_M      )
+call Goto_model_1field( 'WT_FLX',         kfrom, kto, XWTH_FLUX_M      )
+call Goto_model_1field( 'RTHS_EDDY_FLUX', kfrom, kto, XRTHS_EDDY_FLUX  )
 !
 ! 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
-!
+call Goto_model_1field( 'VU_FLX',        kfrom, kto, XVU_FLUX_M     )
+call Goto_model_1field( 'RVS_EDDY_FLUX', kfrom, kto, XRVS_EDDY_FLUX )
 !
 ! 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
+  call Goto_model_1field( 'UT15',    kfrom, kto, XUTOT   )
+  call Goto_model_1field( 'VT15',    kfrom, kto, XVTOT   )
+  call Goto_model_1field( 'TEMPTOT', kfrom, kto, XTTOT   )
+  call Goto_model_1field( 'PRESTOT', kfrom, kto, XPTOT   )
+  call Goto_model_1field( 'HUMTOT',  kfrom, kto, XQTOT   )
+  call Goto_model_1field( 'UT16',    kfrom, kto, XUENV   )
+  call Goto_model_1field( 'VT16',    kfrom, kto, XVENV   )
+  call Goto_model_1field( 'TEMPENV', kfrom, kto, XTENV   )
+  call Goto_model_1field( 'PRESENV', kfrom, kto, XPENV   )
+  call Goto_model_1field( 'HUMENV',  kfrom, kto, XQENV   )
+  call Goto_model_1field( 'UT17',    kfrom, kto, XUBASIC )
+  call Goto_model_1field( 'VT17',    kfrom, kto, XVBASIC )
+  call Goto_model_1field( 'TEMPBAS', kfrom, kto, XTBASIC )
+  call Goto_model_1field( 'PRESBAS', kfrom, kto, XPBASIC )
+  call Goto_model_1field( 'HUMBAS',  kfrom, kto, XQBASIC )
+  call Goto_model_1field( 'VTDIS',   kfrom, kto, XVTDIS  )
 END IF
 !
-END IF !KFROM/=KTO
-!
 END SUBROUTINE FIELDLIST_GOTO_MODEL