Changeset 6140 for trunk/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90
- Timestamp:
- 2015-12-21T12:35:23+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90
r5836 r6140 38 38 PUBLIC trd_tra ! called by all tra_... modules 39 39 40 REAL(wp) :: r2dt ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=041 42 40 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt ! use to store the temperature trends 43 41 44 42 !! * Substitutions 45 # include "domzgr_substitute.h90"46 43 # include "zdfddm_substitute.h90" 47 44 # include "vectopt_loop_substitute.h90" … … 130 127 zwt(:,:,jpk) = 0._wp ; zws(:,:,jpk) = 0._wp 131 128 DO jk = 2, jpk 132 zwt(:,:,jk) = avt(:,:,jk) * ( tsa(:,:,jk-1,jp_tem) - tsa(:,:,jk,jp_tem) ) / fse3w(:,:,jk) * tmask(:,:,jk)133 zws(:,:,jk) = fsavs(:,:,jk) * ( tsa(:,:,jk-1,jp_sal) - tsa(:,:,jk,jp_sal) ) / fse3w(:,:,jk) * tmask(:,:,jk)129 zwt(:,:,jk) = avt(:,:,jk) * ( tsa(:,:,jk-1,jp_tem) - tsa(:,:,jk,jp_tem) ) / e3w_n(:,:,jk) * tmask(:,:,jk) 130 zws(:,:,jk) = fsavs(:,:,jk) * ( tsa(:,:,jk-1,jp_sal) - tsa(:,:,jk,jp_sal) ) / e3w_n(:,:,jk) * tmask(:,:,jk) 134 131 END DO 135 132 ! 136 133 ztrdt(:,:,jpk) = 0._wp ; ztrds(:,:,jpk) = 0._wp 137 134 DO jk = 1, jpkm1 138 ztrdt(:,:,jk) = ( zwt(:,:,jk) - zwt(:,:,jk+1) ) / fse3t(:,:,jk)139 ztrds(:,:,jk) = ( zws(:,:,jk) - zws(:,:,jk+1) ) / fse3t(:,:,jk)135 ztrdt(:,:,jk) = ( zwt(:,:,jk) - zwt(:,:,jk+1) ) / e3t_n(:,:,jk) 136 ztrds(:,:,jk) = ( zws(:,:,jk) - zws(:,:,jk+1) ) / e3t_n(:,:,jk) 140 137 END DO 141 138 CALL trd_tra_mng( ztrdt, ztrds, jptra_zdfp, kt ) … … 207 204 ptrd(ji,jj,jk) = - ( pf (ji,jj,jk) - pf (ji-ii,jj-ij,jk-ik) & 208 205 & - ( pun(ji,jj,jk) - pun(ji-ii,jj-ij,jk-ik) ) * ptn(ji,jj,jk) ) & 209 & / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) )* tmask(ji,jj,jk)206 & * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 210 207 END DO 211 208 END DO … … 229 226 !!---------------------------------------------------------------------- 230 227 231 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdt ra(restart with Euler time stepping)232 ELSEIF( kt <= nit000 + 1) THEN ; r2dt = 2. * rdt ! = 2 rdt tra(leapfrog)228 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdt (restart with Euler time stepping) 229 ELSEIF( kt <= nit000 + 1) THEN ; r2dt = 2. * rdt ! = 2 rdt (leapfrog) 233 230 ENDIF 234 231 … … 306 303 CASE( jptra_zad ) ; CALL iom_put( "ttrd_zad" , ptrdx ) ! z- vertical advection 307 304 CALL iom_put( "strd_zad" , ptrdy ) 308 IF( .NOT. lk_vvl) THEN ! cst volume : adv flux through z=0 surface305 IF( ln_linssh ) THEN ! cst volume : adv flux through z=0 surface 309 306 CALL wrk_alloc( jpi, jpj, z2dx, z2dy ) 310 z2dx(:,:) = wn(:,:,1) * tsn(:,:,1,jp_tem) / fse3t(:,:,1)311 z2dy(:,:) = wn(:,:,1) * tsn(:,:,1,jp_sal) / fse3t(:,:,1)307 z2dx(:,:) = wn(:,:,1) * tsn(:,:,1,jp_tem) / e3t_n(:,:,1) 308 z2dy(:,:) = wn(:,:,1) * tsn(:,:,1,jp_sal) / e3t_n(:,:,1) 312 309 CALL iom_put( "ttrd_sad", z2dx ) 313 310 CALL iom_put( "strd_sad", z2dy )
Note: See TracChangeset
for help on using the changeset viewer.