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 a 1D bgc forcing test case and a bgc D-TEST #5506

Merged
merged 5 commits into from
Apr 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions components/mpas-seaice/bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,7 @@ add_default($nl, 'config_forcing_cycle_start');
add_default($nl, 'config_forcing_cycle_duration');
add_default($nl, 'config_forcing_precipitation_units');
add_default($nl, 'config_forcing_sst_type');
add_default($nl, 'config_forcing_bgc_type');
add_default($nl, 'config_update_ocean_fluxes');
add_default($nl, 'config_include_pond_freshwater_feedback');

Expand Down
1 change: 1 addition & 0 deletions components/mpas-seaice/bld/build-namelist-section
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ add_default($nl, 'config_forcing_cycle_start');
add_default($nl, 'config_forcing_cycle_duration');
add_default($nl, 'config_forcing_precipitation_units');
add_default($nl, 'config_forcing_sst_type');
add_default($nl, 'config_forcing_bgc_type');
add_default($nl, 'config_update_ocean_fluxes');
add_default($nl, 'config_include_pond_freshwater_feedback');

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
<config_forcing_cycle_duration>'2-00-00_00:00:00'</config_forcing_cycle_duration>
<config_forcing_precipitation_units>'mm_per_sec'</config_forcing_precipitation_units>
<config_forcing_sst_type>'ncar'</config_forcing_sst_type>
<config_forcing_bgc_type>'ISPOL'</config_forcing_bgc_type>
<config_update_ocean_fluxes>true</config_update_ocean_fluxes>
<config_include_pond_freshwater_feedback>false</config_include_pond_freshwater_feedback>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ Default: Defined in namelist_defaults.xml
category="initialize" group="initialize">
Initial condition type for sea ice state.

Valid values: 'restart', 'uniform', 'circle', 'square' or 'uniform_interior'
Valid values: 'restart', 'uniform', 'circle', 'square', 'uniform_interior' or 'uniform_1D'
Default: Defined in namelist_defaults.xml
</entry>

Expand Down Expand Up @@ -461,7 +461,7 @@ Default: Defined in namelist_defaults.xml
category="forcing" group="forcing">
Atmospheric forcing type.

Valid values: 'CORE'
Valid values: 'CORE' or 'ISPOL'
Default: Defined in namelist_defaults.xml
</entry>

Expand Down Expand Up @@ -501,7 +501,15 @@ Default: Defined in namelist_defaults.xml
category="forcing" group="forcing">
Sea surface temperature ocean forcing type.

Valid values: 'ncar'
Valid values: 'ncar' or 'ISPOL'
Default: Defined in namelist_defaults.xml
</entry>

<entry id="config_forcing_bgc_type" type="char*1024"
category="forcing" group="forcing">
Ocean biogeochemistry forcing type.

Valid values: 'ISPOL'
Default: Defined in namelist_defaults.xml
</entry>

