Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
fa56e7e
Update Perlmutter Port, switch to cce/17.0.0, gnu/12.3, and intel/202…
apcraig Nov 26, 2024
43ead56
hocn calculation and flushing velocity issue (#504)
davidclemenssewall Dec 17, 2024
9f4b99a
Update derecho gnu, add code coverage capability via lcov (#510)
apcraig Jan 17, 2025
352e6bc
Update copyright to 2025 (#514)
apcraig Feb 13, 2025
619d06d
fix sfc_flux argument order in therm_vertical (#513)
kieranricardo Feb 15, 2025
b3b5127
Corrects negative silicate values (#519)
njeffery Apr 2, 2025
51695d0
MDF/MOSAiC forcing options (#500)
davidclemenssewall Apr 4, 2025
5feadd0
Deprecate zsalinity (#521)
apcraig Apr 24, 2025
dc769c7
Update institutions in distribution policy document and authors in ze…
eclare108213 May 13, 2025
6592646
Update set_version_number.csh to update .zenodo.json file (#523)
apcraig May 19, 2025
cfdf8cc
Update Copyright and License, update version to 1.5.1 (#524)
apcraig May 22, 2025
33352a2
Use proleptic gregorian in icepack (#525)
anton-seaice May 29, 2025
ac57a1c
Add GEOS coupling capability including heatflux and massflux modifica…
apcraig Jun 20, 2025
f61be9a
Final updates for GEOS changes. (#526)
apcraig Jun 20, 2025
ec7ad9c
Move three snow grain radius parameters to namelist (#529)
njeffery Jul 10, 2025
67f17ab
A new sea level pond scheme. (#515)
dabail10 Jul 15, 2025
4469e2e
Update ponds diagnostics and names (#530)
apcraig Jul 16, 2025
b91f1dd
Add David Clemens-Sewall and Bin Zhao to zenodo (#531)
apcraig Jul 18, 2025
842a15e
Fix nag compiler error about kind=8 declaration, change to kind=dbl_k…
apcraig Jul 25, 2025
6bc2d0a
Fix commas in zenodo template (#533)
apcraig Jul 25, 2025
b7c4dc5
json updates (#534)
eclare108213 Jul 28, 2025
6a5c51e
Add vicen, vsnon to zap_small_areas (#536)
NickSzapiro-NOAA Aug 1, 2025
f9789c2
Update Copyright (#537)
apcraig Aug 18, 2025
a5b5ebe
Update Copyright in zenodo json file (#538)
apcraig Aug 19, 2025
3c2eeb5
Remove unused _init variables (#539)
eclare108213 Sep 3, 2025
7ee2266
Update the qstat job completion checks to use (#541)
apcraig Sep 10, 2025
4954a6f
Fix Tsnice calculation (#542)
dabail10 Nov 3, 2025
eedb519
Zap residual ice (#543)
eclare108213 Nov 21, 2025
0bcde25
external wave height option (#545)
eclare108213 Jan 9, 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
31 changes: 25 additions & 6 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
{
"license": "other-open",
"description": "No description provided",
"license": "BSD-3-Clause",
"copyright": "Copyright 1998-2025 Triad National Security, LLC",
"description": "View detailed release notes at https://github.com/CICE-Consortium/Icepack/releases",
"language": "eng",
"title": "CICE-Consortium/Icepack: Icepack m.n.p",
"title": "CICE-Consortium/Icepack: Icepack 1.5.2",
"keywords": [
"sea ice model, Icepack"
"sea ice model",
"Icepack"
],
"version": "m.n.p",
"version": "1.5.2",
"upload_type": "software",
"communities": [
{
"identifier": "cice-consortium"
}
],
"publication_date": "2019-06-20",
"publication_date": "2025-08-15",
"creators": [
{
"affiliation": "Los Alamos National Laboratory",
Expand All @@ -31,6 +33,10 @@
"affiliation": "Environment and Climate Change Canada",
"name": "Philippe Blain"
},
{
"affiliation": "National Center for Atmospheric Research",
"name": "David Clemens-Sewall"
},
{
"affiliation": "National Oceanic and Atmospheric Administration",
"name": "Anthony Craig"
Expand Down Expand Up @@ -75,20 +81,33 @@
"affiliation": "Danish Meteorological Institute",
"name": "Mads Ribergaard"
},
{
"affiliation": "Alfred-Wegener-Institut Helmholz-Zentrum fur Polar- und Meersforschung",
"name": "Lettie Roach"
},
{
"affiliation": "Los Alamos National Laboratory",
"name": "Andrew Roberts"
},
{
"affiliation": "Australian Earth-System Simulator",
"name": "Anton Steketee"
},
{
"affiliation": "Los Alamos National Laboratory",
"name": "Matthew Turner"
},
{
"affiliation": "Geophysical Fluid Dynamics Laboratory",
"name": "Michael Winton"
},
{
"affiliation": "National Aeronautics and Space Administration",
"name": "Bin Zhao"
}
],
"access_right": "open",
"repository_url": "https://github.com/CICE-Consortium/Icepack",
"related_identifiers": [
{
"identifier": "https://github.com/CICE-Consortium/Icepack/tree/Icepack1.0.0",
Expand Down
Binary file added COPYRIGHT.pdf
Binary file not shown.
Binary file modified DistributionPolicy.pdf
Binary file not shown.
Binary file modified LICENSE.pdf
Binary file not shown.
14 changes: 5 additions & 9 deletions columnphysics/icepack_algae.F90
Original file line number Diff line number Diff line change
Expand Up @@ -394,8 +394,7 @@ subroutine zbio (dt, &
bio_index, &
aicen, &
vicen, vsnon, &
iphin, &! ntrcr
trcrn, aice_old, &!aice_old
iphin, trcrn, &
flux_bion, flux_bio, &
upNOn, upNHn, &
upNO, upNH, &
Expand Down Expand Up @@ -1860,13 +1859,10 @@ subroutine algal_dyn (dt, &
U_Nit(k) = U_Nit_f(k)*U_Nit_tot
U_Sil(k) = U_Sil_f(k)*U_Sil_tot
U_Fe(k) = U_Fe_f(k)*U_Fe_tot

if (n_fed == 0) then
if (R_Si2N(k) > c0) then
grow_N(k) = min(U_Sil(k)/R_Si2N(k),U_Nit(k) + U_Am(k), U_Fe(k)/R_Fe2N(k))
else
grow_N(k) = min(U_Nit(k) + U_Am(k),U_Fe(k)/R_Fe2N(k))
endif
if (R_Si2N(k) > c0) then
grow_N(k) = min(U_Sil(k)/R_Si2N(k),U_Nit(k) + U_Am(k), U_Fe(k)/R_Fe2N(k))
else
grow_N(k) = min(U_Nit(k) + U_Am(k),U_Fe(k)/R_Fe2N(k))
endif

fr_Am(k) = c0
Expand Down
9 changes: 3 additions & 6 deletions columnphysics/icepack_atmo.F90
Original file line number Diff line number Diff line change
Expand Up @@ -507,8 +507,7 @@ end subroutine atmo_boundary_const
!
! changes: Andrew Roberts, NPS (RASM/CESM coupling and documentation)

subroutine neutral_drag_coeffs (apnd, hpnd, &
ipnd, &
subroutine neutral_drag_coeffs (apondn, &
alvl, vlvl, &
aice, vice, &
vsno, aicen, &
Expand All @@ -526,9 +525,7 @@ subroutine neutral_drag_coeffs (apnd, hpnd, &
use icepack_tracers, only: tr_pond

real (kind=dbl_kind), dimension (:), intent(in) :: &
apnd ,& ! melt pond fraction of sea ice
hpnd ,& ! mean melt pond depth over sea ice
ipnd ,& ! mean ice pond depth over sea ice in cat n
apondn ,& ! melt pond fraction of sea ice category
alvl ,& ! level ice area fraction (of grid cell ?)
vlvl ! level ice mean thickness

Expand Down Expand Up @@ -666,7 +663,7 @@ subroutine neutral_drag_coeffs (apnd, hpnd, &
if (tr_pond) then
do n = 1,ncat
! area of pond per unit area of grid cell
apond = apond+apnd(n)*aicen(n)
apond = apond+apondn(n)*aicen(n)
enddo
endif

Expand Down
41 changes: 5 additions & 36 deletions columnphysics/icepack_brine.F90
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ module icepack_brine
use icepack_kinds
use icepack_parameters, only: p01, p001, p5, c0, c1, c2, c1p5, puny, p25
use icepack_parameters, only: gravit, rhoi, rhow, rhos, depressT
use icepack_parameters, only: salt_loss, min_salin, rhosi
use icepack_parameters, only: dts_b, l_sk
use icepack_parameters, only: min_salin, rhosi
use icepack_parameters, only: l_sk
use icepack_tracers, only: nilyr, nblyr, ntrcr, nt_qice, nt_sice
use icepack_tracers, only: nt_Tsfc
use icepack_zbgc_shared, only: k_o, exp_h, Dm, Ra_c, viscos_dynamic, thinS
Expand All @@ -28,8 +28,7 @@ module icepack_brine
compute_microS_mushy, &
update_hbrine, &
calculate_drho, &
icepack_init_hbrine, &
icepack_init_zsalinity ! deprecated
icepack_init_hbrine

real (kind=dbl_kind), parameter :: &
maxhbr = 1.25_dbl_kind , & ! brine overflows if hbr > maxhbr*hin
Expand All @@ -51,7 +50,7 @@ module icepack_brine

!=======================================================================
! Computes the top and bottom brine boundary changes for flushing
! works for zsalinity and tr_salinity
! works for tr_salinity
!
! NOTE: In this subroutine, trcrn(nt_fbri) is the volume fraction of ice with
! dynamic salinity or the height ratio = hbr/vicen*aicen, where hbr is the
Expand Down Expand Up @@ -680,7 +679,7 @@ subroutine icepack_init_hbrine(bgrid_out, igrid_out, cgrid_out, &
! Calculate bio gridn: 0 to 1 corresponds to ice top to bottom
!-----------------------------------------------------------------

bgrid(:) = c0 ! zsalinity grid points
bgrid(:) = c0 ! biology nondimensional vertical grid points
bgrid(nblyr+2) = c1 ! bottom value
igrid(:) = c0 ! bgc interface grid points
igrid(1) = c0 ! ice top
Expand Down Expand Up @@ -738,36 +737,6 @@ subroutine icepack_init_hbrine(bgrid_out, igrid_out, cgrid_out, &

end subroutine icepack_init_hbrine

!=======================================================================
!autodocument_start icepack_init_zsalinity
! **DEPRECATED**, all code removed
! Interface provided for backwards compatibility

subroutine icepack_init_zsalinity(Rayleigh_criteria, &
Rayleigh_real, trcrn_bgc, sss)

logical (kind=log_kind), intent(inout) :: &
Rayleigh_criteria

real (kind=dbl_kind), intent(inout):: &
Rayleigh_real

real (kind=dbl_kind), intent(in):: &
sss

real (kind=dbl_kind), dimension(:,:), intent(inout):: &
trcrn_bgc ! bgc subset of trcrn

!autodocument_end

! local variables

character(len=*),parameter :: subname='(icepack_init_zsalinity)'

call icepack_warnings_add(subname//' DEPRECATED, do not use')
! call icepack_warnings_setabort(.true.,__FILE__,__LINE__)

end subroutine icepack_init_zsalinity
!=======================================================================

end module icepack_brine
Expand Down
58 changes: 54 additions & 4 deletions columnphysics/icepack_flux.F90
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ module icepack_flux
use icepack_parameters, only: c1, emissivity, snwgrain
use icepack_warnings, only: warnstr, icepack_warnings_add
use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted
use icepack_tracers, only: tr_iso
use icepack_tracers, only: tr_iso, tr_pond

implicit none
private
Expand Down Expand Up @@ -43,6 +43,8 @@ subroutine merge_fluxes (aicen, &
fhocnn, fswthrun, &
fswthrun_vdr, fswthrun_vdf,&
fswthrun_idr, fswthrun_idf,&
fswthrun_uvrdr, fswthrun_uvrdf,&
fswthrun_pardr, fswthrun_pardf,&
strairxT, strairyT, &
Cdn_atm_ratio, &
fsurf, fcondtop, &
Expand All @@ -56,6 +58,8 @@ subroutine merge_fluxes (aicen, &
fhocn, fswthru, &
fswthru_vdr, fswthru_vdf,&
fswthru_idr, fswthru_idf,&
fswthru_uvrdr, fswthru_uvrdf,&
fswthru_pardr, fswthru_pardf,&
melttn, meltsn, meltbn, congeln, snoicen, &
meltt, melts, &
meltb, dsnow, dsnown,&
Expand All @@ -64,12 +68,18 @@ subroutine merge_fluxes (aicen, &
Uref, Urefn, &
Qref_iso, Qrefn_iso, &
fiso_ocn, fiso_ocnn, &
fiso_evap, fiso_evapn)

! single category fluxes
fiso_evap, fiso_evapn,&
dpnd_flush, dpnd_flushn, &
dpnd_expon, dpnd_exponn, &
dpnd_freebd, dpnd_freebdn, &
dpnd_initial, dpnd_initialn, &
dpnd_dlid, dpnd_dlidn)

! concentration is aicen_init in call to subroutine
real (kind=dbl_kind), intent(in) :: &
aicen ! concentration of ice

! single category fluxes
real (kind=dbl_kind), optional, intent(in) :: &
flw , & ! downward longwave flux (W/m**2)
strairxn, & ! air/ice zonal strss, (N/m**2)
Expand Down Expand Up @@ -98,10 +108,19 @@ subroutine merge_fluxes (aicen, &
dsnown , & ! change in snow depth (m)
congeln , & ! congelation ice growth (m)
snoicen , & ! snow-ice growth (m)
dpnd_flushn , & ! pond flushing rate due to ice permeability (m/step)
dpnd_exponn , & ! exponential pond drainage rate (m/step)
dpnd_freebdn, & ! pond drainage rate due to freeboard constraint (m/step)
dpnd_initialn,& ! runoff rate due to rfrac (m/step)
dpnd_dlidn , & ! pond loss/gain due to ice lid (m/step)
fswthrun_vdr, & ! vis dir sw radiation through ice bot (W/m**2)
fswthrun_vdf, & ! vis dif sw radiation through ice bot (W/m**2)
fswthrun_idr, & ! nir dir sw radiation through ice bot (W/m**2)
fswthrun_idf, & ! nir dif sw radiation through ice bot (W/m**2)
fswthrun_uvrdr, & ! > 700nm vis uvr dir sw radiation through ice bot (W/m**2)
fswthrun_uvrdf, & ! > 700nm vis uvr dif sw radiation through ice bot (W/m**2)
fswthrun_pardr, & ! 400-700nm vis par dir sw radiation through ice bot (W/m**2)
fswthrun_pardf, & ! 400-700nm vis par dif sw radiation through ice bot (W/m**2)
Urefn ! air speed reference level (m/s)

! cumulative fluxes
Expand Down Expand Up @@ -131,10 +150,19 @@ subroutine merge_fluxes (aicen, &
meltsliq, & ! mass of snow melt (kg/m^2)
congel , & ! congelation ice growth (m)
snoice , & ! snow-ice growth (m)
dpnd_flush , & ! pond flushing rate due to ice permeability (m/step)
dpnd_expon , & ! exponential pond drainage rate (m/step)
dpnd_freebd, & ! pond drainage rate due to freeboard constraint (m/step)
dpnd_initial,& ! runoff rate due to rfrac (m/step)
dpnd_dlid , & ! pond loss/gain (+/-) to ice lid freezing/melting (m/step)
fswthru_vdr, & ! vis dir sw radiation through ice bot (W/m**2)
fswthru_vdf, & ! vis dif sw radiation through ice bot (W/m**2)
fswthru_idr, & ! nir dir sw radiation through ice bot (W/m**2)
fswthru_idf, & ! nir dif sw radiation through ice bot (W/m**2)
fswthru_uvrdr, & ! > 700nm vis uvr dir sw radiation through ice bot (W/m**2)
fswthru_uvrdf, & ! > 700nm vis uvr dif sw radiation through ice bot (W/m**2)
fswthru_pardr, & ! 400-700nm vis par dir sw radiation through ice bot (W/m**2)
fswthru_pardf, & ! 400-700nm vis par dif sw radiation through ice bot (W/m**2)
dsnow, & ! change in snow depth (m)
Uref ! air speed reference level (m/s)

Expand Down Expand Up @@ -228,6 +256,15 @@ subroutine merge_fluxes (aicen, &
if (present(fswthrun_idf) .and. present(fswthru_idf)) &
fswthru_idf = fswthru_idf + fswthrun_idf * aicen

if (present(fswthrun_uvrdr) .and. present(fswthru_uvrdr)) &
fswthru_uvrdr = fswthru_uvrdr + fswthrun_uvrdr * aicen
if (present(fswthrun_uvrdf) .and. present(fswthru_uvrdf)) &
fswthru_uvrdf = fswthru_uvrdf + fswthrun_uvrdf * aicen
if (present(fswthrun_pardr) .and. present(fswthru_pardr)) &
fswthru_pardr = fswthru_pardr + fswthrun_pardr * aicen
if (present(fswthrun_pardf) .and. present(fswthru_pardf)) &
fswthru_pardf = fswthru_pardf + fswthrun_pardf * aicen

! ice/snow thickness

if (present(melttn) .and. present(meltt)) &
Expand All @@ -247,6 +284,19 @@ subroutine merge_fluxes (aicen, &
congel = congel + congeln * aicen
if (present(snoicen) .and. present(snoice)) &
snoice = snoice + snoicen * aicen
! Meltwater fluxes
if (tr_pond) then
if (present(dpnd_flushn) .and. present(dpnd_flush)) &
dpnd_flush = dpnd_flush + dpnd_flushn * aicen
if (present(dpnd_exponn) .and. present(dpnd_expon)) &
dpnd_expon = dpnd_expon + dpnd_exponn * aicen
if (present(dpnd_freebdn) .and. present(dpnd_freebd)) &
dpnd_freebd = dpnd_freebd + dpnd_freebdn * aicen
if (present(dpnd_initialn).and. present(dpnd_initial)) &
dpnd_initial = dpnd_initial + dpnd_initialn * aicen
if (present(dpnd_dlidn) .and. present(dpnd_dlid)) &
dpnd_dlid = dpnd_dlid + dpnd_dlidn * aicen
endif

end subroutine merge_fluxes

Expand Down
Loading