Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to cmeps0.14.60 in ESCOMP #450

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
97ed1fe
addition of BLOM logic to key XML settings like CPL_SEQ_OPTION
mvertens May 25, 2023
1912caf
Merge commit '97ed1fe' into feature/add_blom_settings
mvertens May 25, 2023
6563613
Merge tag 'cmeps0.14.32' into feature/add_blom_settings
mvertens May 25, 2023
48c247f
made ogrid default for aoflux calculation - since xgrid crashes for f…
mvertens May 25, 2023
4140d54
Merge pull request #6 from mvertens/feature/add_blom_settings
mvertens May 26, 2023
4fffe1b
changes to have mediator compute dms fluxes
mvertens Jun 15, 2023
9d3b104
added BGC mode to DMS qualifier
Jun 16, 2023
abbcf7e
added more comments
Jun 16, 2023
1396644
fixed an issue in the PR
Jun 16, 2023
7defa6e
addressed issues in PR
Jun 19, 2023
37f203f
removed blank spaces
Jun 19, 2023
f134960
Merge pull request #9 from mvertens/feature/dms_flux_frmed
mvertens Jun 19, 2023
b199f43
addition of atm_ncpl for ww3dev
mvertens Jul 17, 2023
621620f
added comment suggest in PR review
mvertens Jul 17, 2023
0bc7dbf
Merge pull request #10 from mvertens/feature/ww3dev_udpate
mvertens Jul 17, 2023
e93174f
added to fields from ww3dev for mediator history output
mvertens Oct 12, 2023
a834c1f
changes needed to merge cime to latest changes
mvertens Oct 16, 2023
9e4773e
Merge branch 'feature/update_cmeps' into feature/new_flds_to_cmeps
mvertens Oct 16, 2023
be61af7
addressed issues in PR review
mvertens Oct 16, 2023
f3c5073
Merge pull request #12 from mvertens/feature/new_flds_to_cmeps
gold2718 Oct 24, 2023
205b8a9
made histaux_wav2med_file1_enabled an ALLCOMPS attribute that can be …
mvertens Oct 25, 2023
499a6e9
Merge branch 'noresm' into feature/new_flds_to_cmeps
mvertens Oct 25, 2023
052c47d
Merge pull request #13 from mvertens/feature/new_flds_to_cmeps
mvertens Dec 4, 2023
ae3e514
updates for new ww3 auxiliary swell fields
mvertens Dec 4, 2023
faf00ec
Merge branch 'noresm' into feature/averaging_for_partitions
mvertens Dec 4, 2023
fe91055
changes for new ww3dev auxiliary fiel
mvertens Dec 4, 2023
65f2eaf
updates for new averaging for fields sent to mediator from ww3dev for…
mvertens Dec 5, 2023
71bfe7a
updated comment
mvertens Dec 6, 2023
8a98342
removed duplicate <desc> fields
mvertens Dec 6, 2023
8213a0e
Merge pull request #14 from mvertens/feature/averaging_for_partitions
mvertens Dec 6, 2023
0c007a2
obtain 10m u,v from atm and pass it to ww3d
mvertens Jan 4, 2024
62f7692
export state to glc added to lnd2glc auxiliary file
mvertens Feb 19, 2024
2ff28de
Merge pull request #16 from mvertens/feature/pass_10mwind_to_ww3
gold2718 Feb 27, 2024
c87ad2f
Merge pull request #19 from mvertens/feature/new_lnd2glc_auxfile
mvertens Mar 8, 2024
b0434b4
removed changes introduced to compute dms fluxes in mediator
mvertens Mar 9, 2024
0b8d0fb
Merge branch 'main' into feature/back_out_dms_changes
mvertens Apr 10, 2024
88e32fd
more updates to cmeps
mvertens Apr 10, 2024
e2b453e
more updates to cmeps
mvertens Apr 10, 2024
f81d357
fix problems in prealpha_noresm testing
mvertens Apr 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 43 additions & 21 deletions cime_config/config_component_cesm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@
<file>env_run.xml</file>
<desc>
integer indicating maximum detail level to profile. This xml
variable is used to set the namelist variable
timing_detail_limit. This namelist variable is used by perf_mod
variable is used to set the config variable
timing_detail_limit. This config variable is used by perf_mod
(in $CIMEROOT/src/share/timing/perf_mod.F90) to turn timers off
and on depending on calls to the routine t_adj_detailf. If in the
code a statement appears like t_adj_detailf(+1), then the current
timer detail level is incremented by 1 and compared to the
time_detail_limit obtained from the namelist. If the limit is
time_detail_limit obtained from the config. If the limit is
exceeded then the timer is turned off.
</desc>
</entry>
Expand Down Expand Up @@ -102,7 +102,7 @@

