Changeset 7753 for trunk/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
- Timestamp:
- 2017-03-03T12:46:59+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
r7698 r7753 135 135 z1_slpmax = 1._wp / rn_slpmax 136 136 ! 137 !$OMP PARALLEL 138 !$OMP DO schedule(static) private(jk, jj, ji) 139 DO jk = 1, jpk 140 DO jj = 1, jpj 141 DO ji = 1, jpi 142 zww(ji,jj,jk) = 0._wp 143 zwz(ji,jj,jk) = 0._wp 144 END DO 145 END DO 146 END DO 147 !$OMP END DO NOWAIT 148 ! 149 !$OMP DO schedule(static) private(jk, jj, ji) 137 zww(:,:,:) = 0._wp 138 zwz(:,:,:) = 0._wp 139 ! 150 140 DO jk = 1, jpk !== i- & j-gradient of density ==! 151 141 DO jj = 1, jpjm1 … … 156 146 END DO 157 147 END DO 158 !$OMP END PARALLEL159 148 IF( ln_zps ) THEN ! partial steps correction at the bottom ocean level 160 !$OMP PARALLEL DO schedule(static) private(jj, ji)161 149 DO jj = 1, jpjm1 162 150 DO ji = 1, jpim1 … … 167 155 ENDIF 168 156 IF( ln_zps .AND. ln_isfcav ) THEN ! partial steps correction at the bottom ocean level 169 !$OMP PARALLEL DO schedule(static) private(jj, ji)170 157 DO jj = 1, jpjm1 171 158 DO ji = 1, jpim1 … … 176 163 ENDIF 177 164 ! 178 !$OMP PARALLEL 179 !$OMP DO schedule(static) private(jj, ji) 180 DO jj = 1, jpj 181 DO ji = 1, jpi 182 zdzr(ji,jj,1) = 0._wp !== Local vertical density gradient at T-point == ! (evaluated from N^2) 183 END DO 184 END DO 185 !$OMP DO schedule(static) private(jk,jj,ji) 165 zdzr(:,:,1) = 0._wp !== Local vertical density gradient at T-point == ! (evaluated from N^2) 186 166 DO jk = 2, jpkm1 187 167 ! ! zdzr = d/dz(prd)= - ( prd ) / grav * mk(pn2) -- at t point … … 190 170 ! ! umask(ik+1) /= 0 => all pn2 /= 0 => zdzr divides by 2 191 171 ! ! NB: 1/(tmask+1) = (1-.5*tmask) substitute a / by a * ==> faster 192 DO jj = 1, jpj 193 DO ji = 1, jpi 194 zdzr(ji,jj,jk) = zm1_g * ( prd(ji,jj,jk) + 1._wp ) & 195 & * ( pn2(ji,jj,jk) + pn2(ji,jj,jk+1) ) * ( 1._wp - 0.5_wp * tmask(ji,jj,jk+1) ) 196 END DO 197 END DO 198 END DO 199 !$OMP END PARALLEL 172 zdzr(:,:,jk) = zm1_g * ( prd(:,:,jk) + 1._wp ) & 173 & * ( pn2(:,:,jk) + pn2(:,:,jk+1) ) * ( 1._wp - 0.5_wp * tmask(:,:,jk+1) ) 174 END DO 200 175 ! 201 176 ! !== Slopes just below the mixed layer ==! … … 207 182 ! 208 183 IF ( ln_isfcav ) THEN 209 !$OMP PARALLEL DO schedule(static) private(jj,ji)210 184 DO jj = 2, jpjm1 211 185 DO ji = fs_2, fs_jpim1 ! vector opt. … … 217 191 END DO 218 192 ELSE 219 !$OMP PARALLEL DO schedule(static) private(jj,ji)220 193 DO jj = 2, jpjm1 221 194 DO ji = fs_2, fs_jpim1 ! vector opt. … … 226 199 END IF 227 200 228 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zau, zav, zbu, zbv, zfj, zfi, zdepu, zdepv)229 201 DO jk = 2, jpkm1 !* Slopes at u and v points 230 202 DO jj = 2, jpjm1 … … 267 239 ! 268 240 ! !* horizontal Shapiro filter 269 !$OMP PARALLEL270 !$OMP DO schedule(static) private(jk, jj, ji)271 241 DO jk = 2, jpkm1 272 242 DO jj = 2, jpjm1, MAX(1, jpj-3) ! rows jj=2 and =jpjm1 only … … 313 283 ! =========================== | wslpj = mij( d/dj( prd ) / d/dz( prd ) 314 284 ! 315 !$OMP DO schedule(static) private(jk, jj, ji, zbw, zfk, zck, zbi, zbj, zai, zaj, zci, zcj)316 285 DO jk = 2, jpkm1 317 286 DO jj = 2, jpjm1 … … 349 318 END DO 350 319 END DO 351 !$OMP END PARALLEL352 320 CALL lbc_lnk( zwz, 'T', -1. ) ; CALL lbc_lnk( zww, 'T', -1. ) ! lateral boundary conditions 353 321 ! 354 322 ! !* horizontal Shapiro filter 355 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zcofw, zck)356 323 DO jk = 2, jpkm1 357 324 DO jj = 2, jpjm1, MAX(1, jpj-3) ! rows jj=2 and =jpjm1 only … … 703 670 z1_slpmax = 1._wp / rn_slpmax 704 671 ! 705 !$OMP PARALLEL 706 !$OMP DO schedule(static) private(jj) 707 DO jj = 1, jpj 708 uslpml (1,jj) = 0._wp ; uslpml (jpi,jj) = 0._wp 709 vslpml (1,jj) = 0._wp ; vslpml (jpi,jj) = 0._wp 710 wslpiml(1,jj) = 0._wp ; wslpiml(jpi,jj) = 0._wp 711 wslpjml(1,jj) = 0._wp ; wslpjml(jpi,jj) = 0._wp 712 END DO 672 uslpml (1,:) = 0._wp ; uslpml (jpi,:) = 0._wp 673 vslpml (1,:) = 0._wp ; vslpml (jpi,:) = 0._wp 674 wslpiml(1,:) = 0._wp ; wslpiml(jpi,:) = 0._wp 675 wslpjml(1,:) = 0._wp ; wslpjml(jpi,:) = 0._wp 713 676 ! 714 677 ! !== surface mixed layer mask ! 715 !$OMP DO schedule(static) private(jk, jj, ji, ik)716 678 DO jk = 1, jpk ! =1 inside the mixed layer, =0 otherwise 717 679 DO jj = 1, jpj … … 724 686 END DO 725 687 END DO 726 !$OMP END DO NOWAIT727 688 728 689 … … 737 698 !----------------------------------------------------------------------- 738 699 ! 739 !$OMP DO schedule(static) private(jj, ji, iku, ikv, zbu, zbv, zau, zav, ik, ikm1, zbw, zci, zcj, zai, zaj, zbi, zbj)740 700 DO jj = 2, jpjm1 741 701 DO ji = 2, jpim1 … … 782 742 END DO 783 743 END DO 784 !$OMP END PARALLEL785 744 !!gm this lbc_lnk should be useless.... 786 745 CALL lbc_lnk( uslpml , 'U', -1. ) ; CALL lbc_lnk( vslpml , 'V', -1. ) ! lateral boundary cond. (sign change) … … 832 791 ! Direction of lateral diffusion (tracers and/or momentum) 833 792 ! ------------------------------ 834 835 !$OMP PARALLEL 836 !$OMP DO schedule(static) private(jk, jj, ji) 837 DO jk = 1, jpk 838 DO jj = 1, jpj 839 DO ji = 1, jpi 840 uslp (ji,jj,jk) = 0._wp 841 vslp (ji,jj,jk) = 0._wp 842 wslpi(ji,jj,jk) = 0._wp 843 wslpj(ji,jj,jk) = 0._wp 844 END DO 845 END DO 846 END DO 847 !$OMP END DO NOWAIT 848 !$OMP DO schedule(static) private(jj, ji) 849 DO jj = 1, jpj 850 DO ji = 1, jpi 851 uslpml (ji,jj) = 0._wp 852 vslpml (ji,jj) = 0._wp 853 wslpiml(ji,jj) = 0._wp 854 wslpjml(ji,jj) = 0._wp 855 END DO 856 END DO 857 !$OMP END PARALLEL 793 uslp (:,:,:) = 0._wp ; uslpml (:,:) = 0._wp ! set the slope to zero (even in s-coordinates) 794 vslp (:,:,:) = 0._wp ; vslpml (:,:) = 0._wp 795 wslpi(:,:,:) = 0._wp ; wslpiml(:,:) = 0._wp 796 wslpj(:,:,:) = 0._wp ; wslpjml(:,:) = 0._wp 797 858 798 !!gm I no longer understand this..... 859 799 !!gm IF( (ln_traldf_hor .OR. ln_dynldf_hor) .AND. .NOT. (.NOT.ln_linssh .AND. ln_rstart) ) THEN
Note: See TracChangeset
for help on using the changeset viewer.