Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
11c446a
fixes to evap_ice evap_snow
Nov 13, 2024
63f7641
bug fix
Dec 2, 2024
e146cff
added timestep, FLAGGED diff with CICE6
Dec 2, 2024
b59601a
add siflfwdrain, minor changes to FLAG comments
Dec 16, 2024
19e550d
missing variable definitions
anton-seaice May 1, 2025
e49e0eb
use kelvin for sitemptop
anton-seaice Jun 3, 2025
50ce815
use kelvin for sitempsnic
anton-seaice Jun 3, 2025
bc4a51f
tidy comments
anton-seaice Jun 3, 2025
86dd0e1
Update source/ice_history.F90
anton-seaice Jul 4, 2025
462a1bd
port CICE6 history features for CMIP variables: avg_ice_present, mask…
anton-seaice Aug 20, 2025
e26beb9
add sidmassgrowthsi (same as sidmasssi)
anton-seaice Aug 21, 2025
cb3bce8
neaten formatting of history tape logging
anton-seaice Aug 21, 2025
8ae3a8b
add sidmassmeltlat
anton-seaice Aug 22, 2025
4f24ad2
fix namelist error handling
anton-seaice Aug 22, 2025
00dcd15
fix f_sidmassgrowthsi
anton-seaice Aug 22, 2025
4f46545
fix f_sidmassgrowthsi
anton-seaice Aug 22, 2025
b57d7ec
fix name for sidmassmeltlat and possible loop optimise of sidmasstran…
anton-seaice Aug 22, 2025
a9cf7f7
add siflsensbot
anton-seaice Aug 22, 2025
003961c
simass and sisnmass
anton-seaice Aug 22, 2025
6daf211
add siconc, fix sisnconc for aice weighting
anton-seaice Aug 22, 2025
2c26cfc
fix siconc
anton-seaice Aug 22, 2025
aec5e8d
sisndmassdyn
anton-seaice Aug 22, 2025
77622b3
some fixes and add sisndmasssi
anton-seaice Sep 5, 2025
6eb67cd
sisndmasssnf?
anton-seaice Sep 5, 2025
8e65dec
add sisndmasssubl, although probably 0 for zero-layer thermodynamics?
anton-seaice Sep 15, 2025
8f6f206
sitimefrac
anton-seaice Sep 15, 2025
fe5e7a0
sivol
anton-seaice Sep 15, 2025
061fada
notes
anton-seaice Sep 15, 2025
d0a7db6
fix my bugs
anton-seaice Sep 22, 2025
1673cb2
fix my bugs
anton-seaice Sep 22, 2025
d518ff7
fix my bugs
anton-seaice Sep 22, 2025
d3c1fa0
some corrections adn tidyup
anton-seaice Sep 23, 2025
0f0df60
Update source/ice_history.F90
anton-seaice Sep 23, 2025
db55587
fix C->K conversion for sitempsnic
anton-seaice Sep 23, 2025
a8c2d26
Tsnice based on https://github.com/CICE-Consortium/Icepack/pull/542
anton-seaice Sep 24, 2025
e081c14
fix units on sisnmass
anton-seaice Sep 24, 2025
81f2080
reset evap_ice each timestep and adjust diagnostic
anton-seaice Sep 25, 2025
f914d6b
Merge remote-tracking branch 'origin/access-esm1.6' into spo_edit_gsi8.1
anton-seaice Sep 26, 2025
60179c8
use cice6 calc for freeboard
anton-seaice Oct 7, 2025
387dc7b
use cice6 implementation for temperature diags
anton-seaice Oct 7, 2025
a6cd05b
sisaltmass is extensive
anton-seaice Oct 7, 2025
15656b4
siitdconc
anton-seaice Oct 7, 2025
a426958
some tidyup and average sisndmasssubl by aice
anton-seaice Oct 7, 2025
34759cd
snow mass melt should be grid cell average
anton-seaice Oct 7, 2025
c549af9
average all snow by aice
anton-seaice Oct 7, 2025
b09a985
fix sivol
anton-seaice Oct 9, 2025
1db42f3
Some fixes:
anton-seaice Oct 13, 2025
5da1061
better Tsnice weighting
anton-seaice Oct 13, 2025
aafe598
better Tsnice weighting
anton-seaice Oct 13, 2025
79ad707
Apply suggestion from @anton-seaice
anton-seaice Oct 13, 2025
62dcb7e
syntax
anton-seaice Oct 13, 2025
8c7035f
Fix name for sivol var
anton-seaice Oct 14, 2025
acbecaf
test with aice_init masking
anton-seaice Oct 17, 2025
6781f62
test with aice_init masking
anton-seaice Oct 17, 2025
d15555b
some error handling and moving of aice weighting
anton-seaice Oct 20, 2025
cf9c0eb
some error handling and moving of aice weighting
anton-seaice Oct 20, 2025
ac52cb6
corrections
anton-seaice Oct 20, 2025
d8e6797
corrections
anton-seaice Oct 20, 2025
62fd66f
reorder avg_ice_present and conb steps so that temp diagnostics work
anton-seaice Oct 22, 2025
22dcdf9
fixes to metadata
anton-seaice Oct 22, 2025
edd67f0
Use long names based on CMIP7 variable title
anton-seaice Oct 22, 2025
cd905a8
consistentize units
anton-seaice Oct 22, 2025
3f0f381
we arent CF compliant
anton-seaice Oct 22, 2025
d083b62
don't save sipr if it's passed straight through (per Notz 2016)
anton-seaice Oct 24, 2025
bf9a479
try with less masking
anton-seaice Oct 24, 2025
25150ff
some prep for review
anton-seaice Oct 28, 2025
1b8fa36
self review
anton-seaice Oct 28, 2025
14e1ecb
Apply suggestions from code review
anton-seaice Nov 6, 2025
a43343a
Apply suggestions from code review
anton-seaice Nov 6, 2025
2a9f9e4
review feedback, and _ai variables
anton-seaice Nov 6, 2025
d18bc58
some corrections from the data request
anton-seaice Nov 7, 2025
1fe8164
update comments and weightings
anton-seaice Nov 10, 2025
4eccf53
allow for both _intensive and not _intensive for snow variables
anton-seaice Nov 11, 2025
5e378b3
bug fixes and sign corrections
anton-seaice Nov 11, 2025
6a912f8
Apply suggestions from code review
anton-seaice Nov 11, 2025
2e8071f
review comments
anton-seaice Nov 12, 2025
adff66c
Apply suggestions from code review
anton-seaice Nov 12, 2025
fd8ccf3
Update source/ice_therm_vertical.F90
anton-seaice Nov 12, 2025
41c6a64
Update source/ice_history.F90
anton-seaice Nov 12, 2025
67863be
Update source/ice_history.F90
anton-seaice Nov 12, 2025
eb9583d
fix n_sndmasssnf
anton-seaice Nov 12, 2025
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
9 changes: 9 additions & 0 deletions drivers/access/CICE_RunMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,15 @@ subroutine coupling_prep (iblk)
fsalt_ai (i,j,iblk) = fsalt (i,j,iblk)
fhocn_ai (i,j,iblk) = fhocn (i,j,iblk)
fswthru_ai(i,j,iblk) = fswthru(i,j,iblk)
fsens_ai (i,j,iblk) = fsens(i,j,iblk)
flat_ai (i,j,iblk) = flat(i,j,iblk)
fswabs_ai (i,j,iblk) = fswabs(i,j,iblk)
flwout_ai (i,j,iblk) = flwout(i,j,iblk)
evap_ai (i,j,iblk) = evap(i,j,iblk)
evap_ice_ai(i,j,iblk) = evap_ice(i,j,iblk)
evap_snow_ai(i,j,iblk) = evap_snow(i,j,iblk)
fcondtop_ai(i,j,iblk) = fcondtop(i,j,iblk)
fsurf_ai(i,j,iblk) = fsurf(i,j,iblk)

