- 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/LBC/lib_mpp.F90
r6748 r7037 400 400 ! !* Cyclic east-west 401 401 IF( nbondi == 2 .AND. (nperio == 1 .OR. nperio == 4 .OR. nperio == 6) ) THEN 402 !$OMP PARALLEL WORKSHARE 402 403 ptab( 1 ,:,:) = ptab(jpim1,:,:) 403 404 ptab(jpi,:,:) = ptab( 2 ,:,:) 405 !$OMP END PARALLEL WORKSHARE 404 406 ELSE !* closed 405 IF( .NOT. cd_type == 'F' ) ptab( 1 :jpreci,:,:) = zland ! south except F-point 407 IF( .NOT. cd_type == 'F' ) THEN 408 !$OMP PARALLEL WORKSHARE 409 ptab( 1 :jpreci,:,:) = zland ! south except F-point 410 !$OMP END PARALLEL WORKSHARE 411 END IF 412 !$OMP PARALLEL WORKSHARE 406 413 ptab(nlci-jpreci+1:jpi ,:,:) = zland ! north 414 !$OMP END PARALLEL WORKSHARE 407 415 ENDIF 408 416 ! ! North-South boundaries (always closed) 409 IF( .NOT. cd_type == 'F' ) ptab(:, 1 :jprecj,:) = zland ! south except F-point 417 IF( .NOT. cd_type == 'F' ) THEN 418 !$OMP PARALLEL WORKSHARE 419 ptab(:, 1 :jprecj,:) = zland ! south except F-point 420 !$OMP END PARALLEL WORKSHARE 421 END IF 422 !$OMP PARALLEL WORKSHARE 410 423 ptab(:,nlcj-jprecj+1:jpj ,:) = zland ! north 424 !$OMP END PARALLEL WORKSHARE 411 425 ! 412 426 ENDIF … … 419 433 CASE ( -1, 0, 1 ) ! all exept 2 (i.e. close case) 420 434 iihom = nlci-nreci 421 DO jl = 1, jpreci 422 zt3ew(:,jl,:,1) = ptab(jpreci+jl,:,:) 423 zt3we(:,jl,:,1) = ptab(iihom +jl,:,:) 435 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 436 DO jk = 1, jpk 437 DO jj = 1, jpj 438 DO jl = 1, jpreci 439 zt3ew(jj,jl,jk,1) = ptab(jpreci+jl,jj,jk) 440 zt3we(jj,jl,jk,1) = ptab(iihom +jl,jj,jk) 441 END DO 442 END DO 424 443 END DO 425 444 END SELECT … … 451 470 SELECT CASE ( nbondi ) 452 471 CASE ( -1 ) 453 DO jl = 1, jpreci 454 ptab(iihom+jl,:,:) = zt3ew(:,jl,:,2) 455 END DO 456 CASE ( 0 ) 457 DO jl = 1, jpreci 458 ptab(jl ,:,:) = zt3we(:,jl,:,2) 459 ptab(iihom+jl,:,:) = zt3ew(:,jl,:,2) 460 END DO 461 CASE ( 1 ) 462 DO jl = 1, jpreci 463 ptab(jl ,:,:) = zt3we(:,jl,:,2) 472 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 473 DO jk = 1, jpk 474 DO jl = 1, jpreci 475 DO jj = 1, jpj 476 ptab(iihom+jl,jj,jk) = zt3ew(jj,jl,jk,2) 477 END DO 478 END DO 479 END DO 480 CASE ( 0 ) 481 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 482 DO jk = 1, jpk 483 DO jl = 1, jpreci 484 DO jj = 1, jpj 485 ptab(jl ,jj,jk) = zt3we(jj,jl,jk,2) 486 ptab(iihom+jl,jj,jk) = zt3ew(jj,jl,jk,2) 487 END DO 488 END DO 489 END DO 490 CASE ( 1 ) 491 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 492 DO jk = 1, jpk 493 DO jl = 1, jpreci 494 DO jj = 1, jpj 495 ptab(jl ,jj,jk) = zt3we(jj,jl,jk,2) 496 END DO 497 END DO 464 498 END DO 465 499 END SELECT … … 471 505 IF( nbondj /= 2 ) THEN ! Read Dirichlet lateral conditions 472 506 ijhom = nlcj-nrecj 473 DO jl = 1, jprecj 474 zt3sn(:,jl,:,1) = ptab(:,ijhom +jl,:) 475 zt3ns(:,jl,:,1) = ptab(:,jprecj+jl,:) 507 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 508 DO jk = 1, jpk 509 DO jl = 1, jprecj 510 DO ji = 1, jpi 511 zt3sn(ji,jl,jk,1) = ptab(ji,ijhom +jl,jk) 512 zt3ns(ji,jl,jk,1) = ptab(ji,jprecj+jl,jk) 513 END DO 514 END DO 476 515 END DO 477 516 ENDIF … … 503 542 SELECT CASE ( nbondj ) 504 543 CASE ( -1 ) 505 DO jl = 1, jprecj 506 ptab(:,ijhom+jl,:) = zt3ns(:,jl,:,2) 507 END DO 508 CASE ( 0 ) 509 DO jl = 1, jprecj 510 ptab(:,jl ,:) = zt3sn(:,jl,:,2) 511 ptab(:,ijhom+jl,:) = zt3ns(:,jl,:,2) 512 END DO 513 CASE ( 1 ) 514 DO jl = 1, jprecj 515 ptab(:,jl,:) = zt3sn(:,jl,:,2) 544 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 545 DO jk = 1, jpk 546 DO jl = 1, jprecj 547 DO ji = 1, jpi 548 ptab(ji,ijhom+jl,jk) = zt3ns(ji,jl,jk,2) 549 END DO 550 END DO 551 END DO 552 CASE ( 0 ) 553 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 554 DO jk = 1, jpk 555 DO jl = 1, jprecj 556 DO ji = 1, jpi 557 ptab(ji,jl ,jk) = zt3sn(ji,jl,jk,2) 558 ptab(ji,ijhom+jl,jk) = zt3ns(ji,jl,jk,2) 559 END DO 560 END DO 561 END DO 562 CASE ( 1 ) 563 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 564 DO jk = 1, jpk 565 DO jl = 1, jprecj 566 DO ji = 1, jpi 567 ptab(ji,jl,jk) = zt3sn(ji,jl,jk,2) 568 END DO 569 END DO 516 570 END DO 517 571 END SELECT … … 902 956 CASE ( -1, 0, 1 ) ! all exept 2 (i.e. close case) 903 957 iihom = nlci-nreci 904 DO jl = 1, jpreci 905 zt2ew(:,jl,1) = pt2d(jpreci+jl,:) 906 zt2we(:,jl,1) = pt2d(iihom +jl,:) 958 !$OMP PARALLEL DO schedule(static) private(jj,jl) 959 DO jj = 1, jpj 960 DO jl = 1, jpreci 961 zt2ew(jj,jl,1) = pt2d(jpreci+jl,jj) 962 zt2we(jj,jl,1) = pt2d(iihom +jl,jj) 963 END DO 907 964 END DO 908 965 END SELECT … … 934 991 SELECT CASE ( nbondi ) 935 992 CASE ( -1 ) 993 !$OMP PARALLEL DO schedule(static) private(jj,jl) 936 994 DO jl = 1, jpreci 937 pt2d(iihom+jl,:) = zt2ew(:,jl,2) 938 END DO 939 CASE ( 0 ) 995 DO jj = 1, jpj 996 pt2d(iihom+jl,jj) = zt2ew(jj,jl,2) 997 END DO 998 END DO 999 CASE ( 0 ) 1000 !$OMP PARALLEL DO schedule(static) private(jj,jl) 940 1001 DO jl = 1, jpreci 941 pt2d(jl ,:) = zt2we(:,jl,2) 942 pt2d(iihom+jl,:) = zt2ew(:,jl,2) 943 END DO 944 CASE ( 1 ) 1002 DO jj = 1, jpj 1003 pt2d(jl ,jj) = zt2we(jj,jl,2) 1004 pt2d(iihom+jl,jj) = zt2ew(jj,jl,2) 1005 END DO 1006 END DO 1007 CASE ( 1 ) 1008 !$OMP PARALLEL DO schedule(static) private(jj,jl) 945 1009 DO jl = 1, jpreci 946 pt2d(jl ,:) = zt2we(:,jl,2) 1010 DO jj = 1, jpj 1011 pt2d(jl ,jj) = zt2we(jj,jl,2) 1012 END DO 947 1013 END DO 948 1014 END SELECT … … 955 1021 IF( nbondj /= 2 ) THEN ! Read Dirichlet lateral conditions 956 1022 ijhom = nlcj-nrecj 1023 !$OMP PARALLEL DO schedule(static) private(ji,jl) 957 1024 DO jl = 1, jprecj 958 zt2sn(:,jl,1) = pt2d(:,ijhom +jl) 959 zt2ns(:,jl,1) = pt2d(:,jprecj+jl) 1025 DO ji = 1, jpi 1026 zt2sn(ji,jl,1) = pt2d(ji,ijhom +jl) 1027 zt2ns(ji,jl,1) = pt2d(ji,jprecj+jl) 1028 END DO 960 1029 END DO 961 1030 ENDIF … … 987 1056 SELECT CASE ( nbondj ) 988 1057 CASE ( -1 ) 1058 !$OMP PARALLEL DO schedule(static) private(ji,jl) 989 1059 DO jl = 1, jprecj 990 pt2d(:,ijhom+jl) = zt2ns(:,jl,2) 991 END DO 992 CASE ( 0 ) 1060 DO ji = 1, jpi 1061 pt2d(ji,ijhom+jl) = zt2ns(ji,jl,2) 1062 END DO 1063 END DO 1064 CASE ( 0 ) 1065 !$OMP PARALLEL DO schedule(static) private(ji,jl) 993 1066 DO jl = 1, jprecj 994 pt2d(:,jl ) = zt2sn(:,jl,2) 995 pt2d(:,ijhom+jl) = zt2ns(:,jl,2) 996 END DO 997 CASE ( 1 ) 1067 DO ji = 1, jpi 1068 pt2d(ji,jl ) = zt2sn(ji,jl,2) 1069 pt2d(ji,ijhom+jl) = zt2ns(ji,jl,2) 1070 END DO 1071 END DO 1072 CASE ( 1 ) 1073 !$OMP PARALLEL DO schedule(static) private(ji,jl) 998 1074 DO jl = 1, jprecj 999 pt2d(:,jl ) = zt2sn(:,jl,2) 1075 DO ji = 1, jpi 1076 pt2d(ji,jl ) = zt2sn(ji,jl,2) 1077 END DO 1000 1078 END DO 1001 1079 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.