Changeset 6140 for trunk/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
- Timestamp:
- 2015-12-21T12:35:23+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
r5930 r6140 85 85 86 86 !! * Substitutions 87 # include "domzgr_substitute.h90"88 87 # include "vectopt_loop_substitute.h90" 89 88 !!---------------------------------------------------------------------- … … 107 106 USE oce, ONLY: zts => tsa 108 107 USE oce, ONLY: zuslp => ua , zvslp => va 109 USE zdf_oce, ONLY: zwslpi => avmu , zwslpj => avmv110 108 USE oce, ONLY: zu => ub , zv => vb, zw => rke 111 109 ! 112 110 INTEGER, INTENT(in) :: kt ! ocean time-step index 113 111 ! 112 REAL(wp), DIMENSION(jpi,jpj,jpk ) :: zwslpi, zwslpj 114 113 ! REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: zts 115 114 ! REAL(wp), DIMENSION(jpi,jpj,jpk ) :: zuslp, zvslp, zwslpi, zwslpj … … 359 358 jf_rnf = jfld + 1 ; jfld = jf_rnf 360 359 slf_d(jf_rnf) = sn_rnf 360 ! Activate runoff key of sbc_oce 361 ln_rnf = .true. 362 WRITE(numout,*) 'dta_dyn : Activate the runoff data structure from ocean core ( force ln_rnf = .true.) ' 363 WRITE(numout,*) 361 364 ELSE 362 365 rnf (:,:) = 0._wp … … 421 424 END SUBROUTINE dta_dyn_init 422 425 426 423 427 SUBROUTINE dta_dyn_wzv( pu, pv, pw ) 424 428 !!---------------------------------------------------------------------- … … 449 453 DO jj = 2, jpjm1 450 454 DO ji = fs_2, fs_jpim1 ! vector opt. 451 zu = pu(ji ,jj ,jk) * umask(ji ,jj ,jk) * e2u(ji ,jj ) * fse3u(ji ,jj ,jk) 452 zu1 = pu(ji-1,jj ,jk) * umask(ji-1,jj ,jk) * e2u(ji-1,jj ) * fse3u(ji-1,jj ,jk) 453 zv = pv(ji ,jj ,jk) * vmask(ji ,jj ,jk) * e1v(ji ,jj ) * fse3v(ji ,jj ,jk) 454 zv1 = pv(ji ,jj-1,jk) * vmask(ji ,jj-1,jk) * e1v(ji ,jj-1) * fse3v(ji ,jj-1,jk) 455 zet = 1. / ( e1e2t(ji,jj) * fse3t(ji,jj,jk) ) 456 zhdiv(ji,jj,jk) = ( zu - zu1 + zv - zv1 ) * zet 455 zu = pu(ji ,jj ,jk) * umask(ji ,jj ,jk) * e2u(ji ,jj ) * e3u_n(ji ,jj ,jk) 456 zu1 = pu(ji-1,jj ,jk) * umask(ji-1,jj ,jk) * e2u(ji-1,jj ) * e3u_n(ji-1,jj ,jk) 457 zv = pv(ji ,jj ,jk) * vmask(ji ,jj ,jk) * e1v(ji ,jj ) * e3v_n(ji ,jj ,jk) 458 zv1 = pv(ji ,jj-1,jk) * vmask(ji ,jj-1,jk) * e1v(ji ,jj-1) * e3v_n(ji ,jj-1,jk) 459 zhdiv(ji,jj,jk) = ( zu - zu1 + zv - zv1 ) * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) 457 460 END DO 458 461 END DO 459 462 END DO 460 463 ! ! update the horizontal divergence with the runoff inflow 461 IF( ln_dynrnf ) zhdiv(:,:,1) = zhdiv(:,:,1) - rnf(:,:) * r1_rau0 / fse3t(:,:,1)464 IF( ln_dynrnf ) zhdiv(:,:,1) = zhdiv(:,:,1) - rnf(:,:) * r1_rau0 / e3t_n(:,:,1) 462 465 ! 463 466 CALL lbc_lnk( zhdiv, 'T', 1. ) ! Lateral boundary conditions on zhdiv … … 465 468 pw(:,:,jpk) = 0._wp 466 469 DO jk = jpkm1, 1, -1 467 pw(:,:,jk) = pw(:,:,jk+1) - fse3t(:,:,jk) * zhdiv(:,:,jk)470 pw(:,:,jk) = pw(:,:,jk+1) - e3t_n(:,:,jk) * zhdiv(:,:,jk) 468 471 END DO 469 472 ! … … 489 492 CALL bn2 ( pts, rab_n, rn2 ) ! now Brunt-Vaisala 490 493 491 ! Partial steps: before Horizontal DErivative 492 IF( ln_zps .AND. .NOT. ln_isfcav) & 493 & CALL zps_hde ( kt, jpts, pts, gtsu, gtsv, & ! Partial steps: before horizontal gradient 494 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 495 IF( ln_zps .AND. ln_isfcav) & 496 & CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv, & ! Partial steps for top cell (ISF) 497 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & 498 & gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi ) ! of t, s, rd at the first ocean level 494 ! Partial steps: before Horizontal DErivative 495 IF( ln_zps .AND. .NOT. ln_isfcav) & 496 & CALL zps_hde ( kt, jpts, pts, gtsu, gtsv, & ! Partial steps: before horizontal gradient 497 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 498 IF( ln_zps .AND. ln_isfcav) & 499 & CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv, gtui, gtvi, & ! Partial steps for top cell (ISF) 500 & rhd, gru , grv , grui, grvi ) ! of t, s, rd at the first ocean level 499 501 500 502 rn2b(:,:,:) = rn2(:,:,:) ! need for zdfmxl
Note: See TracChangeset
for help on using the changeset viewer.