From 14f42ab803344102f8b9def313f48b7c048c090a Mon Sep 17 00:00:00 2001 From: Tony Craig Date: Tue, 25 Jan 2022 08:58:00 -0800 Subject: [PATCH] Add gbox12 and ice_data_type='smallblock' (#51) * add gbox12 and ice_data_type='smallblock' * update documentation * update gbox12 default --- cicecore/cicedynB/general/ice_init.F90 | 16 +++++++++++++++- configuration/scripts/cice_decomp.csh | 11 +++++++++++ configuration/scripts/options/set_nml.gbox12 | 5 +++++ doc/source/user_guide/ug_case_settings.rst | 4 +++- 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 configuration/scripts/options/set_nml.gbox12 diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 3292f6274..2c2327dd8 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -2687,7 +2687,7 @@ subroutine set_state_var (nx_block, ny_block, & if (trim(ice_ic) == 'default') then - if (trim(ice_data_type) == 'box2001') then + if (trim(ice_data_type) == 'box2001' .or. trim(ice_data_type) == 'smallblock') then hbar = c2 ! initial ice thickness do n = 1, ncat @@ -2764,6 +2764,20 @@ subroutine set_state_var (nx_block, ny_block, & endif enddo enddo + + else if (trim(ice_data_type) == 'smallblock') then + ! 2x2 ice in center of domain + icells = 0 + do j = jlo, jhi + do i = ilo, ihi + if ((iglob(i) == nx_global/2 .or. iglob(i) == nx_global/2+1) .and. & + (jglob(j) == ny_global/2 .or. jglob(j) == ny_global/2+1)) then + icells = icells + 1 + indxi(icells) = i + indxj(icells) = j + endif + enddo + enddo else ! default behavior diff --git a/configuration/scripts/cice_decomp.csh b/configuration/scripts/cice_decomp.csh index aa1bb9a54..0c6715f3b 100755 --- a/configuration/scripts/cice_decomp.csh +++ b/configuration/scripts/cice_decomp.csh @@ -66,6 +66,17 @@ else if (${grid} == 'gbox80') then set blckx = 8; set blcky = 8 endif +else if (${grid} == 'gbox12') then + set nxglob = 12 + set nyglob = 12 + if (${cicepes} <= 1) then + set blckx = 12; set blcky = 12 + else if (${cicepes} <= 8) then + set blckx = 4; set blcky = 4 + else + set blckx = 2; set blcky = 2 + endif + else if (${grid} == 'gx3') then set nxglob = 100 set nyglob = 116 diff --git a/configuration/scripts/options/set_nml.gbox12 b/configuration/scripts/options/set_nml.gbox12 new file mode 100644 index 000000000..8063bee67 --- /dev/null +++ b/configuration/scripts/options/set_nml.gbox12 @@ -0,0 +1,5 @@ +ice_ic = 'default' +grid_type = 'rectangular' +atm_data_type = 'box2001' +ocn_data_type = 'calm' +ice_data_type = 'box2001' diff --git a/doc/source/user_guide/ug_case_settings.rst b/doc/source/user_guide/ug_case_settings.rst index 8f763db2f..3f70ebb02 100644 --- a/doc/source/user_guide/ug_case_settings.rst +++ b/doc/source/user_guide/ug_case_settings.rst @@ -577,7 +577,9 @@ forcing_nml "``highfreq``", "logical", "high-frequency atmo coupling", "``.false.``" "``ice_data_type``", "``boxslotcyl``", "initialize ice concentration and velocity for :ref:`boxslotcyl` test (:cite:`Zalesak79`)", "``default``" "", "``box2001``", "initialize ice concentration for :ref:`box2001` test (:cite:`Hunke01`)", "" - "", "``default``", "no special initialization", "" + "", "``default``", "ice dependent on latitude and ocean temperature", "" + "", "``smallblock``", "uniform 2x2 block ice concentration and thickness in center of domain", "" + "", "``uniform``", "uniform ice concentration and thickness across domain", "" "``iceruf``", "real", "ice surface roughness at atmosphere interface", "0.0005" "``l_mpond_fresh``", "``.false.``", "release pond water immediately to ocean", "``.false.``" "", "``true``", "retain (topo) pond water until ponds drain", ""