From 6c4160e77eebc5344a92d36fbcfe15e4ceef7b71 Mon Sep 17 00:00:00 2001 From: Mads Hvid Ribergaard <38077893+mhrib@users.noreply.github.com> Date: Mon, 27 Sep 2021 23:20:35 +0200 Subject: [PATCH] sensible+latent heatfluxes using linear bulk formula (#633) * 'heatflux_linear' flag: sensible+latent heatfluxes using traditional linear bulk formula * Add option atmbndy='mixed' boundary layer condition * New options for 'atmbndy' * For backward compability, rename "atmbndy" = default to similarity * Change wording for text related to atmbndy * Change wording for text related to atmbndy * Change wording for text related to atmbndy * Spelling error etc. * Update Icepack with required atmbndy changes * Added test for atmbndy={constant,mixed} * Add test for atmbndy={constant,mixed} * Test for atmbndy={constant,mixed} * clean up. Renamed without underscores --- cicecore/cicedynB/general/ice_init.F90 | 23 +++++++++++++++---- configuration/scripts/ice_in | 2 +- .../scripts/options/set_nml.atmbndyconstant | 1 + .../scripts/options/set_nml.atmbndymixed | 1 + configuration/scripts/tests/base_suite.ts | 2 ++ doc/source/cice_index.rst | 2 +- doc/source/user_guide/ug_case_settings.rst | 6 +++-- icepack | 2 +- 8 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 configuration/scripts/options/set_nml.atmbndyconstant create mode 100644 configuration/scripts/options/set_nml.atmbndymixed diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 3d102217a..2e67af51c 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -448,7 +448,7 @@ subroutine input_data albsnowv = 0.98_dbl_kind ! cold snow albedo, visible albsnowi = 0.70_dbl_kind ! cold snow albedo, near IR ahmax = 0.3_dbl_kind ! thickness above which ice albedo is constant (m) - atmbndy = 'default' ! or 'constant' + atmbndy = 'similarity' ! Atm boundary layer: 'similarity', 'constant' or 'mixed' default_season = 'winter' ! default forcing data, if data is not read in fyear_init = 1900 ! first year of forcing cycle ycycle = 1 ! number of years in forcing cycle @@ -1214,6 +1214,14 @@ subroutine input_data endif endif + if (trim(atmbndy) == 'default') then + if (my_task == master_task) then + write(nu_diag,*) subname//' WARNING: atmbndy = default is deprecated' + write(nu_diag,*) subname//' WARNING: setting atmbndy = similarity' + endif + atmbndy = 'similarity' + endif + if (formdrag) then if (trim(atmbndy) == 'constant') then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: formdrag=T and atmbndy=constant' @@ -1641,13 +1649,18 @@ subroutine input_data write(nu_diag,1010) ' rotate_wind = ', rotate_wind,' : rotate wind/stress to computational grid' write(nu_diag,1010) ' formdrag = ', formdrag,' : use form drag parameterization' write(nu_diag,1000) ' iceruf = ', iceruf, ' : ice surface roughness at atmosphere interface (m)' - if (trim(atmbndy) == 'default') then - tmpstr2 = ' : stability-based boundary layer' + if (trim(atmbndy) == 'constant') then + tmpstr2 = ' : constant-based boundary layer' + elseif (trim(atmbndy) == 'similarity' .or. & + trim(atmbndy) == 'mixed') then write(nu_diag,1010) ' highfreq = ', highfreq,' : high-frequency atmospheric coupling' write(nu_diag,1020) ' natmiter = ', natmiter,' : number of atmo boundary layer iterations' write(nu_diag,1002) ' atmiter_conv = ', atmiter_conv,' : convergence criterion for ustar' - elseif (trim(atmbndy) == 'constant') then - tmpstr2 = ' : boundary layer uses bulk transfer coefficients' + if (trim(atmbndy) == 'similarity') then + tmpstr2 = ' : stability-based boundary layer' + else + tmpstr2 = ' : stability-based boundary layer for wind stress, constant-based for sensible+latent heat fluxes' + endif else tmpstr2 = ' : unknown value' endif diff --git a/configuration/scripts/ice_in b/configuration/scripts/ice_in index 3dec72963..443ff1cbb 100644 --- a/configuration/scripts/ice_in +++ b/configuration/scripts/ice_in @@ -223,7 +223,7 @@ &forcing_nml formdrag = .false. - atmbndy = 'default' + atmbndy = 'similarity' rotate_wind = .true. calc_strair = .true. calc_Tsfc = .true. diff --git a/configuration/scripts/options/set_nml.atmbndyconstant b/configuration/scripts/options/set_nml.atmbndyconstant new file mode 100644 index 000000000..8e2a68192 --- /dev/null +++ b/configuration/scripts/options/set_nml.atmbndyconstant @@ -0,0 +1 @@ +atmbndy = 'constant' diff --git a/configuration/scripts/options/set_nml.atmbndymixed b/configuration/scripts/options/set_nml.atmbndymixed new file mode 100644 index 000000000..c79a26fb5 --- /dev/null +++ b/configuration/scripts/options/set_nml.atmbndymixed @@ -0,0 +1 @@ +atmbndy = 'mixed' diff --git a/configuration/scripts/tests/base_suite.ts b/configuration/scripts/tests/base_suite.ts index 4da4dd110..2c75bffe1 100644 --- a/configuration/scripts/tests/base_suite.ts +++ b/configuration/scripts/tests/base_suite.ts @@ -72,3 +72,5 @@ restart gx3 8x2 gx3ncarbulk,debug restart gx3 4x4 gx3ncarbulk,diag1 restart gx1 24x1 gx1coreii,short smoke gx3 4x1 calcdragio +restart gx3 4x2 atmbndyconstant +restart gx3 4x2 atmbndymixed diff --git a/doc/source/cice_index.rst b/doc/source/cice_index.rst index 0a04b5e26..19428c87e 100644 --- a/doc/source/cice_index.rst +++ b/doc/source/cice_index.rst @@ -65,7 +65,7 @@ either Celsius or Kelvin units). "atm_data_dir", "directory for atmospheric forcing data", "" "atm_data_format", "format of atmospheric forcing files", "" "atm_data_type", "type of atmospheric forcing", "" - "atmbndy", "atmo boundary layer parameterization (‘default’ or ‘constant’)", "" + "atmbndy", "atmo boundary layer parameterization ('similarity', ‘constant’, or 'mixed')", "" "avail_hist_fields", "type for history field data", "" "awtidf", "weighting factor for near-ir, diffuse albedo", "0.36218" "awtidr", "weighting factor for near-ir, direct albedo", "0.00182" diff --git a/doc/source/user_guide/ug_case_settings.rst b/doc/source/user_guide/ug_case_settings.rst index 65a50120b..2b4e26c72 100644 --- a/doc/source/user_guide/ug_case_settings.rst +++ b/doc/source/user_guide/ug_case_settings.rst @@ -528,8 +528,10 @@ forcing_nml :widths: 15, 15, 30, 15 "", "", "", "" - "``atmbndy``", "``constant``", "bulk transfer coefficients", "``default``" - "", "``default``", "stability-based boundary layer", "" + "``atmbndy``", "string", "bulk transfer coefficients", "``similarity``" + "", "``similarity``", "stability-based boundary layer", "" + "", "``constant``", "constant-based boundary layer", "" + "", "``mixed``", "stability-based boundary layer for wind stress, constant-based for sensible+latent heat fluxes", "" "``atmiter_conv``", "real", "convergence criteria for ustar", "0.0" "``atm_data_dir``", "string", "path to atmospheric forcing data directory", "" "``atm_data_format``", "``bin``", "read direct access binary atmo forcing file format", "``bin``" diff --git a/icepack b/icepack index 34c8e688b..f9c9e480f 160000 --- a/icepack +++ b/icepack @@ -1 +1 @@ -Subproject commit 34c8e688bf7f3008cf84093cd703cf8cfe068eda +Subproject commit f9c9e480f6ce482317734be80719178c8e1b5121