diff --git a/src/module_EARTH_GRID_COMP.F90 b/src/module_EARTH_GRID_COMP.F90 index 2e5b85c3..e3833585 100644 --- a/src/module_EARTH_GRID_COMP.F90 +++ b/src/module_EARTH_GRID_COMP.F90 @@ -33,9 +33,9 @@ MODULE module_EARTH_GRID_COMP ! | | | ! | | (CICE, etc.) ! | | -! | (MOM5, MOM6, HYCOM, POM, etc.) +! | (MOM6, HYCOM, etc.) ! | -! CORE component (GSM, NMM, FV3, etc.) +! CORE component (FV3, etc.) ! !----------------------------------------------------------------------- ! @@ -50,21 +50,6 @@ MODULE module_EARTH_GRID_COMP Driver_label_Finalize => label_Finalize use NUOPC_Connector, only: conSS => SetServices ! - Handle build time ATM options: -#ifdef FRONT_SATM - use FRONT_SATM, only: SATM_SS => SetServices -#endif -#ifdef FRONT_XATM - use FRONT_XATM, only: XATM_SS => SetServices -#endif -#ifdef FRONT_DATAWAM - use FRONT_DATAWAM, only: DATAWAM_SS=> SetServices -#endif -#ifdef FRONT_GSM - use FRONT_GSM, only: GSM_SS => SetServices -#endif -#ifdef FRONT_NMMB - use FRONT_NMMB, only: NMMB_SS => SetServices -#endif #ifdef FRONT_FV3 use FRONT_FV3, only: FV3_SS => SetServices #endif @@ -72,54 +57,21 @@ MODULE module_EARTH_GRID_COMP use FRONT_DATM, only: DATM_SS => SetServices #endif ! - Handle build time OCN options: -#ifdef FRONT_SOCN - use FRONT_SOCN, only: SOCN_SS => SetServices -#endif -#ifdef FRONT_XOCN - use FRONT_XOCN, only: XOCN_SS => SetServices -#endif #ifdef FRONT_HYCOM use FRONT_HYCOM, only: HYCOM_SS => SetServices #endif -#ifdef FRONT_MOM5 - use FRONT_MOM5, only: MOM5_SS => SetServices -#endif #ifdef FRONT_MOM6 use FRONT_MOM6, only: MOM6_SS => SetServices -#endif -#ifdef FRONT_POM - use FRONT_POM, only: POM_SS => SetServices #endif ! - Handle build time ICE options: -#ifdef FRONT_SICE - use FRONT_SICE, only: SICE_SS => SetServices -#endif -#ifdef FRONT_XICE - use FRONT_XICE, only: XICE_SS => SetServices -#endif -#ifdef FRONT_CICE - use FRONT_CICE, only: CICE_SS => SetServices -#endif #ifdef FRONT_CICE6 use FRONT_CICE6, only: CICE6_SS => SetServices #endif ! - Handle build time WAV options: -#ifdef FRONT_SWAV - use FRONT_SWAV, only: SWAV_SS => SetServices -#endif -#ifdef FRONT_XWAV - use FRONT_XWAV, only: XWAV_SS => SetServices -#endif #ifdef FRONT_WW3 use FRONT_WW3, only: WW3_SS => SetServices #endif ! - Handle build time LND options: -#ifdef FRONT_SLND - use FRONT_SLND, only: SLND_SS => SetServices -#endif -#ifdef FRONT_XLND - use FRONT_XLND, only: XLND_SS => SetServices -#endif #ifdef FRONT_NOAH use FRONT_NOAH, only: NOAH_SS => SetServices #endif @@ -127,38 +79,17 @@ MODULE module_EARTH_GRID_COMP use FRONT_LIS, only: LIS_SS => SetServices #endif ! - Handle build time IPM options: -#ifdef FRONT_SIPM - use FRONT_SIPM, only: SIPM_SS => SetServices -#endif -#ifdef FRONT_XIPM - use FRONT_XIPM, only: XIPM_SS => SetServices -#endif #ifdef FRONT_IPE use FRONT_IPE, only: IPE_SS => SetServices #endif -#ifdef FRONT_DATAIPE - use FRONT_DATAIPE, only: DATAIPE_SS=> SetServices -#endif - ! - Handle build time HYD options: -#ifdef FRONT_SHYD - use FRONT_SHYD, only: SHYD_SS => SetServices -#endif -#ifdef FRONT_XHYD - use FRONT_XHYD, only: XHYD_SS => SetServices -#endif -#ifdef FRONT_WRFHYDRO - use FRONT_WRFHYDRO, only: WRFHYDRO_SS => SetServices -#endif + ! - Handle build time GSDCHEM options: #ifdef FRONT_GSDCHEM use FRONT_GSDCHEM, only: GSDCHEM_SS => SetServices #endif ! - Mediator -#ifdef CMEPS - use MED, only : MED_SS => SetServices -#else - use module_MEDIATOR, only: MED_SS => SetServices +#ifdef FRONT_CMEPS + use MED, only: MED_SS => SetServices #endif - use module_MEDSpaceWeather, only: MEDSW_SS => SetServices USE module_EARTH_INTERNAL_STATE,ONLY: EARTH_INTERNAL_STATE & ,WRAP_EARTH_INTERNAL_STATE @@ -256,7 +187,7 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG) call NUOPC_CompSpecialize(EARTH_GRID_COMP, & specLabel=Driver_label_SetRunClock, specRoutine=NUOPC_NoOp, rc=RC_REG) ESMF_ERR_RETURN(RC,RC_REG) -#endif +#endif #if 0 call NUOPC_CompSpecialize(EARTH_GRID_COMP, & specLabel=Driver_label_Finalize, specRoutine=Finalize, & @@ -270,3108 +201,19 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG) ESMF_ERR_RETURN(RC,RC_REG) ! create, open, and set the config - config = ESMF_ConfigCreate(rc=RC) - ESMF_ERR_RETURN(RC,RC_REG) - call ESMF_ConfigLoadFile(config, "nems.configure", rc=RC) - ESMF_ERR_RETURN(RC,RC_REG) - call ESMF_GridCompSet(EARTH_GRID_COMP, config=config, rc=RC) - ESMF_ERR_RETURN(RC,RC_REG) - - ! Added the following Field Dictionary block to the EARTH component level - ! in order to prevent different dictionary definitions in the lower - ! components. Doing this here isn't without problems because it - ! potentially makes the components (ATM & OCN) depend on this environment, - ! which lowers their transferability to other coupled systems. However, - ! extending the Field Dictionary is a temporary solution anyway (see the - ! TODO: below), so this isn't going to stay for ever this way. - - ! Extend the NUOPC Field Dictionary to hold required entries. - !TODO: In the long run this section will not be needed when we have - !TODO: absorbed the needed standard names into the default dictionary. - ! -> 20 fields identified as exports by the GSM component -#ifdef CMEPS - call NUOPC_FieldDictionarySetup("fd_nems.yaml", rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out -#else - if (.not.NUOPC_FieldDictionaryHasEntry( & - "air_density_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="air_density_height_lowest", & - canonicalUnits="kg m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_zonal_moment_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_zonal_moment_flx", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_zonal_moment_flx_atm")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_zonal_moment_flx_atm", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_merid_moment_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_merid_moment_flx", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_merid_moment_flx_atm")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_merid_moment_flx_atm", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_sensi_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sensi_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_sensi_heat_flx_atm")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sensi_heat_flx_atm", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_sensi_heat_flx_atm_into_ice")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sensi_heat_flx_atm_into_ice", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_sensi_heat_flx_atm_into_ocn")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sensi_heat_flx_atm_into_ocn", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_laten_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_laten_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_laten_heat_flx_atm")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_laten_heat_flx_atm", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_laten_heat_flx_atm_into_ice")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_laten_heat_flx_atm_into_ice", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_laten_heat_flx_atm_into_ocn")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_laten_heat_flx_atm_into_ocn", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_down_lw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_down_lw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_down_sw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_down_sw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_fprec_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_fprec_rate", & - canonicalUnits="kg s m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_prec_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_prec_rate", & - canonicalUnits="kg s m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_evap_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_evap_rate", & - canonicalUnits="kg s m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_evap_rate_atm_into_ice")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_evap_rate_atm_into_ice", & - canonicalUnits="kg s m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_evap_rate_atm_into_ocn")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_evap_rate_atm_into_ocn", & - canonicalUnits="kg s m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_zonal_moment_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_zonal_moment_flx", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_merid_moment_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_merid_moment_flx", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_sensi_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_sensi_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_laten_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_laten_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_down_lw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_down_lw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_down_sw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_down_sw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_temp_height2m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_temp_height2m", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_spec_humid_height2m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_spec_humid_height2m", & - canonicalUnits="kg kg-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_u_wind_height10m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_u_wind_height10m", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_v_wind_height10m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_v_wind_height10m", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_zonal_wind_height10m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_zonal_wind_height10m", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_merid_wind_height10m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_merid_wind_height10m", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - !For MOM6 and WW3 variables to match: - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_partitioned_stokes_drift_1")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_partitioned_stokes_drift_1", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_partitioned_stokes_drift_1")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_partitioned_stokes_drift_1", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_partitioned_stokes_drift_2")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_partitioned_stokes_drift_2", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_partitioned_stokes_drift_2")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_partitioned_stokes_drift_2", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_partitioned_stokes_drift_3")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_partitioned_stokes_drift_3", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_partitioned_stokes_drift_3")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_partitioned_stokes_drift_3", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - ! end of MOM6 and WW3 variables to match - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_temp_height_surface")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_temp_height_surface", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_pres_height_surface")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_pres_height_surface", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_surface_height")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_surface_height", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - ! -> Additional fields identified as needed by MOM5 and others... - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_down_sw_vis_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_down_sw_vis_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_down_sw_vis_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_down_sw_vis_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_down_sw_ir_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_down_sw_ir_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_down_sw_ir_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_down_sw_ir_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_down_sw_vis_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_down_sw_vis_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_down_sw_vis_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_down_sw_vis_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_down_sw_ir_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_down_sw_ir_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_down_sw_ir_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_down_sw_ir_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_net_sw_vis_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_net_sw_vis_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_net_sw_vis_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_net_sw_vis_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_net_sw_ir_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_net_sw_ir_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_net_sw_ir_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_net_sw_ir_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_net_sw_vis_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_net_sw_vis_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_net_sw_vis_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_net_sw_vis_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_net_sw_ir_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_net_sw_ir_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_net_sw_ir_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_net_sw_ir_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_salt_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_salt_rate", & - canonicalUnits="kg psu m-2 s", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_runoff_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_runoff_rate", & - canonicalUnits="kg m-2 s", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_calving_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_calving_rate", & - canonicalUnits="kg m-2 s", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_runoff_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_runoff_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_calving_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_calving_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "ice_fraction")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="ice_fraction", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_sw_pen_to_ocn")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sw_pen_to_ocn", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_up_lw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_up_lw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "openwater_frac_in_atm")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="openwater_frac_in_atm", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mass_of_overlying_sea_ice")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mass_of_overlying_sea_ice", & - canonicalUnits="kg", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "s_surf")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="s_surf", & - canonicalUnits="psu", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "freezing_melting_potential")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="freezing_melting_potential", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - ! following two added for export from MOM6 - if (.not. NUOPC_FieldDictionaryHasEntry( & - "accum_heat_frazil")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="accum_heat_frazil", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_melt_potential")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_melt_potential", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "u_surf")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="u_surf", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "v_surf")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="v_surf", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_lev")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_lev", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "wind_stress_zonal")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wind_stress_zonal", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "wind_stress_merid")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wind_stress_merid", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "ocn_current_zonal")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="ocn_current_zonal", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "ocn_current_merid")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="ocn_current_merid", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "ocn_current_idir")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="ocn_current_idir", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "ocn_current_jdir")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="ocn_current_jdir", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_surface_slope_zonal")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_surface_slope_zonal", & - canonicalUnits="m m-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_surface_slope_merid")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_surface_slope_merid", & - canonicalUnits="m m-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_surface_slope_zonal")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_surface_slope_zonal", & - canonicalUnits="m m-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_surface_slope_merid")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_surface_slope_merid", & - canonicalUnits="m m-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_air_ice_zonal")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_air_ice_zonal", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_air_ice_merid")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_air_ice_merid", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_air_ocn_zonal")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_air_ocn_zonal", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_air_ocn_merid")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_air_ocn_merid", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_ocn_ice_zonal")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_ocn_ice_zonal", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_ocn_ice_merid")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_ocn_ice_merid", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_ocn_ice_idir")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_ocn_ice_idir", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "stress_on_ocn_ice_jdir")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="stress_on_ocn_ice_jdir", & - canonicalUnits="N m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mixed_layer_depth")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mixed_layer_depth", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_net_lw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_net_lw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_net_lw_flx_atm")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_net_lw_flx_atm", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_net_sw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_net_sw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_up_lw_flx_ice")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_up_lw_flx_ice", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_up_lw_flx_ocn")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_up_lw_flx_ocn", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_net_lw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_net_lw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_net_sw_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_net_sw_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_sw_pen_to_ocn_vis_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sw_pen_to_ocn_vis_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_sw_pen_to_ocn_vis_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sw_pen_to_ocn_vis_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_sw_pen_to_ocn_ir_dir_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sw_pen_to_ocn_ir_dir_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_sw_pen_to_ocn_ir_dif_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sw_pen_to_ocn_ir_dif_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ir_dir_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ir_dir_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ir_dif_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ir_dif_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_vis_dir_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_vis_dir_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_vis_dif_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_vis_dif_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ocn_ir_dir_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ocn_ir_dir_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ocn_ir_dif_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ocn_ir_dif_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ocn_vis_dir_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ocn_vis_dir_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ocn_vis_dif_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ocn_vis_dif_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ice_ir_dir_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ice_ir_dir_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ice_ir_dif_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ice_ir_dif_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ice_vis_dir_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ice_vis_dir_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_ice_vis_dif_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_ice_vis_dif_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_land_sea_mask")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_land_sea_mask", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_temp_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_temp_height_lowest", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_spec_humid_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_spec_humid_height_lowest", & - canonicalUnits="kg kg-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "humidity_2m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="humidity_2m", & - canonicalUnits="kg kg-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_zonal_wind_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_zonal_wind_height_lowest", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_merid_wind_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_merid_wind_height_lowest", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_pres_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_pres_height_lowest", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "inst_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_height_lowest", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "ocean_mask")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="ocean_mask", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "ice_mask")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="ice_mask", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "land_mask")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="land_mask", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - ! special HYCOM exports - if (.not. NUOPC_FieldDictionaryHasEntry( & - "surface_downward_eastward_stress")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_downward_eastward_stress", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "surface_downward_northward_stress")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_downward_northward_stress", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "wind_speed_height10m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wind_speed_height10m", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "wind_speed_squared_10m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wind_speed_squared_10m", & - canonicalUnits="m2 s-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "friction_speed")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="friction_speed", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_lat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_lat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_sens_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sens_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "water_flux_into_sea_water")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="water_flux_into_sea_water", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "frozen_water_flux_into_sea_water")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="frozen_water_flux_into_sea_water", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "surface_temperature")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_temperature", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "air_surface_temperature")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="air_surface_temperature", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "temperature_2m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="temperature_2m", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "upward_sea_ice_basal_available_heat_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="upward_sea_ice_basal_available_heat_flux", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - ! special HYCOM imports - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_ice_area_fraction")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_ice_area_fraction", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "downward_x_stress_at_sea_ice_base")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="downward_x_stress_at_sea_ice_base", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "downward_y_stress_at_sea_ice_base")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="downward_y_stress_at_sea_ice_base", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "downward_sea_ice_basal_solar_heat_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="downward_sea_ice_basal_solar_heat_flux", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "upward_sea_ice_basal_heat_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="upward_sea_ice_basal_heat_flux", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "downward_sea_ice_basal_salt_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="downward_sea_ice_basal_salt_flux", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "downward_sea_ice_basal_water_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="downward_sea_ice_basal_water_flux", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_ice_surface_temperature")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_ice_surface_temperature", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_ice_temperature")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_ice_temperature", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_ice_thickness")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_ice_thickness", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_ice_x_velocity")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_ice_x_velocity", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_ice_y_velocity")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_ice_y_velocity", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not. NUOPC_FieldDictionaryHasEntry( & - "net_heat_flx_to_ocn")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="net_heat_flx_to_ocn", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_fresh_water_to_ocean_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_fresh_water_to_ocean_rate", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_ice_volume")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_ice_volume", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "mean_snow_volume")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_snow_volume", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - !Mass flux of liquid runoff - if (.not. NUOPC_FieldDictionaryHasEntry( & - "Foxx_rofl")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="Foxx_rofl", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - !Mass flux of frozen runoff - if (.not. NUOPC_FieldDictionaryHasEntry( & - "Foxx_rofi")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="Foxx_rofi", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - !Ocean surface boundary layer depth - if (.not. NUOPC_FieldDictionaryHasEntry( & - "So_bldepth")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="So_bldepth", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - ! Synonyms for HYCOM fields - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"surface_downward_eastward_stress",& - "mean_zonal_moment_flx "/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"surface_downward_northward_stress",& - "mean_merid_moment_flx "/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"mean_lat_flx ",& - "mean_laten_heat_flx"/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"mean_sens_flx ",& - "mean_sensi_heat_flx"/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - - ! DCR - Fields added for Regional Application - ! ATM-OCN-ICE-LND-HYD - ! List of exisitng fields - ! ice_mask, inst_down_lw_flx, inst_down_sw_flx, inst_height_lowest, - ! inst_merid_wind_height_lowest, inst_pres_height_lowest, - ! inst_pres_height_surface, inst_spec_humid_height_lowest, - ! inst_temp_height_lowest, inst_temp_height_surface, - ! inst_zonal_wind_height_lowest, mean_down_lw_flx, mean_down_sw_flx, - ! mean_fprec_rate, mean_laten_heat_flx, mean_net_lw_flx, mean_net_sw_flx, - ! mean_prec_rate, mean_sensi_heat_flx - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "aerodynamic_roughness_length")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="aerodynamic_roughness_length", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "canopy_moisture_storage")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="canopy_moisture_storage", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "carbon_dioxide")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="carbon_dioxide", & - canonicalUnits="ppmv", & ! Units must be clarified - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "cosine_zenith_angle")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="cosine_zenith_angle", & - canonicalUnits="degree", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "exchange_coefficient_heat")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="exchange_coefficient_heat", & - canonicalUnits="W m-2 K-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "exchange_coefficient_heat_height2m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="exchange_coefficient_heat_height2m", & - canonicalUnits="W m-2 K-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "exchange_coefficient_moisture_height2m")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="exchange_coefficient_moisture_height2m", & - canonicalUnits="kg m-2 s-1 Pa-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_wind_speed_height_lowest")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_wind_speed_height_lowest", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_cprec_rate")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_cprec_rate", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_grnd_sensi_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_grnd_sensi_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_laten_heat_flx_kinematic")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_laten_heat_flx_kinematic", & - canonicalUnits="Kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_surface_albedo")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_surface_albedo", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_surface_skin_temp")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_surface_skin_temp", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mixing_ratio_surface")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mixing_ratio_surface", & - canonicalUnits="kg kg-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "root_moisture")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="root_moisture", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "saturated_mixing_ratio")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="saturated_mixing_ratio", & - canonicalUnits="kg kg-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "surface_snow_area_fraction")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_snow_area_fraction", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "surface_snow_thickness")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_snow_thickness", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "surface_snow_melt_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_snow_melt_flux", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "liquid_water_content_of_surface_snow")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="liquid_water_content_of_surface_snow", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "soil_depth")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="soil_depth", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "soil_hydraulic_conductivity_at_saturation")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="soil_hydraulic_conductivity_at_saturation", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "moisture_content_of_soil_layer")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="moisture_content_of_soil_layer", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "moisture_content_of_soil_layer_1")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="moisture_content_of_soil_layer_1", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "moisture_content_of_soil_layer_2")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="moisture_content_of_soil_layer_2", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "moisture_content_of_soil_layer_3")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="moisture_content_of_soil_layer_3", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "moisture_content_of_soil_layer_4")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="moisture_content_of_soil_layer_4", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "soil_porosity")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="soil_porosity", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "temperature_of_soil_layer")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="temperature_of_soil_layer", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "temperature_of_soil_layer_1")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="temperature_of_soil_layer_1", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "temperature_of_soil_layer_2")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="temperature_of_soil_layer_2", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "temperature_of_soil_layer_3")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="temperature_of_soil_layer_3", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "temperature_of_soil_layer_4")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="temperature_of_soil_layer_4", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "soil_temperature_bottom")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="soil_temperature_bottom", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "soil_type")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="soil_type", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "soil_moisture_content")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="soil_moisture_content", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "subsurface_basin_mask")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="subsurface_basin_mask", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "subsurface_runoff_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="subsurface_runoff_flux", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "surface_microwave_emissivity")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_microwave_emissivity", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "surface_runoff_flux")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_runoff_flux", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "vegetation_type")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="vegetation_type", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "volume_fraction_of_frozen_water_in_soil")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="volume_fraction_of_frozen_water_in_soil", & - canonicalUnits="m3 m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "liquid_water_content_of_soil_layer")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="liquid_water_content_of_soil_layer", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "liquid_water_content_of_soil_layer_1")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="liquid_water_content_of_soil_layer_1", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "liquid_water_content_of_soil_layer_2")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="liquid_water_content_of_soil_layer_2", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "liquid_water_content_of_soil_layer_3")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="liquid_water_content_of_soil_layer_3", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "liquid_water_content_of_soil_layer_4")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="liquid_water_content_of_soil_layer_4", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "volume_fraction_of_total_water_in_soil")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="volume_fraction_of_total_water_in_soil", & - canonicalUnits="m3 m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "volume_fraction_of_total_water_in_soil_at_critical_point")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="volume_fraction_of_total_water_in_soil_at_critical_point", & - canonicalUnits="m3 m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "volume_fraction_of_total_water_in_soil_at_field_capacity")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="volume_fraction_of_total_water_in_soil_at_field_capacity", & - canonicalUnits="m3 m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "volume_fraction_of_total_water_in_soil_at_wilting_point")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="volume_fraction_of_total_water_in_soil_at_wilting_point", & - canonicalUnits="m3 m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not.NUOPC_FieldDictionaryHasEntry( & - "water_surface_height_above_reference_datum")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="water_surface_height_above_reference_datum", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_sensi_heat_flx_atm_into_lnd")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_sensi_heat_flx_atm_into_lnd", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "mean_laten_heat_flx_atm_into_lnd")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="mean_laten_heat_flx_atm_into_lnd", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - ! Fields from and to WW3 - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_wind_at_10m_height")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_wind_at_10m_height", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"eastward_wind_at_10m_height",& - "inst_zonal_wind_height10m "/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_wind_at_10m_height")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_wind_at_10m_height", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"northward_wind_at_10m_height",& - "inst_merid_wind_height10m "/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - - if (.not. NUOPC_FieldDictionaryHasEntry( & - "sea_ice_concentration")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="sea_ice_concentration", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"ice_fraction ",& - "sea_ice_concentration"/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - - !For MOM6 and WW3 variables to match: - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"surface_eastward_sea_water_velocity",& - "ocn_current_zonal "/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - call NUOPC_FieldDictionarySetSyno( & - standardNames = (/"surface_northward_sea_water_velocity",& - "ocn_current_merid "/), rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_stokes_drift_current")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_stokes_drift_current", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_stokes_drift_current")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_stokes_drift_current", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_wave_bottom_current")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_wave_bottom_current", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_wave_bottom_current")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_wave_bottom_current", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "wave_bottom_current_radian_frequency")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wave_bottom_current_radian_frequency", & - canonicalUnits="rad s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_wave_radiation_stress_gradient")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_wave_radiation_stress_gradient", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_wave_radiation_stress_gradient")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_wave_radiation_stress_gradient", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_wave_radiation_stress")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_wave_radiation_stress", & - canonicalUnits="N m-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_northward_wave_radiation_stress")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_northward_wave_radiation_stress", & - canonicalUnits="N m-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_wave_radiation_stress")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_wave_radiation_stress", & - canonicalUnits="N m-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "wave_induced_charnock_parameter")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wave_induced_charnock_parameter", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "wave_z0_roughness_length")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wave_z0_roughness_length", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "wave_bottom_current_period")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="wave_bottom_current_period", & - canonicalUnits="s", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - - ! Fields from WAM to IPE - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "northward_wind_neutral")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="northward_wind_neutral", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "eastward_wind_neutral")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="eastward_wind_neutral", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "upward_wind_neutral")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="upward_wind_neutral", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "temp_neutral")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="temp_neutral", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "O_Density")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="O_Density", & - canonicalUnits="m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "O2_Density")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="O2_Density", & - canonicalUnits="m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "N2_Density")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="N2_Density", & - canonicalUnits="m-3", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "height")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="height", & - canonicalUnits="km", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - ! Chemistry fields - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_pres_interface")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_pres_interface", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_pres_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_pres_levels", & - canonicalUnits="Pa", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_geop_interface")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_geop_interface", & - canonicalUnits="m2 s-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_geop_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_geop_levels", & - canonicalUnits="m2 s-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_temp_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_temp_levels", & - canonicalUnits="K", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_zonal_wind_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_zonal_wind_levels", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_merid_wind_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_merid_wind_levels", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_omega_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_omega_levels", & - canonicalUnits="Pa s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_tracer_mass_frac")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_tracer_mass_frac", & - canonicalUnits="kg kg-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_tracer_up_surface_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_tracer_up_surface_flx", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_tracer_down_surface_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_tracer_down_surface_flx", & - canonicalUnits="kg m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_tracer_clmn_mass_dens")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_tracer_clmn_mass_dens", & - canonicalUnits="g m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_tracer_anth_biom_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_tracer_anth_biom_flx", & - canonicalUnits="ug m-2 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_pbl_height")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_pbl_height", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "surface_cell_area")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="surface_cell_area", & - canonicalUnits="m2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_convective_rainfall_amount")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_convective_rainfall_amount", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_exchange_coefficient_heat_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_exchange_coefficient_heat_levels", & - canonicalUnits="W m-2 K-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_spec_humid_conv_tendency_levels")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_spec_humid_conv_tendency_levels", & - canonicalUnits="kg kg-1 s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_friction_velocity")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_friction_velocity", & - canonicalUnits="m s-1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_rainfall_amount")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_rainfall_amount", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_soil_moisture_content")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_soil_moisture_content", & - canonicalUnits="kg m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_up_sensi_heat_flx")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_up_sensi_heat_flx", & - canonicalUnits="W m-2", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_lwe_snow_thickness")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_lwe_snow_thickness", & - canonicalUnits="m", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_vegetation_area_frac")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_vegetation_area_frac", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - if (.not.NUOPC_FieldDictionaryHasEntry( & - "inst_surface_roughness")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="inst_surface_roughness", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - - ! Dummy fields + config = ESMF_ConfigCreate(rc=RC) + ESMF_ERR_RETURN(RC,RC_REG) + call ESMF_ConfigLoadFile(config, "nems.configure", rc=RC) + ESMF_ERR_RETURN(RC,RC_REG) + call ESMF_GridCompSet(EARTH_GRID_COMP, config=config, rc=RC) + ESMF_ERR_RETURN(RC,RC_REG) - if (.not. NUOPC_FieldDictionaryHasEntry( & - "dummyfield")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="dummyfield", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "dummyfield1")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="dummyfield1", & - canonicalUnits="1", & - rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, & - file=__FILE__)) & - return ! bail out - endif - if (.not. NUOPC_FieldDictionaryHasEntry( & - "dummyfield2")) then - call NUOPC_FieldDictionaryAddEntry( & - standardName="dummyfield2", & - canonicalUnits="1", & - rc=rc) + ! Load the required entries from the fd_nems.yaml file + call NUOPC_FieldDictionarySetup("fd_nems.yaml", rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, & file=__FILE__)) & return ! bail out - endif -#endif !----------------------------------------------------------------------- ! @@ -3529,72 +371,7 @@ subroutine SetModelServices(driver, rc) petList(j-petListBounds(1)+1) = j ! PETs are 0 based enddo - if (trim(model) == "satm") then -#ifdef FRONT_SATM - call NUOPC_DriverAddComp(driver, trim(prefix), SATM_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "xatm") then -#ifdef FRONT_XATM - call NUOPC_DriverAddComp(driver, trim(prefix), XATM_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "datawam") then -#ifdef FRONT_DATAWAM - call NUOPC_DriverAddComp(driver, trim(prefix), DATAWAM_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "gsm") then -#ifdef FRONT_GSM - call NUOPC_DriverAddComp(driver, trim(prefix), GSM_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "nmmb") then -#ifdef FRONT_NMMB - call NUOPC_DriverAddComp(driver, trim(prefix), NMMB_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "fv3") then + if (trim(model) == "fv3") then #ifdef FRONT_FV3 call NUOPC_DriverAddComp(driver, trim(prefix), FV3_SS, & petList=petList, comp=comp, rc=rc) @@ -3619,32 +396,6 @@ subroutine SetModelServices(driver, rc) call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & file=__FILE__, rcToReturn=rc) return ! bail out -#endif - elseif (trim(model) == "socn") then -#ifdef FRONT_SOCN - call NUOPC_DriverAddComp(driver, trim(prefix), SOCN_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "xocn") then -#ifdef FRONT_XOCN - call NUOPC_DriverAddComp(driver, trim(prefix), XOCN_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out #endif elseif (trim(model) == "hycom") then #ifdef FRONT_HYCOM @@ -3658,19 +409,6 @@ subroutine SetModelServices(driver, rc) call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & file=__FILE__, rcToReturn=rc) return ! bail out -#endif - elseif (trim(model) == "mom5") then -#ifdef FRONT_MOM5 - call NUOPC_DriverAddComp(driver, trim(prefix), MOM5_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out #endif elseif (trim(model) == "mom6") then #ifdef FRONT_MOM6 @@ -3684,58 +422,6 @@ subroutine SetModelServices(driver, rc) call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & file=__FILE__, rcToReturn=rc) return ! bail out -#endif - elseif (trim(model) == "pom") then -#ifdef FRONT_POM - call NUOPC_DriverAddComp(driver, trim(prefix), POM_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "sice") then -#ifdef FRONT_SICE - call NUOPC_DriverAddComp(driver, trim(prefix), SICE_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "xice") then -#ifdef FRONT_XICE - call NUOPC_DriverAddComp(driver, trim(prefix), XICE_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "cice") then -#ifdef FRONT_CICE - call NUOPC_DriverAddComp(driver, trim(prefix), CICE_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out #endif elseif (trim(model) == "cice6") then #ifdef FRONT_CICE6 @@ -3749,32 +435,6 @@ subroutine SetModelServices(driver, rc) call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & file=__FILE__, rcToReturn=rc) return ! bail out -#endif - elseif (trim(model) == "swav") then -#ifdef FRONT_SWAV - call NUOPC_DriverAddComp(driver, trim(prefix), SWAV_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "xwav") then -#ifdef FRONT_XWAV - call NUOPC_DriverAddComp(driver, trim(prefix), XWAV_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out #endif elseif (trim(model) == "ww3") then #ifdef FRONT_WW3 @@ -3788,32 +448,6 @@ subroutine SetModelServices(driver, rc) call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & file=__FILE__, rcToReturn=rc) return ! bail out -#endif - elseif (trim(model) == "slnd") then -#ifdef FRONT_SLND - call NUOPC_DriverAddComp(driver, trim(prefix), SLND_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "xlnd") then -#ifdef FRONT_XLND - call NUOPC_DriverAddComp(driver, trim(prefix), XLND_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out #endif elseif (trim(model) == "noah") then #ifdef FRONT_NOAH @@ -3840,97 +474,6 @@ subroutine SetModelServices(driver, rc) call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & file=__FILE__, rcToReturn=rc) return ! bail out -#endif - elseif (trim(model) == "sipm") then -#ifdef FRONT_SIPM - call NUOPC_DriverAddComp(driver, trim(prefix), SIPM_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "xipm") then -#ifdef FRONT_XIPM - call NUOPC_DriverAddComp(driver, trim(prefix), XIPM_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "ipe") then -#ifdef FRONT_IPE - call NUOPC_DriverAddComp(driver, trim(prefix), IPE_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "dataipe") then -#ifdef FRONT_DATAIPE - call NUOPC_DriverAddComp(driver, trim(prefix), DATAIPE_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "shyd") then -#ifdef FRONT_SHYD - call NUOPC_DriverAddComp(driver, trim(prefix), SHYD_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "xhyd") then -#ifdef FRONT_XHYD - call NUOPC_DriverAddComp(driver, trim(prefix), XHYD_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out -#endif - elseif (trim(model) == "wrfhydro") then -#ifdef FRONT_WRFHYDRO - call NUOPC_DriverAddComp(driver, trim(prefix), WRFHYDRO_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#else - write (msg, *) "Model '", trim(model), "' was requested, "// & - "but is not available in the executable!" - call ESMF_LogSetError(ESMF_RC_NOT_VALID, msg=msg, line=__LINE__, & - file=__FILE__, rcToReturn=rc) - return ! bail out #endif elseif (trim(model) == "gsdchem") then #ifdef FRONT_GSDCHEM @@ -3945,20 +488,14 @@ subroutine SetModelServices(driver, rc) file=__FILE__, rcToReturn=rc) return ! bail out #endif - ! - Two mediator choices currently built into NEMS from internal - elseif (trim(model) == "nems") then -#ifdef CMEPS + elseif (trim(model) == "cmeps") then +#ifdef FRONT_CMEPS med_id = i+1 -#endif call NUOPC_DriverAddComp(driver, trim(prefix), MED_SS, & petList=petList, comp=comp, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out - elseif (trim(model) == "spaceweather") then - call NUOPC_DriverAddComp(driver, trim(prefix), MEDSW_SS, & - petList=petList, comp=comp, rc=rc) - if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & - line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out +#endif else ! Error condition: unknown model requested write (msg, *) "The requested model '", trim(model), & @@ -3992,7 +529,7 @@ subroutine SetModelServices(driver, rc) call AddAttributes(comp, driver, config, i+1, trim(prefix), inst_suffix, rc=rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, & line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out -#endif +#endif enddo #if ESMF_VERSION_MAJOR < 8 @@ -4087,8 +624,8 @@ subroutine SetFromConfig(driver, mode, rc) character(len=ESMF_MAXSTR) :: msgString character(len=10) :: value - !can set to 'max' to recover intro/extro CurrGarbInfo for - !all connectors + !can set to 'max' to recover intro/extro CurrGarbInfo for + !all connectors character(len=10) :: defaultVerbosity = "0" !character(len=10) :: defaultVerbosity = "max" @@ -4318,7 +855,7 @@ subroutine SetFromConfig(driver, mode, rc) line=__LINE__, & file=__FILE__)) & return ! bail out - endif + endif ! clean-up deallocate(line)