Changeset 12394
- Timestamp:
- 2020-02-18T10:44:02+01:00 (5 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/cfgs/SHARED/field_def_nemo-ice.xml
r12379 r12394 178 178 <field id="icettop_cat" long_name="Ice/snow surface temperature per category" unit="degC" grid_ref="grid_T_3D_ncatice" /> 179 179 <field id="iceapnd_cat" long_name="Ice melt pond concentration per category" unit="%" grid_ref="grid_T_3D_ncatice" /> 180 <!-- 180 181 <field id="icehpnd_cat" long_name="Ice melt pond thickness per category" unit="m" grid_ref="grid_T_3D_ncatice" /> 182 --> 181 183 <field id="iceafpnd_cat" long_name="Ice melt pond fraction per category" unit="m" grid_ref="grid_T_3D_ncatice" /> 182 184 <field id="icehlid_cat" long_name="Ice melt pond lid thickness per category" unit="m" grid_ref="grid_T_3D_ncatice" /> -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_rdgrft.F90
r12379 r12394 500 500 REAL(wp) :: airdg1, oirdg1, aprdg1, virdg1, sirdg1 501 501 REAL(wp) :: airft1, oirft1, aprft1 502 REAL(wp), DIMENSION(jpij) :: airdg2, oirdg2, aprdg2, virdg2, sirdg2, vsrdg, vprdg ! area etc of new ridges503 REAL(wp), DIMENSION(jpij) :: airft2, oirft2, aprft2, virft , sirft , vsrft, vprft ! area etc of rafted ice502 REAL(wp), DIMENSION(jpij) :: airdg2, oirdg2, aprdg2, virdg2, sirdg2, vsrdg, vprdg, lhprdg ! area etc of new ridges 503 REAL(wp), DIMENSION(jpij) :: airft2, oirft2, aprft2, virft , sirft , vsrft, vprft, lhprft ! area etc of rafted ice 504 504 ! 505 505 REAL(wp), DIMENSION(jpij) :: ersw ! enth of water trapped into ridges -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icerst.F90
r12379 r12394 219 219 lh_ip(:,:,:) = 0._wp 220 220 ENDIF 221 WRITE(numout,*) 'icerst: lh_ip(42,26,1) = ',lh_ip(42,26,1) 221 222 ! Snow enthalpy 222 223 DO jk = 1, nlay_s -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd_pnd.F90
r12382 r12394 151 151 152 152 ! Define time-independent field for use in refreezing 153 omega_dt = 2.0_wp * rcnd_i * rdt ice / (rLfus * rhow)153 omega_dt = 2.0_wp * rcnd_i * rdt_ice / (rLfus * rhow) 154 154 155 155 DO ji = 1, npti … … 167 167 h_ip_1d(ji) = 0._wp 168 168 lh_ip_1d(ji) = 0._wp 169 170 actual_mlt = 0._wp 171 actual_frz = 0._wp 169 172 ! !--------------------------------! 170 173 ELSE ! Case ice thickness >= rn_himin ! … … 190 193 191 194 ! The following equation is a rearranged form of: 192 ! lid_thickness_end - lid_thickness_start = rcnd_i * t_grad * rdt ice / (0.5*(lid_thickness_end + lid_thickness_start) * rLfus * rhow)195 ! lid_thickness_end - lid_thickness_start = rcnd_i * t_grad * rdt_ice / (0.5*(lid_thickness_end + lid_thickness_start) * rLfus * rhow) 193 196 ! where: lid_thickness_start = lh_ip_1d(ji) 194 197 ! lid_thickness_end = lh_ip_end … … 209 212 END IF 210 213 211 ! melt pond mass flux diagnostic (melt only) 212 zfac = actual_mlt * a_i_1d(ji * rhow * r1_rdtice 213 wfx_pnd_1d(ji) = wfx_pnd_1d(ji) - zfac 214 ! 215 ! adjust ice/snow melting flux to balance melt pond flux (>0) 216 zdum = zfac / ( wfx_snw_sum_1d(ji) + wfx_sum_1d(ji) ) 217 wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) * (1._wp + zdum) 218 wfx_sum_1d(ji) = wfx_sum_1d(ji) * (1._wp + zdum) 214 ! melt pond mass flux (<0) 215 IF( zdv_mlt > 0._wp ) THEN 216 zfac = actual_mlt * a_i_1d(ji) * rhow * r1_rdtice 217 wfx_pnd_1d(ji) = wfx_pnd_1d(ji) - zfac 218 ! 219 ! adjust ice/snow melting flux to balance melt pond flux (>0) 220 zdum = zfac / ( wfx_snw_sum_1d(ji) + wfx_sum_1d(ji) ) 221 wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) * (1._wp + zdum) 222 wfx_sum_1d(ji) = wfx_sum_1d(ji) * (1._wp + zdum) 223 ENDIF 219 224 ! 220 225 ! Make sure pond volume or lid thickness has not gone negative … … 243 248 write(numout,*)'icethd_pnd: a_i_1d(ji), v_ip_1d(ji), t_su_1d(ji), zfr_mlt, zdv_mlt = ',a_i_1d(ji), ' ', v_ip_1d(ji), ' ', t_su_1d(ji), ' ', zfr_mlt, ' ', zdv_mlt 244 249 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) 245 251 END IF 246 252 -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceupdate.F90
r12382 r12394 279 279 IF( iom_use('hfxcndbot' ) ) CALL iom_put( "hfxcndbot" , SUM( qcn_ice_bot * a_i_b, dim=3 ) ) ! Bottom conduction flux 280 280 IF( iom_use('hfxcndtop' ) ) CALL iom_put( "hfxcndtop" , SUM( qcn_ice_top * a_i_b, dim=3 ) ) ! Surface conduction flux 281 IF( iom_use('hfxcndcpl' ) ) CALL iom_put( "hfxcndcpl" , SUM( qcn_ice * a_i_b, dim=3 ) ) ! Conduction flux we are giving it281 ! IF( iom_use('hfxcndcpl' ) ) CALL iom_put( "hfxcndcpl" , SUM( qcn_ice * a_i_b, dim=3 ) ) ! Conduction flux we are giving it 282 282 283 283 ! diags -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icewri.F90
r12379 r12394 155 155 IF( iom_use('iceconc_cat' ) ) CALL iom_put( "iceconc_cat" , a_i * zmsk00l ) ! area for categories 156 156 IF( iom_use('icethic_cat' ) ) CALL iom_put( "icethic_cat" , h_i * zmsk00l ) ! thickness for categories 157 IF( iom_use('icevol_cat' ) ) CALL iom_put( "icevol_cat" , v_i * zmsk00l ) ! volume for categories157 ! IF( iom_use('icevol_cat' ) ) CALL iom_put( "icevol_cat" , v_i * zmsk00l ) ! volume for categories 158 158 IF( iom_use('snwthic_cat' ) ) CALL iom_put( "snwthic_cat" , h_s * zmsksnl ) ! snow depth for categories 159 159 IF( iom_use('icesalt_cat' ) ) CALL iom_put( "icesalt_cat" , s_i * zmsk00l ) ! salinity for categories … … 164 164 IF( iom_use('icebrv_cat' ) ) CALL iom_put( "icebrv_cat" , bv_i * 100. * zmsk00l ) ! brine volume 165 165 IF( iom_use('iceapnd_cat' ) ) CALL iom_put( "iceapnd_cat" , a_ip * zmsk00l ) ! melt pond frac for categories 166 IF( iom_use('icehpnd_cat' ) ) CALL iom_put( "icehpnd_cat" , h_ip * zmsk00l ) ! melt pond frac for categories166 ! IF( iom_use('icehpnd_cat' ) ) CALL iom_put( "icehpnd_cat" , h_ip * zmsk00l ) ! melt pond frac for categories 167 167 IF( iom_use('iceafpnd_cat') ) CALL iom_put( "iceafpnd_cat", a_ip_frac * zmsk00l ) ! melt pond frac for categories 168 IF( iom_uce('icehlid_cat' ) ) CALL iom_put( "icehlid_cat", lh_ip * zmsk00l ) ! melt pond lid thickness for categories168 ! IF( iom_use('icehlid_cat' ) ) CALL iom_put( "icehlid_cat", lh_ip * zmsk00l ) ! melt pond lid thickness for categories 169 169 170 170 !------------------ -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/OCE/BDY/bdyice.F90
r11081 r12394 172 172 a_ip(ji,jj, jl) = 0._wp ! pond concentration 173 173 v_ip(ji,jj, jl) = 0._wp ! pond volume 174 lh_ip(ji,jj, jl) = 0._wp ! pond lid thickness 174 175 t_su(ji,jj, jl) = rn_ice_tem(jbdy) ! temperature surface 175 176 t_s (ji,jj,:,jl) = rn_ice_tem(jbdy) ! temperature snw … … 183 184 a_ip(ji,jj, jl) = a_ip(ib,jb, jl) ! pond concentration 184 185 v_ip(ji,jj, jl) = v_ip(ib,jb, jl) ! pond volume 186 lh_ip(ji,jj, jl) = lh_ip(ib,jb, jl) ! pond lid thickness 185 187 t_su(ji,jj, jl) = t_su(ib,jb, jl) ! temperature surface 186 188 t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) ! temperature snw … … 222 224 a_ip(ji,jj, jl) = 0._wp 223 225 v_ip(ji,jj, jl) = 0._wp 226 lh_ip(ji,jj, jl) = 0._wp 224 227 t_su(ji,jj, jl) = rt0 225 228 t_s (ji,jj,:,jl) = rt0 … … 253 256 CALL lbc_bdy_lnk( 'bdyice', a_ip(:,:,:) , 'T', 1., jbdy ) 254 257 CALL lbc_bdy_lnk( 'bdyice', v_ip(:,:,:) , 'T', 1., jbdy ) 258 CALL lbc_bdy_lnk( 'bdyice', lh_ip(:,:,:) , 'T', 1., jbdy ) 255 259 CALL lbc_bdy_lnk( 'bdyice', s_i (:,:,:) , 'T', 1., jbdy ) 256 260 CALL lbc_bdy_lnk( 'bdyice', t_su(:,:,:) , 'T', 1., jbdy ) -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/OCE/SBC/sbccpl.F90
r12382 r12394 2348 2348 CASE( 'yes' ) 2349 2349 2350 write(numout,*) 'sbccpl: lh_ip(42,26,1) = ',lh_ip(42,26,1) 2351 2350 2352 ! Calculate how much meltpond is exposed (not under a frozen lid) 2351 2353 lfrac_pnd(:,:,1:jpl) = 1.0 … … 2359 2361 ztmp3(:,:,1:jpl) = a_ip_frac(:,:,1:jpl) * lfrac_pnd(:,:,1:jpl) 2360 2362 ztmp4(:,:,1:jpl) = h_ip(:,:,1:jpl) 2363 2364 write(numout,*) 'sbccpl: lfrac_pnd(42,26,1), a_ip_frac(42,26,1), ztmp3(42,26,1) = ',lfrac_pnd(42,26,1), a_ip_frac(42,26,1), ztmp3(42,26,1) 2361 2365 CASE( 'no' ) 2362 2366 ztmp3(:,:,:) = 0.0
Note: See TracChangeset
for help on using the changeset viewer.