<entry id="CCSM_BGC">
<type>char</type>
<valid_values>none,CO2A,CO2B,CO2C</valid_values>
<valid_values>none,CO2A,CO2B,CO2C,CO2C:DMS,CO2A:DMS</valid_values>
<default_value>none</default_value>
<values match="last">
<value compset="_CAM">CO2A</value>
Expand All @@ -113,31 +113,39 @@
<value compset="^OMIP_DATM%JRA.*_POP2%[^_]*ECO">CO2A</value>
<value compset="HIST.*_DATM.*_CLM">CO2A</value>
<value compset="SSP.*_DATM.*_CLM">CO2A</value>
<value compset="_BGC%BPRP">CO2C</value>
<value compset="_BGC%BDRD">CO2C</value>
<value compset="_BGC%CO2C:DMS">CO2C:DMS</value>
<value compset="_BGC%CO2A:DMS">CO2A:DMS</value>
<value compset="_BGC%DMS">DMS</value>
<value compset="HIST.*_DATM%(QIA|CRU)">CO2A</value>
<value compset="RCP.*_DATM%(QIA|CRU)" >CO2A</value>
<value compset="20TR_DATM%IAF.*_BLOM%ECO">CO2A</value>
<value compset="20TR_DATM%JRA.*_BLOM%ECO">CO2A</value>
<!-- The following two are here just for backwards compatibility -->
<value compset="_BGC%BPRP">CO2C</value>
<value compset="_BGC%BDRD">CO2C</value>
</values>
<group>run_coupling</group>
<file>env_run.xml</file>
<desc>Activates additional CO2-related fields to be exchanged between components. Possible values are:

CO2A: sets the driver namelist variable flds_co2a = .true.; this adds
CO2A: sets nuopc.runconfig variable flds_co2a = .true.; this adds
prognostic CO2 and diagnostic CO2 at the lowest model level to be sent from
the atmosphere to the land and ocean.

CO2B: sets the driver namelist variable flds_co2b = .true.; this adds
CO2B: sets nuopc.runconfig variable flds_co2b = .true.; this adds
prognostic CO2 and diagnostic CO2 at the lowest model level to be sent from
the atmosphere just to the land, and the surface upward flux of CO2 to be
sent from the land back to the atmosphere

CO2C: sets the driver namelist variable flds_co2c = .true.; this adds
CO2C: sets nuopc.runconfig variable flds_co2c = .true.; this adds
prognostic CO2 and diagnostic CO2 at the lowest model level to be sent from
the atmosphere to the land and ocean, and the surface upward flux of CO2
to be sent from the land and the open ocean back to the atmosphere.

The namelist variables flds_co2a, flds_co2b and flds_co2c are in the
namelist group cpl_flds_inparm.
DMS: sets nuopc.runconfig variable flds_dms_med = .true.; this adds
turns on the computation of DMS flux in the mediator and that flux is passed back to both the
ocean (if prognostic) and the atm (if prognostic)

</desc>
</entry>

Expand All @@ -164,7 +172,7 @@
<value compset="_MPAS" >hour</value>
</values>
<desc>Base period associated with NCPL coupling frequency.
This xml variable is only used to set the driver namelist variables,
This xml variable is only used to set the driver config variables,
atm_cpl_dt, lnd_cpl_dt, ocn_cpl_dt, ice_cpl_dt, glc_cpl_dt, rof_cpl_dt, wav_cpl_dt, and esp_dt.</desc>
</entry>

