Changeset 7753 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
- Timestamp:
- 2017-03-03T12:46:59+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
r7698 r7753 92 92 ! 93 93 IF( ln_dynadv_vec .OR. ln_linssh ) THEN ! applied on velocity 94 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji)95 94 DO jk = 1, jpkm1 96 DO jj = 1, jpj 97 DO ji = 1, jpi 98 ua(ji,jj,jk) = ( ub(ji,jj,jk) + p2dt * ua(ji,jj,jk) ) * umask(ji,jj,jk) 99 va(ji,jj,jk) = ( vb(ji,jj,jk) + p2dt * va(ji,jj,jk) ) * vmask(ji,jj,jk) 100 END DO 101 END DO 95 ua(:,:,jk) = ( ub(:,:,jk) + p2dt * ua(:,:,jk) ) * umask(:,:,jk) 96 va(:,:,jk) = ( vb(:,:,jk) + p2dt * va(:,:,jk) ) * vmask(:,:,jk) 102 97 END DO 103 98 ELSE ! applied on thickness weighted velocity 104 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji)105 99 DO jk = 1, jpkm1 106 DO jj = 1, jpj 107 DO ji = 1, jpi 108 ua(ji,jj,jk) = ( e3u_b(ji,jj,jk) * ub(ji,jj,jk) & 109 & + p2dt * e3u_n(ji,jj,jk) * ua(ji,jj,jk) ) / e3u_a(ji,jj,jk) * umask(ji,jj,jk) 110 va(ji,jj,jk) = ( e3v_b(ji,jj,jk) * vb(ji,jj,jk) & 111 & + p2dt * e3v_n(ji,jj,jk) * va(ji,jj,jk) ) / e3v_a(ji,jj,jk) * vmask(ji,jj,jk) 112 END DO 113 END DO 100 ua(:,:,jk) = ( e3u_b(:,:,jk) * ub(:,:,jk) & 101 & + p2dt * e3u_n(:,:,jk) * ua(:,:,jk) ) / e3u_a(:,:,jk) * umask(:,:,jk) 102 va(:,:,jk) = ( e3v_b(:,:,jk) * vb(:,:,jk) & 103 & + p2dt * e3v_n(:,:,jk) * va(:,:,jk) ) / e3v_a(:,:,jk) * vmask(:,:,jk) 114 104 END DO 115 105 ENDIF … … 122 112 ! 123 113 IF( ln_bfrimp ) THEN 124 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)125 114 DO jj = 2, jpjm1 126 115 DO ji = 2, jpim1 … … 132 121 END DO 133 122 IF ( ln_isfcav ) THEN 134 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)135 123 DO jj = 2, jpjm1 136 124 DO ji = 2, jpim1 … … 150 138 ! G. Madec : in linear free surface, e3u_a = e3u_n = e3u_0, so systematic use of e3u_a 151 139 IF( ln_bfrimp .AND. ln_dynspg_ts ) THEN 152 !$OMP PARALLEL153 !$OMP DO schedule(static) private(jk,jj,ji)154 140 DO jk = 1, jpkm1 ! remove barotropic velocities 155 DO jj = 1, jpj 156 DO ji = 1, jpi 157 ua(ji,jj,jk) = ( ua(ji,jj,jk) - ua_b(ji,jj) ) * umask(ji,jj,jk) 158 va(ji,jj,jk) = ( va(ji,jj,jk) - va_b(ji,jj) ) * vmask(ji,jj,jk) 159 END DO 160 END DO 161 END DO 162 !$OMP DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va) 141 ua(:,:,jk) = ( ua(:,:,jk) - ua_b(:,:) ) * umask(:,:,jk) 142 va(:,:,jk) = ( va(:,:,jk) - va_b(:,:) ) * vmask(:,:,jk) 143 END DO 163 144 DO jj = 2, jpjm1 ! Add bottom/top stress due to barotropic component only 164 145 DO ji = fs_2, fs_jpim1 ! vector opt. … … 171 152 END DO 172 153 END DO 173 !$OMP END DO NOWAIT174 !$OMP END PARALLEL175 154 IF( ln_isfcav ) THEN ! Ocean cavities (ISF) 176 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va)177 155 DO jj = 2, jpjm1 178 156 DO ji = fs_2, fs_jpim1 ! vector opt. … … 194 172 ! non zero value at the ocean bottom depending on the bottom friction used. 195 173 ! 196 !$OMP PARALLEL197 !$OMP DO schedule(static) private(jk, jj, ji, ze3ua, zzwi, zzws)198 174 DO jk = 1, jpkm1 ! Matrix 199 175 DO jj = 2, jpjm1 … … 208 184 END DO 209 185 END DO 210 !$OMP DO schedule(static) private(jj, ji)211 186 DO jj = 2, jpjm1 ! Surface boundary conditions 212 187 DO ji = fs_2, fs_jpim1 ! vector opt. … … 232 207 ! 233 208 DO jk = 2, jpkm1 !== First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 (increasing k) == 234 !$OMP DO schedule(static) private(jj, ji)235 209 DO jj = 2, jpjm1 236 210 DO ji = fs_2, fs_jpim1 ! vector opt. … … 238 212 END DO 239 213 END DO 240 !$OMP END DO NOWAIT 241 END DO 242 ! 243 !$OMP DO schedule(static) private(jj, ji, ze3ua) 214 END DO 215 ! 244 216 DO jj = 2, jpjm1 !== second recurrence: SOLk = RHSk - Lk / Dk-1 Lk-1 ==! 245 217 DO ji = fs_2, fs_jpim1 ! vector opt. … … 250 222 END DO 251 223 DO jk = 2, jpkm1 252 !$OMP DO schedule(static) private(jj, ji)253 224 DO jj = 2, jpjm1 254 225 DO ji = fs_2, fs_jpim1 … … 258 229 END DO 259 230 ! 260 !$OMP DO schedule(static) private(jj, ji)261 231 DO jj = 2, jpjm1 !== thrid recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk ==! 262 232 DO ji = fs_2, fs_jpim1 ! vector opt. … … 265 235 END DO 266 236 DO jk = jpk-2, 1, -1 267 !$OMP DO schedule(static) private(jj, ji)268 237 DO jj = 2, jpjm1 269 238 DO ji = fs_2, fs_jpim1 … … 279 248 ! non zero value at the ocean bottom depending on the bottom friction used 280 249 ! 281 !$OMP DO schedule(static) private(jk, jj, ji, ze3va, zzwi, zzws)282 250 DO jk = 1, jpkm1 ! Matrix 283 251 DO jj = 2, jpjm1 … … 292 260 END DO 293 261 END DO 294 !$OMP DO schedule(static) private(jj, ji)295 262 DO jj = 2, jpjm1 ! Surface boundary conditions 296 263 DO ji = fs_2, fs_jpim1 ! vector opt. … … 316 283 ! 317 284 DO jk = 2, jpkm1 !== First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1 (increasing k) == 318 !$OMP DO schedule(static) private(jj, ji)319 285 DO jj = 2, jpjm1 320 286 DO ji = fs_2, fs_jpim1 ! vector opt. … … 322 288 END DO 323 289 END DO 324 !$OMP END DO NOWAIT 325 END DO 326 ! 327 !$OMP DO schedule(static) private(jj, ji, ze3va) 290 END DO 291 ! 328 292 DO jj = 2, jpjm1 !== second recurrence: SOLk = RHSk - Lk / Dk-1 Lk-1 ==! 329 293 DO ji = fs_2, fs_jpim1 ! vector opt. … … 334 298 END DO 335 299 DO jk = 2, jpkm1 336 !$OMP DO schedule(static) private(jj, ji)337 300 DO jj = 2, jpjm1 338 301 DO ji = fs_2, fs_jpim1 ! vector opt. … … 342 305 END DO 343 306 ! 344 !$OMP DO schedule(static) private(jj, ji)345 307 DO jj = 2, jpjm1 !== third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk ==! 346 308 DO ji = fs_2, fs_jpim1 ! vector opt. … … 349 311 END DO 350 312 DO jk = jpk-2, 1, -1 351 !$OMP DO schedule(static) private(jj, ji)352 313 DO jj = 2, jpjm1 353 314 DO ji = fs_2, fs_jpim1 … … 355 316 END DO 356 317 END DO 357 !$OMP END DO NOWAIT 358 END DO 359 !$OMP END PARALLEL 318 END DO 360 319 361 320 ! J. Chanut: Lines below are useless ? … … 363 322 !!gm I almost sure it is !!!! 364 323 IF( ln_bfrimp ) THEN 365 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)366 324 DO jj = 2, jpjm1 367 325 DO ji = 2, jpim1 … … 373 331 END DO 374 332 IF (ln_isfcav) THEN 375 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv)376 333 DO jj = 2, jpjm1 377 334 DO ji = 2, jpim1
Note: See TracChangeset
for help on using the changeset viewer.