if (nbtrcr > 0) then
do k = 1, nbtrcr
Expand Down
1 change: 1 addition & 0 deletions io_netcdf/ice_history_write.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1140,6 +1140,7 @@ subroutine ice_hist_create(ns, ncfile, ncid, var, coord_var, var_nverts, var_nz)
call check(nf90_put_att(ncid,nf90_global,'comment2',title), &
'global attribute comment2')

! TO-DO: Update output for CF compliance !
! title = 'CF-1.0'
! call check(nf90_put_att(ncid,nf90_global,'conventions',title), &
! 'global attribute conventions')
Expand Down
4 changes: 2 additions & 2 deletions source/ice_fileunits.F90
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ subroutine flush_fileunit(iunit)
end subroutine flush_fileunit

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

! Namelist error handling ported from https://github.com/CICE-Consortium/CICE/blob/8e3ef7c4cb657705ceff5bfec3e12b49dec4973e/cicecore/shared/ice_fileunits.F90#L328
subroutine goto_nml(iunit, nml, status)
! Search to namelist group within ice_in file.
! for compilers that do not allow optional namelists
Expand All @@ -306,7 +306,7 @@ subroutine goto_nml(iunit, nml, status)
nml ! namelist to search for

integer(kind=int_kind), intent(out) :: &
status ! status of subrouine
status ! status of subroutine

