- Timestamp:
- 2020-09-15T12:56:56+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/temporary_r4_trunk/src/ICE/icedyn_rhg_evp.F90
r13469 r13470 182 182 ! for diagnostics and convergence tests 183 183 ALLOCATE( zmsk00(jpi,jpj), zmsk15(jpi,jpj) ) 184 DO_2D _11_11184 DO_2D( 1, 1, 1, 1 ) 185 185 zmsk00(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - epsi06 ) ) ! 1 if ice , 0 if no ice 186 186 zmsk15(ji,jj) = MAX( 0._wp , SIGN( 1._wp , at_i(ji,jj) - 0.15_wp ) ) ! 1 if 15% ice, 0 if less … … 192 192 !------------------------------------------------------------------------------! 193 193 ! ocean/land mask 194 DO_2D _10_10194 DO_2D( 1, 0, 1, 0 ) 195 195 zfmask(ji,jj) = tmask(ji,jj,1) * tmask(ji+1,jj,1) * tmask(ji,jj+1,1) * tmask(ji+1,jj+1,1) 196 196 END_2D … … 198 198 199 199 ! Lateral boundary conditions on velocity (modify zfmask) 200 DO_2D _00_00200 DO_2D( 0, 0, 0, 0 ) 201 201 IF( zfmask(ji,jj) == 0._wp ) THEN 202 202 zfmask(ji,jj) = rn_ishlat * MIN( 1._wp , MAX( umask(ji,jj,1), umask(ji,jj+1,1), & … … 266 266 zsshdyn(:,:) = ice_var_sshdyn( ssh_m, snwice_mass, snwice_mass_b) 267 267 268 DO_2D _00_00268 DO_2D( 0, 0, 0, 0 ) 269 269 270 270 ! ice fraction at U-V points … … 317 317 ! 318 318 IF( ln_landfast_L16 ) THEN !-- Lemieux 2016 319 DO_2D _00_00319 DO_2D( 0, 0, 0, 0 ) 320 320 ! ice thickness at U-V points 321 321 zvU = 0.5_wp * ( vt_i(ji,jj) * e1e2t(ji,jj) + vt_i(ji+1,jj) * e1e2t(ji+1,jj) ) * r1_e1e2u(ji,jj) * umask(ji,jj,1) … … 334 334 ! 335 335 ELSE !-- no landfast 336 DO_2D _00_00336 DO_2D( 0, 0, 0, 0 ) 337 337 ztaux_base(ji,jj) = 0._wp 338 338 ztauy_base(ji,jj) = 0._wp … … 351 351 ! convergence test 352 352 IF( nn_rhg_chkcvg == 1 .OR. nn_rhg_chkcvg == 2 ) THEN 353 DO_2D _11_11353 DO_2D( 1, 1, 1, 1 ) 354 354 zu_ice(ji,jj) = u_ice(ji,jj) * umask(ji,jj,1) ! velocity at previous time step 355 355 zv_ice(ji,jj) = v_ice(ji,jj) * vmask(ji,jj,1) … … 358 358 359 359 ! --- divergence, tension & shear (Appendix B of Hunke & Dukowicz, 2002) --- ! 360 DO_2D _10_10360 DO_2D( 1, 0, 1, 0 ) 361 361 362 362 ! shear at F points … … 368 368 CALL lbc_lnk( 'icedyn_rhg_evp', zds, 'F', 1. ) 369 369 370 DO_2D _01_01370 DO_2D( 0, 1, 0, 1 ) 371 371 372 372 ! shear**2 at T points (doc eq. A16) … … 417 417 ! Save beta at T-points for further computations 418 418 IF( ln_aEVP ) THEN 419 DO_2D _11_11419 DO_2D( 1, 1, 1, 1 ) 420 420 zbeta(ji,jj) = MAX( 50._wp, rpi * SQRT( 0.5_wp * zp_delt(ji,jj) * r1_e1e2t(ji,jj) * zdt_m(ji,jj) ) ) 421 421 END_2D 422 422 ENDIF 423 423 424 DO_2D _10_10424 DO_2D( 1, 0, 1, 0 ) 425 425 426 426 ! alpha for aEVP … … 442 442 443 443 ! --- Ice internal stresses (Appendix C of Hunke and Dukowicz, 2002) --- ! 444 DO_2D _00_00444 DO_2D( 0, 0, 0, 0 ) 445 445 ! !--- U points 446 446 zfU(ji,jj) = 0.5_wp * ( ( zs1(ji+1,jj) - zs1(ji,jj) ) * e2u(ji,jj) & … … 470 470 IF( MOD(jter,2) == 0 ) THEN ! even iterations 471 471 ! 472 DO_2D _00_00472 DO_2D( 0, 0, 0, 0 ) 473 473 ! !--- tau_io/(v_oce - v_ice) 474 474 zTauO = zaV(ji,jj) * zrhoco * SQRT( ( v_ice (ji,jj) - v_oce (ji,jj) ) * ( v_ice (ji,jj) - v_oce (ji,jj) ) & … … 522 522 IF( ln_bdy ) CALL bdy_ice_dyn( 'V' ) 523 523 ! 524 DO_2D _00_00524 DO_2D( 0, 0, 0, 0 ) 525 525 ! !--- tau_io/(u_oce - u_ice) 526 526 zTauO = zaU(ji,jj) * zrhoco * SQRT( ( u_ice (ji,jj) - u_oce (ji,jj) ) * ( u_ice (ji,jj) - u_oce (ji,jj) ) & … … 576 576 ELSE ! odd iterations 577 577 ! 578 DO_2D _00_00578 DO_2D( 0, 0, 0, 0 ) 579 579 ! !--- tau_io/(u_oce - u_ice) 580 580 zTauO = zaU(ji,jj) * zrhoco * SQRT( ( u_ice (ji,jj) - u_oce (ji,jj) ) * ( u_ice (ji,jj) - u_oce (ji,jj) ) & … … 628 628 IF( ln_bdy ) CALL bdy_ice_dyn( 'U' ) 629 629 ! 630 DO_2D _00_00630 DO_2D( 0, 0, 0, 0 ) 631 631 ! !--- tau_io/(v_oce - v_ice) 632 632 zTauO = zaV(ji,jj) * zrhoco * SQRT( ( v_ice (ji,jj) - v_oce (ji,jj) ) * ( v_ice (ji,jj) - v_oce (ji,jj) ) & … … 693 693 ! 4) Recompute delta, shear and div (inputs for mechanical redistribution) 694 694 !------------------------------------------------------------------------------! 695 DO_2D _10_10695 DO_2D( 1, 0, 1, 0 ) 696 696 697 697 ! shear at F points … … 702 702 END_2D 703 703 704 DO_2D _00_00704 DO_2D( 0, 0, 0, 0 ) 705 705 706 706 ! tension**2 at T points … … 766 766 ALLOCATE( zsig1(jpi,jpj) , zsig2(jpi,jpj) , zsig3(jpi,jpj) ) 767 767 ! 768 DO_2D _00_00768 DO_2D( 0, 0, 0, 0 ) 769 769 zdum1 = ( zmsk00(ji-1,jj) * pstress12_i(ji-1,jj) + zmsk00(ji ,jj-1) * pstress12_i(ji ,jj-1) + & ! stress12_i at T-point 770 770 & zmsk00(ji ,jj) * pstress12_i(ji ,jj) + zmsk00(ji-1,jj-1) * pstress12_i(ji-1,jj-1) ) & … … 817 817 & zdiag_xmtrp_snw(jpi,jpj) , zdiag_ymtrp_snw(jpi,jpj) , zdiag_xatrp(jpi,jpj) , zdiag_yatrp(jpi,jpj) ) 818 818 ! 819 DO_2D _00_00819 DO_2D( 0, 0, 0, 0 ) 820 820 ! 2D ice mass, snow mass, area transport arrays (X, Y) 821 821 zfac_x = 0.5 * u_ice(ji,jj) * e2u(ji,jj) * zmsk00(ji,jj) … … 917 917 zresm = 0._wp 918 918 ELSE 919 DO_2D _11_11919 DO_2D( 1, 1, 1, 1 ) 920 920 zres(ji,jj) = MAX( ABS( pu(ji,jj) - pub(ji,jj) ) * umask(ji,jj,1), & 921 921 & ABS( pv(ji,jj) - pvb(ji,jj) ) * vmask(ji,jj,1) ) * zmsk15(ji,jj)
Note: See TracChangeset
for help on using the changeset viewer.