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

Merge CICE-Consortium/Icepack main to E3SM-Project/Icepack main #35

Merged
merged 30 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0aa2305
Add new picard nonconvergence messages (#464)
apcraig Oct 6, 2023
45da0b3
doc: mention code variables relating to 'calc_dragio' (#466)
phil-blain Oct 11, 2023
182030d
icepack_parameters: don't recompute constants in icepack_query_parame…
phil-blain Oct 12, 2023
aea58f3
Port to Perlmutter gnu, intel, cray. (#467)
apcraig Oct 13, 2023
f6989f1
Remove _old options for tfrz_option (#468)
apcraig Oct 13, 2023
0c54812
Change CPP USE_SNICARNC to NO_SNICARNC (#469)
apcraig Oct 16, 2023
863b19c
Update Derecho inputdata path, point to campaign (#471)
apcraig Oct 18, 2023
7a0d4e9
Clarify documentation associated with namelist inputs (#470)
apcraig Oct 18, 2023
6ad0f44
Update 5-band dEdd to support test data (#472)
apcraig Oct 27, 2023
71093e6
adjust denominator for flux limiting by -puny (fbot+fside<0) (#474)
eclare108213 Oct 27, 2023
84ff388
Update version, interface documentation, trailing blanks (#473)
apcraig Oct 27, 2023
d1a42fb
Fix icepack.launch.csh (#475)
apcraig Oct 28, 2023
b129416
correct ks units, clean up comments, bug fix for BL99 enthalpy calcul…
eclare108213 Nov 14, 2023
f6ff8f7
Update logical for optional argument wlat, caught with debug by gnu c…
apcraig Nov 17, 2023
3ffde67
Update pull request template, Update conda_macos debug flag (#484)
apcraig Mar 1, 2024
7e529b1
Add gnuplot to the conda environment (#483)
dabail10 Mar 1, 2024
74cc6f4
Add Tutorial to User Guide as Appendix (#485)
apcraig Apr 26, 2024
2fd2140
Update version to Icepack 1.4.1 (#486)
apcraig May 14, 2024
ae69b80
Update one more copyright date (#487)
apcraig May 14, 2024
083d6e3
Update gnuplot, improve titles and fonts (#490)
apcraig May 28, 2024
1a820b4
Update documentation for adding a tracer and the tutorial (#493)
apcraig Jul 29, 2024
92be122
Port to Casper (#496)
apcraig Aug 2, 2024
4c87095
Alternative congelation formulation following Plante et al. 2024 (#494)
eclare108213 Aug 7, 2024
05ac0ec
BGC update (#497)
apcraig Sep 15, 2024
ba0bc0b
Update Derecho Port (#501)
apcraig Sep 27, 2024
f5f03b9
Update Derecho Cray, rename subroutines, minor cleanup (#502)
apcraig Oct 17, 2024
6da5668
Add dorebin and docleanup optional arguments to icepack_step_ridge (#…
apcraig Oct 24, 2024
286630f
FSD fixes for conservation (#495)
dabail10 Oct 31, 2024
8c3f26a
Make dsnow and dsnown optional (#506)
dabail10 Nov 15, 2024
3792520
Update version number to 1.5.0 (#507)
apcraig Nov 15, 2024
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 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ please refer to: <https://github.com/CICE-Consortium/About-Us/wiki/Resource-Inde
- [ ] No, does the documentation need to be updated at a later time?
- [ ] Yes
- [ ] No
- [ ] Please provide any additional information or relevant details below:
- [ ] Please document the changes in detail, including _why_ the changes are made. This will become part of the PR commit log.
Binary file modified LICENSE.pdf
Binary file not shown.
243 changes: 151 additions & 92 deletions columnphysics/icepack_aerosol.F90

Large diffs are not rendered by default.

1,079 changes: 684 additions & 395 deletions columnphysics/icepack_algae.F90

Large diffs are not rendered by default.

7 changes: 2 additions & 5 deletions columnphysics/icepack_atmo.F90
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ module icepack_atmo
use icepack_parameters, only: pih, dragio, rhoi, rhos, rhow
use icepack_parameters, only: atmbndy, calc_strair, formdrag
use icepack_parameters, only: icepack_chkoptargflag
use icepack_tracers, only: n_iso
use icepack_tracers, only: ncat, n_iso
use icepack_tracers, only: tr_iso
use icepack_warnings, only: warnstr, icepack_warnings_add
use icepack_warnings, only: icepack_warnings_setabort, icepack_warnings_aborted
Expand Down Expand Up @@ -521,13 +521,10 @@ subroutine neutral_drag_coeffs (apnd, hpnd, &
hdraft, hridge, &
distrdg, hkeel, &
dkeel, lfloe, &
dfloe, ncat)
dfloe)

use icepack_tracers, only: tr_pond

integer (kind=int_kind), intent(in) :: &
ncat

real (kind=dbl_kind), dimension (:), intent(in) :: &
apnd ,& ! melt pond fraction of sea ice
hpnd ,& ! mean melt pond depth over sea ice
Expand Down
211 changes: 90 additions & 121 deletions columnphysics/icepack_brine.F90

Large diffs are not rendered by default.

134 changes: 78 additions & 56 deletions columnphysics/icepack_flux.F90
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ subroutine merge_fluxes (aicen, &

! single category fluxes
real (kind=dbl_kind), intent(in) :: &
aicen , & ! concentration of ice
aicen ! concentration of ice

real (kind=dbl_kind), optional, intent(in) :: &
flw , & ! downward longwave flux (W/m**2)
strairxn, & ! air/ice zonal strss, (N/m**2)
strairyn, & ! air/ice merdnl strss, (N/m**2)
Expand All @@ -95,17 +97,15 @@ subroutine merge_fluxes (aicen, &
meltsliqn,& ! mass of snow melt (kg/m^2)
dsnown , & ! change in snow depth (m)
congeln , & ! congelation ice growth (m)
snoicen ! snow-ice growth (m)

real (kind=dbl_kind), optional, intent(in):: &
snoicen , & ! snow-ice growth (m)
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)
Urefn ! air speed reference level (m/s)

! cumulative fluxes
real (kind=dbl_kind), intent(inout) :: &
real (kind=dbl_kind), optional, intent(inout) :: &
strairxT, & ! air/ice zonal strss, (N/m**2)
strairyT, & ! air/ice merdnl strss, (N/m**2)
Cdn_atm_ratio, & ! ratio of total drag over neutral drag
Expand All @@ -130,28 +130,24 @@ subroutine merge_fluxes (aicen, &
melts , & ! snow melt (m)
meltsliq, & ! mass of snow melt (kg/m^2)
congel , & ! congelation ice growth (m)
snoice ! snow-ice growth (m)

real (kind=dbl_kind), intent(inout), optional :: &
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)

real (kind=dbl_kind), intent(inout), optional :: &
snoice , & ! snow-ice growth (m)
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)
dsnow, & ! change in snow depth (m)
Uref ! air speed reference level (m/s)

real (kind=dbl_kind), dimension(:), intent(inout), optional :: &
Qref_iso, & ! isotope air sp hum ref level (kg/kg)
fiso_ocn, & ! isotope fluxes to ocean (kg/m2/s)
fiso_evap ! isotope evaporation (kg/m2/s)

real (kind=dbl_kind), dimension(:), intent(in), optional :: &
Qrefn_iso, & ! isotope air sp hum ref level (kg/kg)
fiso_ocnn, & ! isotope fluxes to ocean (kg/m2/s)
fiso_evapn ! isotope evaporation (kg/m2/s)

real (kind=dbl_kind), dimension(:), intent(inout), optional :: &
Qref_iso, & ! isotope air sp hum ref level (kg/kg)
fiso_ocn, & ! isotope fluxes to ocean (kg/m2/s)
fiso_evap ! isotope evaporation (kg/m2/s)

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

!-----------------------------------------------------------------
Expand All @@ -163,23 +159,38 @@ subroutine merge_fluxes (aicen, &

! atmo fluxes

strairxT = strairxT + strairxn * aicen
strairyT = strairyT + strairyn * aicen
Cdn_atm_ratio = Cdn_atm_ratio + &
Cdn_atm_ratio_n * aicen
fsurf = fsurf + fsurfn * aicen
fcondtop = fcondtop + fcondtopn * aicen
fcondbot = fcondbot + fcondbotn * aicen
fsens = fsens + fsensn * aicen
flat = flat + flatn * aicen
fswabs = fswabs + fswabsn * aicen
flwout = flwout &
+ (flwoutn - (c1-emissivity)*flw) * aicen
evap = evap + evapn * aicen
evaps = evaps + evapsn * aicen
evapi = evapi + evapin * aicen
Tref = Tref + Trefn * aicen
Qref = Qref + Qrefn * aicen
if (present(strairxn) .and. present(strairxT)) &
strairxT = strairxT + strairxn * aicen
if (present(strairyn) .and. present(strairyT)) &
strairyT = strairyT + strairyn * aicen
if (present(Cdn_atm_ratio_n) .and. present(Cdn_atm_ratio)) &
Cdn_atm_ratio = Cdn_atm_ratio + &
Cdn_atm_ratio_n * aicen
if (present(fsurfn) .and. present(fsurf)) &
fsurf = fsurf + fsurfn * aicen
if (present(fcondtopn) .and. present(fcondtop)) &
fcondtop = fcondtop + fcondtopn * aicen
if (present(fcondbotn) .and. present(fcondbot)) &
fcondbot = fcondbot + fcondbotn * aicen
if (present(fsensn) .and. present(fsens)) &
fsens = fsens + fsensn * aicen
if (present(flatn) .and. present(flat)) &
flat = flat + flatn * aicen
if (present(fswabsn) .and. present(fswabs)) &
fswabs = fswabs + fswabsn * aicen
if (present(flwoutn) .and. present(flwout) .and. present(flw)) &
flwout = flwout &
+ (flwoutn - (c1-emissivity)*flw) * aicen
if (present(evapn) .and. present(evap)) &
evap = evap + evapn * aicen
if (present(evapsn) .and. present(evaps)) &
evaps = evaps + evapsn * aicen
if (present(evapin) .and. present(evapi)) &
evapi = evapi + evapin * aicen
if (present(Trefn) .and. present(Tref)) &
Tref = Tref + Trefn * aicen
if (present(Qrefn) .and. present(Qref)) &
Qref = Qref + Qrefn * aicen

! Isotopes
if (tr_iso) then
Expand All @@ -196,35 +207,46 @@ subroutine merge_fluxes (aicen, &

! ocean fluxes
if (present(Urefn) .and. present(Uref)) then
Uref = Uref + Urefn * aicen
Uref = Uref + Urefn * aicen
endif

fresh = fresh + freshn * aicen
fsalt = fsalt + fsaltn * aicen
fhocn = fhocn + fhocnn * aicen
fswthru = fswthru + fswthrun * aicen
if (present(fswthru_vdr)) &
fswthru_vdr = fswthru_vdr + fswthrun_vdr * aicen
if (present(fswthru_vdf)) &
fswthru_vdf = fswthru_vdf + fswthrun_vdf * aicen
if (present(fswthru_idr)) &
fswthru_idr = fswthru_idr + fswthrun_idr * aicen
if (present(fswthru_idf)) &
fswthru_idf = fswthru_idf + fswthrun_idf * aicen
if (present(freshn) .and. present(fresh)) &
fresh = fresh + freshn * aicen
if (present(fsaltn) .and. present(fsalt)) &
fsalt = fsalt + fsaltn * aicen
if (present(fhocnn) .and. present(fhocn)) &
fhocn = fhocn + fhocnn * aicen
if (present(fswthrun) .and. present(fswthru)) &
fswthru = fswthru + fswthrun * aicen

if (present(fswthrun_vdr) .and. present(fswthru_vdr)) &
fswthru_vdr = fswthru_vdr + fswthrun_vdr * aicen
if (present(fswthrun_vdf) .and. present(fswthru_vdf)) &
fswthru_vdf = fswthru_vdf + fswthrun_vdf * aicen
if (present(fswthrun_idr) .and. present(fswthru_idr)) &
fswthru_idr = fswthru_idr + fswthrun_idr * aicen
if (present(fswthrun_idf) .and. present(fswthru_idf)) &
fswthru_idf = fswthru_idf + fswthrun_idf * aicen

! ice/snow thickness

meltt = meltt + melttn * aicen
meltb = meltb + meltbn * aicen
melts = melts + meltsn * aicen
if (present(melttn) .and. present(meltt)) &
meltt = meltt + melttn * aicen
if (present(meltbn) .and. present(meltb)) &
meltb = meltb + meltbn * aicen
if (present(meltsn) .and. present(melts)) &
melts = melts + meltsn * aicen
if (snwgrain) then
meltsliq = meltsliq + meltsliqn * aicen
if (present(meltsliqn) .and. present(meltsliq)) &
meltsliq = meltsliq + meltsliqn * aicen
endif
if (present(dsnow)) then
if (present(dsnown) .and. present(dsnow)) then
dsnow = dsnow + dsnown * aicen
endif
congel = congel + congeln * aicen
snoice = snoice + snoicen * aicen
if (present(congeln) .and. present(congel)) &
congel = congel + congeln * aicen
if (present(snoicen) .and. present(snoice)) &
snoice = snoice + snoicen * aicen

end subroutine merge_fluxes

Expand Down
Loading
Loading