! local variables
character(len=char_len) :: &
Expand Down
30 changes: 24 additions & 6 deletions source/ice_flux.F90
Original file line number Diff line number Diff line change
Expand Up @@ -308,12 +308,21 @@ module ice_flux
! ice diagnostics and history files as these are more accurate.
! (The others suffer from problem of incorrect values at grid boxes
! that change from an ice free state to an icy state.)

real (kind=dbl_kind), dimension (nx_block,ny_block,max_blocks), public :: &
fresh_ai, & ! fresh water flux to ocean (kg/m^2/s)
fsalt_ai, & ! salt flux to ocean (kg/m^2/s)
fhocn_ai, & ! net heat flux to ocean (W/m^2)
fswthru_ai ! shortwave penetrating to ocean (W/m^2)
fswthru_ai, & ! shortwave penetrating to ocean (W/m^2)
fsens_ai, & ! sensible heat flux (W/m^2)
flat_ai, & ! latent heat flux (W/m^2)
fswabs_ai, & ! shortwave absorbed heat flx (W/m^2)
flwout_ai, & ! upwd lw emitted heat flx
evap_ai, & ! & evaporation (kg/m2/s)
evap_ice_ai, & ! & evaporation (kg/m2/s)
evap_snow_ai, & ! & evaporation (kg/m2/s)
fcondtop_ai, & ! downward cond flux at top surface (W m-2)
fsurf_ai ! net flux to top surface, excluding fcondtop

! Used with data assimilation in hadgem drivers
real (kind=dbl_kind), dimension (nx_block,ny_block,max_blocks) :: &
Expand Down Expand Up @@ -613,11 +622,20 @@ subroutine init_history_therm
fsalt_ai (:,:,:) = c0
fhocn_ai (:,:,:) = c0
fswthru_ai(:,:,:) = c0
albice (:,:,:) = c0
albsno (:,:,:) = c0
albpnd (:,:,:) = c0
fsens_ai (:,:,:) = c0
flat_ai (:,:,:) = c0
fswabs_ai (:,:,:) = c0
flwout_ai (:,:,:) = c0
evap_ai (:,:,:) = c0
evap_ice_ai(:,:,:) = c0
evap_snow_ai(:,:,:) = c0
fcondtop_ai(:,:,:) = c0
fsurf_ai (:,:,:) = c0
albice (:,:,:) = c0
albsno (:,:,:) = c0
albpnd (:,:,:) = c0
snowfracn (:,:,:,:) = c0
snowfrac (:,:,:) = c0
snowfrac (:,:,:) = c0

