- Timestamp:
- 2016-12-19T13:15:59+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r7037 r7508 182 182 IF ( iom_use("taubot") ) THEN ! bottom stress 183 183 !$OMP PARALLEL 184 !$OMP WORKSHARE 185 z2d(:,:) = 0._wp 186 !$OMP END WORKSHARE 184 !$OMP DO schedule(static) private(jj, ji) 185 DO jj = 1, jpj 186 DO ji = 1, jpi 187 z2d(ji,jj) = 0._wp 188 END DO 189 END DO 187 190 !$OMP DO schedule(static) private(jj, ji, zztmpx,zztmpy) 188 191 DO jj = 2, jpjm1 … … 232 235 ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 233 236 !$OMP PARALLEL 234 !$OMP WORKSHARE 235 z2d(:,:) = rau0 * e1e2t(:,:) 236 !$OMP END WORKSHARE 237 !$OMP DO schedule(static) private(jj, ji) 238 DO jj = 1, jpj 239 DO ji = 1, jpi 240 z2d(ji,jj) = rau0 * e1e2t(ji,jj) 241 END DO 242 END DO 237 243 !$OMP DO schedule(static) private(jk) 238 244 DO jk = 1, jpk … … 277 283 IF( iom_use("heatc") ) THEN 278 284 !$OMP PARALLEL 279 !$OMP WORKSHARE 280 z2d(:,:) = 0._wp 281 !$OMP END WORKSHARE 282 !$OMP DO schedule(static) private(jk, jj, ji) 285 !$OMP DO schedule(static) private(jj, ji) 286 DO jj = 1, jpj 287 DO ji = 1, jpi 288 z2d(ji,jj) = 0._wp 289 END DO 290 END DO 283 291 DO jk = 1, jpkm1 292 !$OMP DO schedule(static) private(jj, ji) 284 293 DO jj = 1, jpj 285 294 DO ji = 1, jpi … … 287 296 END DO 288 297 END DO 289 END DO290 298 !$OMP END DO NOWAIT 299 END DO 291 300 !$OMP END PARALLEL 292 301 CALL iom_put( "heatc", (rau0 * rcp) * z2d ) ! vertically integrated heat content (J/m2) … … 295 304 IF( iom_use("saltc") ) THEN 296 305 !$OMP PARALLEL 297 !$OMP WORKSHARE 298 z2d(:,:) = 0._wp 299 !$OMP END WORKSHARE 300 !$OMP DO schedule(static) private(jk, jj, ji) 306 !$OMP DO schedule(static) private(jj, ji) 307 DO jj = 1, jpj 308 DO ji = 1, jpi 309 z2d(ji,jj) = 0._wp 310 END DO 311 END DO 301 312 DO jk = 1, jpkm1 313 !$OMP DO schedule(static) private(jj, ji) 302 314 DO jj = 1, jpj 303 315 DO ji = 1, jpi … … 305 317 END DO 306 318 END DO 307 END DO308 319 !$OMP END DO NOWAIT 320 END DO 309 321 !$OMP END PARALLEL 310 322 CALL iom_put( "saltc", rau0 * z2d ) ! vertically integrated salt content (PSU*kg/m2) … … 313 325 IF ( iom_use("eken") ) THEN 314 326 !$OMP PARALLEL 315 !$OMP WORKSHARE 316 rke(:,:,jk) = 0._wp ! kinetic energy 317 !$OMP END WORKSHARE 327 !$OMP DO schedule(static) private(jj, ji) 328 DO jj = 1, jpj 329 DO ji = 1, jpi 330 rke(ji,jj,jk) = 0._wp ! kinetic energy 331 END DO 332 END DO 318 333 !$OMP DO schedule(static) private(jk, jj, ji, zztmp, zztmpx, zztmpy) 319 334 DO jk = 1, jpkm1 … … 344 359 IF( iom_use("u_masstr") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 345 360 !$OMP PARALLEL 346 !$OMP WORKSHARE 347 z3d(:,:,jpk) = 0.e0 348 !$OMP END WORKSHARE 361 !$OMP DO schedule(static) private(jj, ji) 362 DO jj = 1, jpj 363 DO ji = 1, jpi 364 z3d(ji,jj,jpk) = 0.e0 365 END DO 366 END DO 349 367 !$OMP DO schedule(static) private(jk) 350 368 DO jk = 1, jpkm1 … … 358 376 IF( iom_use("u_heattr") ) THEN 359 377 !$OMP PARALLEL 360 !$OMP WORKSHARE 361 z2d(:,:) = 0.e0 362 !$OMP END WORKSHARE 363 !$OMP DO schedule(static) private(jk, jj, ji) 378 !$OMP DO schedule(static) private(jj, ji) 379 DO jj = 1, jpj 380 DO ji = 1, jpi 381 z2d(ji,jj) = 0.e0 382 END DO 383 END DO 364 384 DO jk = 1, jpkm1 385 !$OMP DO schedule(static) private(jj, ji) 365 386 DO jj = 2, jpjm1 366 387 DO ji = fs_2, fs_jpim1 ! vector opt. … … 368 389 END DO 369 390 END DO 370 END DO371 391 !$OMP END DO NOWAIT 392 END DO 372 393 !$OMP END PARALLEL 373 394 CALL lbc_lnk( z2d, 'U', -1. ) … … 377 398 IF( iom_use("u_salttr") ) THEN 378 399 !$OMP PARALLEL 379 !$OMP WORKSHARE 380 z2d(:,:) = 0.e0 381 !$OMP END WORKSHARE 382 !$OMP DO schedule(static) private(jk, jj, ji) 400 !$OMP DO schedule(static) private(jj, ji) 401 DO jj = 1, jpj 402 DO ji = 1, jpi 403 z2d(ji,jj) = 0.e0 404 END DO 405 END DO 383 406 DO jk = 1, jpkm1 407 !$OMP DO schedule(static) private(jj, ji) 384 408 DO jj = 2, jpjm1 385 409 DO ji = fs_2, fs_jpim1 ! vector opt. … … 387 411 END DO 388 412 END DO 389 END DO390 413 !$OMP END DO NOWAIT 414 END DO 391 415 !$OMP END PARALLEL 392 416 CALL lbc_lnk( z2d, 'U', -1. ) … … 397 421 IF( iom_use("v_masstr") .OR. iom_use("v_heattr") .OR. iom_use("v_salttr") ) THEN 398 422 !$OMP PARALLEL 399 !$OMP WORKSHARE 400 z3d(:,:,jpk) = 0.e0 401 !$OMP END WORKSHARE 423 !$OMP DO schedule(static) private(jj, ji) 424 DO jj = 1, jpj 425 DO ji = 1, jpi 426 z3d(ji,jj,jpk) = 0.e0 427 END DO 428 END DO 402 429 !$OMP DO schedule(static) private(jk) 403 430 DO jk = 1, jpkm1 … … 411 438 IF( iom_use("v_heattr") ) THEN 412 439 !$OMP PARALLEL 413 !$OMP WORKSHARE 414 z2d(:,:) = 0.e0 415 !$OMP END WORKSHARE 416 !$OMP DO schedule(static) private(jk, jj, ji) 440 !$OMP DO schedule(static) private(jj, ji) 441 DO jj = 1, jpj 442 DO ji = 1, jpi 443 z2d(ji,jj) = 0.e0 444 END DO 445 END DO 417 446 DO jk = 1, jpkm1 447 !$OMP DO schedule(static) private(jj, ji) 418 448 DO jj = 2, jpjm1 419 449 DO ji = fs_2, fs_jpim1 ! vector opt. … … 421 451 END DO 422 452 END DO 423 END DO424 453 !$OMP END DO NOWAIT 454 END DO 425 455 !$OMP END PARALLEL 426 456 CALL lbc_lnk( z2d, 'V', -1. ) … … 430 460 IF( iom_use("v_salttr") ) THEN 431 461 !$OMP PARALLEL 432 !$OMP WORKSHARE 433 z2d(:,:) = 0.e0 434 !$OMP END WORKSHARE 435 !$OMP DO schedule(static) private(jk, jj, ji) 462 !$OMP DO schedule(static) private(jj, ji) 463 DO jj = 1, jpj 464 DO ji = 1, jpi 465 z2d(ji,jj) = 0.e0 466 END DO 467 END DO 436 468 DO jk = 1, jpkm1 469 !$OMP DO schedule(static) private(jj, ji) 437 470 DO jj = 2, jpjm1 438 471 DO ji = fs_2, fs_jpim1 ! vector opt. … … 440 473 END DO 441 474 END DO 442 END DO443 475 !$OMP END DO NOWAIT 476 END DO 444 477 !$OMP END PARALLEL 445 478 CALL lbc_lnk( z2d, 'V', -1. ) … … 818 851 ENDIF 819 852 IF( .NOT.ln_linssh ) THEN 820 !$OMP PARALLEL WORKSHARE 821 zw3d(:,:,:) = ( ( e3t_n(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100 * tmask(:,:,:) ) ** 2 822 !$OMP END PARALLEL WORKSHARE 853 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 854 DO jk = 1, jpk 855 DO jj = 1, jpj 856 DO ji = 1, jpi 857 zw3d(ji,jj,jk) = ( ( e3t_n(ji,jj,jk) - e3t_0(ji,jj,jk) ) / e3t_0(ji,jj,jk) * 100 * tmask(ji,jj,jk) ) ** 2 858 END DO 859 END DO 860 END DO 823 861 CALL histwrite( nid_T, "vovvle3t", it, e3t_n (:,:,:) , ndim_T , ndex_T ) ! level thickness 824 862 CALL histwrite( nid_T, "vovvldep", it, gdept_n(:,:,:) , ndim_T , ndex_T ) ! t-point depth … … 832 870 ! in linear free surface case) 833 871 IF( ln_linssh ) THEN 834 !$OMP PARALLEL WORKSHARE 835 zw2d(:,:) = emp (:,:) * tsn(:,:,1,jp_tem) 836 !$OMP END PARALLEL WORKSHARE 872 !$OMP PARALLEL DO schedule(static) private(jj, ji) 873 DO jj = 1, jpj 874 DO ji = 1, jpi 875 zw2d(ji,jj) = emp (ji,jj) * tsn(ji,jj,1,jp_tem) 876 END DO 877 END DO 837 878 CALL histwrite( nid_T, "sosst_cd", it, zw2d, ndim_hT, ndex_hT ) ! c/d term on sst 838 !$OMP PARALLEL WORKSHARE 839 zw2d(:,:) = emp (:,:) * tsn(:,:,1,jp_sal) 840 !$OMP END PARALLEL WORKSHARE 879 !$OMP PARALLEL DO schedule(static) private(jj, ji) 880 DO jj = 1, jpj 881 DO ji = 1, jpi 882 zw2d(ji,jj) = emp (ji,jj) * tsn(ji,jj,1,jp_sal) 883 END DO 884 END DO 841 885 CALL histwrite( nid_T, "sosss_cd", it, zw2d, ndim_hT, ndex_hT ) ! c/d term on sss 842 886 ENDIF … … 875 919 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 876 920 IF( ln_ssr ) THEN 877 !$OMP PARALLEL WORKSHARE 878 zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 879 !$OMP END PARALLEL WORKSHARE 921 !$OMP PARALLEL DO schedule(static) private(jj, ji) 922 DO jj = 1, jpj 923 DO ji = 1, jpi 924 zw2d(ji,jj) = erp(ji,jj) * tsn(ji,jj,1,jp_sal) * tmask(ji,jj,1) 925 END DO 926 END DO 880 927 END IF 881 928 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping … … 885 932 CALL histwrite( nid_T, "sowafldp", it, erp , ndim_hT, ndex_hT ) ! freshwater flux damping 886 933 IF( ln_ssr ) THEN 887 !$OMP PARALLEL WORKSHARE 888 zw2d(:,:) = erp(:,:) * tsn(:,:,1,jp_sal) * tmask(:,:,1) 889 !$OMP END PARALLEL WORKSHARE 934 !$OMP PARALLEL DO schedule(static) private(jj, ji) 935 DO jj = 1, jpj 936 DO ji = 1, jpi 937 zw2d(ji,jj) = erp(ji,jj) * tsn(ji,jj,1,jp_sal) * tmask(ji,jj,1) 938 END DO 939 END DO 890 940 END IF 891 941 CALL histwrite( nid_T, "sosafldp", it, zw2d , ndim_hT, ndex_hT ) ! salt flux damping
Note: See TracChangeset
for help on using the changeset viewer.