Expand All @@ -190,6 +198,7 @@
<!-- =================================================== -->
<value compset="_DATM.*_DICE.*_POP2">24</value>
<value compset="_DATM.*_DICE.*_MOM6">24</value>
<value compset="_DATM.*_DICE.*_BLOM">24</value>
<!-- TODO: currently a NUOPC runseqence cannot be generated with the ATM_NCPL < OCN_NCPL - as is the case -->
<!-- with the POP2 C compset run sequence - for now will set these to be the same as MOM6 -->
<!-- =================================================== -->
Expand All @@ -198,6 +207,7 @@
<value compset="_DATM.*_SLND.*_CICE.*_POP2">24</value>
<value compset="_DATM.*_SLND.*_CICE.*_POP2" grid="oi%tx0.1v3">144</value>
<value compset="_DATM.*_SLND.*_CICE.*_MOM6">24</value>
<value compset="_DATM.*_SLND.*_CICE.*_BLOM">24</value>
<value compset="_DATM.*_CICE.*_DOCN">24</value>
<!-- =================================================== -->
<!-- C/G compsets -->
Expand Down Expand Up @@ -236,15 +246,23 @@
<!-- TODO: why is this here? -->
<value compset="_DLND.*_CISM\d">1</value>
<!-- =================================================== -->
<!-- N compsets -->
<!-- High res BLOM -->
<!-- =================================================== -->
<value compset="_DATM.*_BLOM">24</value>
<value compset="_BLOM" grid="oi%tnx0.25v">48</value>
<!-- =================================================== -->
<!-- WW3DEV Testing -->
<!-- This can be used for testing but is incompatible with many -->
<!-- coupled compsets (e.g., 1/2 degree needs 96, higher-top models -->
<!-- often need shorter intervals). I think this section should -->
<!-- (eventually) be expanded with more entries for different -->
<!-- atmosphere (and ocean) configurations and resolutions. -->
<!-- =================================================== -->
<value compset="_WW3DEV" grid="w%w025">72</value>
</values>
<group>run_coupling</group>
<file>env_run.xml</file>
<desc>Number of atm coupling intervals per NCPL_BASE_PERIOD.
This is used to set the driver namelist atm_cpl_dt, equal to basedt/ATM_NCPL,
This is used to set the driver config atm_cpl_dt, equal to basedt/ATM_NCPL,
where basedt is equal to NCPL_BASE_PERIOD in seconds.</desc>
</entry>

Expand All @@ -257,7 +275,7 @@
<group>run_coupling</group>
<file>env_run.xml</file>
<desc>Number of land coupling intervals per NCPL_BASE_PERIOD.
This is used to set the driver namelist atm_cpl_dt, equal to basedt/LND_NCPL,
This is used to set the driver config atm_cpl_dt, equal to basedt/LND_NCPL,
where basedt is equal to NCPL_BASE_PERIOD in seconds.</desc>
</entry>

Expand All @@ -270,7 +288,7 @@
<group>run_coupling</group>
<file>env_run.xml</file>
<desc>Number of ice coupling intervals per NCPL_BASE_PERIOD.
This is used to set the driver namelist ice_cpl_dt, equal to basedt/ICE_NCPL
This is used to set the driver config ice_cpl_dt, equal to basedt/ICE_NCPL
where basedt is equal to NCPL_BASE_PERIOD in seconds.</desc>
</entry>

Expand All @@ -286,11 +304,13 @@
<value compset="_POP2" grid="oi%tx0.1v3">48</value>
<value compset="_DLND.*_CISM\d">1</value>
<value compset="_NEMO">24</value>
<value compset="_BLOM">24</value>
<value compset="_BLOM" grid="oi%tnx0.25v">48</value>
</values>
<group>run_coupling</group>
<file>env_run.xml</file>
<desc>Number of ocn coupling intervals per NCPL_BASE_PERIOD.
Thisn is used to set the driver namelist ocn_cpl_dt, equal to basedt/OCN_NCPL
Thisn is used to set the driver config ocn_cpl_dt, equal to basedt/OCN_NCPL
where basedt is equal to NCPL_BASE_PERIOD in seconds.</desc>
</entry>

Expand Down Expand Up @@ -336,19 +356,21 @@
<values match="last">
<value compset="_DATM.*_POP2.*_DROF" grid="oi%gx3v7">1</value>
<value compset="_DATM.*_MOM6.*_DROF" >$ATM_NCPL</value>
<value compset="_DATM.*_BLOM.*_DROF" >$ATM_NCPL</value>
<value compset="_DATM.*_DOCN%SOM" >$ATM_NCPL</value>
<value compset="_DATM.*_SLND.*_DICE.*_DOCN" >$ATM_NCPL</value>
<value compset="_MIZUROUTE_" >1</value>
<value compset="_DATM%CPLHIST.+POP\d" >8</value>
<value compset="_DATM%CPLHIST.+MOM\d" >8</value>
<value compset="_DATM%CPLHIST.+BLOM\d" >8</value>
<value compset="_XATM.*_XLND.*_XICE.*_XOCN" >$ATM_NCPL</value>
<value compset="_DLND.*_CISM\d" >1</value>
<value compset="_XROF" >$ATM_NCPL</value>
</values>
<group>run_coupling</group>
<file>env_run.xml</file>
<desc>Number of rof coupling intervals per NCPL_BASE_PERIOD.
This is used to set the driver namelist rof_cpl_dt, equal to basedt/ROF_NCPL
This is used to set the driver config rof_cpl_dt, equal to basedt/ROF_NCPL
where basedt is equal to NCPL_BASE_PERIOD in seconds.</desc>
</entry>

