Skip to content

Commit

Permalink
Merge pull request #35 from CICE-Consortium/main
Browse files Browse the repository at this point in the history
Merge CICE-Consortium/Icepack main (v1.5.0) to E3SM-Project/Icepack main
  • Loading branch information
eclare108213 authored Nov 21, 2024
2 parents 8fad768 + 3792520 commit 22b8769
Show file tree
Hide file tree
Showing 108 changed files with 6,819 additions and 3,862 deletions.
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

0 comments on commit 22b8769

Please sign in to comment.