- 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/OPA_SRC/TRA/traadv_mus.F90
r6140 r7037 101 101 ! 102 102 ALLOCATE( xind(jpi,jpj,jpk), STAT=ierr ) 103 !$OMP PARALLEL WORKSHARE 103 104 xind(:,:,:) = 1._wp ! set equal to 1 where up-stream is not needed 105 !$OMP END PARALLEL WORKSHARE 104 106 ! 105 107 IF( ld_msc_ups ) THEN ! define the upstream indicator (if asked) 106 108 ALLOCATE( upsmsk(jpi,jpj), STAT=ierr ) 109 !$OMP PARALLEL 110 !$OMP WORKSHARE 107 111 upsmsk(:,:) = 0._wp ! not upstream by default 112 !$OMP END WORKSHARE 108 113 ! 114 !$OMP DO schedule(static) private(jk) 109 115 DO jk = 1, jpkm1 110 116 xind(:,:,jk) = 1._wp & ! =>1 where up-stream is not needed … … 112 118 & upsmsk(:,:) ) * tmask(:,:,jk) ! =>0 in some user defined area 113 119 END DO 120 !$OMP END DO NOWAIT 121 !$OMP END PARALLEL 114 122 ENDIF 115 123 ! … … 121 129 ! 122 130 ! !-- first guess of the slopes 131 !$OMP PARALLEL 132 !$OMP WORKSHARE 123 133 zwx(:,:,jpk) = 0._wp ! bottom values 124 zwy(:,:,jpk) = 0._wp 134 zwy(:,:,jpk) = 0._wp 135 !$OMP END WORKSHARE 136 !$OMP DO schedule(static) private(jk, jj, ji) 125 137 DO jk = 1, jpkm1 ! interior values 126 138 DO jj = 1, jpjm1 … … 131 143 END DO 132 144 END DO 145 !$OMP END DO NOWAIT 146 !$OMP END PARALLEL 133 147 CALL lbc_lnk( zwx, 'U', -1. ) ! lateral boundary conditions (changed sign) 134 148 CALL lbc_lnk( zwy, 'V', -1. ) 135 149 ! !-- Slopes of tracer 150 !$OMP PARALLEL 151 !$OMP WORKSHARE 136 152 zslpx(:,:,jpk) = 0._wp ! bottom values 137 153 zslpy(:,:,jpk) = 0._wp 154 !$OMP END WORKSHARE 155 !$OMP DO schedule(static) private(jk, jj, ji) 138 156 DO jk = 1, jpkm1 ! interior values 139 157 DO jj = 2, jpj … … 147 165 END DO 148 166 ! 167 !$OMP DO schedule(static) private(jk, jj, ji) 149 168 DO jk = 1, jpkm1 !-- Slopes limitation 150 169 DO jj = 2, jpj … … 160 179 END DO 161 180 ! 181 !$OMP DO schedule(static) private(jk, jj, ji, z0u, zalpha, zu, zv, zzwx, zzwy, z0v) 162 182 DO jk = 1, jpkm1 !-- MUSCL horizontal advective fluxes 163 183 DO jj = 2, jpjm1 … … 180 200 END DO 181 201 END DO 202 !$OMP END DO NOWAIT 203 !$OMP END PARALLEL 182 204 CALL lbc_lnk( zwx, 'U', -1. ) ; CALL lbc_lnk( zwy, 'V', -1. ) ! lateral boundary conditions (changed sign) 183 205 ! 206 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 184 207 DO jk = 1, jpkm1 !-- Tracer advective trend 185 208 DO jj = 2, jpjm1 … … 206 229 ! 207 230 ! !-- first guess of the slopes 231 !$OMP PARALLEL 232 !$OMP WORKSHARE 208 233 zwx(:,:, 1 ) = 0._wp ! surface & bottom boundary conditions 209 234 zwx(:,:,jpk) = 0._wp 235 !$OMP END WORKSHARE 236 !$OMP DO schedule(static) private(jk) 210 237 DO jk = 2, jpkm1 ! interior values 211 238 zwx(:,:,jk) = tmask(:,:,jk) * ( ptb(:,:,jk-1,jn) - ptb(:,:,jk,jn) ) 212 239 END DO 213 240 ! !-- Slopes of tracer 241 !$OMP END DO NOWAIT 242 !$OMP WORKSHARE 214 243 zslpx(:,:,1) = 0._wp ! surface values 244 !$OMP END WORKSHARE 245 !$OMP DO schedule(static) private(jk, jj, ji) 215 246 DO jk = 2, jpkm1 ! interior value 216 247 DO jj = 1, jpj … … 221 252 END DO 222 253 END DO 254 !$OMP DO schedule(static) private(jk, jj, ji) 223 255 DO jk = 2, jpkm1 !-- Slopes limitation 224 256 DO jj = 1, jpj ! interior values … … 230 262 END DO 231 263 END DO 264 !$OMP DO schedule(static) private(jk, jj, ji, z0w, zalpha, zw, zzwx, zzwy) 232 265 DO jk = 1, jpk-2 !-- vertical advective flux 233 266 DO jj = 2, jpjm1 … … 242 275 END DO 243 276 END DO 277 !$OMP END DO NOWAIT 278 !$OMP END PARALLEL 244 279 IF( ln_linssh ) THEN ! top values, linear free surface only 245 280 IF( ln_isfcav ) THEN ! ice-shelf cavities (top of the ocean) 281 !$OMP PARALLEL DO schedule(static) private(jj, ji) 246 282 DO jj = 1, jpj 247 283 DO ji = 1, jpi … … 250 286 END DO 251 287 ELSE ! no cavities: only at the ocean surface 288 !$OMP PARALLEL WORKSHARE 252 289 zwx(:,:,1) = pwn(:,:,1) * ptb(:,:,1,jn) 290 !$OMP END PARALLEL WORKSHARE 253 291 ENDIF 254 292 ENDIF 255 293 ! 294 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 256 295 DO jk = 1, jpkm1 !-- vertical advective trend 257 296 DO jj = 2, jpjm1
Note: See TracChangeset
for help on using the changeset viewer.