Changeset 7037 for branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/LIM_SRC_3
- 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_3/limrhg.F90
r6416 r7037 180 180 ! 181 181 ! Put every vector to 0 182 183 #if defined key_lim3 184 CALL lim_itd_me_icestrength( nn_icestr ) ! LIM-3: Ice strength on T-points 185 #endif 186 187 !$OMP PARALLEL 188 !$OMP WORKSHARE 182 189 delta_i(:,:) = 0._wp ; 183 190 zpresh (:,:) = 0._wp ; … … 186 193 divu_i (:,:) = 0._wp ; zdt (:,:) = 0._wp ; zds(:,:) = 0._wp 187 194 shear_i(:,:) = 0._wp 188 189 #if defined key_lim3 190 CALL lim_itd_me_icestrength( nn_icestr ) ! LIM-3: Ice strength on T-points 191 #endif 192 195 !$OMP END WORKSHARE 196 197 !$OMP DO schedule(static) private(jj,ji) 193 198 DO jj = k_j1 , k_jpj ! Ice mass and temp variables 194 199 DO ji = 1 , jpi … … 206 211 ! Ice strength on grid cell corners (zpreshc) 207 212 ! needed for calculation of shear stress 213 !$OMP DO schedule(static) private(jj,ji,zstms) 208 214 DO jj = k_j1+1, k_jpj-1 209 215 DO ji = 2, jpim1 !RB caution no fs_ (ji+1,jj+1) … … 215 221 END DO 216 222 END DO 223 !$OMP END DO NOWAIT 224 !$OMP END PARALLEL 217 225 CALL lbc_lnk( zpreshc(:,:), 'F', 1. ) 218 226 ! … … 242 250 zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 243 251 ! 252 !$OMP PARALLEL WORKSHARE 244 253 zpice(:,:) = ssh_m(:,:) + ( zintn * snwice_mass(:,:) + zintb * snwice_mass_b(:,:) ) * r1_rau0 254 !$OMP END PARALLEL WORKSHARE 245 255 ! 246 256 ELSE !== non-embedded sea ice: use ocean surface for slope calculation ==! 257 !$OMP PARALLEL WORKSHARE 247 258 zpice(:,:) = ssh_m(:,:) 259 !$OMP END PARALLEL WORKSHARE 248 260 ENDIF 249 261 262 !$OMP PARALLEL DO schedule(static) private(jj,ji,zc1,zc2,zc3,zt11,zt12,zt21,zt22,ztagnx,ztagny,zdsshx,zdsshy) 250 263 DO jj = k_j1+1, k_jpj-1 251 264 DO ji = fs_2, fs_jpim1 … … 319 332 320 333 !-Initialise stress tensor 334 !$OMP PARALLEL WORKSHARE 321 335 zs1 (:,:) = stress1_i (:,:) 322 336 zs2 (:,:) = stress2_i (:,:) 323 337 zs12(:,:) = stress12_i(:,:) 338 !$OMP END PARALLEL WORKSHARE 324 339 325 340 ! !----------------------! 326 341 DO jter = 1 , nn_nevp ! loop over jter ! 327 342 ! !----------------------! 343 !$OMP PARALLEL 344 !$OMP DO schedule(static) private(jj,ji) 328 345 DO jj = k_j1, k_jpj-1 329 zu_ice(:,jj) = u_ice(:,jj) ! velocity at previous time step 330 zv_ice(:,jj) = v_ice(:,jj) 331 END DO 332 346 DO ji = 1, jpi 347 zu_ice(ji,jj) = u_ice(ji,jj) ! velocity at previous time step 348 zv_ice(ji,jj) = v_ice(ji,jj) 349 END DO 350 END DO 351 !$OMP END DO NOWAIT 352 353 !$OMP DO schedule(static) private(jj,ji) 333 354 DO jj = k_j1+1, k_jpj-1 334 355 DO ji = fs_2, fs_jpim1 !RB bug no vect opt due to zmask … … 377 398 END DO 378 399 END DO 400 !$OMP END DO NOWAIT 401 !$OMP END PARALLEL 379 402 380 403 CALL lbc_lnk_multi( v_ice1, 'U', -1., u_ice2, 'V', -1. ) ! lateral boundary cond. 381 404 405 !$OMP PARALLEL DO schedule(static) private(jj,ji,zdst,delta,zddc,zdtc) 382 406 DO jj = k_j1+1, k_jpj-1 383 407 DO ji = fs_2, fs_jpim1 … … 417 441 418 442 ! Ice internal stresses (Appendix C of Hunke and Dukowicz, 2002) 443 !$OMP PARALLEL DO schedule(static) private(jj,ji) 419 444 DO jj = k_j1+1, k_jpj-1 420 445 DO ji = fs_2, fs_jpim1 … … 438 463 IF (MOD(jter,2).eq.0) THEN 439 464 465 !$OMP PARALLEL DO schedule(static) private(jj,ji,rswitch,z0,zv_ice1,za,zr,zcca,zccb) 440 466 DO jj = k_j1+1, k_jpj-1 441 467 DO ji = fs_2, fs_jpim1 … … 464 490 #endif 465 491 492 !$OMP PARALLEL DO schedule(static) private(jj,ji,rswitch,z0,zu_ice2,za,zr,zcca,zccb) 466 493 DO jj = k_j1+1, k_jpj-1 467 494 DO ji = fs_2, fs_jpim1 … … 491 518 492 519 ELSE 520 !$OMP PARALLEL DO schedule(static) private(jj,ji,rswitch,z0,zu_ice2,za,zr,zcca,zccb) 493 521 DO jj = k_j1+1, k_jpj-1 494 522 DO ji = fs_2, fs_jpim1 … … 517 545 #endif 518 546 547 !$OMP PARALLEL DO schedule(static) private(jj,ji,rswitch,z0,zv_ice1,za,zr,zcca,zccb) 519 548 DO jj = k_j1+1, k_jpj-1 520 549 DO ji = fs_2, fs_jpim1 … … 562 591 ! If the ice volume is below zvmin then ice velocity should equal the 563 592 ! ocean velocity. This prevents high velocity when ice is thin 593 !$OMP PARALLEL DO schedule(static) private(jj,ji) 564 594 DO jj = k_j1+1, k_jpj-1 565 595 DO ji = fs_2, fs_jpim1 … … 582 612 #endif 583 613 614 !$OMP PARALLEL DO schedule(static) private(jj,ji) 584 615 DO jj = k_j1+1, k_jpj-1 585 616 DO ji = fs_2, fs_jpim1 … … 599 630 600 631 ! Recompute delta, shear and div, inputs for mechanical redistribution 632 !$OMP PARALLEL 633 !$OMP DO schedule(static) private(jj,ji,zdst,delta) 601 634 DO jj = k_j1+1, k_jpj-1 602 635 DO ji = fs_2, jpim1 !RB bug no vect opt due to zmask … … 634 667 ! * Invariants of the stress tensor are required for limitd_me 635 668 ! (accelerates convergence and improves stability) 669 !$OMP DO schedule(static) private(jj,ji,zdst) 636 670 DO jj = k_j1+1, k_jpj-1 637 671 DO ji = fs_2, fs_jpim1 … … 641 675 END DO 642 676 END DO 643 644 ! Lateral boundary condition 645 CALL lbc_lnk_multi( divu_i (:,:), 'T', 1., delta_i(:,:), 'T', 1., shear_i(:,:), 'T', 1. ) 646 677 !$OMP END DO NOWAIT 647 678 ! * Store the stress tensor for the next time step 679 !$OMP WORKSHARE 648 680 stress1_i (:,:) = zs1 (:,:) 649 681 stress2_i (:,:) = zs2 (:,:) 650 682 stress12_i(:,:) = zs12(:,:) 683 !$OMP END WORKSHARE NOWAIT 684 !$OMP END PARALLEL 685 ! Lateral boundary condition 686 CALL lbc_lnk_multi( divu_i (:,:), 'T', 1., delta_i(:,:), 'T', 1., shear_i(:,:), 'T', 1. ) 651 687 652 688 !
Note: See TracChangeset
for help on using the changeset viewer.