- Timestamp:
- 2017-07-25T17:41:16+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
r8370 r8371 205 205 END DO 206 206 207 !------------------------------------------------------------------------------! 208 ! Thermodynamic computation (only on grid points covered by ice) 209 !------------------------------------------------------------------------------! 210 211 DO jl = 1, jpl !loop over ice categories 207 !-------------------------------------------------------------------------------------------! 208 ! Thermodynamic computation (only on grid points covered by ice) => loop over ice categories 209 !-------------------------------------------------------------------------------------------! 210 DO jl = 1, jpl 212 211 213 212 ! select ice covered grid points … … 237 236 IF( nidx > 0 ) THEN ! If there is no ice, do nothing. 238 237 ! 239 s_i_new ( :) = 0._wp ; dh_s_tot (:) = 0._wp! --- some init --- !240 dh_i_surf ( :) = 0._wp ; dh_i_bott(:) = 0._wp241 dh_snowice( :) = 0._wp ; dh_i_sub (:) = 0._wp238 s_i_new (1:nidx) = 0._wp ; dh_s_tot (1:nidx) = 0._wp ! --- some init --- ! 239 dh_i_surf (1:nidx) = 0._wp ; dh_i_bott(1:nidx) = 0._wp 240 dh_snowice(1:nidx) = 0._wp ; dh_i_sub (1:nidx) = 0._wp 242 241 243 242 CALL lim_thd_1d2d( jl, 1 ) ! --- Move to 1D arrays --- ! … … 275 274 ENDDO 276 275 ! 276 ! Change thickness to volume 277 v_i_1d(1:nidx) = ht_i_1d(1:nidx) * a_i_1d(1:nidx) 278 v_s_1d(1:nidx) = ht_s_1d(1:nidx) * a_i_1d(1:nidx) 279 smv_i_1d(1:nidx) = sm_i_1d(1:nidx) * v_i_1d(1:nidx) 280 ! 277 281 CALL lim_thd_1d2d( jl, 2 ) ! --- Move to 2D arrays --- ! 278 282 ! … … 281 285 ! 282 286 END DO 283 284 ! Change thickness to volume 285 at_i(:,:) = SUM( a_i(:,:,:), dim=3 ) 286 v_i(:,:,:) = ht_i(:,:,:) * a_i(:,:,:) 287 v_s(:,:,:) = ht_s(:,:,:) * a_i(:,:,:) 288 smv_i(:,:,:) = sm_i(:,:,:) * v_i(:,:,:) 289 IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 290 291 ! update ice age (in case a_i changed, i.e. becomes 0 or lateral melting in monocat) 287 at_i(:,:) = SUM( a_i(:,:,:), dim=3 ) 288 289 ! update ice age (in case a_i changed, i.e. becomes 0 or lateral melting) 292 290 DO jl = 1, jpl 293 291 DO jj = 1, jpj … … 299 297 END DO 300 298 299 IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 300 301 301 CALL lim_var_zapsmall 302 302 303 ! control checks304 303 IF( ln_limctl ) CALL lim_prt( kt, iiceprt, jiceprt, 1, ' - ice thermodyn. - ' ) ! control print 305 304 ! 306 307 305 !------------------------------------------------! 308 306 ! Transport ice between thickness categories 309 307 !------------------------------------------------! 310 ! Given thermodynamic growth rates, transport ice between thickness categories.311 308 IF( ln_limdiachk ) CALL lim_cons_hsm(0, 'limitd_th_rem', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 312 309 … … 322 319 IF( ln_limdO ) CALL lim_thd_lac 323 320 324 ! conservation test325 321 IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd_lac', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 326 322 327 ! Control print 328 IF( ln_ctl ) CALL lim_prt3D( 'limthd' ) 323 IF( ln_ctl ) CALL lim_prt3D( 'limthd' ) ! Control print 329 324 ! 330 325 CALL wrk_dealloc( jpi,jpj, zu_io, zv_io, zfric ) … … 555 550 CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_bo_1d(1:nidx), diag_fc_bo ) 556 551 CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_su_1d(1:nidx), diag_fc_su ) 552 ! extensive variables 553 CALL tab_1d_2d( nidx, idxice(1:nidx), v_i_1d (1:nidx), v_i (:,:,jl) ) 554 CALL tab_1d_2d( nidx, idxice(1:nidx), v_s_1d (1:nidx), v_s (:,:,jl) ) 555 CALL tab_1d_2d( nidx, idxice(1:nidx), smv_i_1d(1:nidx), smv_i(:,:,jl) ) 557 556 END SELECT 558 557 !
Note: See TracChangeset
for help on using the changeset viewer.