Expand All @@ -358,11 +380,10 @@
<group>run_coupling</group>
<file>env_run.xml</file>
<desc>Number of wav coupling intervals per NCPL_BASE_PERIOD.
This is used to set the driver namelist wav_cpl_dt, equal to basedt/WAV_NCPL
This is used to set the driver config wav_cpl_dt, equal to basedt/WAV_NCPL
where basedt is equal to NCPL_BASE_PERIOD in seconds.</desc>
</entry>


<!-- Logic for CPL_ALBAV should be reworked to depend on datm forcing rather
than compset: see https://github.com/ESMCI/cime/issues/120 -->
<entry id="CPL_ALBAV">
Expand Down Expand Up @@ -422,6 +443,7 @@
<value compset="_DATM.*_DOCN%SOM" >OPTION2</value>
<value compset="_POP2" >OPTION2</value>
<value compset="_MOM6" >OPTION1</value>
<value compset="_BLOM" >OPTION1</value>
<value compset="_POP2" grid="oi%gx1v6" >OPTION1</value>
<value compset="_POP2" grid="oi%gx1v7" >OPTION1</value>
<value compset="_DATM%NYF.*_SLND.*_DICE.*_DOCN" >OPTION2</value>
Expand Down
9 changes: 3 additions & 6 deletions cime_config/namelist_definition_drv.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2467,10 +2467,9 @@
</desc>
<values>
<value>.false.</value>
<value BGC_MODE="CO2A.*">.true.</value>
<value BGC_MODE=".*CO2A.*">.true.</value>
</values>
</entry>

<entry id="flds_co2b">
<type>logical</type>
<category>flds</category>
Expand All @@ -2482,10 +2481,9 @@
</desc>
<values>
<value>.false.</value>
<value BGC_MODE="CO2B">.true.</value>
<value BGC_MODE=".*CO2B.*">.true.</value>
</values>
</entry>

<entry id="flds_co2c">
<type>logical</type>
<category>flds</category>
Expand All @@ -2497,7 +2495,7 @@
</desc>
<values>
<value>.false.</value>
<value BGC_MODE="CO2C">.true.</value>
<value BGC_MODE="BGC%.*CO2C.*">.true.</value>
</values>
</entry>

Expand All @@ -2515,7 +2513,6 @@
</values>
</entry>


<entry id="flds_wiso" modify_via_xml="FLDS_WISO">
<type>logical</type>
<category>flds</category>
Expand Down
3 changes: 2 additions & 1 deletion mediator/esmFlds.F90
Original file line number Diff line number Diff line change
Expand Up @@ -793,7 +793,8 @@ subroutine med_fldList_GetFldNames(fields, fldnames, rc)

if(present(rc)) rc = ESMF_SUCCESS
if (.not. associated(fldnames) .or. .not. allocated(fields%mapindex)) then
write(msg, *) "med_fldList_GetFldNames: ERROR either fields or fldnames have not been allocated. ",associated(fldnames), allocated(fields%mapindex)
write(msg, *) "med_fldList_GetFldNames: ERROR either fields or fldnames have not been allocated. ",&
associated(fldnames), allocated(fields%mapindex)
call ESMF_LogWrite(msg, ESMF_LOGMSG_ERROR)
if(present(rc)) rc = ESMF_FAILURE
return
Expand Down
59 changes: 27 additions & 32 deletions mediator/esmFldsExchange_cesm_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1613,6 +1613,24 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
end if
end if

!-----------------------------------------------------------------------------
! to atm: dms flux from ocean
!-----------------------------------------------------------------------------
if (phase == 'advertise') then
call addfld_from(compocn, 'Faoo_fdms_ocn')
call addfld_to(compatm, 'Faoo_fdms_ocn')
else
! Note that Faoo_dmds should not be weighted by ifrac - since
! it will be weighted by ifrac in the merge to the atm
if ( fldchk(is_local%wrap%FBImp(compocn, compocn), 'Faoo_fdms_ocn', rc=rc) .and. &
fldchk(is_local%wrap%FBExp(compatm) , 'Faoo_fdms_ocn', rc=rc)) then
call addmap_from(compocn, 'Faoo_fdms_ocn', compatm, mapconsd, 'one', ocn2atm_map)
call addmrg_to(compatm , 'Faoo_fdms_ocn', &
mrg_from=compocn, mrg_fld='Faoo_fdms_ocn', mrg_type='merge', mrg_fracname='ofrac')
! TODO: does this need a custom merge like Faoo_fco2_ocn ???
end if
end if

