Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
ee3602a
Commit ice_history changes before merge main
dabail10 Nov 13, 2025
80ca1d3
Merge branch 'main' of https://github.com/ESCOMP/CICE
dabail10 Nov 13, 2025
b6b59c1
This is a big commit. I have gone through and updated the SIMIP
dabail10 Nov 13, 2025
30ec758
Forgot a couple broadcasts
dabail10 Nov 14, 2025
bd9cf20
Add sidragbot and change concentrations to percent
dabail10 Nov 14, 2025
9f429b8
Line up some ampersands and change mask_ice_free_points where appropr…
dabail10 Nov 14, 2025
1dcff41
Another sizable commit.
dabail10 Nov 14, 2025
5dad94a
Another big commit on this.
dabail10 Nov 19, 2025
f2a463e
Fix siitd variables
dabail10 Nov 19, 2025
1d15438
Add documentation on CMIP7 updates and f_CICE flag
dabail10 Nov 19, 2025
d9ef7d8
Fix lwout bug for coupler and revert change for history
dabail10 Nov 21, 2025
a724928
Remove some of the worka accumulation where it is not necessary.
dabail10 Nov 21, 2025
9219a55
Change sidmasslat to sidmassmeltlat. Fix the signs on the melt terms.
dabail10 Nov 21, 2025
845c4eb
Another big commit. Here the f_CMIP option has been completely
dabail10 Nov 25, 2025
c390f09
Add turning off the CICE variables and add SIMIP variables to the def…
dabail10 Nov 25, 2025
f663518
Fix some typos and make sure aice and aice_init are also accumulated
dabail10 Nov 25, 2025
d435464
Fill in comment using CMIP table description
dabail10 Nov 26, 2025
13bd7e5
Make the comment field longer
dabail10 Dec 1, 2025
d369966
Add 'n' option for instantaneous output for a particular day in
dabail10 Dec 1, 2025
e88b3c7
Syntax error with filenames
dabail10 Dec 1, 2025
6b7cd82
- Add long name to bounds variables.
dabail10 Dec 3, 2025
fa475da
Fix some more issues in the ice_history_write.F90 modules
dabail10 Dec 3, 2025
0cdee8d
Fix comment syntax error
dabail10 Dec 3, 2025
2760117
Add all attributes for bounds variables
dabail10 Dec 4, 2025
a05e3b4
- Do the calculation of rho_ice, rho_ocn, and salt_ice once.
dabail10 Dec 5, 2025
da28d22
Clean up some comments and add f_icespd and f_icedir
dabail10 Dec 5, 2025
3e41855
Fix some comments and input namelists
dabail10 Dec 8, 2025
27b72ce
Fix computation of sirdgthick
dabail10 Dec 9, 2025
2640432
Add minimimum to freeboard and fix meltpond thicknesses
dabail10 Dec 10, 2025
7e64142
Compute pond and ridge thicknesses more correctly
dabail10 Dec 10, 2025
9a7c17b
Some more changes to meltpond and ridge thicknesses
dabail10 Dec 11, 2025
3947550
Some additional fixes. Make sure that f_apond, f_ardg, and f_alvl are…
dabail10 Dec 11, 2025
ceefabd
Fix sirdgthick averaging
dabail10 Dec 11, 2025
ab7614f
Some formatting in code and documentation. Make sure f_aicen is turne…
dabail10 Dec 18, 2025
3de1656
A bug with the denominator for simpthick and simprefrozen
dabail10 Dec 18, 2025
3454a14
Code and documentation cleanup
dabail10 Dec 22, 2025
ad78c48
- Add the avg_ice_present and mask_ice_points arguments to all CMIP
dabail10 Dec 23, 2025
71b53ec
Change attribute text in the lat_bounds and lon_bounds variables
dabail10 Dec 23, 2025
436b972
- Fix the computation of siflswutop
dabail10 Dec 30, 2025
f76775b
Add fswup to be computed before scale_fluxes for history.
dabail10 Jan 7, 2026
16baf4e
Forgot one driver mct/cesm1
dabail10 Jan 7, 2026
64cf79b
- Fix some language in the documentation
dabail10 Jan 9, 2026
f4505f5
Fix conditionals for abort when computing ravgp quantities
dabail10 Jan 9, 2026
d0455f6
Further refine abort condition
dabail10 Jan 9, 2026
f222ad1
Fix comment for snowfrac
dabail10 Jan 12, 2026
5abb957
Fix aborts for accumulation variables
dabail10 Jan 14, 2026
b653260
One more comment change
dabail10 Jan 15, 2026
3a220fa
Merge branch 'CICE-Consortium:main' into cmip7
dabail10 Jan 15, 2026
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
2,364 changes: 1,078 additions & 1,286 deletions cicecore/cicedyn/analysis/ice_history.F90

