Skip to content

Commit

Permalink
Merge pull request #29 from NOAA-EMC/develop
Browse files Browse the repository at this point in the history
cmeps integration changes (NOAA-EMC#55)
  • Loading branch information
DeniseWorthen authored Apr 28, 2020
2 parents fb49539 + 82138ff commit 25cc1d5
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 56 deletions.
106 changes: 57 additions & 49 deletions src/module_EARTH_GRID_COMP.F90
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG)
!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.yaml", rc=rc)
call NUOPC_FieldDictionarySetup("fd_nems.yaml", rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
Expand Down Expand Up @@ -312,6 +312,17 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG)
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( &
Expand All @@ -323,6 +334,17 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG)
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( &
Expand All @@ -334,6 +356,17 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG)
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( &
Expand Down Expand Up @@ -367,6 +400,17 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG)
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( &
Expand Down Expand Up @@ -1282,6 +1326,17 @@ SUBROUTINE EARTH_REGISTER(EARTH_GRID_COMP,RC_REG)
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( &
Expand Down Expand Up @@ -3412,31 +3467,13 @@ subroutine SetModelServices(driver, rc)
line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out

#ifdef CMEPS
! get file suffix
call NUOPC_CompAttributeGet(driver, name="inst_suffix", isPresent=isPresent, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out
if (isPresent) then
call NUOPC_CompAttributeGet(driver, name="inst_suffix", value=inst_suffix, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out
else
inst_suffix = ""
endif
inst_suffix = ""

! obtain driver attributes (for CMEPS)
call ReadAttributes(driver, config, "DRIVER_attributes::", formatprint=.true., rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out

call ReadAttributes(driver, config, "FLDS_attributes::", formatprint=.true., rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out

call ReadAttributes(driver, config, "CLOCK_attributes::", formatprint=.true., rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out

call ReadAttributes(driver, config, "ALLCOMP_attributes::", formatprint=.true., rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=trim(name)//":"//__FILE__)) return ! bail out
Expand Down Expand Up @@ -4664,35 +4701,6 @@ subroutine AddAttributes(gcomp, driver, config, compid, compname, inst_suffix, r
file=__FILE__)) &
return ! bail out

call ReadAttributes(gcomp, config, trim(compname)//"_modelio"//trim(inst_suffix)//"::", rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
return ! bail out

call ReadAttributes(gcomp, config, "CLOCK_attributes::", rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
return ! bail out

!------
! Add mediator specific attributes
!------
if (compname == 'MED') then
call ReadAttributes(gcomp, config, "MED_history_attributes::", rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
return ! bail out

call ReadAttributes(gcomp, config, "FLDS_attributes::", rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
return ! bail out
endif

!------
! Add multi-instance specific attributes
!------
Expand Down
14 changes: 7 additions & 7 deletions src/module_MEDIATOR.F90
Original file line number Diff line number Diff line change
Expand Up @@ -561,10 +561,10 @@ subroutine SetServices(gcomp, rc)


! Fields from ATM
call fld_list_add(fldsFrAtm,"mean_zonal_moment_flx" , "cannot provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_merid_moment_flx" , "will provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_sensi_heat_flx" , "will provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_laten_heat_flx" , "will provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_zonal_moment_flx_atm" , "cannot provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_merid_moment_flx_atm" , "will provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_sensi_heat_flx" , "will provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_laten_heat_flx" , "will provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_down_lw_flx" , "will provide","conservefrac")
! call fld_list_add(fldsFrAtm,"mean_up_lw_flx" , "will provide","conservefrac")
call fld_list_add(fldsFrAtm,"mean_down_sw_flx" , "will provide","conservefrac")
Expand Down Expand Up @@ -5522,7 +5522,7 @@ subroutine MedPhase_prep_ocn(gcomp, rc)
customwgt = wgtm01 / const_lhvap
call fieldBundle_FieldMerge(is_local%wrap%FBforOcn , 'mean_evap_rate' , &
is_local%wrap%FBAccumAtmOcn, 'mean_evap_rate_atm_into_ocn', atmwgt1, &
is_local%wrap%FBAtm_o , 'mean_laten_heat_flx' , customwgt, &
is_local%wrap%FBAtm_o , 'mean_laten_heat_flx' , customwgt, &
rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=__FILE__)) return ! bail out
Expand Down Expand Up @@ -5616,15 +5616,15 @@ subroutine MedPhase_prep_ocn(gcomp, rc)
call fieldBundle_FieldMerge(is_local%wrap%FBforOcn , 'mean_zonal_moment_flx' , &
is_local%wrap%FBAccumAtmOcn, 'stress_on_air_ocn_zonal', atmwgt1, &
is_local%wrap%FBIce_o , 'stress_on_ocn_ice_zonal', icewgt1, &
is_local%wrap%FBAtm_o , 'mean_zonal_moment_flx' , wgtm01, &
is_local%wrap%FBAtm_o , 'mean_zonal_moment_flx_atm' , wgtm01, &
rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=__FILE__)) return ! bail out

call fieldBundle_FieldMerge(is_local%wrap%FBforOcn , 'mean_merid_moment_flx' , &
is_local%wrap%FBAccumAtmOcn, 'stress_on_air_ocn_merid', atmwgt1, &
is_local%wrap%FBIce_o , 'stress_on_ocn_ice_merid', icewgt1, &
is_local%wrap%FBAtm_o , 'mean_merid_moment_flx' , wgtm01, &
is_local%wrap%FBAtm_o , 'mean_merid_moment_flx_atm' , wgtm01, &
rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, file=__FILE__)) return ! bail out
Expand Down

0 comments on commit 25cc1d5

Please sign in to comment.