- 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/DIA/diawri.F90
r6748 r7037 181 181 182 182 IF ( iom_use("taubot") ) THEN ! bottom stress 183 !$OMP PARALLEL 184 !$OMP WORKSHARE 183 185 z2d(:,:) = 0._wp 184 !$OMP PARALLEL DO schedule(static) private(jj, ji, zztmpx,zztmpy) 186 !$OMP END WORKSHARE 187 !$OMP DO schedule(static) private(jj, ji, zztmpx,zztmpy) 185 188 DO jj = 2, jpjm1 186 189 DO ji = fs_2, fs_jpim1 ! vector opt. … … 193 196 ENDDO 194 197 ENDDO 198 !$OMP END DO NOWAIT 199 !$OMP END PARALLEL 195 200 CALL lbc_lnk( z2d, 'T', 1. ) 196 201 CALL iom_put( "taubot", z2d ) … … 226 231 IF( iom_use('w_masstr') .OR. iom_use('w_masstr2') ) THEN ! vertical mass transport & its square value 227 232 ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 233 !$OMP PARALLEL 234 !$OMP WORKSHARE 228 235 z2d(:,:) = rau0 * e1e2t(:,:) 229 !$OMP PARALLEL DO schedule(static) private(jk) 236 !$OMP END WORKSHARE 237 !$OMP DO schedule(static) private(jk) 230 238 DO jk = 1, jpk 231 239 z3d(:,:,jk) = wn(:,:,jk) * z2d(:,:) 232 240 END DO 241 !$OMP END DO NOWAIT 242 !$OMP END PARALLEL 233 243 CALL iom_put( "w_masstr" , z3d ) 234 244 IF( iom_use('w_masstr2') ) CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) … … 255 265 CALL lbc_lnk( z2d, 'T', 1. ) 256 266 CALL iom_put( "sstgrad2", z2d ) ! square of module of sst gradient 257 z2d(:,:) = SQRT( z2d(:,:) ) 267 !$OMP PARALLEL DO schedule(static) private(jj, ji) 268 DO jj = 1, jpj 269 DO ji = 1, jpi 270 z2d(ji,jj) = SQRT( z2d(ji,jj) ) 271 END DO 272 END DO 258 273 CALL iom_put( "sstgrad" , z2d ) ! module of sst gradient 259 274 ENDIF … … 261 276 ! clem: heat and salt content 262 277 IF( iom_use("heatc") ) THEN 278 !$OMP PARALLEL 279 !$OMP WORKSHARE 263 280 z2d(:,:) = 0._wp 264 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 281 !$OMP END WORKSHARE 282 !$OMP DO schedule(static) private(jk, jj, ji) 265 283 DO jk = 1, jpkm1 266 284 DO jj = 1, jpj … … 270 288 END DO 271 289 END DO 290 !$OMP END DO NOWAIT 291 !$OMP END PARALLEL 272 292 CALL iom_put( "heatc", (rau0 * rcp) * z2d ) ! vertically integrated heat content (J/m2) 273 293 ENDIF 274 294 275 295 IF( iom_use("saltc") ) THEN 296 !$OMP PARALLEL 297 !$OMP WORKSHARE 276 298 z2d(:,:) = 0._wp 277 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 299 !$OMP END WORKSHARE 300 !$OMP DO schedule(static) private(jk, jj, ji) 278 301 DO jk = 1, jpkm1 279 302 DO jj = 1, jpj … … 283 306 END DO 284 307 END DO 308 !$OMP END DO NOWAIT 309 !$OMP END PARALLEL 285 310 CALL iom_put( "saltc", rau0 * z2d ) ! vertically integrated salt content (PSU*kg/m2) 286 311 ENDIF 287 312 ! 288 313 IF ( iom_use("eken") ) THEN 314 !$OMP PARALLEL 315 !$OMP WORKSHARE 289 316 rke(:,:,jk) = 0._wp ! kinetic energy 290 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zztmp, zztmpx, zztmpy) 317 !$OMP END WORKSHARE 318 !$OMP DO schedule(static) private(jk, jj, ji, zztmp, zztmpx, zztmpy) 291 319 DO jk = 1, jpkm1 292 320 DO jj = 2, jpjm1 … … 306 334 ENDDO 307 335 ENDDO 336 !$OMP END DO NOWAIT 337 !$OMP END PARALLEL 308 338 CALL lbc_lnk( rke, 'T', 1. ) 309 339 CALL iom_put( "eken", rke ) … … 313 343 ! 314 344 IF( iom_use("u_masstr") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 345 !$OMP PARALLEL 346 !$OMP WORKSHARE 315 347 z3d(:,:,jpk) = 0.e0 316 !$OMP PARALLEL DO schedule(static) private(jk) 348 !$OMP END WORKSHARE 349 !$OMP DO schedule(static) private(jk) 317 350 DO jk = 1, jpkm1 318 351 z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * e3u_n(:,:,jk) * umask(:,:,jk) 319 352 END DO 353 !$OMP END DO NOWAIT 354 !$OMP END PARALLEL 320 355 CALL iom_put( "u_masstr", z3d ) ! mass transport in i-direction 321 356 ENDIF 322 357 323 358 IF( iom_use("u_heattr") ) THEN 359 !$OMP PARALLEL 360 !$OMP WORKSHARE 324 361 z2d(:,:) = 0.e0 325 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 362 !$OMP END WORKSHARE 363 !$OMP DO schedule(static) private(jk, jj, ji) 326 364 DO jk = 1, jpkm1 327 365 DO jj = 2, jpjm1 … … 331 369 END DO 332 370 END DO 371 !$OMP END DO NOWAIT 372 !$OMP END PARALLEL 333 373 CALL lbc_lnk( z2d, 'U', -1. ) 334 374 CALL iom_put( "u_heattr", (0.5 * rcp) * z2d ) ! heat transport in i-direction … … 336 376 337 377 IF( iom_use("u_salttr") ) THEN 378 !$OMP PARALLEL 379 !$OMP WORKSHARE 338 380 z2d(:,:) = 0.e0 339 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 381 !$OMP END WORKSHARE 382 !$OMP DO schedule(static) private(jk, jj, ji) 340 383 DO jk = 1, jpkm1 341 384 DO jj = 2, jpjm1 … … 345 388 END DO 346 389 END DO 390 !$OMP END DO NOWAIT 391 !$OMP END PARALLEL 347 392 CALL lbc_lnk( z2d, 'U', -1. ) 348 393 CALL iom_put( "u_salttr", 0.5 * z2d ) ! heat transport in i-direction … … 351 396 352 397 IF( iom_use("v_masstr") .OR. iom_use("v_heattr") .OR. iom_use("v_salttr") ) THEN 398 !$OMP PARALLEL 399 !$OMP WORKSHARE 353 400 z3d(:,:,jpk) = 0.e0 354 !$OMP PARALLEL DO schedule(static) private(jk) 401 !$OMP END WORKSHARE 402 !$OMP DO schedule(static) private(jk) 355 403 DO jk = 1, jpkm1 356 404 z3d(:,:,jk) = rau0 * vn(:,:,jk) * e1v(:,:) * e3v_n(:,:,jk) * vmask(:,:,jk) 357 405 END DO 406 !$OMP END DO NOWAIT 407 !$OMP END PARALLEL 358 408 CALL iom_put( "v_masstr", z3d ) ! mass transport in j-direction 359 409 ENDIF 360 410 361 411 IF( iom_use("v_heattr") ) THEN 412 !$OMP PARALLEL 413 !$OMP WORKSHARE 362 414 z2d(:,:) = 0.e0 363 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 415 !$OMP END WORKSHARE 416 !$OMP DO schedule(static) private(jk, jj, ji) 364 417 DO jk = 1, jpkm1 365 418 DO jj = 2, jpjm1 … … 369 422 END DO 370 423 END DO 424 !$OMP END DO NOWAIT 425 !$OMP END PARALLEL 371 426 CALL lbc_lnk( z2d, 'V', -1. ) 372 427 CALL iom_put( "v_heattr", (0.5 * rcp) * z2d ) ! heat transport in j-direction … … 374 429 375 430 IF( iom_use("v_salttr") ) THEN 431 !$OMP PARALLEL 432 !$OMP WORKSHARE 376 433 z2d(:,:) = 0.e0 377 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 434 !$OMP END WORKSHARE 435 !$OMP DO schedule(static) private(jk, jj, ji) 378 436 DO jk = 1, jpkm1 379 437 DO jj = 2, jpjm1 … … 383 441 END DO 384 442 END DO 443 !$OMP END DO NOWAIT 444 !$OMP END PARALLEL 385 445 CALL lbc_lnk( z2d, 'V', -1. ) 386 446 CALL iom_put( "v_salttr", 0.5 * z2d ) ! heat transport in j-direction … … 758 818 ENDIF 759 819 IF( .NOT.ln_linssh ) THEN 820 !$OMP PARALLEL WORKSHARE 760 821 zw3d(:,:,:) = ( ( e3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 822 !$OMP END PARALLEL WORKSHARE 761 823 CALL histwrite( nid_T, "vovvle3t", it, e3t_n (:,:,:) , ndim_T , ndex_T ) ! level thickness 762 824 CALL histwrite( nid_T, "vovvldep", it, gdept_n(:,:,:) , ndim_T , ndex_T ) ! t-point depth … … 770 832 ! in linear free surface case) 771 833 IF( ln_linssh ) THEN 834 !$OMP PARALLEL WORKSHARE 772 835 zw2d(:,:) = emp (:,:) * tsn(:,:,1,jp_tem) 836 !$OMP END PARALLEL WORKSHARE 773 837 CALL histwrite( nid_T, "sosst_cd", it, zw2d, ndim_hT, ndex_hT ) ! c/d term on sst 838 !$OMP PARALLEL WORKSHARE 774 839 zw2d(:,:) = emp (:,:) * tsn(:,:,1,jp_sal) 840 !$OMP END PARALLEL WORKSHARE 775 841 CALL histwrite( nid_T, "sosss_cd", it, zw2d, ndim_hT, ndex_hT ) ! c/d term on sss 776 842 ENDIF … … 808 874 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 809 875 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 810 IF( ln_ssr ) zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 876 IF( ln_ssr ) THEN 877 !$OMP PARALLEL WORKSHARE 878 zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 879 !$OMP END PARALLEL WORKSHARE 880 END IF 811 881 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 812 882 ENDIF … … 814 884 CALL histwrite( nid_T, "sohefldp", it, qrp , ndim_hT, ndex_hT ) ! heat flux damping 815 885 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 816 IF( ln_ssr ) zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 886 IF( ln_ssr ) THEN 887 !$OMP PARALLEL WORKSHARE 888 zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 889 !$OMP END PARALLEL WORKSHARE 890 END IF 817 891 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping 818 892 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.