Large diffs are not rendered by default.

73 changes: 55 additions & 18 deletions cicecore/cicedyn/analysis/ice_history_mechred.F90
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ module ice_history_mechred
f_aredistn = 'x', f_vredistn = 'x', &
f_araftn = 'x', f_vraftn = 'x'

! CMIP ridging variables.

character (len=max_nstrm), public :: &
f_sirdgconc = 'm', f_sirdgthick = 'm'

!---------------------------------------------------------------
! namelist variables
!---------------------------------------------------------------
Expand All @@ -51,13 +56,14 @@ module ice_history_mechred
f_dvirdgndt, &
f_aparticn, f_krdgn , &
f_aredistn, f_vredistn , &
f_araftn, f_vraftn
f_araftn, f_vraftn , &
f_sirdgconc, f_sirdgthick

!---------------------------------------------------------------
! field indices
!---------------------------------------------------------------

integer (kind=int_kind), dimension(max_nstrm) :: &
integer (kind=int_kind), dimension(max_nstrm), public :: &
n_ardg , n_vrdg , &
n_alvl , n_vlvl , &
n_dardg1dt , n_dardg2dt , &
Expand All @@ -69,6 +75,9 @@ module ice_history_mechred
n_aredistn , n_vredistn , &
n_araftn , n_vraftn

integer (kind=int_kind), dimension(max_nstrm) :: &
n_sirdgconc, n_sirdgthick

!=======================================================================

contains
Expand Down Expand Up @@ -152,6 +161,8 @@ subroutine init_hist_mechred_2D
f_vrdgn = 'x'
f_araftn = 'x'
f_vraftn = 'x'
f_sirdgconc = 'x'
f_sirdgthick = 'x'
endif
if (f_araftn /= 'x' .or. f_vraftn /= 'x') f_ardgn = f_araftn

Expand All @@ -174,6 +185,8 @@ subroutine init_hist_mechred_2D
call broadcast_scalar (f_vredistn, master_task)
call broadcast_scalar (f_araftn, master_task)
call broadcast_scalar (f_vraftn, master_task)
call broadcast_scalar (f_sirdgconc, master_task)
call broadcast_scalar (f_sirdgthick, master_task)

! 2D variables

Expand All @@ -182,49 +195,63 @@ subroutine init_hist_mechred_2D

if (f_alvl(1:1) /= 'x') &
call define_hist_field(n_alvl,"alvl","1",tstr2D, tcstr, &
"level ice area fraction", &
"none", c1, c0, &
"level ice area fraction", &
"none", c1, c0, &
ns, f_alvl)
if (f_vlvl(1:1) /= 'x') &
call define_hist_field(n_vlvl,"vlvl","m",tstr2D, tcstr, &
"level ice volume", &
"grid cell mean level ice thickness", c1, c0, &
"level ice volume", &
"grid cell mean level ice thickness", c1, c0, &
ns, f_vlvl)
if (f_ardg(1:1) /= 'x') &
call define_hist_field(n_ardg,"ardg","1",tstr2D, tcstr, &
"ridged ice area fraction", &
"none", c1, c0, &
"ridged ice area fraction", &
"none", c1, c0, &
ns, f_ardg)
if (f_vrdg(1:1) /= 'x') &
call define_hist_field(n_vrdg,"vrdg","m",tstr2D, tcstr, &
"ridged ice volume", &
"grid cell mean level ridged thickness", c1, c0, &
"ridged ice volume", &
"grid cell mean level ridged thickness", c1, c0, &
ns, f_vrdg)

