- Timestamp:
- 2016-10-18T15:32:04+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
r6748 r7037 92 92 ! 93 93 IF( ln_dynadv_vec .OR. ln_linssh ) THEN ! applied on velocity 94 !$OMP PARALLEL DO schedule(static) private(jk) 94 95 DO jk = 1, jpkm1 95 96 ua(:,:,jk) = ( ub(:,:,jk) + p2dt * ua(:,:,jk) ) * umask(:,:,jk) … … 97 98 END DO 98 99 ELSE ! applied on thickness weighted velocity 100 !$OMP PARALLEL DO schedule(static) private(jk) 99 101 DO jk = 1, jpkm1 100 102 ua(:,:,jk) = ( e3u_b(:,:,jk) * ub(:,:,jk) & … … 140 142 ! G. Madec : in linear free surface, e3u_a = e3u_n = e3u_0, so systematic use of e3u_a 141 143 IF( ln_bfrimp .AND. ln_dynspg_ts ) THEN 144 !$OMP PARALLEL 145 !$OMP DO schedule(static) private(jk) 142 146 DO jk = 1, jpkm1 ! remove barotropic velocities 143 147 ua(:,:,jk) = ( ua(:,:,jk) - ua_b(:,:) ) * umask(:,:,jk) 144 148 va(:,:,jk) = ( va(:,:,jk) - va_b(:,:) ) * vmask(:,:,jk) 145 149 END DO 150 !$OMP DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va) 146 151 DO jj = 2, jpjm1 ! Add bottom/top stress due to barotropic component only 147 152 DO ji = fs_2, fs_jpim1 ! vector opt. … … 154 159 END DO 155 160 END DO 161 !$OMP END DO NOWAIT 162 !$OMP END PARALLEL 156 163 IF( ln_isfcav ) THEN ! Ocean cavities (ISF) 164 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va) 157 165 DO jj = 2, jpjm1 158 166 DO ji = fs_2, fs_jpim1 ! vector opt. … … 174 182 ! non zero value at the ocean bottom depending on the bottom friction used. 175 183 ! 176 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, ze3ua, zzwi, zzws) 184 !$OMP PARALLEL 185 !$OMP DO schedule(static) private(jk, jj, ji, ze3ua, zzwi, zzws) 177 186 DO jk = 1, jpkm1 ! Matrix 178 187 DO jj = 2, jpjm1 … … 187 196 END DO 188 197 END DO 198 !$OMP DO schedule(static) private(jj, ji) 189 199 DO jj = 2, jpjm1 ! Surface boundary conditions 190 200 DO ji = fs_2, fs_jpim1 ! vector opt. … … 210 220 ! 211 221 DO jk = 2, jpkm1 !== First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 (increasing k) == 212 !$OMP PARALLELDO schedule(static) private(jj, ji)222 !$OMP DO schedule(static) private(jj, ji) 213 223 DO jj = 2, jpjm1 214 224 DO ji = fs_2, fs_jpim1 ! vector opt. … … 216 226 END DO 217 227 END DO 218 END DO 219 ! 220 !$OMP PARALLEL DO schedule(static) private(jj, ji, ze3ua) 228 !$OMP END DO NOWAIT 229 END DO 230 ! 231 !$OMP DO schedule(static) private(jj, ji, ze3ua) 221 232 DO jj = 2, jpjm1 !== second recurrence: SOLk = RHSk - Lk / Dk-1 Lk-1 ==! 222 233 DO ji = fs_2, fs_jpim1 ! vector opt. … … 227 238 END DO 228 239 DO jk = 2, jpkm1 229 !$OMP PARALLELDO schedule(static) private(jj, ji)240 !$OMP DO schedule(static) private(jj, ji) 230 241 DO jj = 2, jpjm1 231 242 DO ji = fs_2, fs_jpim1 … … 235 246 END DO 236 247 ! 237 !$OMP PARALLELDO schedule(static) private(jj, ji)248 !$OMP DO schedule(static) private(jj, ji) 238 249 DO jj = 2, jpjm1 !== thrid recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk ==! 239 250 DO ji = fs_2, fs_jpim1 ! vector opt. … … 242 253 END DO 243 254 DO jk = jpk-2, 1, -1 244 !$OMP PARALLELDO schedule(static) private(jj, ji)255 !$OMP DO schedule(static) private(jj, ji) 245 256 DO jj = 2, jpjm1 246 257 DO ji = fs_2, fs_jpim1 … … 256 267 ! non zero value at the ocean bottom depending on the bottom friction used 257 268 ! 258 !$OMP PARALLELDO schedule(static) private(jk, jj, ji, ze3va, zzwi, zzws)269 !$OMP DO schedule(static) private(jk, jj, ji, ze3va, zzwi, zzws) 259 270 DO jk = 1, jpkm1 ! Matrix 260 271 DO jj = 2, jpjm1 … … 269 280 END DO 270 281 END DO 271 !$OMP PARALLELDO schedule(static) private(jj, ji)282 !$OMP DO schedule(static) private(jj, ji) 272 283 DO jj = 2, jpjm1 ! Surface boundary conditions 273 284 DO ji = fs_2, fs_jpim1 ! vector opt. … … 293 304 ! 294 305 DO jk = 2, jpkm1 !== First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 (increasing k) == 295 !$OMP PARALLELDO schedule(static) private(jj, ji)306 !$OMP DO schedule(static) private(jj, ji) 296 307 DO jj = 2, jpjm1 297 308 DO ji = fs_2, fs_jpim1 ! vector opt. … … 299 310 END DO 300 311 END DO 301 END DO 302 ! 303 !$OMP PARALLEL DO schedule(static) private(jj, ji, ze3va) 312 !$OMP END DO NOWAIT 313 END DO 314 ! 315 !$OMP DO schedule(static) private(jj, ji, ze3va) 304 316 DO jj = 2, jpjm1 !== second recurrence: SOLk = RHSk - Lk / Dk-1 Lk-1 ==! 305 317 DO ji = fs_2, fs_jpim1 ! vector opt. … … 310 322 END DO 311 323 DO jk = 2, jpkm1 312 !$OMP PARALLELDO schedule(static) private(jj, ji)324 !$OMP DO schedule(static) private(jj, ji) 313 325 DO jj = 2, jpjm1 314 326 DO ji = fs_2, fs_jpim1 ! vector opt. … … 318 330 END DO 319 331 ! 320 !$OMP PARALLELDO schedule(static) private(jj, ji)332 !$OMP DO schedule(static) private(jj, ji) 321 333 DO jj = 2, jpjm1 !== third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk ==! 322 334 DO ji = fs_2, fs_jpim1 ! vector opt. … … 325 337 END DO 326 338 DO jk = jpk-2, 1, -1 327 !$OMP PARALLELDO schedule(static) private(jj, ji)339 !$OMP DO schedule(static) private(jj, ji) 328 340 DO jj = 2, jpjm1 329 341 DO ji = fs_2, fs_jpim1 … … 331 343 END DO 332 344 END DO 333 END DO 334 345 !$OMP END DO NOWAIT 346 END DO 347 !$OMP END PARALLEL 335 348 ! J. Chanut: Lines below are useless ? 336 349 !! restore bottom layer avmu(v)
Note: See TracChangeset
for help on using the changeset viewer.