Changeset 12423
- Timestamp:
- 2020-02-20T15:29:25+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd_pnd.F90
r12394 r12423 129 129 REAL(wp), PARAMETER :: zpnd_aspect = 0.174_wp ! pond aspect ratio 130 130 REAL(wp), PARAMETER :: zTp = -2._wp ! reference temperature 131 REAL(wp), PARAMETER :: freezing_t = 273.0_wp ! temperature below which refreezing occurs132 131 ! 133 132 REAL(wp) :: zfr_mlt ! fraction of available meltwater retained for melt ponding 134 REAL(wp) :: zdv_mlt ! available meltwater for melt ponding 135 REAL(wp) :: actual_mlt ! actual melt water used to make melt ponds (per m2). 136 ! Need to multiply this by ice area to work on volumes. 133 REAL(wp) :: zdh_mlt ! available meltwater for melt ponding (equivalent thickness change) 137 134 REAL(wp) :: z1_Tp ! inverse reference temperature 138 135 REAL(wp) :: z1_rhow ! inverse freshwater density … … 142 139 REAL(wp) :: omega_dt ! Time independent accumulated variables used for freezing 143 140 REAL(wp) :: lh_ip_end ! Lid thickness at end of timestep (temporary variable) 144 REAL(wp) :: actual_frz ! Amount of melt pond that freezes141 REAL(wp) :: zdh_frz ! Amount of melt pond that freezes (m) 145 142 ! 146 143 INTEGER :: ji ! loop indices … … 168 165 lh_ip_1d(ji) = 0._wp 169 166 170 actual_mlt = 0._wp171 actual_frz = 0._wp167 zdh_mlt = 0._wp 168 zdh_frz = 0._wp 172 169 ! !--------------------------------! 173 170 ELSE ! Case ice thickness >= rn_himin ! … … 175 172 v_ip_1d(ji) = h_ip_1d(ji) * a_ip_1d(ji) ! record pond volume at previous time step 176 173 ! 177 ! available meltwater for melt ponding [m, >0] and fraction 178 zdv_mlt = -( dh_i_sum(ji)*rhoi + dh_s_mlt(ji)*rhos ) * z1_rhow 179 zfr_mlt = zrmin + ( zrmax - zrmin ) * a_i_1d(ji) ! from CICE doc 180 !zfr_mlt = zrmin + zrmax * a_i_1d(ji) ! from Holland paper 181 actual_mlt = zfr_mlt * zdv_mlt 174 ! available meltwater for melt ponding 175 ! This is the change in ice thickness due to melt scaled up by the realive areas of the meltpond 176 ! and the area of sea ice feeding the melt ponds. 177 zdh_mlt = -( dh_i_sum(ji)*rhoi + dh_s_mlt(ji)*rhos ) * z1_rhow * (zrmax * a_i_1d(ji)) / a_ip_1d(ji) 182 178 ! 183 179 !--- Pond gowth ---! 184 v_ip_1d(ji) = v_ip_1d(ji) + actual_mlt * a_i_1d(ji)185 ! 186 !--- Lid shrinking ---!187 lh_ip_1d(ji) = lh_ip_1d(ji) - actual_mlt180 v_ip_1d(ji) = v_ip_1d(ji) + zdh_mlt * a_ip_1d(ji) 181 ! 182 !--- Lid shrinking. ---! 183 lh_ip_1d(ji) = lh_ip_1d(ji) - zdh_mlt 188 184 ! 189 185 ! 190 186 !--- Pond contraction (due to refreezing) ---! 191 IF ( t_su_1d(ji) < freezing_t.AND. v_ip_1d(ji) > 0._wp ) THEN192 t_grad = freezing_t- t_su_1d(ji)187 IF ( t_su_1d(ji) < (zTp+rt0) .AND. v_ip_1d(ji) > 0._wp ) THEN 188 t_grad = (zTp+rt0) - t_su_1d(ji) 193 189 194 190 ! The following equation is a rearranged form of: … … 201 197 202 198 lh_ip_end = SQRT(omega_dt * t_grad + lh_ip_1d(ji)**2) 203 actual_frz = lh_ip_end - lh_ip_1d(ji)199 zdh_frz = lh_ip_end - lh_ip_1d(ji) 204 200 205 201 ! Pond shrinking 206 v_ip_1d(ji) = v_ip_1d(ji) - actual_frz * a_ip_1d(ji)202 v_ip_1d(ji) = v_ip_1d(ji) - zdh_frz * a_ip_1d(ji) 207 203 208 204 ! Lid growing 209 lh_ip_1d(ji) = lh_ip_1d(ji) + actual_frz205 lh_ip_1d(ji) = lh_ip_1d(ji) + zdh_frz 210 206 ELSE 211 actual_frz = 0._wp207 zdh_frz = 0._wp 212 208 END IF 213 209 214 210 ! melt pond mass flux (<0) 215 IF( zd v_mlt > 0._wp ) THEN216 zfac = actual_mlt* a_i_1d(ji) * rhow * r1_rdtice211 IF( zdh_mlt > 0._wp ) THEN 212 zfac = zdh_mlt * zrmax * a_i_1d(ji) * rhow * r1_rdtice 217 213 wfx_pnd_1d(ji) = wfx_pnd_1d(ji) - zfac 218 214 ! … … 246 242 IF (to_print(ji) == 10) THEN 247 243 write(numout,*)'icethd_pnd: h_ip_1d(ji), zpnd_aspect, a_ip_frac_1d(ji), a_ip_1d(ji) = ',h_ip_1d(ji), zpnd_aspect, a_ip_frac_1d(ji), a_ip_1d(ji) 248 write(numout,*)'icethd_pnd: a_i_1d(ji), v_ip_1d(ji), t_su_1d(ji), zfr_mlt, zd v_mlt = ',a_i_1d(ji), ' ', v_ip_1d(ji), ' ', t_su_1d(ji), ' ', zfr_mlt, ' ', zdv_mlt244 write(numout,*)'icethd_pnd: a_i_1d(ji), v_ip_1d(ji), t_su_1d(ji), zfr_mlt, zdh_mlt = ',a_i_1d(ji), ' ', v_ip_1d(ji), ' ', t_su_1d(ji), ' ', zfr_mlt, ' ', zdh_mlt 249 245 write(numout,*)'icethd_pnd: meltt = ', -( dh_i_sum(ji)*rhoi + dh_s_mlt(ji)*rhos ) / rhoi 250 write(numout,*)'icethd_pnd: lh_ip_1d(ji), actual_mlt, actual_frz, t_su_1d(ji) = ',lh_ip_1d(ji), ' ', actual_mlt, ' ', actual_frz, ' ', t_su_1d(ji)246 write(numout,*)'icethd_pnd: lh_ip_1d(ji), zdh_mlt, zdh_frz, t_su_1d(ji) = ',lh_ip_1d(ji), ' ', zdh_mlt, ' ', zdh_frz, ' ', t_su_1d(ji) 251 247 END IF 252 248
Note: See TracChangeset
for help on using the changeset viewer.