- Timestamp:
- 2016-12-19T13:15:59+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra.F90
r7037 r7508 117 117 !! aeiu, aeiv initialized once for all or l_ldfeiv_time set to true 118 118 !!---------------------------------------------------------------------- 119 INTEGER :: jk 119 INTEGER :: jk, jj, ji ! dummy loop indices 120 120 INTEGER :: ierr, inum, ios ! local integer 121 121 REAL(wp) :: zah0 ! local scalar … … 185 185 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'ldf_tra_init: failed to allocate arrays') 186 186 ! 187 !$OMP PARALLEL WORKSHARE 188 ahtu(:,:,jpk) = 0._wp ! last level always 0 189 ahtv(:,:,jpk) = 0._wp 190 !$OMP END PARALLEL WORKSHARE 187 !$OMP PARALLEL DO schedule(static) private(jj, ji) 188 DO jj = 1, jpj 189 DO ji = 1, jpi 190 ahtu(ji,jj,jpk) = 0._wp ! last level always 0 191 ahtv(ji,jj,jpk) = 0._wp 192 END DO 193 END DO 191 194 ! 192 195 ! ! value of eddy mixing coef. … … 203 206 CASE( 0 ) !== constant ==! 204 207 IF(lwp) WRITE(numout,*) ' tracer mixing coef. = constant = ', rn_aht_0 205 !$OMP PARALLEL WORKSHARE 206 ahtu(:,:,:) = zah0 * umask(:,:,:) 207 ahtv(:,:,:) = zah0 * vmask(:,:,:) 208 !$OMP END PARALLEL WORKSHARE 208 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 209 DO jk = 1, jpk 210 DO jj = 1, jpj 211 DO ji = 1, jpi 212 ahtu(ji,jj,jk) = zah0 * umask(ji,jj,jk) 213 ahtv(ji,jj,jk) = zah0 * vmask(ji,jj,jk) 214 END DO 215 END DO 216 END DO 209 217 ! 210 218 CASE( 10 ) !== fixed profile ==! 211 219 IF(lwp) WRITE(numout,*) ' tracer mixing coef. = F( depth )' 212 !$OMP PARALLEL WORKSHARE 213 ahtu(:,:,1) = zah0 * umask(:,:,1) ! constant surface value 214 ahtv(:,:,1) = zah0 * vmask(:,:,1) 215 !$OMP END PARALLEL WORKSHARE 220 !$OMP PARALLEL DO schedule(static) private(jj, ji) 221 DO jj = 1, jpj 222 DO ji = 1, jpi 223 ahtu(ji,jj,1) = zah0 * umask(ji,jj,1) ! constant surface value 224 ahtv(ji,jj,1) = zah0 * vmask(ji,jj,1) 225 END DO 226 END DO 216 227 CALL ldf_c1d( 'TRA', r1_4, ahtu(:,:,1), ahtv(:,:,1), ahtu, ahtv ) 217 228 ! … … 276 287 ! 277 288 IF( ln_traldf_blp .AND. .NOT. l_ldftra_time ) THEN 278 ahtu(:,:,:) = SQRT( ahtu(:,:,:) ) 279 ahtv(:,:,:) = SQRT( ahtv(:,:,:) ) 289 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 290 DO jk = 1, jpk 291 DO jj = 1, jpj 292 DO ji = 1, jpi 293 ahtu(ji,jj,jk) = SQRT( ahtu(ji,jj,jk) ) 294 ahtv(ji,jj,jk) = SQRT( ahtv(ji,jj,jk) ) 295 END DO 296 END DO 297 END DO 280 298 ENDIF 281 299 ! … … 396 414 !! l_ldfeiv_time : =T if EIV coefficients vary with time 397 415 !!---------------------------------------------------------------------- 398 INTEGER :: jk 416 INTEGER :: jk, jj, ji ! dummy loop indices 399 417 INTEGER :: ierr, inum, ios ! local integer 400 418 ! … … 437 455 CASE( 0 ) !== constant ==! 438 456 IF(lwp) WRITE(numout,*) ' eddy induced velocity coef. = constant = ', rn_aeiv_0 439 !$OMP PARALLEL WORKSHARE 440 aeiu(:,:,:) = rn_aeiv_0 441 aeiv(:,:,:) = rn_aeiv_0 442 !$OMP END PARALLEL WORKSHARE 457 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 458 DO jk = 1, jpk 459 DO jj = 1, jpj 460 DO ji = 1, jpi 461 aeiu(ji,jj,jk) = rn_aeiv_0 462 aeiv(ji,jj,jk) = rn_aeiv_0 463 END DO 464 END DO 465 END DO 443 466 ! 444 467 CASE( 10 ) !== fixed profile ==! 445 468 IF(lwp) WRITE(numout,*) ' eddy induced velocity coef. = F( depth )' 446 !$OMP PARALLEL WORKSHARE 447 aeiu(:,:,1) = rn_aeiv_0 ! constant surface value 448 aeiv(:,:,1) = rn_aeiv_0 449 !$OMP END PARALLEL WORKSHARE 469 !$OMP PARALLEL DO schedule(static) private(jj, ji) 470 DO jj = 1, jpj 471 DO ji = 1, jpi 472 aeiu(ji,jj,1) = rn_aeiv_0 ! constant surface value 473 aeiv(ji,jj,1) = rn_aeiv_0 474 END DO 475 END DO 450 476 CALL ldf_c1d( 'TRA', r1_4, aeiu(:,:,1), aeiv(:,:,1), aeiu, aeiv ) 451 477 ! … … 521 547 CALL wrk_alloc( jpi,jpj, zn, zah, zhw, zross, zaeiw ) 522 548 ! 523 !$OMP PARALLEL WORKSHARE 524 zn (:,:) = 0._wp ! Local initialization 525 zhw (:,:) = 5._wp 526 zah (:,:) = 0._wp 527 zross(:,:) = 0._wp 528 !$OMP END PARALLEL WORKSHARE 549 !$OMP PARALLEL DO schedule(static) private(jj,ji) 550 DO jj = 1, jpj 551 DO ji = 1, jpi 552 zn (ji,jj) = 0._wp ! Local initialization 553 zhw (ji,jj) = 5._wp 554 zah (ji,jj) = 0._wp 555 zross(ji,jj) = 0._wp 556 END DO 557 END DO 529 558 ! ! Compute lateral diffusive coefficient at T-point 530 559 IF( ln_traldf_triad ) THEN … … 668 697 669 698 !$OMP PARALLEL 670 !$OMP WORKSHARE 671 zpsi_uw(:,:, 1 ) = 0._wp ; zpsi_vw(:,:, 1 ) = 0._wp 672 zpsi_uw(:,:,jpk) = 0._wp ; zpsi_vw(:,:,jpk) = 0._wp 673 !$OMP END WORKSHARE NOWAIT 699 !$OMP DO schedule(static) private(jj,ji) 700 DO jj = 1, jpj 701 DO ji = 1, jpi 702 zpsi_uw(ji,jj, 1 ) = 0._wp ; zpsi_vw(ji,jj, 1 ) = 0._wp 703 zpsi_uw(ji,jj,jpk) = 0._wp ; zpsi_vw(ji,jj,jpk) = 0._wp 704 END DO 705 END DO 706 !$OMP END DO NOWAIT 674 707 ! 675 708 !$OMP DO schedule(static) private(jk,jj,ji) … … 748 781 ! 749 782 !$OMP PARALLEL 750 !$OMP WORKSHARE 751 zw3d(:,:,jpk) = 0._wp ! bottom value always 0 752 !$OMP END WORKSHARE NOWAIT 783 !$OMP DO schedule(static) private(jj,ji) 784 DO jj = 1, jpj 785 DO ji = 1, jpi 786 zw3d(ji,jj,jpk) = 0._wp ! bottom value always 0 787 END DO 788 END DO 789 !$OMP END DO NOWAIT 753 790 ! 754 791 !$OMP DO schedule(static) private(jk) … … 786 823 zztmp = 0.5_wp * rau0 * rcp 787 824 !$OMP PARALLEL 788 !$OMP WORKSHARE 789 zw2d(:,:) = 0._wp 790 !$OMP END WORKSHARE 825 !$OMP DO schedule(static) private(jj,ji) 826 DO jj = 1, jpj 827 DO ji = 1, jpi 828 zw2d(ji,jj) = 0._wp 829 END DO 830 END DO 791 831 DO jk = 1, jpkm1 792 832 !$OMP DO schedule(static) private(jj,ji) … … 803 843 CALL iom_put( "ueiv_heattr", zw2d ) ! heat transport in i-direction 804 844 !$OMP PARALLEL 805 !$OMP WORKSHARE 806 zw2d(:,:) = 0._wp 807 !$OMP END WORKSHARE 845 !$OMP DO schedule(static) private(jj,ji) 846 DO jj = 1, jpj 847 DO ji = 1, jpi 848 zw2d(ji,jj) = 0._wp 849 END DO 850 END DO 808 851 DO jk = 1, jpkm1 809 852 !$OMP DO schedule(static) private(jj,ji)
Note: See TracChangeset
for help on using the changeset viewer.