Changeset 10907
- Timestamp:
- 2019-04-29T17:54:07+02:00 (4 years ago)
- Location:
- NEMO/trunk/src/OCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DYN/sshwzv.F90
r10425 r10907 297 297 IF(lwp) WRITE(numout,*) 'wAimp : Courant number-based partitioning of now vertical velocity ' 298 298 IF(lwp) WRITE(numout,*) '~~~~~ ' 299 ! 300 Cu_adv(:,:,jpk) = 0._wp ! bottom value : Cu_adv=0 (set once for all) 301 ENDIF 299 ENDIF 300 ! 302 301 ! 303 302 DO jk = 1, jpkm1 ! calculate Courant numbers … … 305 304 DO ji = 2, fs_jpim1 ! vector opt. 306 305 z1_e3w = 1._wp / e3w_n(ji,jj,jk) 307 Cu_adv(ji,jj,jk) = r2dt * ( ( MAX( wn(ji,jj,jk) , 0._wp ) - MIN( wn(ji,jj,jk+1) , 0._wp ) ) &308 & + ( MAX( e2u(ji ,jj)*e3uw_n(ji ,jj,jk)*un(ji ,jj,jk), 0._wp ) - &309 & MIN( e2u(ji-1,jj)*e3uw_n(ji-1,jj,jk)*un(ji-1,jj,jk), 0._wp ) ) &310 & * r1_e1e2t(ji,jj) &311 & + ( MAX( e1v(ji,jj )*e3vw_n(ji,jj ,jk)*vn(ji,jj ,jk), 0._wp ) - &312 & MIN( e1v(ji,jj-1)*e3vw_n(ji,jj-1,jk)*vn(ji,jj-1,jk), 0._wp ) ) &313 & * r1_e1e2t(ji,jj) &314 & ) * z1_e3w306 Cu_adv(ji,jj,jk) = 2._wp * rdt * ( ( MAX( wn(ji,jj,jk) , 0._wp ) - MIN( wn(ji,jj,jk+1) , 0._wp ) ) & ! 2*rdt and not r2dt (for restartability) 307 & + ( MAX( e2u(ji ,jj)*e3uw_n(ji ,jj,jk)*un(ji ,jj,jk), 0._wp ) - & 308 & MIN( e2u(ji-1,jj)*e3uw_n(ji-1,jj,jk)*un(ji-1,jj,jk), 0._wp ) ) & 309 & * r1_e1e2t(ji,jj) & 310 & + ( MAX( e1v(ji,jj )*e3vw_n(ji,jj ,jk)*vn(ji,jj ,jk), 0._wp ) - & 311 & MIN( e1v(ji,jj-1)*e3vw_n(ji,jj-1,jk)*vn(ji,jj-1,jk), 0._wp ) ) & 312 & * r1_e1e2t(ji,jj) & 313 & ) * z1_e3w 315 314 END DO 316 315 END DO 317 316 END DO 317 CALL lbc_lnk( 'sshwzv', Cu_adv, 'T', 1. ) 318 318 ! 319 319 CALL iom_put("Courant",Cu_adv) 320 320 ! 321 wi(:,:,:) = 0._wp ! Includes top and bottom values set to zero322 321 IF( MAXVAL( Cu_adv(:,:,:) ) > Cu_min ) THEN ! Quick check if any breaches anywhere 323 322 DO jk = 1, jpkm1 ! or scan Courant criterion and partition 324 DO jj = 2, jpjm1! w where necessary325 DO ji = 2, fs_jpim1 ! vector opt.323 DO jj = 1, jpj ! w where necessary 324 DO ji = 1, jpi 326 325 ! 327 326 zCu = MAX( Cu_adv(ji,jj,jk) , Cu_adv(ji,jj,jk+1) ) 328 327 ! 329 IF( zCu < Cu_min ) THEN!<-- Fully explicit328 IF( zCu <= Cu_min ) THEN !<-- Fully explicit 330 329 zcff = 0._wp 331 330 ELSEIF( zCu < Cu_cut ) THEN !<-- Mixed explicit … … 346 345 ELSE 347 346 ! Fully explicit everywhere 348 Cu_adv = 0.0_wp ! Reuse array to output coefficient 347 Cu_adv(:,:,:) = 0._wp ! Reuse array to output coefficient 348 wi (:,:,:) = 0._wp 349 349 ENDIF 350 350 CALL iom_put("wimp",wi) -
NEMO/trunk/src/OCE/ZDF/zdfphy.F90
r10425 r10907 132 132 IF( ln_zad_Aimp ) THEN 133 133 IF( zdf_phy_alloc() /= 0 ) & 134 & CALL ctl_stop( 'STOP', 'zdf_phy_init : unable to allocate adaptive-implicit z-advection arrays' ) 135 wi(:,:,:) = 0._wp 134 & CALL ctl_stop( 'STOP', 'zdf_phy_init : unable to allocate adaptive-implicit z-advection arrays' ) 135 Cu_adv(:,:,:) = 0._wp 136 wi (:,:,:) = 0._wp 136 137 ENDIF 137 138 ! !== Background eddy viscosity and diffusivity ==!
Note: See TracChangeset
for help on using the changeset viewer.