- Timestamp:
- 2017-10-18T19:14:32+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/LIM_SRC_3/icevar.F90
r8586 r8637 97 97 et_i(:,:) = SUM( SUM( e_i(:,:,:,:), dim=4 ), dim=3 ) 98 98 99 ! MV MP 2016 100 IF ( ln_pnd ) THEN ! Melt pond 101 at_ip(:,:) = SUM( a_ip(:,:,:), dim=3 ) 102 vt_ip(:,:) = SUM( v_ip(:,:,:), dim=3 ) 103 ENDIF 104 ! END MP 2016 99 at_ip(:,:) = SUM( a_ip(:,:,:), dim=3 ) ! melt ponds 100 vt_ip(:,:) = SUM( v_ip(:,:,:), dim=3 ) 105 101 106 102 ato_i(:,:) = 1._wp - at_i(:,:) ! open water fraction … … 134 130 END DO 135 131 ! 132 ! ! put rt0 where there is no ice 133 WHERE( at_i(:,:)<=epsi20 ) 134 tm_su(:,:) = rt0 135 tm_si(:,:) = rt0 136 tm_i (:,:) = rt0 137 END WHERE 138 136 139 DEALLOCATE( z1_at_i , z1_vt_i ) 137 140 ENDIF … … 160 163 !! a criteria for icy area (i.e. a_i > epsi20 and v_i > epsi20 ) 161 164 162 !------------------------------------------------------- 163 ! Ice thickness, snow thickness, ice salinity, ice age 164 !------------------------------------------------------- 165 !--------------------------------------------------------------- 166 ! Ice thickness, snow thickness, ice salinity, ice age and ponds 167 !--------------------------------------------------------------- 165 168 ! !--- inverse of the ice area 166 169 WHERE( a_i(:,:,:) > epsi20 ) ; z1_a_i(:,:,:) = 1._wp / a_i(:,:,:) … … 171 174 ELSEWHERE ; z1_v_i(:,:,:) = 0._wp 172 175 END WHERE 173 ! 174 h_i(:,:,:) = v_i (:,:,:) * z1_a_i(:,:,:) !--- ice thickness176 ! !--- ice thickness 177 h_i(:,:,:) = v_i (:,:,:) * z1_a_i(:,:,:) 175 178 176 179 zhmax = hi_max(jpl) 177 180 z1_zhmax = 1._wp / hi_max(jpl) 178 WHERE( h_i(:,:,jpl) > zhmax ) !---bound h_i by hi_max (i.e. 99 m) with associated update of ice area181 WHERE( h_i(:,:,jpl) > zhmax ) ! bound h_i by hi_max (i.e. 99 m) with associated update of ice area 179 182 h_i (:,:,jpl) = zhmax 180 183 a_i (:,:,jpl) = v_i(:,:,jpl) * z1_zhmax 181 z1_a_i(:,:,jpl) = zhmax * z1_v_i(:,:,jpl) ! NB: v_i always /=0 as h_i > hi_max184 z1_a_i(:,:,jpl) = zhmax * z1_v_i(:,:,jpl) 182 185 END WHERE 183 184 h_s(:,:,:) = v_s (:,:,:) * z1_a_i(:,:,:) !--- snow thickness 185 186 o_i(:,:,:) = oa_i(:,:,:) * z1_a_i(:,:,:) !--- ice age 187 188 IF( nn_icesal == 2 ) THEN !--- salinity (with a minimum value imposed everywhere) 186 ! !--- snow thickness 187 h_s(:,:,:) = v_s (:,:,:) * z1_a_i(:,:,:) 188 ! !--- ice age 189 o_i(:,:,:) = oa_i(:,:,:) * z1_a_i(:,:,:) 190 ! !--- pond fraction and thickness 191 a_ip_frac(:,:,:) = a_ip(:,:,:) * z1_a_i(:,:,:) 192 WHERE( a_ip_frac(:,:,:) > epsi20 ) ; h_ip(:,:,:) = v_ip(:,:,:) * z1_a_i(:,:,:) / a_ip_frac(:,:,:) 193 ELSEWHERE ; h_ip(:,:,:) = 0._wp 194 END WHERE 195 ! 196 ! !--- salinity (with a minimum value imposed everywhere) 197 IF( nn_icesal == 2 ) THEN 189 198 WHERE( v_i(:,:,:) > epsi20 ) ; s_i(:,:,:) = MAX( rn_simin , MIN( rn_simax, sv_i(:,:,:) * z1_v_i(:,:,:) ) ) 190 199 ELSEWHERE ; s_i(:,:,:) = rn_simin 191 200 END WHERE 192 201 ENDIF 193 194 CALL ice_var_salprof ! salinity profile 202 CALL ice_var_salprof ! salinity profile 195 203 196 204 !------------------- … … 235 243 vt_s (:,:) = SUM( v_s, dim=3 ) 236 244 at_i (:,:) = SUM( a_i, dim=3 ) 237 238 ! MV MP 2016239 ! probably should resum for melt ponds ???240 241 245 ! 242 246 END SUBROUTINE ice_var_glo2eqv … … 251 255 !!------------------------------------------------------------------- 252 256 ! 253 v_i (:,:,:) = h_i(:,:,:) * a_i(:,:,:) 254 v_s (:,:,:) = h_s(:,:,:) * a_i(:,:,:) 255 sv_i(:,:,:) = s_i(:,:,:) * v_i(:,:,:) 257 v_i (:,:,:) = h_i (:,:,:) * a_i (:,:,:) 258 v_s (:,:,:) = h_s (:,:,:) * a_i (:,:,:) 259 sv_i(:,:,:) = s_i (:,:,:) * v_i (:,:,:) 260 v_ip(:,:,:) = h_ip(:,:,:) * a_ip(:,:,:) 256 261 ! 257 262 END SUBROUTINE ice_var_eqv2glo … … 471 476 wfx_res(ji,jj) = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_s (ji,jj,jl) * rhosn * r1_rdtice 472 477 hfx_res(ji,jj) = hfx_res(ji,jj) - (1._wp - zswitch(ji,jj) ) * e_s (ji,jj,1,jl) * r1_rdtice ! W.m-2 <0 478 IF( ln_pnd_fwb ) THEN 479 wfx_res(ji,jj) = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_ip(ji,jj,jl) * rhofw * r1_rdtice 480 ENDIF 473 481 !----------------------------------------------------------------- 474 482 ! Zap snow energy … … 491 499 h_s (ji,jj,jl) = h_s (ji,jj,jl) * zswitch(ji,jj) 492 500 493 END DO 494 END DO 495 496 IF( ln_pnd ) THEN 497 DO jj = 1 , jpj 498 DO ji = 1 , jpi 499 IF( ln_pnd_fw ) & 500 & wfx_res(ji,jj) = wfx_res(ji,jj) + (1._wp - zswitch(ji,jj) ) * v_ip(ji,jj,jl) * rhofw * r1_rdtice 501 a_ip (ji,jj,jl) = a_ip (ji,jj,jl) * zswitch(ji,jj) 502 v_ip (ji,jj,jl) = v_ip (ji,jj,jl) * zswitch(ji,jj) 503 END DO 504 END DO 505 ENDIF 506 501 a_ip (ji,jj,jl) = a_ip (ji,jj,jl) * zswitch(ji,jj) 502 v_ip (ji,jj,jl) = v_ip (ji,jj,jl) * zswitch(ji,jj) 503 504 END DO 505 END DO 506 507 507 END DO 508 508
Note: See TracChangeset
for help on using the changeset viewer.