Expand Down
7 changes: 7 additions & 0 deletions components/mpas-seaice/cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,13 @@ def buildnml(case, caseroot, compname):
lines.append(' filename_interval="none"')
lines.append(' input_interval="initial_only" />')
lines.append('')
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_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
78 changes: 72 additions & 6 deletions components/mpas-seaice/src/Registry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@
/>
<nml_option name="config_initial_condition_type" type="character" default_value="cice_default" units="unitless"
description="Initial condition type for sea ice state."
possible_values="'restart', 'uniform', 'circle', 'square' or 'uniform_interior'"
possible_values="'restart', 'uniform', 'circle', 'square', 'uniform_interior' or 'uniform_1D'"
/>
<nml_option name="config_initial_ice_area" type="real" default_value="1.0" units="unitless"
description="Sea ice concentration at initialization."
Expand Down Expand Up @@ -522,7 +522,7 @@
<nml_record name="forcing" in_defaults="true">
<nml_option name="config_atmospheric_forcing_type" type="character" default_value="CORE" units="unitless"
description="Atmospheric forcing type."
possible_values="'CORE'"
possible_values="'CORE' or 'ISPOL'"
/>
<nml_option name="config_forcing_start_time" type="character" default_value="2000-01-01_00:00:00" units="unitless"
description="Forcing time to use at the simulation start time"
Expand All @@ -542,7 +542,11 @@
/>
<nml_option name="config_forcing_sst_type" type="character" default_value="ncar" units="unitless"
description="Sea surface temperature ocean forcing type."
possible_values="'ncar'"
possible_values="'ncar' or 'ISPOL'"
/>
<nml_option name="config_forcing_bgc_type" type="character" default_value="ISPOL" units="unitless"
description="Ocean biogeochemistry forcing type."
possible_values="'ISPOL'"
/>
<nml_option name="config_update_ocean_fluxes" type="logical" default_value="false" units="unitless"
description=""
Expand Down Expand Up @@ -976,7 +980,7 @@
icepack_name="fr_resp"
/>
<nml_option name="config_rapid_mobile_to_stationary_time" type="real" default_value="3600.0" units="seconds"
description="Rapid adsorption timescale "
description="Rapid adsorption timescale"
possible_values="zero or positive real number"
icepack_name="tau_min"
/>
Expand All @@ -987,7 +991,7 @@
/>
<nml_option name="config_algal_maximum_velocity" type="real" default_value="0.0000001" units="m/s"
description="Maximum speed at which diatoms can move"
possible_values="zero or positive real number "
possible_values="zero or positive real number"
icepack_name="algal_vel"
/>
<nml_option name="config_ratio_Fe_to_dust" type="real" default_value="0.035" units="mg iron/g dust"
Expand Down Expand Up @@ -1271,7 +1275,7 @@
icepack_name="fr_mort2min"
/>
<nml_option name="config_fraction_iron_remineralized" type="real" default_value="1.0" units="unitless"
description="Fraction of remineralized iron "
description="Fraction of remineralized iron"
possible_values="zero or positive real less than or equal to 1"
icepack_name="fr_dFe"
/>
Expand Down Expand Up @@ -2110,6 +2114,54 @@
immutable="true">
<var name="iceCoverage"/>
</stream>
<stream name="ISPOLSixHourlyForcing"
type="input"
filename_template="forcing/atmosphere_forcing_six_hourly.ispol.nc"
filename_interval="0001-00-00_00:00:00"
input_interval="none"
reference_time="2004-01-01_00:00:00"
immutable="true">
<var name="shortwaveDown"/>
<var name="longwaveDown"/>
</stream>
<stream name="ISPOLDailyForcing"
type="input"
filename_template="forcing/atmosphere_forcing_daily.ispol.nc"
filename_interval="0001-00-00_00:00:00"
input_interval="none"
reference_time="2004-01-01_00:00:00"
immutable="true">
<var name="airTemperature"/>
<var name="airSpecificHumidity"/>
<var name="uAirVelocity"/>
<var name="vAirVelocity"/>
<var name="rainfallRate"/>
</stream>
<stream name="ISPOLMonthlyForcing"
type="input"
filename_template="forcing/ocean_forcing_monthly.ispol.nc"
filename_interval="none"
input_interval="none"
immutable="true">
<var name="seaSurfaceTemperature"/>
<var name="seaSurfaceSalinity"/>
<var name="oceanMixedLayerDepth"/>
<var name="uOceanVelocity"/>
<var name="vOceanVelocity"/>
<var name="seaSurfaceTiltU"/>
<var name="seaSurfaceTiltV"/>
<var name="oceanHeatFluxConvergence"/>
</stream>
<stream name="ISPOLDailyWOAForcing"
type="input"
filename_template="forcing/ocean_biogeochemistry_forcing_daily.ispol.nc"
filename_interval="0001-00-00_00:00:00"
input_interval="none"
reference_time="2004-01-01_00:00:00"
immutable="true">
<var name="oceanNitrateConc1D"/>
<var name="oceanSilicateConc1D"/>
</stream>

<!-- Aerosols input -->
<stream name="StandardAerosolsInput"
Expand Down Expand Up @@ -3805,6 +3857,20 @@
dimensions="nVertices Time"
/>
</var_struct>
▶ <var_struct name="1D_ocean_biogeochemistry_forcing" time_levs="1">
<var name="oceanNitrateConc1D"
type="real"
dimensions="Time"
units="mmol N m-3"
description="sea surface nitrate"
/>
<var name="oceanSilicateConc1D"
type="real"
dimensions="Time"
units="mmol Si m-3"
description="sea surface silicate"
/>
</var_struct>

<!-- boundary variables -->
<var_struct name="boundary" time_levs="1">
Expand Down
16 changes: 16 additions & 0 deletions components/mpas-seaice/src/shared/mpas_seaice_constants.F
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,21 @@ module seaice_constants
skeletalLayerThickness = sk_l , &
gramsCarbonPerMolCarbon = R_gC2molC ! g carbon per mol carbon

! ocean biogeochemistry ISPOL values
real(kind=RKIND), parameter, public :: &
oceanAmmoniumISPOL = 1.0_RKIND, & ! mmol N m-3
oceanDMSISPOL = 0.1_RKIND, & ! mmol S m-3
oceanDMSPISPOL = 0.1_RKIND, & ! mmol S m-3
oceanDiatomsISPOL = 1.0_RKIND, & ! mmol N m-3
oceanSmallAlgaeISPOL = 0.0057_RKIND, & ! mmol N m-3
oceanPhaeocystisISPOL = 0.0027_RKIND, & ! mmol N m-3
oceanPolysaccharidsISPOL = 16.2_RKIND, & ! mmol C m-3
oceanLipidsISPOL = 9.0_RKIND, & ! mmol C m-3
oceanProteinsCarbonISPOL = 9.0_RKIND, & ! mmol C m-3
oceanDICISPOL = 1.0_RKIND, & ! mmol C m-3
oceanProteinsISPOL = 12.9_RKIND, & ! mmol N m-3
oceanDissolvedIronISPOL = 0.4_RKIND, & ! mmol Fe m-3
oceanParticulateIronISPOL = 2.0_RKIND,& ! mmol Fe m-3
oceanHumicsISPOL = 1.0_RKIND ! mmol C m-3

end module seaice_constants
Loading