- Timestamp:
- 2018-01-04T13:30:03+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_OMP/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90
r6486 r9176 108 108 REAL(wp) :: zmskv, zabe2, zcof2, zcoef4 ! - - 109 109 REAL(wp) :: zcoef0, zbtr, ztra ! - - 110 REAL(wp), POINTER, DIMENSION(:,:) :: z2d110 REAL(wp), DIMENSION(jpi,jpj ) :: z2d 111 111 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdkt, zdk1t, zdit, zdjt, ztfw 112 112 !!---------------------------------------------------------------------- … … 114 114 IF( nn_timing == 1 ) CALL timing_start('tra_ldf_iso') 115 115 ! 116 116 ! CALL wrk_alloc( jpi, jpj, z2d ) 117 117 CALL wrk_alloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t ) 118 118 ! … … 137 137 138 138 ! Horizontal tracer gradient 139 !$OMP PARALLEL DO 139 140 DO jk = 1, jpkm1 140 141 DO jj = 1, jpjm1 … … 145 146 END DO 146 147 END DO 148 !$OMP END PARALLEL DO 147 149 148 150 ! partial cell correction 149 151 IF( ln_zps ) THEN ! partial steps correction at the last ocean level 152 !$OMP PARALLEL DO 150 153 DO jj = 1, jpjm1 151 154 DO ji = 1, fs_jpim1 ! vector opt. … … 157 160 ENDIF 158 161 IF( ln_zps .AND. ln_isfcav ) THEN ! partial steps correction at the first wet level beneath a cavity 162 !$OMP PARALLEL DO 159 163 DO jj = 1, jpjm1 160 164 DO ji = 1, fs_jpim1 ! vector opt. … … 173 177 ! 174 178 ! interior value 179 !$OMP PARALLEL DO 175 180 DO jk = 2, jpkm1 176 181 DO jj = 1, jpj … … 182 187 END DO 183 188 END DO 189 !$OMP END PARALLEL DO 184 190 ! surface boundary condition: zdkt(jk=1)=zdkt(jk=2) 185 191 zdk1t(:,:,1) = ( ptb(:,:,1,jn ) - ptb(:,:,2,jn) ) * wmask(:,:,2) 186 192 zdkt (:,:,1) = zdk1t(:,:,1) 187 193 IF ( ln_isfcav ) THEN 194 !$OMP PARALLEL DO PRIVATE(ikt) 188 195 DO jj = 1, jpj 189 196 DO ji = 1, jpi ! vector opt. … … 193 200 END DO 194 201 END DO 202 !$OMP END PARALLEL DO 195 203 END IF 196 204 197 205 ! 2. Horizontal fluxes 198 206 ! -------------------- 207 !$OMP PARALLEL DO PRIVATE(zabe1, zabe2, zmsku, zmskv, zcof1, zcof2, zbtr, ztra) 199 208 DO jk = 1, jpkm1 200 209 DO jj = 1 , jpjm1 … … 233 242 END DO ! End of slab 234 243 ! ! =============== 244 !$OMP END PARALLEL DO 235 245 ! 236 246 ! "Poleward" diffusive heat or salt transports (T-S case only) … … 245 255 IF( cdtype == 'TRA' .AND. jn == jp_tem ) THEN 246 256 z2d(:,:) = 0._wp 257 !$OMP PARALLEL DO REDUCTION(+:z2d) 247 258 DO jk = 1, jpkm1 248 259 DO jj = 2, jpjm1 … … 252 263 END DO 253 264 END DO 265 254 266 z2d(:,:) = - rau0_rcp * z2d(:,:) ! note sign is reversed to give down-gradient diffusive transports (#1043) 267 255 268 CALL lbc_lnk( z2d, 'U', -1. ) 256 269 CALL iom_put( "udiff_heattr", z2d ) ! heat transport in i-direction 257 270 ! 258 271 z2d(:,:) = 0._wp 272 !$OMP PARALLEL DO REDUCTION(+:z2d) 259 273 DO jk = 1, jpkm1 260 274 DO jj = 2, jpjm1 … … 264 278 END DO 265 279 END DO 280 266 281 z2d(:,:) = - rau0_rcp * z2d(:,:) ! note sign is reversed to give down-gradient diffusive transports (#1043) 267 282 CALL lbc_lnk( z2d, 'V', -1. ) … … 286 301 287 302 ! interior (2=<jk=<jpk-1) 303 !$OMP PARALLEL DO PRIVATE(zcoef0, zmsku, zmskv, zcoef3, zcoef4 ) 288 304 DO jk = 2, jpkm1 289 305 DO jj = 2, jpjm1 … … 306 322 END DO 307 323 END DO 308 324 !$OMP END PARALLEL DO 309 325 310 326 ! I.5 Divergence of vertical fluxes added to the general tracer trend 311 327 ! ------------------------------------------------------------------- 328 !$OMP PARALLEL DO PRIVATE(zbtr, ztra) 312 329 DO jk = 1, jpkm1 313 330 DO jj = 2, jpjm1 … … 319 336 END DO 320 337 END DO 338 !$OMP END PARALLEL DO 321 339 ! 322 340 END DO 323 341 ! 324 342 ! CALL wrk_dealloc( jpi, jpj, z2d ) 325 343 CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt, ztfw, zdkt, zdk1t ) 326 344 !
Note: See TracChangeset
for help on using the changeset viewer.