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

Adds icepack BGC #6457

Merged
merged 27 commits into from
Aug 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
246b7f5
Adds mpas interface for icepack bgc
njeffery Oct 11, 2023
df74186
merged conflicts by hand
njeffery Oct 11, 2023
e09f187
Clean-up from the merge
njeffery Oct 13, 2023
e5b6cda
Modified algal growth by mistake in merge.
njeffery Oct 13, 2023
4b77694
Adds the interface for icepack zaerosols and zbgc
njeffery Oct 24, 2023
fb48cef
Removed init_column_package_tracer_indices from mpas_seaice_icepack
njeffery Oct 31, 2023
961ca59
Updates mpas icepack bgc interface for optional arguments
njeffery Nov 16, 2023
5f73ff0
Added bgc parameter checks
njeffery Dec 11, 2023
bae58ce
Merge remote-tracking branch 'origin/master' into njeffery/seaice/upd…
njeffery Dec 13, 2023
a90e0e6
More changes for the icepack BGC interface
njeffery Mar 13, 2024
dc672a6
Avoids division by small number in update vertical bio tracers
njeffery Mar 28, 2024
2305a7d
Changed Icepack submodule url
njeffery Mar 29, 2024
6357063
Corrects error in black carbon conservation member
njeffery Mar 30, 2024
16ea615
Bring "update to icepack bgc" up to date with master
njeffery Apr 30, 2024
d6411d8
Adds ^xpmem and grid TL319_r05_IcoswISC30E3r5
njeffery May 4, 2024
2272b67
Split init_zbgc into three calls
njeffery May 6, 2024
455ed39
Add atm dust forcing and iron solubility map
njeffery May 23, 2024
8659988
Adds the sea ice-ocean dust flux field for coupling
njeffery May 24, 2024
9535815
Move bgc indexing definitions to the interface
njeffery May 27, 2024
73788b9
Updates .gitmodules to zbgc-enabled icepack submodule branch
njeffery May 31, 2024
393d0ed
Reverts the previous commit
njeffery May 31, 2024
4873471
Updating Icepack to hash #2e5d5a27
njeffery May 31, 2024
2bd7c2a
Fix to using zaerosols without bgc
njeffery Jun 10, 2024
e964e81
Cleans redundant parameters in second call to parameter_init
njeffery Jun 12, 2024
6853aee
Removes redundant parameter and dimension passes to icepack
njeffery Jun 22, 2024
3f69824
Update bld files to match Registry
jonbob Jul 10, 2024
4c94ac4
Add mesh-dependent dust_iron_file to streams
jonbob Jul 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
10 changes: 10 additions & 0 deletions cime_config/config_grids.xml
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,16 @@
<mask>IcoswISC30E3r5</mask>
</model_grid>

<model_grid alias="TL319_r05_IcoswISC30E3r5" compset="(DATM|XATM|SATM)">
<grid name="atm">TL319</grid>
<grid name="lnd">r05</grid>
<grid name="ocnice">IcoswISC30E3r5</grid>
<grid name="rof">r05</grid>
<grid name="glc">null</grid>
<grid name="wav">null</grid>
<mask>IcoswISC30E3r5</mask>
</model_grid>

