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