!=====================================================================
! FIELDS TO OCEAN (compocn)
!=====================================================================
Expand Down Expand Up @@ -3027,18 +3045,16 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
end if

! ---------------------------------------------------------------------
! to wav: zonal and meridional winds at the lowest model level from atm
! to wav: 10m zonal and meridional winds from atm
! ---------------------------------------------------------------------
if (phase == 'advertise') then
call addfld_from(compatm, 'Sa_u')
call addfld_to(compwav, 'Sa_u')
call addfld_from(compatm, 'Sa_u10m')
call addfld_to(compwav, 'Sa_u10m')
else
if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_u', rc=rc) .and. &
fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_u', rc=rc)) then
call addmap_from(compatm, 'Sa_u', compwav, mapbilnr, 'one', atm2wav_map)
call addmrg_to(compwav, 'Sa_u', mrg_from=compatm, mrg_fld='Sa_u', mrg_type='copy')
if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_u10m', rc=rc) .and. &
fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_u10m', rc=rc)) then
call addmap_from(compatm, 'Sa_u10m', compwav, mapbilnr, 'one', atm2wav_map)
call addmrg_to(compwav, 'Sa_u10m', mrg_from=compatm, mrg_fld='Sa_u10m', mrg_type='copy')
end if
if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_u10m', rc=rc) .and. &
fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_u10m', rc=rc)) then
Expand All @@ -3047,15 +3063,13 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
end if
end if
if (phase == 'advertise') then
call addfld_from(compatm, 'Sa_v')
call addfld_to(compwav, 'Sa_v')
call addfld_from(compatm, 'Sa_v10m')
call addfld_to(compwav, 'Sa_v10m')
else
if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_v', rc=rc) .and. &
fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_v', rc=rc)) then
call addmap_from(compatm, 'Sa_v', compwav, mapbilnr, 'one', atm2wav_map)
call addmrg_to(compwav, 'Sa_v', mrg_from=compatm, mrg_fld='Sa_v', mrg_type='copy')
if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_v10m', rc=rc) .and. &
fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_v10m', rc=rc)) then
call addmap_from(compatm, 'Sa_v10m', compwav, mapbilnr, 'one', atm2wav_map)
call addmrg_to(compwav, 'Sa_v10m', mrg_from=compatm, mrg_fld='Sa_v10m', mrg_type='copy')
end if
if ( fldchk(is_local%wrap%FBexp(compwav) , 'Sa_v10m', rc=rc) .and. &
fldchk(is_local%wrap%FBImp(compatm,compatm ), 'Sa_v10m', rc=rc)) then
Expand Down Expand Up @@ -3380,25 +3394,6 @@ subroutine esmFldsExchange_cesm(gcomp, phase, rc)
end if
endif

!=====================================================================
! DMS EXCHANGE
!=====================================================================

! Get dms flux from ocn and send to atm
if (phase == 'advertise') then
call addfld_from(compocn, 'Faoo_dms_ocn')
call addfld_to(compatm, 'Faoo_dms_ocn')
else
! Note that Faoo_dmds should not be weighted by ifrac - since
! it will be weighted by ifrac in the merge to the atm
if ( fldchk(is_local%wrap%FBImp(compocn,compocn), 'Faoo_dms_ocn', rc=rc) .and. &
fldchk(is_local%wrap%FBexp(compatm) , 'Faoo_dms_ocn', rc=rc)) then
call addmap_from(complnd, 'Faoo_dms_ocn', compocn, mapconsf, 'lfrac', ocn2atm_map)
call addmrg_to(compatm , 'Faoo_dms_ocn', &
mrg_from=compmed, mrg_fld='Faoo_dms_ocn', mrg_type='merge', mrg_fracname='ofrac')
end if
end if

end subroutine esmFldsExchange_cesm

end module esmFldsExchange_cesm_mod
2 changes: 1 addition & 1 deletion mediator/fd_cesm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -859,7 +859,7 @@
canonical_units: moles m-2 s-1
description: ocn import to med
#
- standard_name: Faoo_dms_ocn
- standard_name: Faoo_fdms_ocn
canonical_units: moles m-2 s-1
description: ocn import to med - surface flux of DMS (downward positive)
#
Expand Down
Loading