<model_grid alias="TL319_IcosXISC30E3r7" compset="(DATM|XATM|SATM)">
<grid name="atm">TL319</grid>
<grid name="lnd">TL319</grid>
Expand Down
1 change: 1 addition & 0 deletions cime_config/machines/config_machines.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2622,6 +2622,7 @@
<env name="NETCDF_FORTRAN_PATH">$SHELL{dirname $(dirname $(which nf-config))}</env>
<env name="PNETCDF_PATH">$SHELL{dirname $(dirname $(which pnetcdf_version))}</env>
<env name="OMPI_MCA_sharedfp">^lockedfile,individual</env>
<env name="UCX_TLS">^xpmem</env>
</environment_variables>
<environment_variables BUILD_THREADED="TRUE">
<env name="OMP_STACKSIZE">128M</env>
Expand Down
4 changes: 4 additions & 0 deletions components/mpas-seaice/bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,7 @@ if ($ice_bgc eq 'ice_bgc') {
add_default($nl, 'config_use_humics', 'val'=>".true.");
add_default($nl, 'config_use_DON', 'val'=>".true.");
add_default($nl, 'config_use_iron', 'val'=>".true.");
add_default($nl, 'config_couple_biogeochemistry_fields');
} else {
add_default($nl, 'config_use_vertical_biochemistry', 'val'=>".false.");
add_default($nl, 'config_use_vertical_tracers', 'val'=>".false.");
Expand All @@ -694,11 +695,14 @@ if ($ice_bgc eq 'ice_bgc') {
add_default($nl, 'config_use_humics', 'val'=>".false.");
add_default($nl, 'config_use_DON', 'val'=>".false.");
add_default($nl, 'config_use_iron', 'val'=>".false.");
add_default($nl, 'config_couple_biogeochemistry_fields', 'val'=>".false.");
}
add_default($nl, 'config_use_chlorophyll');
add_default($nl, 'config_use_macromolecules');
add_default($nl, 'config_use_modal_aerosols');
add_default($nl, 'config_use_zaerosols');
add_default($nl, 'config_use_atm_dust_file');
add_default($nl, 'config_use_iron_solubility_file');
add_default($nl, 'config_skeletal_bgc_flux_type');
add_default($nl, 'config_scale_initial_vertical_bgc');
add_default($nl, 'config_biogrid_bottom_molecular_sublayer');
Expand Down
3 changes: 3 additions & 0 deletions components/mpas-seaice/bld/build-namelist-section
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ add_default($nl, 'config_use_floe_size_distribution');
# Namelist group: biogeochemistry #
###################################

add_default($nl, 'config_couple_biogeochemistry_fields');
add_default($nl, 'config_use_brine');
add_default($nl, 'config_use_vertical_zsalinity');
add_default($nl, 'config_use_vertical_biochemistry');
Expand All @@ -212,6 +213,8 @@ add_default($nl, 'config_use_DON');
add_default($nl, 'config_use_iron');
add_default($nl, 'config_use_modal_aerosols');
add_default($nl, 'config_use_zaerosols');
add_default($nl, 'config_use_atm_dust_file');
add_default($nl, 'config_use_iron_solubility_file');
add_default($nl, 'config_skeletal_bgc_flux_type');
add_default($nl, 'config_scale_initial_vertical_bgc');
add_default($nl, 'config_biogrid_bottom_molecular_sublayer');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@
<config_initial_latitude_north ice_grid="ECwISC30to60E1r2">75.0</config_initial_latitude_north>
<config_initial_latitude_north ice_grid="SOwISC12to60E2r4">85.0</config_initial_latitude_north>
<config_initial_latitude_north ice_grid="ECwISC30to60E2r1">75.0</config_initial_latitude_north>
<!-- To do: 70.0 for WC but 75.0 for Cryo -->
<config_initial_latitude_north ice_grid="IcoswISC30E3r5">70.0</config_initial_latitude_north>
<config_initial_latitude_north ice_grid="IcosXISC30E3r7">70.0</config_initial_latitude_north>
<config_initial_latitude_north ice_grid="FRISwISC08to60E3r1">85.0</config_initial_latitude_north>
Expand All @@ -95,7 +94,6 @@
<config_initial_latitude_south ice_grid="ECwISC30to60E1r2">-75.0</config_initial_latitude_south>
<config_initial_latitude_south ice_grid="SOwISC12to60E2r4">-85.0</config_initial_latitude_south>
<config_initial_latitude_south ice_grid="ECwISC30to60E2r1">-75.0</config_initial_latitude_south>
<!-- To do: -60.0 for WC but -75.0 for Cryo -->
<config_initial_latitude_south ice_grid="IcoswISC30E3r5">-60.0</config_initial_latitude_south>
<config_initial_latitude_south ice_grid="IcosXISC30E3r7">-60.0</config_initial_latitude_south>
<config_initial_latitude_south ice_grid="FRISwISC08to60E3r1">-85.0</config_initial_latitude_south>
Expand Down Expand Up @@ -219,6 +217,7 @@
<config_use_floe_size_distribution>false</config_use_floe_size_distribution>

<!-- biogeochemistry -->
<config_couple_biogeochemistry_fields>false</config_couple_biogeochemistry_fields>
<config_use_brine>false</config_use_brine>
<config_use_vertical_zsalinity>false</config_use_vertical_zsalinity>
<config_use_vertical_biochemistry>false</config_use_vertical_biochemistry>
Expand All @@ -238,6 +237,8 @@
<config_use_iron>false</config_use_iron>
<config_use_modal_aerosols>false</config_use_modal_aerosols>
<config_use_zaerosols>false</config_use_zaerosols>
<config_use_atm_dust_file>false</config_use_atm_dust_file>
<config_use_iron_solubility_file>false</config_use_iron_solubility_file>
<config_skeletal_bgc_flux_type>'Jin2006'</config_skeletal_bgc_flux_type>
<config_scale_initial_vertical_bgc>false</config_scale_initial_vertical_bgc>
<config_biogrid_bottom_molecular_sublayer>0.006</config_biogrid_bottom_molecular_sublayer>
Expand Down Expand Up @@ -347,12 +348,12 @@
<config_mobility_type_proteins>0.0</config_mobility_type_proteins>
<config_mobility_type_dissolved_iron>0.0</config_mobility_type_dissolved_iron>
<config_mobility_type_particulate_iron>0.5</config_mobility_type_particulate_iron>
<config_mobility_type_black_carbon1>0.0</config_mobility_type_black_carbon1>
<config_mobility_type_black_carbon2>0.0</config_mobility_type_black_carbon2>
<config_mobility_type_dust1>0.0</config_mobility_type_dust1>
<config_mobility_type_dust2>0.0</config_mobility_type_dust2>
<config_mobility_type_dust3>0.0</config_mobility_type_dust3>
<config_mobility_type_dust4>0.0</config_mobility_type_dust4>
<config_mobility_type_black_carbon1>-1.0</config_mobility_type_black_carbon1>
<config_mobility_type_black_carbon2>-1.0</config_mobility_type_black_carbon2>
<config_mobility_type_dust1>-1.0</config_mobility_type_dust1>
<config_mobility_type_dust2>-1.0</config_mobility_type_dust2>
<config_mobility_type_dust3>-1.0</config_mobility_type_dust3>
<config_mobility_type_dust4>-1.0</config_mobility_type_dust4>
<config_ratio_C_to_N_diatoms>7.0</config_ratio_C_to_N_diatoms>
<config_ratio_C_to_N_small_plankton>7.0</config_ratio_C_to_N_small_plankton>
<config_ratio_C_to_N_phaeocystis>7.0</config_ratio_C_to_N_phaeocystis>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ Default: Defined in namelist_defaults.xml

<entry id="config_initial_ice_area" type="real"
category="initialize" group="initialize">
Sea ice concentration at initialization.
Sea ice fraction at initialization.

Valid values: A real number between 0.0 and 1.0 inclusive.
Default: Defined in namelist_defaults.xml
Expand Down Expand Up @@ -955,6 +955,14 @@ Default: Defined in namelist_defaults.xml

<!-- biogeochemistry -->

<entry id="config_couple_biogeochemistry_fields" type="logical"
category="biogeochemistry" group="biogeochemistry">
Couple ocean and seaice biogeochemical fields

Valid values: true or false
Default: Defined in namelist_defaults.xml
</entry>

<entry id="config_use_brine" type="logical"
category="biogeochemistry" group="biogeochemistry">
Use the brine height tracer
Expand Down Expand Up @@ -1107,6 +1115,22 @@ Valid values: true or false
Default: Defined in namelist_defaults.xml
</entry>

<entry id="config_use_atm_dust_file" type="logical"
category="biogeochemistry" group="biogeochemistry">
Read atmospheric dust fluxes from a file

Valid values: true or false
Default: Defined in namelist_defaults.xml
</entry>

<entry id="config_use_iron_solubility_file" type="logical"
category="biogeochemistry" group="biogeochemistry">
Read atmospheric dust-iron solubility from a file

Valid values: true or false
Default: Defined in namelist_defaults.xml
</entry>

<entry id="config_skeletal_bgc_flux_type" type="char*1024"
category="biogeochemistry" group="biogeochemistry">
Determines the ocean-ice fluxes of biogeochemistry for the bottom1-layer model: in Jin2006, the piston velocity is a function of ice growth/melt rate, in default, the piston velocity is constant
Expand Down
24 changes: 23 additions & 1 deletion components/mpas-seaice/cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ def buildnml(case, caseroot, compname):
decomp_prefix = ''
data_iceberg_file = ''
points_file = ''
dust_iron_file = ''

if ice_grid == 'oEC60to30v3':
decomp_date = '230424'
Expand Down Expand Up @@ -299,6 +300,7 @@ def buildnml(case, caseroot, compname):
decomp_date = '20231120'
decomp_prefix = 'partitions/mpas-seaice.graph.info.'
data_iceberg_file = 'Iceberg_Climatology_Merino.IcoswISC30E3r5.20231120.nc'
dust_iron_file = 'ecoForcingSurfaceMonthly+WetDryDustSolFrac.IcoswISC30E3r5.20240511.nc'
if ice_ic_mode == 'spunup':
if iceberg_mode == 'data':
grid_date = '20240207'
Expand Down Expand Up @@ -346,6 +348,8 @@ def buildnml(case, caseroot, compname):
input_list.write("points = {}/ice/mpas-seaice/{}/{}\n".format(din_loc_root, ice_mask, points_file))
if iceberg_mode == 'data':
input_list.write("data_iceberg = {}/ice/mpas-seaice/{}/{}\n".format(din_loc_root, ice_mask, data_iceberg_file))
if dust_iron_file != '':
input_list.write("dust_iron = {}/ocn/mpas-o/{}/{}\n".format(din_loc_root, ice_mask, dust_iron_file))

#--------------------------------------------------------------------
# Invoke mpas build-namelist - output will go in $CASEBUILD/mpassiconf
Expand Down Expand Up @@ -587,10 +591,19 @@ def buildnml(case, caseroot, compname):
lines.append('<immutable_stream name="ISPOLDailyWOAForcing"')
lines.append(' type="input"')
lines.append(' io_type="{}"'.format(ice_pio_typename))
lines.append(' filename_template="{}/ice/mpas-cice/general/ISPOLDailyWOAForcing_10132022.nc"')
lines.append(' filename_template="{}/ice/mpas-cice/general/ISPOLDailyWOAForcing_10132022.nc"'.format(din_loc_root))
lines.append(' filename_interval="none"')
lines.append(' input_interval="none" />')
lines.append('')
if dust_iron_file != '':
lines.append('<immutable_stream name="DustIronMonthlyForcing"')
lines.append(' type="input"')
lines.append(' io_type="{}"'.format(ice_pio_typename))
lines.append(' filename_template="{}/ocn/mpas-o/{}/{}"'.format(din_loc_root, ice_mask, dust_iron_file))
lines.append(' filename_interval="none"')
lines.append(' input_interval="none" />')
lines.append('')

lines.append('<immutable_stream name="abort_contents"')
lines.append(' type="none"')
lines.append(' filename_template="abort_variables.nc" />')
Expand Down Expand Up @@ -732,6 +745,15 @@ def buildnml(case, caseroot, compname):
lines.append(' <var name="netCarbonFlux"/>')
lines.append(' <var name="absoluteCarbonError"/>')
lines.append(' <var name="relativeCarbonError"/>')
lines.append(' <var name="initialBlackCarbon"/>')
lines.append(' <var name="finalBlackCarbon"/>')
lines.append(' <var name="blackCarbonChange"/>')
lines.append(' <var name="blackCarbonChangeFlux"/>')
lines.append(' <var name="blackCarbonConsAtmBlackCarbonFlux"/>')
lines.append(' <var name="blackCarbonConsOceanBlackCarbonFlux"/>')
lines.append(' <var name="netBlackCarbonFlux"/>')
lines.append(' <var name="absoluteBlackCarbonError"/>')
lines.append(' <var name="relativeBlackCarbonError"/>')
lines.append('</stream>')
lines.append('')
lines.append('<immutable_stream name="conservationCheckRestart"')
Expand Down
Loading