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