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

Update CICE and Icepack to latest versions, Oct 4, 2023 #112

Merged
merged 3 commits into from
Oct 4, 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
15 changes: 14 additions & 1 deletion cicecore/cicedyn/dynamics/ice_transport_remap.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1998,7 +1998,8 @@ subroutine locate_triangles (nx_block, ny_block, &
endif

!-------------------------------------------------------------------
! Compute mask for edges with nonzero departure areas
! Compute mask for edges with nonzero departure areas and for
! one grid-cell wide channels
!-------------------------------------------------------------------

icellsd = 0
Expand All @@ -2011,6 +2012,12 @@ subroutine locate_triangles (nx_block, ny_block, &
icellsd = icellsd + 1
indxid(icellsd) = i
indxjd(icellsd) = j
else
if ( abs(edgearea(i,j)) > c0 ) then ! 1 grid-cell wide channel: dpx,y = 0, edgearea /= 0
icellsd = icellsd + 1
indxid(icellsd) = i
indxjd(icellsd) = j
endif
endif
enddo
enddo
Expand All @@ -2023,6 +2030,12 @@ subroutine locate_triangles (nx_block, ny_block, &
icellsd = icellsd + 1
indxid(icellsd) = i
indxjd(icellsd) = j
else
if ( abs(edgearea(i,j)) > c0 ) then ! 1 grid-cell wide channel: dpx,y = 0, edgearea /= 0
icellsd = icellsd + 1
indxid(icellsd) = i
indxjd(icellsd) = j
endif
endif
enddo
enddo
Expand Down
4 changes: 3 additions & 1 deletion cicecore/cicedyn/general/ice_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2465,6 +2465,8 @@ subroutine input_data

if (kmt_type /= 'file' .and. &
kmt_type /= 'channel' .and. &
kmt_type /= 'channel_oneeast' .and. &
kmt_type /= 'channel_onenorth' .and. &
kmt_type /= 'wall' .and. &
kmt_type /= 'default' .and. &
kmt_type /= 'boxislands') then
Expand Down Expand Up @@ -3155,7 +3157,7 @@ subroutine set_state_var (nx_block, ny_block, &
enddo
enddo

elseif (trim(ice_data_type) == 'channel') then
elseif (ice_data_type(1:7) == 'channel') then
! channel ice in center of domain in i direction
icells = 0
do j = jlo, jhi
Expand Down
16 changes: 16 additions & 0 deletions cicecore/cicedyn/infrastructure/ice_grid.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1489,6 +1489,22 @@ subroutine rectgrid
enddo
enddo

elseif (trim(kmt_type) == 'channel_oneeast') then

do j = ny_global/2,ny_global/2 ! one channel wide
do i = 1,nx_global ! open sides
work_g1(i,j) = c1 ! NOTE nx_global > 5
enddo
enddo

elseif (trim(kmt_type) == 'channel_onenorth') then

do j = 1,ny_global ! open sides
do i = nx_global/2,nx_global/2 ! one channel wide
work_g1(i,j) = c1 ! NOTE nx_global > 5
enddo
enddo

elseif (trim(kmt_type) == 'wall') then

do j = 1,ny_global ! open except
Expand Down
56 changes: 56 additions & 0 deletions configuration/scripts/options/set_nml.boxchan1e
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
days_per_year = 360
use_leap_years = .false.
npt_unit = 'd'
npt = 5
ice_ic = 'internal'
restart_ext = .true.
histfreq = 'd','1','x','x','x'
grid_type = 'rectangular'
kmt_type = 'channel_oneeast'
dxrect = 16.e5
dyrect = 16.e5
close_boundaries = .false.
ew_boundary_type = 'cyclic'
ns_boundary_type = 'open'
tr_iage = .false.
tr_FY = .false.
tr_lvl = .false.
tr_pond_lvl = .false.
ktherm = -1
atmbndy = 'constant'
atm_data_type = 'uniform_east'
ocn_data_type = 'calm'
ice_data_type = 'block'
ice_data_conc = 'p5'
ice_data_dist = 'uniform'
calc_strair = .false.
rotate_wind = .false.
restore_ice = .false.
tfrz_option = 'mushy_old'
f_aice = 'd1'
f_hi = 'd1'
f_hs = 'd'
f_Tsfc = 'd'
f_uvel = 'd1'
f_vvel = 'd1'
f_uatm = 'd'
f_vatm = 'd'
f_uocn = 'd'
f_vocn = 'd'
f_strairx = 'd1'
f_strairy = 'd1'
f_strtltx = 'd1'
f_strtlty = 'd1'
f_strcorx = 'd1'
f_strcory = 'd1'
f_strocnx = 'd1'
f_strocny = 'd1'
f_strintx = 'd1'
f_strinty = 'd1'
f_taubx = 'd1'
f_tauby = 'd1'
f_divu = 'd1'
f_sig1 = 'd1'
f_sig2 = 'd1'
f_sigP = 'd1'
f_dvidtd = 'd1'
56 changes: 56 additions & 0 deletions configuration/scripts/options/set_nml.boxchan1n
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
days_per_year = 360
use_leap_years = .false.
npt_unit = 'd'
npt = 5
ice_ic = 'internal'
restart_ext = .true.
histfreq = 'd','1','x','x','x'
grid_type = 'rectangular'
kmt_type = 'channel_onenorth'
dxrect = 16.e5
dyrect = 16.e5
close_boundaries = .false.
ew_boundary_type = 'open'
ns_boundary_type = 'cyclic'
tr_iage = .false.
tr_FY = .false.
tr_lvl = .false.
tr_pond_lvl = .false.
ktherm = -1
atmbndy = 'constant'
atm_data_type = 'uniform_north'
ocn_data_type = 'calm'
ice_data_type = 'block'
ice_data_conc = 'p5'
ice_data_dist = 'uniform'
calc_strair = .false.
rotate_wind = .false.
restore_ice = .false.
tfrz_option = 'mushy_old'
f_aice = 'd1'
f_hi = 'd1'
f_hs = 'd'
f_Tsfc = 'd'
f_uvel = 'd1'
f_vvel = 'd1'
f_uatm = 'd'
f_vatm = 'd'
f_uocn = 'd'
f_vocn = 'd'
f_strairx = 'd1'
f_strairy = 'd1'
f_strtltx = 'd1'
f_strtlty = 'd1'
f_strcorx = 'd1'
f_strcory = 'd1'
f_strocnx = 'd1'
f_strocny = 'd1'
f_strintx = 'd1'
f_strinty = 'd1'
f_taubx = 'd1'
f_tauby = 'd1'
f_divu = 'd1'
f_sig1 = 'd1'
f_sig2 = 'd1'
f_sigP = 'd1'
f_dvidtd = 'd1'
27 changes: 18 additions & 9 deletions configuration/scripts/tests/gridsys_suite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,17 @@ smoke gx3 8x2 diag1,run5day
smoke gx3 8x4 diag1,run5day,debug
restart gx3 4x2 debug,diag1
restart2 gx1 16x2 debug,diag1
restart tx1 40x2 diag1
smoke gbox12 1x1x12x12x1 boxchan
smoke gbox80 4x2 boxchan1e
smoke gbox80 8x1 boxchan1n
smoke gbox80 1x1 box2001
smoke gbox80 2x2 boxwallblock
smoke gbox80 1x1 boxslotcyl
smoke gbox80 2x4 boxnodyn
smoke gbox80 4x2 boxclosed,boxforcee,run1day
smoke gbox80 4x1 boxclosed,boxforcene,run1day,kmtislands
smoke gbox80 4x2 boxopen,kmtislands,boxforcee,run1day
smoke gbox80 4x2 boxclosed,boxforcee,run1day
smoke gbox80 4x1 boxclosed,boxforcene,run1day,kmtislands
smoke gbox80 4x2 boxopen,kmtislands,boxforcee,run1day
smoke gbox80 2x2 boxclosed,boxforcen,run1day,vargrid
smoke gx3 1x1x25x29x16 reprosum,run10day,dwblockall smoke_gx3_1x1x100x116x1_reprosum_run10day
smoke gx3 1x1x5x4x580 reprosum,run10day,dwblockall smoke_gx3_1x1x100x116x1_reprosum_run10day
Expand All @@ -30,14 +33,17 @@ smoke gx3 8x2 diag1,run5day,gridcd
smoke gx3 8x4 diag1,run5day,debug,gridcd
restart gx3 4x2 debug,diag1,gridcd
restart2 gx1 16x2 debug,diag1,gridcd
restart tx1 40x2 diag1,gridcd
smoke gbox12 1x1x12x12x1 boxchan,gridcd
smoke gbox80 4x2 boxchan1e,gridcd
smoke gbox80 8x1 boxchan1n,gridcd
smoke gbox80 1x1 box2001,gridcd
smoke gbox80 2x2 boxwallblock,gridcd
smoke gbox80 1x1 boxslotcyl,gridcd
smoke gbox80 2x4 boxnodyn,gridcd
smoke gbox80 4x2 boxclosed,boxforcee,run1day,gridcd
smoke gbox80 4x1 boxclosed,boxforcene,run1day,kmtislands,gridcd
smoke gbox80 4x2 boxopen,kmtislands,boxforcee,run1day,gridcd
smoke gbox80 4x2 boxclosed,boxforcee,run1day,gridcd
smoke gbox80 4x1 boxclosed,boxforcene,run1day,kmtislands,gridcd
smoke gbox80 4x2 boxopen,kmtislands,boxforcee,run1day,gridcd
smoke gbox80 2x2 boxclosed,boxforcen,run1day,vargrid,gridcd
smoke gx3 1x1x25x29x16 reprosum,run10day,dwblockall,gridcd smoke_gx3_1x1x100x116x1_gridcd_reprosum_run10day
smoke gx3 1x1x5x4x580 reprosum,run10day,dwblockall,gridcd smoke_gx3_1x1x100x116x1_gridcd_reprosum_run10day
Expand All @@ -50,14 +56,17 @@ smoke gx3 8x2 diag1,run5day,gridc
smoke gx3 8x4 diag1,run5day,debug,gridc
restart gx3 4x2 debug,diag1,gridc
restart2 gx1 16x2 debug,diag1,gridc
restart tx1 40x2 diag1,gridc
smoke gbox12 1x1x12x12x1 boxchan,gridc
smoke gbox80 4x2 boxchan1e,gridc
smoke gbox80 8x1 boxchan1n,gridc
smoke gbox80 1x1 box2001,gridc
smoke gbox80 2x2 boxwallblock,gridc
smoke gbox80 1x1 boxslotcyl,gridc
smoke gbox80 2x4 boxnodyn,gridc
smoke gbox80 4x2 boxclosed,boxforcee,run1day,gridc
smoke gbox80 4x1 boxclosed,boxforcene,run1day,kmtislands,gridc
smoke gbox80 4x2 boxopen,kmtislands,boxforcee,run1day,gridc
smoke gbox80 4x2 boxclosed,boxforcee,run1day,gridc
smoke gbox80 4x1 boxclosed,boxforcene,run1day,kmtislands,gridc
smoke gbox80 4x2 boxopen,kmtislands,boxforcee,run1day,gridc
smoke gbox80 2x2 boxclosed,boxforcen,run1day,vargrid,gridc
smoke gx3 1x1x25x29x16 reprosum,run10day,dwblockall,gridc smoke_gx3_1x1x100x116x1_gridc_reprosum_run10day
smoke gx3 1x1x5x4x580 reprosum,run10day,dwblockall,gridc smoke_gx3_1x1x100x116x1_gridc_reprosum_run10day
Expand Down
2 changes: 1 addition & 1 deletion doc/source/cice_index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ either Celsius or Kelvin units). Deprecated parameters are listed at the end.
"kice", "thermal conductivity of fresh ice (:cite:`Bitz99`)", "2.03 W/m/deg"
"kitd", "type of itd conversions (0 = delta function, 1 = linear remap)", "1"
"kmt_file", "input file for land mask info", ""
"kmt_type", "file, default or boxislands", "file"
"kmt_type", "file, default, channel, wall, or boxislands", "file"
"krdg_partic", "ridging participation function", "1"
"krdg_redist", "ridging redistribution function", "1"
"krgdn", "mean ridge thickness per thickness of ridging ice", ""
Expand Down
2 changes: 2 additions & 0 deletions doc/source/user_guide/ug_case_settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,8 @@ grid_nml
"``kmt_file``", "string", "name of land mask file to be read", "``unknown_kmt_file``"
"``kmt_type``", "boxislands", "ocean/land mask set internally, complex test geometory", "file"
"", "channel", "ocean/land mask set internally as zonal channel", ""
"", "channel_oneeast", "ocean/land mask set internally as single gridcell east-west zonal channel", ""
"", "channel_onenorth", "ocean/land mask set internally as single gridcell north-south zonal channel", ""
"", "default", "ocean/land mask set internally, land in upper left and lower right of domain, ", ""
"", "file", "ocean/land mask setup read from file, see kmt_file", ""
"", "wall", "ocean/land mask set at right edge of domain", ""
Expand Down
2 changes: 1 addition & 1 deletion doc/source/user_guide/ug_implementation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ Several predefined rectangular grids are available in CICE with
where 12, 80, 128, and 180 are the number of gridcells in each direction.
Several predefined options also exist, set with **cice.setup --set**, to
establish varied idealized configurations of box tests including ``box2001``,
``boxadv``, ``boxchan``, ``boxnodyn``, ``boxrestore``, ``boxslotcyl``, and
``boxadv``, ``boxchan``, ``boxchan1e``, ``boxchan1n``, ``boxnodyn``, ``boxrestore``, ``boxslotcyl``, and
``boxopen``, ``boxclosed``, and ``boxforcee``. See **cice.setup --help** for a current
list of supported settings.

Expand Down
Loading