- Timestamp:
- 2010-07-29T17:05:35+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traldf_iso.F90
r2024 r2034 43 43 # include "vectopt_loop_substitute.h90" 44 44 !!---------------------------------------------------------------------- 45 !! OPA 9.0 , LOCEAN-IPSL (2005)45 !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010) 46 46 !! $Id$ 47 47 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) … … 50 50 CONTAINS 51 51 52 SUBROUTINE tra_ldf_iso( kt , cdtype, pgtu, pgtv, &53 & ptrab, ptraa, kjpt, pahtb0 )52 SUBROUTINE tra_ldf_iso( kt, cdtype, pgu, pgv, & 53 & ptb, pta, kjpt, pahtb0 ) 54 54 !!---------------------------------------------------------------------- 55 55 !! *** ROUTINE tra_ldf_iso *** … … 98 98 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 99 99 INTEGER , INTENT(in ) :: kjpt ! number of tracers 100 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,kjpt ) :: pg tu, pgtv ! tracer gradient at pstep levels101 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk,kjpt) :: pt rab ! before and now tracer fields102 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pt raa ! tracer trend100 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,kjpt ) :: pgu, pgv ! tracer gradient at pstep levels 101 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb ! before and now tracer fields 102 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend 103 103 REAL(wp) , INTENT(in ) :: pahtb0 ! background diffusion coef 104 104 !!* Local declarations … … 138 138 DO jj = 1, jpjm1 139 139 DO ji = 1, fs_jpim1 ! vector opt. 140 zdit(ji,jj,jk) = ( pt rab(ji+1,jj ,jk,jn) - ptrab(ji,jj,jk,jn) ) * umask(ji,jj,jk)141 zdjt(ji,jj,jk) = ( pt rab(ji ,jj+1,jk,jn) - ptrab(ji,jj,jk,jn) ) * vmask(ji,jj,jk)140 zdit(ji,jj,jk) = ( ptb(ji+1,jj ,jk,jn) - ptb(ji,jj,jk,jn) ) * umask(ji,jj,jk) 141 zdjt(ji,jj,jk) = ( ptb(ji ,jj+1,jk,jn) - ptb(ji,jj,jk,jn) ) * vmask(ji,jj,jk) 142 142 END DO 143 143 END DO … … 149 149 iku = MIN( mbathy(ji,jj), mbathy(ji+1,jj ) ) - 1 150 150 ikv = MIN( mbathy(ji,jj), mbathy(ji ,jj+1) ) - 1 151 zdit(ji,jj,iku) = pg tu(ji,jj,jn)152 zdjt(ji,jj,ikv) = pg tv(ji,jj,jn)151 zdit(ji,jj,iku) = pgu(ji,jj,jn) 152 zdjt(ji,jj,ikv) = pgv(ji,jj,jn) 153 153 END DO 154 154 END DO … … 167 167 ! surface boundary condition: zdkt(jk=1)=zdkt(jk=2) 168 168 169 zdk1t(:,:) = ( pt rab(:,:,jk,jn) - ptrab(:,:,jk+1,jn) ) * tmask(:,:,jk+1)169 zdk1t(:,:) = ( ptb(:,:,jk,jn) - ptb(:,:,jk+1,jn) ) * tmask(:,:,jk+1) 170 170 171 171 IF( jk == 1 ) THEN 172 172 zdkt(:,:) = zdk1t(:,:) 173 173 ELSE 174 zdkt(:,:) = ( pt rab(:,:,jk-1,jn) - ptrab(:,:,jk,jn) ) * tmask(:,:,jk)174 zdkt(:,:) = ( ptb(:,:,jk-1,jn) - ptb(:,:,jk,jn) ) * tmask(:,:,jk) 175 175 ENDIF 176 176 … … 209 209 zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 210 210 ztra = zbtr * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk) ) 211 pt raa(ji,jj,jk,jn) = ptraa(ji,jj,jk,jn) + ztra211 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 212 212 END DO 213 213 END DO … … 229 229 DO ji = fs_2, fs_jpim1 ! vector opt. 230 230 z2d(ji,jj) = z2d(ji,jj) + zztmp * zftu(ji,jj,jk) & 231 & * ( pt ran(ji,jj,jk,jn) + ptran(ji+1,jj,jk,jn) ) * e1u(ji,jj) * fse3u(ji,jj,jk)231 & * ( ptn(ji,jj,jk,jn) + ptn(ji+1,jj,jk,jn) ) * e1u(ji,jj) * fse3u(ji,jj,jk) 232 232 END DO 233 233 END DO … … 240 240 DO ji = fs_2, fs_jpim1 ! vector opt. 241 241 z2d(ji,jj) = z2d(ji,jj) + zztmp * zftv(ji,jj,jk) & 242 & * ( pt ran(ji,jj,jk,jn) + ptran(ji,jj+1,jk,jn) ) * e2v(ji,jj) * fse3v(ji,jj,jk)242 & * ( ptn(ji,jj,jk,jn) + ptn(ji,jj+1,jk,jn) ) * e2v(ji,jj) * fse3v(ji,jj,jk) 243 243 END DO 244 244 END DO … … 295 295 zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 296 296 ztra = ( ztfw(ji,jj,jk) - ztfw(ji,jj,jk+1) ) * zbtr 297 pt raa(ji,jj,jk,jn) = ptraa(ji,jj,jk,jn) + ztra297 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 298 298 END DO 299 299 END DO
Note: See TracChangeset
for help on using the changeset viewer.