if (f_dardg1dt(1:1) /= 'x') &
call define_hist_field(n_dardg1dt,"dardg1dt","%/day",tstr2D, tcstr, &
"ice area ridging rate", &
"none", secday*c100, c0, &
"ice area ridging rate", &
"none", secday*c100, c0, &
ns, f_dardg1dt)

if (f_dardg2dt(1:1) /= 'x') &
call define_hist_field(n_dardg2dt,"dardg2dt","%/day",tstr2D, tcstr, &
"ridge area formation rate", &
"none", secday*c100, c0, &
"ridge area formation rate", &
"none", secday*c100, c0, &
ns, f_dardg2dt)

if (f_dvirdgdt(1:1) /= 'x') &
call define_hist_field(n_dvirdgdt,"dvirdgdt","cm/day",tstr2D, tcstr, &
"ice volume ridging rate", &
"none", mps_to_cmpdy, c0, &
"ice volume ridging rate", &
"none", mps_to_cmpdy, c0, &
ns, f_dvirdgdt)

if (f_opening(1:1) /= 'x') &
call define_hist_field(n_opening,"opening","%/day",tstr2D, tcstr, &
"lead area opening rate", &
"none", secday*c100, c0, &
"lead area opening rate", &
"none", secday*c100, c0, &
ns, f_opening)

if (f_sirdgconc(1:1) /= 'x') &
call define_hist_field(n_sirdgconc,"sirdgconc","%",tstr2D, tcstr, &
"percentage of ridged sea ice", &
"area percentage of sea ice surface that is ridged sea ice", &
c100, c0, &
ns, f_sirdgconc, avg_ice_present='none', mask_ice_free_points=.false.)

if (f_sirdgthick(1:1) /= 'x') &
call define_hist_field(n_sirdgthick,"sirdgthick","m",tstr2D, tcstr, &
"ridged ice thickness", &
"total volume of ridged sea ice divided by area of ridges", &
c1, c0, &
ns, f_sirdgthick, avg_ice_present='ridge', mask_ice_free_points=.true.)

endif ! histfreq(ns) /= 'x'
enddo ! nstreams

Expand Down Expand Up @@ -331,6 +358,7 @@ end subroutine init_hist_mechred_3Dc

subroutine accum_hist_mechred (iblk)

use ice_blocks, only: nx_block, ny_block
use ice_history_shared, only: n2D, a2D, a3Dc, ncat_hist, &
accum_hist_field
use ice_state, only: aice, vice, trcr, aicen, vicen, trcrn
Expand Down Expand Up @@ -380,6 +408,15 @@ subroutine accum_hist_mechred (iblk)
if (f_opening(1:1) /= 'x') &
call accum_hist_field(n_opening, iblk, opening(:,:,iblk), a2D)

if (f_sirdgconc(1:1)/= 'x') &
call accum_hist_field(n_sirdgconc, iblk, &
aice(:,:,iblk) * (c1 - trcr(:,:,nt_alvl,iblk)), a2D)

if (f_sirdgthick(1:1)/= 'x') then
call accum_hist_field(n_sirdgthick, iblk, &
vice(:,:,iblk) * (c1 - trcr(:,:,nt_vlvl,iblk)), a2D)
endif

endif ! allocated(a2D)

! 3D category fields
Expand Down
Loading