Changeset 7698 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
- Timestamp:
- 2017-02-18T10:02:03+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90
r7646 r7698 164 164 !------------------------------------------------------------------------------! 165 165 ! ocean/land mask 166 !$OMP PARALLEL DO schedule(static) private(jj, ji) 166 167 DO jj = 1, jpjm1 167 168 DO ji = 1, jpim1 ! NO vector opt. … … 172 173 173 174 ! Lateral boundary conditions on velocity (modify zfmask) 174 zwf(:,:) = zfmask(:,:) 175 !$OMP PARALLEL 176 !$OMP DO schedule(static) private(jj, ji) 177 DO jj = 1, jpj 178 DO ji = 1, jpi 179 zwf(ji,jj) = zfmask(ji,jj) 180 END DO 181 END DO 182 !$OMP DO schedule(static) private(jj, ji) 175 183 DO jj = 2, jpjm1 176 184 DO ji = fs_2, fs_jpim1 ! vector opt. … … 180 188 END DO 181 189 END DO 190 !$OMP DO schedule(static) private(jj) 182 191 DO jj = 2, jpjm1 183 192 IF( zfmask(1,jj) == 0._wp ) THEN … … 188 197 ENDIF 189 198 END DO 199 !$OMP DO schedule(static) private(ji) 190 200 DO ji = 2, jpim1 191 201 IF( zfmask(ji,1) == 0._wp ) THEN … … 196 206 ENDIF 197 207 END DO 208 !$OMP END PARALLEL 198 209 CALL lbc_lnk( zfmask, 'F', 1._wp ) 199 210 … … 225 236 226 237 ! Initialise stress tensor 227 zs1 (:,:) = stress1_i (:,:) 228 zs2 (:,:) = stress2_i (:,:) 229 zs12(:,:) = stress12_i(:,:) 238 !$OMP PARALLEL DO schedule(static) private(jj, ji) 239 DO jj = 1, jpj 240 DO ji = 1, jpi 241 zs1 (ji,jj) = stress1_i (ji,jj) 242 zs2 (ji,jj) = stress2_i (ji,jj) 243 zs12(ji,jj) = stress12_i(ji,jj) 244 END DO 245 END DO 230 246 231 247 ! Ice strength … … 233 249 234 250 ! scale factors 251 !$OMP PARALLEL DO schedule(static) private(jj, ji) 235 252 DO jj = 2, jpjm1 236 253 DO ji = fs_2, fs_jpim1 … … 255 272 zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 256 273 ! 257 zpice(:,:) = ssh_m(:,:) + ( zintn * snwice_mass(:,:) + zintb * snwice_mass_b(:,:) ) * r1_rau0 274 !$OMP PARALLEL DO schedule(static) private(jj, ji) 275 DO jj = 1, jpj 276 DO ji = 1, jpi 277 zpice(ji,jj) = ssh_m(ji,jj) + ( zintn * snwice_mass(ji,jj) + zintb * snwice_mass_b(ji,jj) ) * r1_rau0 278 END DO 279 END DO 258 280 ! 259 281 ELSE !== non-embedded sea ice: use ocean surface for slope calculation ==! 260 zpice(:,:) = ssh_m(:,:) 282 !$OMP PARALLEL DO schedule(static) private(jj, ji) 283 DO jj = 1, jpj 284 DO ji = 1, jpi 285 zpice(ji,jj) = ssh_m(ji,jj) 286 END DO 287 END DO 261 288 ENDIF 262 289 290 !$OMP PARALLEL DO schedule(static) private(jj,ji,zm1,zm2,zm3,zmassU,zmassV) 263 291 DO jj = 2, jpjm1 264 292 DO ji = fs_2, fs_jpim1 … … 317 345 ! !----------------------! 318 346 IF(ln_ctl) THEN ! Convergence test 347 !$OMP PARALLEL DO schedule(static) private(jj, ji) 319 348 DO jj = 1, jpjm1 320 zu_ice(:,jj) = u_ice(:,jj) ! velocity at previous time step 321 zv_ice(:,jj) = v_ice(:,jj) 349 DO ji = 1, jpi 350 zu_ice(ji,jj) = u_ice(ji,jj) ! velocity at previous time step 351 zv_ice(ji,jj) = v_ice(ji,jj) 352 END DO 322 353 END DO 323 354 ENDIF 324 355 325 356 ! --- divergence, tension & shear (Appendix B of Hunke & Dukowicz, 2002) --- ! 357 !$OMP PARALLEL DO schedule(static) private(jj, ji) 326 358 DO jj = 1, jpjm1 ! loops start at 1 since there is no boundary condition (lbc_lnk) at i=1 and j=1 for F points 327 359 DO ji = 1, jpim1 … … 336 368 CALL lbc_lnk( zds, 'F', 1. ) 337 369 370 !$OMP PARALLEL DO schedule(static) private(jj,ji,zds2,zdiv,zdiv2,zdt,zdt2,zdelta) 338 371 DO jj = 2, jpjm1 339 372 DO ji = 2, jpim1 ! no vector loop … … 370 403 CALL lbc_lnk( zp_delt, 'T', 1. ) 371 404 405 !$OMP PARALLEL DO schedule(static) private(jj,ji,zp_delf) 372 406 DO jj = 1, jpjm1 373 407 DO ji = 1, jpim1 … … 385 419 386 420 ! --- Ice internal stresses (Appendix C of Hunke and Dukowicz, 2002) --- ! 421 !$OMP PARALLEL DO schedule(static) private(jj,ji) 387 422 DO jj = 2, jpjm1 388 423 DO ji = fs_2, fs_jpim1 … … 420 455 IF( MOD(jter,2) .EQ. 0 ) THEN ! even iterations 421 456 457 !$OMP PARALLEL DO schedule(static) private(jj,ji,zTauO,zvel,zTauB,zCor,zTauE,rswitch) 422 458 DO jj = 2, jpjm1 423 459 DO ji = fs_2, fs_jpim1 … … 464 500 IF( ln_bdy ) CALL bdy_ice_lim_dyn( 'V' ) 465 501 502 !$OMP PARALLEL DO schedule(static) private(jj,ji,zTauO,zvel,zTauB,zCor,zTauE,rswitch) 466 503 DO jj = 2, jpjm1 467 504 DO ji = fs_2, fs_jpim1 … … 509 546 ELSE ! odd iterations 510 547 548 !$OMP PARALLEL DO schedule(static) private(jj,ji,zTauO,zvel,zTauB,zCor,zTauE,rswitch) 511 549 DO jj = 2, jpjm1 512 550 DO ji = fs_2, fs_jpim1 … … 552 590 IF( ln_bdy ) CALL bdy_ice_lim_dyn( 'U' ) 553 591 592 !$OMP PARALLEL DO schedule(static) private(jj,ji,zTauO,zvel,zTauB,zCor,zTauE,rswitch) 554 593 DO jj = 2, jpjm1 555 594 DO ji = fs_2, fs_jpim1 … … 598 637 599 638 IF(ln_ctl) THEN ! Convergence test 639 !$OMP PARALLEL DO schedule(static) private(jj, ji) 600 640 DO jj = 2 , jpjm1 601 zresr(:,jj) = MAX( ABS( u_ice(:,jj) - zu_ice(:,jj) ), ABS( v_ice(:,jj) - zv_ice(:,jj) ) ) 641 DO ji = 1, jpi 642 zresr(ji,jj) = MAX( ABS( u_ice(ji,jj) - zu_ice(ji,jj) ), ABS( v_ice(ji,jj) - zv_ice(ji,jj) ) ) 643 END DO 602 644 END DO 603 645 zresm = MAXVAL( zresr( 1:jpi, 2:jpjm1 ) ) … … 612 654 ! 4) Recompute delta, shear and div (inputs for mechanical redistribution) 613 655 !------------------------------------------------------------------------------! 656 !$OMP PARALLEL DO schedule(static) private(jj, ji) 614 657 DO jj = 1, jpjm1 615 658 DO ji = 1, jpim1 … … 624 667 CALL lbc_lnk( zds, 'F', 1. ) 625 668 669 !$OMP PARALLEL DO schedule(static) private(jj,ji,zdt,zdt2,zds2,zdelta,rswitch) 626 670 DO jj = 2, jpjm1 627 671 DO ji = 2, jpim1 ! no vector loop … … 656 700 657 701 ! --- Store the stress tensor for the next time step --- ! 658 stress1_i (:,:) = zs1 (:,:) 659 stress2_i (:,:) = zs2 (:,:) 660 stress12_i(:,:) = zs12(:,:) 702 !$OMP PARALLEL DO schedule(static) private(jj, ji) 703 DO jj = 1, jpj 704 DO ji = 1, jpi 705 stress1_i (ji,jj) = zs1 (ji,jj) 706 stress2_i (ji,jj) = zs2 (ji,jj) 707 stress12_i(ji,jj) = zs12(ji,jj) 708 END DO 709 END DO 661 710 ! 662 711
Note: See TracChangeset
for help on using the changeset viewer.