- 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/LIM_SRC_2/limadv_2.F90
r3625 r7037 85 85 zrdt = rdt_ice * pdf ! If ice drift field is too fast, use an appropriate time step for advection. 86 86 87 !$OMP PARALLEL 88 !$OMP DO schedule(static) private(jj,ji,zslpmax,zs1max,zs1new,zs2new,zin0) 87 89 DO jj = 1, jpj 88 90 DO ji = 1, jpi … … 102 104 END DO 103 105 END DO 106 !$OMP END DO NOWAIT 104 107 105 108 ! Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 106 psm (:,:) = MAX( pcrh * area(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 ) 109 !$OMP DO schedule(static) private(jj,ji) 110 DO jj = 1, jpj 111 DO ji = 1, jpi 112 psm (ji,jj) = MAX( pcrh * area(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj) , epsi20 ) 113 END DO 114 END DO 107 115 108 116 ! Calculate fluxes and moments between boxes i<-->i+1 117 !$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 109 118 DO jj = 1, jpj ! Flux from i to i+1 WHEN u GT 0 110 119 DO ji = 1, jpi … … 133 142 END DO 134 143 END DO 135 144 !$OMP END DO 145 146 !$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 136 147 DO jj = 1, jpjm1 ! Flux from i+1 to i when u LT 0. 137 148 DO ji = 1, fs_jpim1 … … 153 164 END DO 154 165 166 !$OMP DO schedule(static) private(jj,ji,zbt,zbt1) 155 167 DO jj = 2, jpjm1 ! Readjust moments remaining in the box. 156 168 DO ji = fs_2, fs_jpim1 … … 168 180 169 181 ! Put the temporary moments into appropriate neighboring boxes. 182 !$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 170 183 DO jj = 2, jpjm1 ! Flux from i to i+1 IF u GT 0. 171 184 DO ji = fs_2, fs_jpim1 … … 190 203 END DO 191 204 205 !$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 192 206 DO jj = 2, jpjm1 ! Flux from i+1 to i IF u LT 0. 193 207 DO ji = fs_2, fs_jpim1 … … 210 224 END DO 211 225 END DO 226 !$OMP END DO NOWAIT 227 !$OMP END PARALLEL 212 228 213 229 !-- Lateral boundary conditions … … 268 284 zrdt = rdt_ice * pdf ! If ice drift field is too fast, use an appropriate time step for advection. 269 285 286 !$OMP PARALLEL 287 !$OMP DO schedule(static) private(jj,ji,zslpmax,zs1max,zs1new,zs2new,zin0) 270 288 DO jj = 1, jpj 271 289 DO ji = 1, jpi … … 285 303 END DO 286 304 END DO 305 !$OMP END DO NOWAIT 287 306 288 307 ! Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 289 psm(:,:) = MAX( pcrh * area(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 ) 308 !$OMP DO schedule(static) private(jj,ji,zslpmax,zs1max,zs1new,zs2new,zin0) 309 DO jj = 1, jpj 310 DO ji = 1, jpi 311 psm(ji,jj) = MAX( pcrh * area(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj) , epsi20 ) 312 END DO 313 END DO 290 314 291 315 ! Calculate fluxes and moments between boxes j<-->j+1 316 !$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 292 317 DO jj = 1, jpj ! Flux from j to j+1 WHEN v GT 0 293 318 DO ji = 1, jpi … … 316 341 END DO 317 342 ! 343 !$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 318 344 DO jj = 1, jpjm1 ! Flux from j+1 to j when v LT 0. 319 345 DO ji = 1, jpi … … 336 362 337 363 ! Readjust moments remaining in the box. 364 !$OMP DO schedule(static) private(jj,ji,zbt,zbt1) 338 365 DO jj = 2, jpj 339 366 DO ji = 1, jpi … … 352 379 353 380 ! Put the temporary moments into appropriate neighboring boxes. 381 !$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 354 382 DO jj = 2, jpjm1 ! Flux from j to j+1 IF v GT 0. 355 383 DO ji = 1, jpi … … 375 403 END DO 376 404 ! 405 !$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 377 406 DO jj = 2, jpjm1 ! Flux from j+1 to j IF v LT 0. 378 407 DO ji = 1, jpi … … 396 425 END DO 397 426 END DO 427 !$OMP END DO NOWAIT 428 !$OMP END PARALLEL 398 429 399 430 !-- Lateral boundary conditions
Note: See TracChangeset
for help on using the changeset viewer.