! drag coefficients are computed prior to the atmo_boundary call,
! during the thermodynamics section
Expand Down
456 changes: 213 additions & 243 deletions source/ice_history.F90

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions source/ice_history_shared.F90
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ module ice_history_shared
f_hs = 'm', &
f_snowfrac = 'x', f_snowfracn = 'x', &
f_Tsfc = 'm', &
f_aice = 'm', f_siconc = 'x' , & !same var, two names,
f_aice = 'm', f_siconc = 'x' , &
f_uvel = 'm', f_vvel = 'm', &
f_uatm = 'm', f_vatm = 'm', &
f_fswdn = 'm', f_flwdn = 'm', &
Expand Down Expand Up @@ -269,24 +269,24 @@ module ice_history_shared
f_sidmassth = 'x', f_sidmassdyn = 'x', &
f_sidmassgrowthwat = 'x', &
f_sidmassgrowthbot = 'x', &
f_sidmasssi = 'x', f_sidmassgrowthsi = 'x', & !same var, two names
f_sidmasssi = 'x', f_sidmassgrowthsi = 'x', &
f_sidmassevapsubl = 'x', &
f_sidmassmelttop = 'x', &
f_sidmassmeltbot = 'x', &
f_sidmasslat = 'x', f_sidmassmeltlat = 'x', & !same var, two names
f_sndmasssnf = 'x', f_sisndmasssnf = 'x', & !same var, two names
f_sndmassmelt = 'x', f_sisndmassmelt = 'x', & !same var, two names
f_sndmassdyn = 'x', f_sisndmassdyn = 'x', & !same var, two names
f_sidmasslat = 'x', f_sidmassmeltlat = 'x', &
f_sndmasssnf = 'x', f_sisndmasssnf = 'x', &
f_sndmassmelt = 'x', f_sisndmassmelt = 'x', &
f_sndmassdyn = 'x', f_sisndmassdyn = 'x', &
f_sisndmasssi = 'x', &
f_sndmasssubl = 'x', f_sisndmasssubl = 'x', & !same var, two names
f_sndmasssubl = 'x', f_sisndmasssubl = 'x', &
f_sidivvel = 'x', &
f_siflswdtop = 'x', &
f_siflswutop = 'x', &
f_siflswdbot = 'x', &
f_sifllwdtop = 'x', &
f_sifllwutop = 'x', &
f_siflsenstop = 'x', &
f_siflsensupbot = 'x', f_siflsensbot = 'x', & !same var, two names
f_siflsensupbot = 'x', f_siflsensbot = 'x', &
f_sifllatstop = 'x', &
f_siflcondtop = 'x', &
f_siflcondbot = 'x', &
Expand All @@ -295,7 +295,7 @@ module ice_history_shared
f_siflfwbot = 'x', &
f_siflfwdrain = 'x', &
f_sisaltmass = 'x', &
f_aicen = 'x' , f_siitdconc = 'x', & !same var, two names
f_aicen = 'x' , f_siitdconc = 'x', &
f_vicen = 'x', &
f_vsnon = 'x', &
f_trsig = 'm', &
Expand Down
4 changes: 2 additions & 2 deletions source/ice_read_write.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1563,7 +1563,7 @@ subroutine ice_read_nc_z(fid, nrec, varname, work, diag, &

if (status /= nf90_noerr) then
call abort_ice ( &
'ice_read_nc: Cannot get variable '//trim(varname) )
'ice_read_nc_z: Cannot get variable '//trim(varname) )
endif

endif ! my_task = master_task
Expand Down Expand Up @@ -1797,7 +1797,7 @@ subroutine ice_write_nc_xyz(fid, nrec, varid, work, diag, &

if (status /= nf90_noerr) then
call abort_ice ( &
'ice_write_nc_xy: Cannot put variable '//trim(nf90_strerror(status)) )
'ice_write_nc_xyz: Cannot put variable '//trim(nf90_strerror(status)) )
endif

endif ! my_task = master_task
Expand Down
24 changes: 12 additions & 12 deletions source/ice_therm_vertical.F90
Original file line number Diff line number Diff line change
Expand Up @@ -480,18 +480,18 @@ subroutine thermo_vertical (nx_block, ny_block, &
! Tsnice from https://github.com/CICE-Consortium/Icepack/blob/e9d626f0e5b743e143a2e87248a1aa22ee4f3751/columnphysics/icepack_therm_vertical.F90#L378C1-L385C12
! Tsnice is :
! - the average of temperature of bottom snow layer and top ice layer,
! - weighted by aicen across all thicknii categories
if ((hslyr(ij)+hilyr(ij)) > puny) then
if (hslyr(ij) > puny) then
Tsnice(ij) = Tsnice(ij) + aicen(i,j)*(&
(hslyr(ij)*zTsn(ij,nslyr) + hilyr(ij)*zTin(ij,1)) &
/ (hslyr(ij)+hilyr(ij)) &
)
else
Tsnice(ij) = Tsnice(ij) + aicen(i,j)*Tsf(ij)
endif
endif
enddo
! - weighted by aicen across all thickness categories
if (hslyr(ij) > puny) then
! interface temperature is average of top ice layer & bottom snow layer temperatures,
! weighted by the thickness of each layer (https://github.com/CICE-Consortium/Icepack/pull/542#issuecomment-3464152061)
Tsnice(ij) = Tsnice(ij) + aicen(i,j)*(&
(hilyr(ij)*zTsn(ij,nslyr) + hslyr(ij)*zTin(ij,1)) &
/ (hslyr(ij)+hilyr(ij)) &
)
else
Tsnice(ij) = Tsnice(ij) + aicen(i,j)*Tsf(ij)
endif
enddo

if (l_stop) return

Expand Down