Changeset 7646 for trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
- Timestamp:
- 2017-02-06T10:25:03+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r6140 r7646 57 57 INTEGER :: nadv ! chosen advection scheme 58 58 ! 59 REAL(wp) :: r2dttrc ! vertical profile time-step, = 2 rdt60 ! ! except at nitrrc000 (=rdt) if neuler=061 62 59 !! * Substitutions 63 60 # include "vectopt_loop_substitute.h90" … … 87 84 ! 88 85 CALL wrk_alloc( jpi,jpj,jpk, zun, zvn, zwn ) 89 !90 IF( ( neuler == 0 .AND. kt == nittrc000 ) .OR. ln_top_euler ) THEN ! at nittrc00091 r2dttrc = rdttrc ! = rdttrc (use or restarting with Euler time stepping)92 ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN ! at nittrc000 or nittrc000+193 r2dttrc = 2. * rdttrc ! = 2 rdttrc (leapfrog)94 ENDIF95 86 ! !== effective transport ==! 96 DO jk = 1, jpkm1 97 zun(:,:,jk) = e2u (:,:) * e3u_n(:,:,jk) * un(:,:,jk) ! eulerian transport 98 zvn(:,:,jk) = e1v (:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 99 zwn(:,:,jk) = e1e2t(:,:) * wn(:,:,jk) 100 END DO 101 ! 102 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! add z-tilde and/or vvl corrections 103 zun(:,:,:) = zun(:,:,:) + un_td(:,:,:) 104 zvn(:,:,:) = zvn(:,:,:) + vn_td(:,:,:) 105 ENDIF 106 ! 107 IF( ln_ldfeiv .AND. .NOT. ln_traldf_triad ) & 108 & CALL ldf_eiv_trp( kt, nittrc000, zun, zvn, zwn, 'TRC' ) ! add the eiv transport 109 ! 110 IF( ln_mle ) CALL tra_adv_mle( kt, nittrc000, zun, zvn, zwn, 'TRC' ) ! add the mle transport 111 ! 112 zun(:,:,jpk) = 0._wp ! no transport trough the bottom 113 zvn(:,:,jpk) = 0._wp 114 zwn(:,:,jpk) = 0._wp 115 ! 87 IF( l_offline ) THEN 88 zun(:,:,:) = un(:,:,:) ! effective transport already in un/vn/wn 89 zvn(:,:,:) = vn(:,:,:) 90 zwn(:,:,:) = wn(:,:,:) 91 ELSE 92 ! 93 DO jk = 1, jpkm1 94 zun(:,:,jk) = e2u (:,:) * e3u_n(:,:,jk) * un(:,:,jk) ! eulerian transport 95 zvn(:,:,jk) = e1v (:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 96 zwn(:,:,jk) = e1e2t(:,:) * wn(:,:,jk) 97 END DO 98 ! 99 IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN ! add z-tilde and/or vvl corrections 100 zun(:,:,:) = zun(:,:,:) + un_td(:,:,:) 101 zvn(:,:,:) = zvn(:,:,:) + vn_td(:,:,:) 102 ENDIF 103 ! 104 IF( ln_ldfeiv .AND. .NOT. ln_traldf_triad ) & 105 & CALL ldf_eiv_trp( kt, nittrc000, zun, zvn, zwn, 'TRC' ) ! add the eiv transport 106 ! 107 IF( ln_mle ) CALL tra_adv_mle( kt, nittrc000, zun, zvn, zwn, 'TRC' ) ! add the mle transport 108 ! 109 zun(:,:,jpk) = 0._wp ! no transport trough the bottom 110 zvn(:,:,jpk) = 0._wp 111 zwn(:,:,jpk) = 0._wp 112 ! 113 ENDIF 116 114 ! 117 115 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==!
Note: See TracChangeset
for help on using the changeset viewer.