Changeset 7753 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
- Timestamp:
- 2017-03-03T12:46:59+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r7698 r7753 125 125 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 126 126 ! 127 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 128 DO jk = 1, jpk 129 DO jj = 1, jpj 130 DO ji = 1, jpi 131 akz (ji,jj,jk) = 0._wp 132 ah_wslp2(ji,jj,jk) = 0._wp 133 END DO 134 END DO 135 END DO 127 akz (:,:,:) = 0._wp 128 ah_wslp2(:,:,:) = 0._wp 136 129 ENDIF 137 130 ! … … 158 151 IF( kpass == 1 ) THEN !== first pass only ==! 159 152 ! 160 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zmsku, zmskv, zahu_w, zahv_w)161 153 DO jk = 2, jpkm1 162 154 DO jj = 2, jpjm1 … … 180 172 ! 181 173 IF( ln_traldf_msc ) THEN ! stabilizing vertical diffusivity coefficient 182 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji)183 174 DO jk = 2, jpkm1 184 175 DO jj = 2, jpjm1 … … 194 185 ! 195 186 IF( ln_traldf_blp ) THEN ! bilaplacian operator 196 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji)197 187 DO jk = 2, jpkm1 198 188 DO jj = 1, jpjm1 … … 204 194 END DO 205 195 ELSEIF( ln_traldf_lap ) THEN ! laplacian operator 206 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, ze3w_2, zcoef0)207 196 DO jk = 2, jpkm1 208 197 DO jj = 1, jpjm1 … … 217 206 ! 218 207 ELSE ! 33 flux set to zero with akz=ah_wslp2 ==>> computed in full implicit 219 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 220 DO jk = 1, jpk 221 DO jj = 1, jpj 222 DO ji = 1, jpi 223 akz(ji,jj,jk) = ah_wslp2(ji,jj,jk) 224 END DO 225 END DO 226 END DO 208 akz(:,:,:) = ah_wslp2(:,:,:) 227 209 ENDIF 228 210 ENDIF … … 236 218 !!---------------------------------------------------------------------- 237 219 !!gm : bug.... why (x,:,:)? (1,jpj,:) and (jpi,1,:) should be sufficient.... 238 !$OMP PARALLEL 239 !$OMP DO schedule(static) private(jk, jj) 240 DO jk = 1, jpk 241 DO jj = 1, jpj 242 zdit (1,jj,jk) = 0._wp ; zdit (jpi,jj,jk) = 0._wp 243 zdjt (1,jj,jk) = 0._wp ; zdjt (jpi,jj,jk) = 0._wp 244 END DO 245 END DO 220 zdit (1,:,:) = 0._wp ; zdit (jpi,:,:) = 0._wp 221 zdjt (1,:,:) = 0._wp ; zdjt (jpi,:,:) = 0._wp 246 222 !!end 247 223 248 224 ! Horizontal tracer gradient 249 !$OMP DO schedule(static) private(jk, jj, ji)250 225 DO jk = 1, jpkm1 251 226 DO jj = 1, jpjm1 … … 256 231 END DO 257 232 END DO 258 !$OMP END PARALLEL259 233 IF( ln_zps ) THEN ! botton and surface ocean correction of the horizontal gradient 260 !$OMP PARALLEL DO schedule(static) private(jj, ji)261 234 DO jj = 1, jpjm1 ! bottom correction (partial bottom cell) 262 235 DO ji = 1, fs_jpim1 ! vector opt. … … 266 239 END DO 267 240 IF( ln_isfcav ) THEN ! first wet level beneath a cavity 268 !$OMP PARALLEL DO schedule(static) private(jj, ji)269 241 DO jj = 1, jpjm1 270 242 DO ji = 1, fs_jpim1 ! vector opt. … … 280 252 !!---------------------------------------------------------------------- 281 253 ! 282 !$OMP PARALLEL283 254 DO jk = 1, jpkm1 ! Horizontal slab 284 255 ! 285 256 ! !== Vertical tracer gradient 286 !$OMP DO schedule(static) private(jj, ji) 287 DO jj = 1 , jpj 288 DO ji = 1, jpi 289 zdk1t(ji,jj) = ( ptb(ji,jj,jk,jn) - ptb(ji,jj,jk+1,jn) ) * wmask(ji,jj,jk+1) ! level jk+1 290 END DO 291 END DO 292 ! 293 IF( jk == 1 ) THEN 294 !$OMP DO schedule(static) private(jj, ji) 295 DO jj = 1 , jpj 296 DO ji = 1, jpi 297 zdkt(ji,jj) = zdk1t(ji,jj) ! surface: zdkt(jk=1)=zdkt(jk=2) 298 END DO 299 END DO 300 ELSE 301 !$OMP DO schedule(static) private(jj, ji) 302 DO jj = 1 , jpj 303 DO ji = 1, jpi 304 zdkt(ji,jj) = ( ptb(ji,jj,jk-1,jn) - ptb(ji,jj,jk,jn) ) * wmask(ji,jj,jk) 305 END DO 306 END DO 257 zdk1t(:,:) = ( ptb(:,:,jk,jn) - ptb(:,:,jk+1,jn) ) * wmask(:,:,jk+1) ! level jk+1 258 ! 259 IF( jk == 1 ) THEN ; zdkt(:,:) = zdk1t(:,:) ! surface: zdkt(jk=1)=zdkt(jk=2) 260 ELSE ; zdkt(:,:) = ( ptb(:,:,jk-1,jn) - ptb(:,:,jk,jn) ) * wmask(:,:,jk) 307 261 ENDIF 308 !$OMP DO schedule(static) private(jj, ji, zmsku, zmskv, zabe1, zabe2, zcof1, zcof2)309 262 DO jj = 1 , jpjm1 !== Horizontal fluxes 310 263 DO ji = 1, fs_jpim1 ! vector opt. … … 330 283 END DO 331 284 ! 332 !$OMP DO schedule(static) private(jj, ji)333 285 DO jj = 2 , jpjm1 !== horizontal divergence and add to pta 334 286 DO ji = fs_2, fs_jpim1 ! vector opt. … … 344 296 !!---------------------------------------------------------------------- 345 297 ! 346 !$OMP DO schedule(static) private(jk, jj) 347 DO jk = 1, jpk 348 DO jj = 1, jpj 349 ztfw(1,jj,jk) = 0._wp ; ztfw(jpi,jj,jk) = 0._wp 350 END DO 351 END DO 298 ztfw(1,:,:) = 0._wp ; ztfw(jpi,:,:) = 0._wp 352 299 ! 353 300 ! Vertical fluxes 354 301 ! --------------- 355 302 ! ! Surface and bottom vertical fluxes set to zero 356 !$OMP DO schedule(static) private(jj, ji) 357 DO jj = 1, jpj 358 DO ji = 1, jpi 359 ztfw(ji,jj, 1 ) = 0._wp ; ztfw(ji,jj,jpk) = 0._wp 360 END DO 361 END DO 303 ztfw(:,:, 1 ) = 0._wp ; ztfw(:,:,jpk) = 0._wp 362 304 363 !$OMP DO schedule(static) private(jk, jj, ji, zmsku, zmskv, zahu_w, zahv_w, zcoef3, zcoef4)364 305 DO jk = 2, jpkm1 ! interior (2=<jk=<jpk-1) 365 306 DO jj = 2, jpjm1 … … 386 327 END DO 387 328 END DO 388 !$OMP END PARALLEL389 329 ! !== add the vertical 33 flux ==! 390 330 IF( ln_traldf_lap ) THEN ! laplacian case: eddy coef = ah_wslp2 - akz 391 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji)392 331 DO jk = 2, jpkm1 393 332 DO jj = 1, jpjm1 … … 403 342 SELECT CASE( kpass ) 404 343 CASE( 1 ) ! 1st pass : eddy coef = ah_wslp2 405 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji)406 344 DO jk = 2, jpkm1 407 345 DO jj = 1, jpjm1 … … 414 352 END DO 415 353 CASE( 2 ) ! 2nd pass : eddy flux = ah_wslp2 and akz applied on ptb and ptbb gradients, resp. 416 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji)417 354 DO jk = 2, jpkm1 418 355 DO jj = 1, jpjm1 … … 427 364 ENDIF 428 365 ! 429 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji)430 366 DO jk = 1, jpkm1 !== Divergence of vertical fluxes added to pta ==! 431 367 DO jj = 2, jpjm1
Note: See TracChangeset
for help on using the changeset viewer.