- 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/LDF/ldfslp.F90
r6498 r9176 105 105 INTEGER :: ii0, ii1, iku ! temporary integer 106 106 INTEGER :: ij0, ij1, ikv ! temporary integer 107 REAL(wp) :: zeps, zm1_g, zm1_2g, z1_16, zcofw ! local scalars107 REAL(wp) :: zeps, zm1_g, zm1_2g, z1_16, zcofw, zcofwa ! local scalars 108 108 REAL(wp) :: zci, zfi, zau, zbu, zai, zbi ! - - 109 109 REAL(wp) :: zcj, zfj, zav, zbv, zaj, zbj ! - - … … 131 131 zwz(:,:,:) = 0._wp 132 132 ! 133 !$OMP PARALLEL DO 133 134 DO jk = 1, jpk !== i- & j-gradient of density ==! 134 135 DO jj = 1, jpjm1 … … 139 140 END DO 140 141 END DO 142 141 143 IF( ln_zps ) THEN ! partial steps correction at the bottom ocean level 144 !$OMP PARALLEL DO 142 145 DO jj = 1, jpjm1 143 146 DO ji = 1, jpim1 … … 148 151 ENDIF 149 152 IF( ln_zps .AND. ln_isfcav ) THEN ! partial steps correction at the bottom ocean level 153 !$OMP PARALLEL DO 150 154 DO jj = 1, jpjm1 151 155 DO ji = 1, jpim1 … … 158 162 !== Local vertical density gradient at T-point == ! (evaluated from N^2) 159 163 ! interior value 164 !$OMP PARALLEL DO 160 165 DO jk = 2, jpkm1 161 166 ! ! zdzr = d/dz(prd)= - ( prd ) / grav * mk(pn2) -- at t point … … 171 176 IF ( ln_isfcav ) THEN 172 177 ! if isf need to overwrite the interior value at at the first ocean point 178 !$OMP PARALLEL DO 173 179 DO jj = 1, jpjm1 174 180 DO ji = 1, jpim1 … … 186 192 ! 187 193 IF ( ln_isfcav ) THEN 194 !$OMP PARALLEL DO 188 195 DO jj = 2, jpjm1 189 196 DO ji = fs_2, fs_jpim1 ! vector opt. … … 195 202 ENDDO 196 203 ELSE 204 !$OMP PARALLEL DO 197 205 DO jj = 2, jpjm1 198 206 DO ji = fs_2, fs_jpim1 ! vector opt. … … 202 210 ENDDO 203 211 END IF 212 !$OMP PARALLEL DO PRIVATE(zau, zav, zbu, zbv, zbu, zbv, zfi, zfj, zdepu, zdepv) 204 213 DO jk = 2, jpkm1 !* Slopes at u and v points 205 214 DO jj = 2, jpjm1 … … 243 252 END DO 244 253 END DO 254 !$OMP END PARALLEL DO 245 255 CALL lbc_lnk( zwz, 'U', -1. ) ; CALL lbc_lnk( zww, 'V', -1. ) ! lateral boundary conditions 246 256 ! 247 257 ! !* horizontal Shapiro filter 258 !$OMP PARALLEL DO 248 259 DO jk = 2, jpkm1 249 260 DO jj = 2, jpjm1, MAX(1, jpj-3) ! rows jj=2 and =jpjm1 only … … 287 298 END DO 288 299 END DO 289 300 !$OMP END PARALLEL DO 290 301 291 302 ! II. slopes at w point | wslpi = mij( d/di( prd ) / d/dz( prd ) 292 303 ! =========================== | wslpj = mij( d/dj( prd ) / d/dz( prd ) 293 304 ! 305 !$OMP PARALLEL DO PRIVATE(zbw, zci, zcj, zai, zaj, zbi, zbj, zfk, zck) 294 306 DO jk = 2, jpkm1 295 307 DO jj = 2, jpjm1 … … 329 341 END DO 330 342 END DO 343 !$OMP END PARALLEL DO 331 344 CALL lbc_lnk( zwz, 'T', -1. ) ; CALL lbc_lnk( zww, 'T', -1. ) ! lateral boundary conditions 332 345 ! 333 346 ! !* horizontal Shapiro filter 347 !$OMP PARALLEL DO PRIVATE(zcofwa, zcofw, zck) 334 348 DO jk = 2, jpkm1 335 349 DO jj = 2, jpjm1, MAX(1, jpj-3) ! rows jj=2 and =jpjm1 only 336 350 DO ji = 2, jpim1 337 zcofw = tmask(ji,jj,jk) * z1_16351 zcofwa = tmask(ji,jj,jk) * z1_16 338 352 wslpi(ji,jj,jk) = ( zwz(ji-1,jj-1,jk) + zwz(ji+1,jj-1,jk) & 339 353 & + zwz(ji-1,jj+1,jk) + zwz(ji+1,jj+1,jk) & 340 354 & + 2.*( zwz(ji ,jj-1,jk) + zwz(ji-1,jj ,jk) & 341 355 & + zwz(ji+1,jj ,jk) + zwz(ji ,jj+1,jk) ) & 342 & + 4.* zwz(ji ,jj ,jk) ) * zcofw 356 & + 4.* zwz(ji ,jj ,jk) ) * zcofwa 343 357 344 358 wslpj(ji,jj,jk) = ( zww(ji-1,jj-1,jk) + zww(ji+1,jj-1,jk) & … … 346 360 & + 2.*( zww(ji ,jj-1,jk) + zww(ji-1,jj ,jk) & 347 361 & + zww(ji+1,jj ,jk) + zww(ji ,jj+1,jk) ) & 348 & + 4.* zww(ji ,jj ,jk) ) * zcofw 362 & + 4.* zww(ji ,jj ,jk) ) * zcofwa 349 363 END DO 350 364 END DO … … 422 436 ! set the slope of diffusion to the slope of s-surfaces 423 437 ! ( c a u t i o n : minus sign as fsdep has positive value ) 438 !$OMP PARALLEL DO 424 439 DO jj = 2, jpjm1 425 440 DO ji = fs_2, fs_jpim1 ! vector opt. … … 430 445 END DO 431 446 END DO 432 447 !$OMP PARALLEL DO 433 448 DO jk = 2, jpk 434 449 DO jj = 2, jpjm1 … … 746 761 ! 747 762 ! !== surface mixed layer mask ! 763 !$OMP PARALLEL DO PRIVATE(ik) 748 764 DO jk = 1, jpk ! =1 inside the mixed layer, =0 otherwise 749 765 DO jj = 1, jpj … … 770 786 !----------------------------------------------------------------------- 771 787 ! 788 !$OMP PARALLEL DO PRIVATE(iku, ikv, zbu, zbv, zau, zav, ik, ikm1, zbw, & 789 !$OMP& zci, zcj, zai, zaj, zbi, zbj) 772 790 DO jj = 2, jpjm1 773 791 DO ji = 2, jpim1 … … 872 890 ! set the slope of diffusion to the slope of s-surfaces 873 891 ! ( c a u t i o n : minus sign as fsdep has positive value ) 892 !$OMP PARALLEL DO 874 893 DO jk = 1, jpk 875 894 DO jj = 2, jpjm1
Note: See TracChangeset
for help on using the changeset viewer.