Skip to content

Commit

Permalink
sensible+latent heatfluxes using linear bulk formula (#633)
Browse files Browse the repository at this point in the history
* '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
  • Loading branch information
mhrib authored Sep 27, 2021
1 parent 8c63ea0 commit 6c4160e
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 10 deletions.
23 changes: 18 additions & 5 deletions cicecore/cicedynB/general/ice_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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'
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion configuration/scripts/ice_in
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@

&forcing_nml
formdrag = .false.
atmbndy = 'default'
atmbndy = 'similarity'
rotate_wind = .true.
calc_strair = .true.
calc_Tsfc = .true.
Expand Down
1 change: 1 addition & 0 deletions configuration/scripts/options/set_nml.atmbndyconstant
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
atmbndy = 'constant'
1 change: 1 addition & 0 deletions configuration/scripts/options/set_nml.atmbndymixed
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
atmbndy = 'mixed'
2 changes: 2 additions & 0 deletions configuration/scripts/tests/base_suite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion doc/source/cice_index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
6 changes: 4 additions & 2 deletions doc/source/user_guide/ug_case_settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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``"
Expand Down

0 comments on commit 6c4160e

Please sign in to comment.