diff --git a/components/mpas-ocean/bld/build-namelist b/components/mpas-ocean/bld/build-namelist index 1c55bcb7be1d..6e63d8f9c11c 100755 --- a/components/mpas-ocean/bld/build-namelist +++ b/components/mpas-ocean/bld/build-namelist @@ -707,10 +707,11 @@ add_default($nl, 'config_flux_attenuation_coefficient_runoff'); # Namelist group: coupling # ############################ +add_default($nl, 'config_remove_ais_river_runoff'); if (($OCN_ICEBERG eq 'true') && ($OCN_FORCING eq 'active_atm')) { - add_default($nl, 'config_remove_AIS_coupler_runoff', 'val'=>".true."); + add_default($nl, 'config_remove_ais_ice_runoff', 'val'=>".true."); } else { - add_default($nl, 'config_remove_AIS_coupler_runoff', 'val'=>".false."); + add_default($nl, 'config_remove_ais_ice_runoff', 'val'=>".false."); } ###################################### diff --git a/components/mpas-ocean/bld/build-namelist-section b/components/mpas-ocean/bld/build-namelist-section index cc1695243faa..cae11d395c9f 100644 --- a/components/mpas-ocean/bld/build-namelist-section +++ b/components/mpas-ocean/bld/build-namelist-section @@ -229,7 +229,8 @@ add_default($nl, 'config_flux_attenuation_coefficient_runoff'); # Namelist group: coupling # ############################ -add_default($nl, 'config_remove_AIS_coupler_runoff'); +add_default($nl, 'config_remove_ais_river_runoff'); +add_default($nl, 'config_remove_ais_ice_runoff'); ###################################### # Namelist group: shortwaveRadiation # diff --git a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml index c7441c6b2214..d4a1487ba161 100644 --- a/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml +++ b/components/mpas-ocean/bld/namelist_files/namelist_defaults_mpaso.xml @@ -344,7 +344,8 @@ 10.0 -.false. +.false. +.false. 'jerlov' diff --git a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml index f6c2f9c5b765..6ebd149d17ac 100644 --- a/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml +++ b/components/mpas-ocean/bld/namelist_files/namelist_definition_mpaso.xml @@ -1191,9 +1191,17 @@ Default: Defined in namelist_defaults.xml - -If true, solid and liquid runoff from the Antarctic Ice Sheet (below 60S latitude) coming from the coupled is zeroed in the coupler import routines. To be used with data iceberg fluxes coming from the sea ice model. +If true, liquid runoff from the Antarctic Ice Sheet (below 60S latitude) coming from the coupled is zeroed in the coupler import routines. To be used with data iceberg fluxes coming from the sea ice model. + +Valid values: .true. or .false. +Default: Defined in namelist_defaults.xml + + + +If true, solid runoff from the Antarctic Ice Sheet (below 60S latitude) coming from the coupled is zeroed in the coupler import routines. To be used with data iceberg fluxes coming from the sea ice model. Valid values: .true. or .false. Default: Defined in namelist_defaults.xml diff --git a/components/mpas-ocean/driver/ocn_comp_mct.F b/components/mpas-ocean/driver/ocn_comp_mct.F index b23d54770735..342d97161d0e 100644 --- a/components/mpas-ocean/driver/ocn_comp_mct.F +++ b/components/mpas-ocean/driver/ocn_comp_mct.F @@ -1729,7 +1729,8 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ config_use_MacroMoleculesTracers, & config_use_MacroMoleculesTracers_sea_ice_coupling, & config_use_CFCTracers, & - config_remove_AIS_coupler_runoff, & + config_remove_ais_river_runoff, & + config_remove_ais_ice_runoff, & config_cvmix_kpp_use_theory_wave character(len=StrKIND), pointer :: config_ecosys_atm_co2_option, & @@ -1886,7 +1887,8 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ call mpas_pool_get_config(domain % configs, 'config_use_MacroMoleculesTracers_sea_ice_coupling', & config_use_MacroMoleculesTracers_sea_ice_coupling) call mpas_pool_get_config(domain % configs, 'config_use_CFCTracers', config_use_CFCTracers) - call mpas_pool_get_config(domain % configs, 'config_remove_AIS_coupler_runoff', config_remove_AIS_coupler_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_river_runoff', config_remove_ais_river_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_ice_runoff', config_remove_ais_ice_runoff) call mpas_pool_get_config(domain % configs, 'config_cvmix_kpp_use_theory_wave', config_cvmix_kpp_use_theory_wave) n = 0 @@ -2063,14 +2065,18 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ windSpeedSquared10mCFC => windSpeedSquared10mField % array endif - if (config_remove_AIS_coupler_runoff) then - ! Initialize these fields + if (config_remove_ais_river_runoff) then + ! Initialize this field removedRiverRunoffFlux(:) = 0.0_RKIND + endif + + if (config_remove_ais_ice_runoff) then + ! Initialize this field removedIceRunoffFlux(:) = 0.0_RKIND endif if (config_cvmix_kpp_use_theory_wave) then - ! Initialize these fields + ! Initialize this field windSpeed10m(:) = 0.0_RKIND endif @@ -2118,7 +2124,7 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ end if if ( riverRunoffFluxField % isActive ) then riverRunoffFlux(i) = x2o_o % rAttr(index_x2o_Foxx_rofl, n) - if (config_remove_AIS_coupler_runoff) then + if (config_remove_ais_river_runoff) then if (latCell(i) < -1.04719666667_RKIND) then ! 60S in radians removedRiverRunoffFlux(i) = riverRunoffFlux(i) riverRunoffFlux(i) = 0.0_RKIND @@ -2131,7 +2137,7 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ if(iceRunoffFlux(n) < 0.0_RKIND) then call shr_sys_abort ('Error: incoming rofi_F is negative') end if - if (config_remove_AIS_coupler_runoff) then + if (config_remove_ais_ice_runoff) then if (latCell(i) < -1.04719666667_RKIND) then ! 60S in radians removedIceRunoffFlux(i) = iceRunoffFlux(i) iceRunoffFlux(i) = 0.0_RKIND @@ -2692,7 +2698,8 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ real (kind=RKIND) :: surfaceFreezingTemp logical, pointer :: frazilIceActive, & - config_remove_AIS_coupler_runoff, & + config_remove_ais_river_runoff, & + config_remove_ais_ice_runoff, & config_use_ecosysTracers, & config_use_DMSTracers, & config_use_MacroMoleculesTracers, & @@ -2709,7 +2716,8 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ call mpas_pool_get_package(domain % packages, 'frazilIceActive', frazilIceActive) call mpas_pool_get_config(domain % configs, 'config_use_ecosysTracers', config_use_ecosysTracers) call mpas_pool_get_config(domain % configs, 'config_land_ice_flux_mode', config_land_ice_flux_mode) - call mpas_pool_get_config(domain % configs, 'config_remove_AIS_coupler_runoff', config_remove_AIS_coupler_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_river_runoff', config_remove_ais_river_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_ice_runoff', config_remove_ais_ice_runoff) call mpas_pool_get_config(domain % configs, 'config_use_DMSTracers', config_use_DMSTracers) call mpas_pool_get_config(domain % configs, 'config_use_MacroMoleculesTracers', config_use_MacroMoleculesTracers) call mpas_pool_get_config(domain % configs, 'config_use_ecosysTracers_sea_ice_coupling', & @@ -2757,8 +2765,10 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ call mpas_pool_get_array(forcingPool, 'avgLandIceFreshwaterFlux', avgLandIceFreshwaterFlux) call mpas_pool_get_array(forcingPool, 'avgLandIceHeatFlux', avgLandIceHeatFlux) endif - if (config_remove_AIS_coupler_runoff) then + if (config_remove_ais_river_runoff) then call mpas_pool_get_array(forcingPool, 'avgRemovedRiverRunoffFlux', avgRemovedRiverRunoffFlux) + endif + if (config_remove_ais_ice_runoff) then call mpas_pool_get_array(forcingPool, 'avgRemovedIceRunoffFlux', avgRemovedIceRunoffFlux) call mpas_pool_get_array(forcingPool, 'avgRemovedIceRunoffHeatFlux', avgRemovedIceRunoffHeatFlux) endif @@ -2819,7 +2829,7 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ o2x_o % rAttr(index_o2x_Foxo_ismw, n) = avgLandIceFreshwaterFlux(i) o2x_o % rAttr(index_o2x_Foxo_ismh, n) = avgLandIceHeatFlux(i) endif - if (config_remove_AIS_coupler_runoff) then + if () then o2x_o % rAttr(index_o2x_Foxo_rrofl, n) = avgRemovedRiverRunoffFlux(i) o2x_o % rAttr(index_o2x_Foxo_rrofi, n) = avgRemovedIceRunoffFlux(i) o2x_o % rAttr(index_o2x_Foxo_rrofih, n) = avgRemovedIceRunoffHeatFlux(i) @@ -3218,7 +3228,8 @@ subroutine ocn_import_moab( Eclock, errorCode)!{{{ config_use_DMSTracers_sea_ice_coupling, & config_use_MacroMoleculesTracers, & config_use_MacroMoleculesTracers_sea_ice_coupling, & - config_remove_AIS_coupler_runoff, & + config_remove_ais_river_runoff, & + config_remove_ais_ice_runoff, & config_cvmix_kpp_use_theory_wave character(len=StrKIND), pointer :: config_ecosys_atm_co2_option, & @@ -3365,7 +3376,8 @@ subroutine ocn_import_moab( Eclock, errorCode)!{{{ config_use_DMSTracers_sea_ice_coupling) call mpas_pool_get_config(domain % configs, 'config_use_MacroMoleculesTracers_sea_ice_coupling', & config_use_MacroMoleculesTracers_sea_ice_coupling) - call mpas_pool_get_config(domain % configs, 'config_remove_AIS_coupler_runoff', config_remove_AIS_coupler_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_river_runoff', config_remove_ais_river_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_ice_runoff', config_remove_ais_ice_runoff) call mpas_pool_get_config(domain % configs, 'config_cvmix_kpp_use_theory_wave', config_cvmix_kpp_use_theory_wave) n = 0 @@ -3503,14 +3515,18 @@ subroutine ocn_import_moab( Eclock, errorCode)!{{{ iceFluxDMSP => iceFluxDMSPField % array endif - if (config_remove_AIS_coupler_runoff) then - ! Initialize these fields + if (config_remove_ais_river_runoff) then + ! Initialize this field removedRiverRunoffFlux(:) = 0.0_RKIND + endif + + if (config_remove_ais_ice_runoff) then + ! Initialize this field removedIceRunoffFlux(:) = 0.0_RKIND endif if (config_cvmix_kpp_use_theory_wave) then - ! Initialize these fields + ! Initialize this field windSpeed10m(:) = 0.0_RKIND endif @@ -3559,7 +3575,7 @@ subroutine ocn_import_moab( Eclock, errorCode)!{{{ end if if ( riverRunoffFluxField % isActive ) then riverRunoffFlux(i) = x2o_om(n, index_x2o_Foxx_rofl) - if (config_remove_AIS_coupler_runoff) then + if (config_remove_ais_river_runoff) then if (latCell(i) < -1.04719666667_RKIND) then ! 60S in radians removedRiverRunoffFlux(i) = riverRunoffFlux(i) riverRunoffFlux(i) = 0.0_RKIND @@ -3572,7 +3588,7 @@ subroutine ocn_import_moab( Eclock, errorCode)!{{{ if(iceRunoffFlux(n) < 0.0_RKIND) then call shr_sys_abort ('Error: incoming rofi_F is negative') end if - if (config_remove_AIS_coupler_runoff) then + if (config_remove_ais_ice_runoff) then if (latCell(i) < -1.04719666667_RKIND) then ! 60S in radians removedIceRunoffFlux(i) = iceRunoffFlux(i) iceRunoffFlux(i) = 0.0_RKIND @@ -3988,7 +4004,8 @@ subroutine ocn_export_moab(EClock) !{{{ real (kind=RKIND) :: surfaceFreezingTemp logical, pointer :: frazilIceActive, & - config_remove_AIS_coupler_runoff, & + config_remove_ais_river_runoff, & + config_remove_ais_ice_runoff, & config_use_ecosysTracers, & config_use_DMSTracers, & config_use_MacroMoleculesTracers, & @@ -4005,7 +4022,8 @@ subroutine ocn_export_moab(EClock) !{{{ call mpas_pool_get_package(domain % packages, 'frazilIceActive', frazilIceActive) call mpas_pool_get_config(domain % configs, 'config_use_ecosysTracers', config_use_ecosysTracers) call mpas_pool_get_config(domain % configs, 'config_land_ice_flux_mode', config_land_ice_flux_mode) - call mpas_pool_get_config(domain % configs, 'config_remove_AIS_coupler_runoff', config_remove_AIS_coupler_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_river_runoff', config_remove_ais_river_runoff) + call mpas_pool_get_config(domain % configs, 'config_remove_ais_ice_runoff', config_remove_ais_ice_runoff) call mpas_pool_get_config(domain % configs, 'config_use_DMSTracers', config_use_DMSTracers) call mpas_pool_get_config(domain % configs, 'config_use_MacroMoleculesTracers', config_use_MacroMoleculesTracers) call mpas_pool_get_config(domain % configs, 'config_use_ecosysTracers_sea_ice_coupling', & @@ -4052,8 +4070,10 @@ subroutine ocn_export_moab(EClock) !{{{ call mpas_pool_get_array(forcingPool, 'avgLandIceFreshwaterFlux', avgLandIceFreshwaterFlux) call mpas_pool_get_array(forcingPool, 'avgLandIceHeatFlux', avgLandIceHeatFlux) endif - if (config_remove_AIS_coupler_runoff) then + if (config_remove_ais_river_runoff) then call mpas_pool_get_array(forcingPool, 'avgRemovedRiverRunoffFlux', avgRemovedRiverRunoffFlux) + endif + if (config_remove_ais_ice_runoff) then call mpas_pool_get_array(forcingPool, 'avgRemovedIceRunoffFlux', avgRemovedIceRunoffFlux) call mpas_pool_get_array(forcingPool, 'avgRemovedIceRunoffHeatFlux', avgRemovedIceRunoffHeatFlux) endif @@ -4113,8 +4133,10 @@ subroutine ocn_export_moab(EClock) !{{{ o2x_om(n, index_o2x_Foxo_ismw) = avgLandIceFreshwaterFlux(i) o2x_om(n, index_o2x_Foxo_ismh) = avgLandIceHeatFlux(i) endif - if (config_remove_AIS_coupler_runoff) then + if (config_remove_ais_river_runoff) then o2x_om(n, index_o2x_Foxo_rrofl) = avgRemovedRiverRunoffFlux(i) + endif + if (config_remove_ais_ice_runoff) then o2x_om(n, index_o2x_Foxo_rrofi) = avgRemovedIceRunoffFlux(i) o2x_om(n, index_o2x_Foxo_rrofih) = avgRemovedIceRunoffHeatFlux(i) endif diff --git a/components/mpas-ocean/src/Registry.xml b/components/mpas-ocean/src/Registry.xml index 00c63312b863..3bb6ead6b2d5 100644 --- a/components/mpas-ocean/src/Registry.xml +++ b/components/mpas-ocean/src/Registry.xml @@ -766,8 +766,12 @@ /> - + @@ -3761,7 +3765,7 @@ packages="thicknessBulkPKG" />