Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
21 changes: 21 additions & 0 deletions columnphysics/icepack_flux.F90
Original file line number Diff line number Diff line change
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 Down Expand Up @@ -102,6 +106,10 @@ subroutine merge_fluxes (aicen, &
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 @@ -135,6 +143,10 @@ subroutine merge_fluxes (aicen, &
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 +240,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 Down
20 changes: 17 additions & 3 deletions columnphysics/icepack_parameters.F90
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,8 @@ module icepack_parameters
calc_Tsfc = .true. ,&! if true, calculate surface temperature
! if false, Tsfc is computed elsewhere and
! atmos-ice fluxes are provided to CICE
semi_implicit_Tsfc = .false. ,&! surface temperature coupling option
vapor_flux_correction = .false. ,&! compute mass/enthalpy correction for evaporation/sublimation
update_ocn_f = .false. ,&! include fresh water and salt fluxes for frazil
modal_aero = .false. ,&! if true, use modal aerosal optical properties
! only for use with tr_aero or tr_zaero
Expand Down Expand Up @@ -556,7 +558,7 @@ subroutine icepack_init_parameters( &
qqqice_in, TTTice_in, qqqocn_in, TTTocn_in, &
ktherm_in, conduct_in, fbot_xfer_type_in, calc_Tsfc_in, &
update_ocn_f_in, ustar_min_in, hi_min_in, a_rapid_mode_in, &
cpl_frazil_in, &
cpl_frazil_in, semi_implicit_Tsfc_in, vapor_flux_correction_in, &
Rac_rapid_mode_in, aspect_rapid_mode_in, &
dSdt_slow_mode_in, phi_c_slow_mode_in, &
phi_i_mushy_in, shortwave_in, albedo_type_in, albsnowi_in, &
Expand Down Expand Up @@ -689,6 +691,9 @@ subroutine icepack_init_parameters( &
calc_Tsfc_in , &! if true, calculate surface temperature
! if false, Tsfc is computed elsewhere and
! atmos-ice fluxes are provided to CICE
semi_implicit_Tsfc_in , &! compute dfsurf/dT, dflat/dT terms instead of fsurf, flat
vapor_flux_correction_in, &! compute mass/enthalpy correction when evaporation/sublimation
! computed outside at 0C
update_ocn_f_in ! include fresh water and salt fluxes for frazil

real (kind=dbl_kind), intent(in), optional :: &
Expand Down Expand Up @@ -1151,6 +1156,8 @@ subroutine icepack_init_parameters( &
if (present(conduct_in) ) conduct = conduct_in
if (present(fbot_xfer_type_in) ) fbot_xfer_type = fbot_xfer_type_in
if (present(calc_Tsfc_in) ) calc_Tsfc = calc_Tsfc_in
if (present(semi_implicit_Tsfc_in)) semi_implicit_Tsfc= semi_implicit_Tsfc_in
if (present(vapor_flux_correction_in)) vapor_flux_correction= vapor_flux_correction_in
if (present(cpl_frazil_in) ) cpl_frazil = cpl_frazil_in
if (present(update_ocn_f_in) ) update_ocn_f = update_ocn_f_in
if (present(ustar_min_in) ) ustar_min = ustar_min_in
Expand Down Expand Up @@ -1549,8 +1556,8 @@ subroutine icepack_query_parameters( &
Lfresh_out, cprho_out, Cp_out, ustar_min_out, hi_min_out, a_rapid_mode_out, &
ktherm_out, conduct_out, fbot_xfer_type_out, calc_Tsfc_out, &
Rac_rapid_mode_out, aspect_rapid_mode_out, dSdt_slow_mode_out, &
phi_c_slow_mode_out, phi_i_mushy_out, shortwave_out, &
albedo_type_out, albicev_out, albicei_out, albsnowv_out, &
phi_c_slow_mode_out, phi_i_mushy_out, shortwave_out, semi_implicit_Tsfc_out, &
albedo_type_out, albicev_out, albicei_out, albsnowv_out, vapor_flux_correction_out, &
albsnowi_out, ahmax_out, R_ice_out, R_pnd_out, R_snw_out, dT_mlt_out, &
rsnw_mlt_out, dEdd_algae_out, &
kalg_out, R_gC2molC_out, kstrength_out, krdg_partic_out, krdg_redist_out, mu_rdg_out, &
Expand Down Expand Up @@ -1688,6 +1695,9 @@ subroutine icepack_query_parameters( &
calc_Tsfc_out ,&! if true, calculate surface temperature
! if false, Tsfc is computed elsewhere and
! atmos-ice fluxes are provided to CICE
semi_implicit_Tsfc_out ,&! compute dfsurf/dT, dflat/dT terms instead of fsurf, flat
vapor_flux_correction_out ,&! compute mass/enthalpy correction when evaporation/sublimation
! computed outside at 0C
update_ocn_f_out ! include fresh water and salt fluxes for frazil

real (kind=dbl_kind), intent(out), optional :: &
Expand Down Expand Up @@ -2184,6 +2194,8 @@ subroutine icepack_query_parameters( &
if (present(conduct_out) ) conduct_out = conduct
if (present(fbot_xfer_type_out) ) fbot_xfer_type_out = fbot_xfer_type
if (present(calc_Tsfc_out) ) calc_Tsfc_out = calc_Tsfc
if (present(semi_implicit_Tsfc_out)) semi_implicit_Tsfc_out= semi_implicit_Tsfc
if (present(vapor_flux_correction_out)) vapor_flux_correction_out= vapor_flux_correction
if (present(cpl_frazil_out) ) cpl_frazil_out = cpl_frazil
if (present(update_ocn_f_out) ) update_ocn_f_out = update_ocn_f
if (present(ustar_min_out) ) ustar_min_out = ustar_min
Expand Down Expand Up @@ -2489,6 +2501,8 @@ subroutine icepack_write_parameters(iounit)
write(iounit,*) " conduct = ", trim(conduct)
write(iounit,*) " fbot_xfer_type = ", trim(fbot_xfer_type)
write(iounit,*) " calc_Tsfc = ", calc_Tsfc
write(iounit,*) " semi_implicit_Tsfc = ", semi_implicit_Tsfc
write(iounit,*) " vapor_flux_correction = ", vapor_flux_correction
write(iounit,*) " cpl_frazil = ", cpl_frazil
write(iounit,*) " update_ocn_f = ", update_ocn_f
write(iounit,*) " ustar_min = ", ustar_min
Expand Down
Loading