Changeset 7698 for trunk/NEMOGCM/NEMO/OPA_SRC/LBC
- Timestamp:
- 2017-02-18T10:02:03+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90
r7646 r7698 381 381 ! 382 382 ! WARNING ptab is defined only between nld and nle 383 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 383 384 DO jk = 1, jpk 384 385 DO jj = nlcj+1, jpj ! added line(s) (inner only) … … 399 400 ! !* Cyclic east-west 400 401 IF( nbondi == 2 .AND. (nperio == 1 .OR. nperio == 4 .OR. nperio == 6) ) THEN 401 ptab( 1 ,:,:) = ptab(jpim1,:,:) 402 ptab(jpi,:,:) = ptab( 2 ,:,:) 402 !$OMP PARALLEL DO schedule(static) private(jk, jj) 403 DO jk = 1, jpk 404 DO jj = 1, jpj 405 ptab( 1 ,jj,jk) = ptab(jpim1,jj,jk) 406 ptab(jpi,jj,jk) = ptab( 2 ,jj,jk) 407 END DO 408 END DO 403 409 ELSE !* closed 404 IF( .NOT. cd_type == 'F' ) ptab( 1 :jpreci,:,:) = zland ! south except F-point 405 ptab(nlci-jpreci+1:jpi ,:,:) = zland ! north 410 IF( .NOT. cd_type == 'F' ) THEN 411 !$OMP PARALLEL DO schedule(static) private(jk, jj) 412 DO jk = 1, jpk 413 DO jj = 1, jpj 414 ptab( 1 :jpreci,jj,jk) = zland ! south except F-point 415 END DO 416 END DO 417 END IF 418 !$OMP PARALLEL DO schedule(static) private(jk, jj) 419 DO jk = 1, jpk 420 DO jj = 1, jpj 421 ptab(nlci-jpreci+1:jpi ,jj,jk) = zland ! north 422 END DO 423 END DO 406 424 ENDIF 407 425 ! North-south cyclic 408 426 IF ( nbondj == 2 .AND. jperio == 7 ) THEN !* cyclic north south only with no mpp split in latitude 409 ptab(:,1 , :) = ptab(:, jpjm1,:) 410 ptab(:,jpj,:) = ptab(:, 2,:) 427 !$OMP PARALLEL DO schedule(static) private(jk, ji) 428 DO jk = 1, jpk 429 DO ji = 1, jpi 430 ptab(ji,1 , jk) = ptab(ji, jpjm1,jk) 431 ptab(ji,jpj,jk) = ptab(ji, 2,jk) 432 END DO 433 END DO 411 434 ELSE ! ! North-South boundaries (closed) 412 IF( .NOT. cd_type == 'F' ) ptab(:, 1 :jprecj,:) = zland ! south except F-point 413 ptab(:,nlcj-jprecj+1:jpj ,:) = zland ! north 435 IF( .NOT. cd_type == 'F' ) THEN 436 !$OMP PARALLEL DO schedule(static) private(jk, ji) 437 DO jk = 1, jpk 438 DO ji = 1, jpi 439 ptab(ji, 1 :jprecj,jk) = zland ! south except F-point 440 END DO 441 END DO 442 END IF 443 !$OMP PARALLEL DO schedule(static) private(jk, ji) 444 DO jk = 1, jpk 445 DO ji = 1, jpi 446 ptab(ji,nlcj-jprecj+1:jpj ,jk) = zland ! north 447 END DO 448 END DO 414 449 ENDIF 415 450 ! … … 423 458 CASE ( -1, 0, 1 ) ! all exept 2 (i.e. close case) 424 459 iihom = nlci-nreci 425 DO jl = 1, jpreci 426 zt3ew(:,jl,:,1) = ptab(jpreci+jl,:,:) 427 zt3we(:,jl,:,1) = ptab(iihom +jl,:,:) 460 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 461 DO jk = 1, jpk 462 DO jj = 1, jpj 463 DO jl = 1, jpreci 464 zt3ew(jj,jl,jk,1) = ptab(jpreci+jl,jj,jk) 465 zt3we(jj,jl,jk,1) = ptab(iihom +jl,jj,jk) 466 END DO 467 END DO 428 468 END DO 429 469 END SELECT … … 455 495 SELECT CASE ( nbondi ) 456 496 CASE ( -1 ) 457 DO jl = 1, jpreci 458 ptab(iihom+jl,:,:) = zt3ew(:,jl,:,2) 459 END DO 460 CASE ( 0 ) 461 DO jl = 1, jpreci 462 ptab(jl ,:,:) = zt3we(:,jl,:,2) 463 ptab(iihom+jl,:,:) = zt3ew(:,jl,:,2) 464 END DO 465 CASE ( 1 ) 466 DO jl = 1, jpreci 467 ptab(jl ,:,:) = zt3we(:,jl,:,2) 497 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 498 DO jk = 1, jpk 499 DO jl = 1, jpreci 500 DO jj = 1, jpj 501 ptab(iihom+jl,jj,jk) = zt3ew(jj,jl,jk,2) 502 END DO 503 END DO 504 END DO 505 CASE ( 0 ) 506 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 507 DO jk = 1, jpk 508 DO jl = 1, jpreci 509 DO jj = 1, jpj 510 ptab(jl ,jj,jk) = zt3we(jj,jl,jk,2) 511 ptab(iihom+jl,jj,jk) = zt3ew(jj,jl,jk,2) 512 END DO 513 END DO 514 END DO 515 CASE ( 1 ) 516 !$OMP PARALLEL DO schedule(static) private(jk, jj, jl) 517 DO jk = 1, jpk 518 DO jl = 1, jpreci 519 DO jj = 1, jpj 520 ptab(jl ,jj,jk) = zt3we(jj,jl,jk,2) 521 END DO 522 END DO 468 523 END DO 469 524 END SELECT … … 475 530 IF( nbondj /= 2 ) THEN ! Read Dirichlet lateral conditions 476 531 ijhom = nlcj-nrecj 477 DO jl = 1, jprecj 478 zt3sn(:,jl,:,1) = ptab(:,ijhom +jl,:) 479 zt3ns(:,jl,:,1) = ptab(:,jprecj+jl,:) 532 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 533 DO jk = 1, jpk 534 DO jl = 1, jprecj 535 DO ji = 1, jpi 536 zt3sn(ji,jl,jk,1) = ptab(ji,ijhom +jl,jk) 537 zt3ns(ji,jl,jk,1) = ptab(ji,jprecj+jl,jk) 538 END DO 539 END DO 480 540 END DO 481 541 ENDIF … … 507 567 SELECT CASE ( nbondj ) 508 568 CASE ( -1 ) 509 DO jl = 1, jprecj 510 ptab(:,ijhom+jl,:) = zt3ns(:,jl,:,2) 511 END DO 512 CASE ( 0 ) 513 DO jl = 1, jprecj 514 ptab(:,jl ,:) = zt3sn(:,jl,:,2) 515 ptab(:,ijhom+jl,:) = zt3ns(:,jl,:,2) 516 END DO 517 CASE ( 1 ) 518 DO jl = 1, jprecj 519 ptab(:,jl,:) = zt3sn(:,jl,:,2) 569 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 570 DO jk = 1, jpk 571 DO jl = 1, jprecj 572 DO ji = 1, jpi 573 ptab(ji,ijhom+jl,jk) = zt3ns(ji,jl,jk,2) 574 END DO 575 END DO 576 END DO 577 CASE ( 0 ) 578 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 579 DO jk = 1, jpk 580 DO jl = 1, jprecj 581 DO ji = 1, jpi 582 ptab(ji,jl ,jk) = zt3sn(ji,jl,jk,2) 583 ptab(ji,ijhom+jl,jk) = zt3ns(ji,jl,jk,2) 584 END DO 585 END DO 586 END DO 587 CASE ( 1 ) 588 !$OMP PARALLEL DO schedule(static) private(jk, ji, jl) 589 DO jk = 1, jpk 590 DO jl = 1, jprecj 591 DO ji = 1, jpi 592 ptab(ji,jl,jk) = zt3sn(ji,jl,jk,2) 593 END DO 594 END DO 520 595 END DO 521 596 END SELECT … … 917 992 CASE ( -1, 0, 1 ) ! all exept 2 (i.e. close case) 918 993 iihom = nlci-nreci 919 DO jl = 1, jpreci 920 zt2ew(:,jl,1) = pt2d(jpreci+jl,:) 921 zt2we(:,jl,1) = pt2d(iihom +jl,:) 994 !$OMP PARALLEL DO schedule(static) private(jj,jl) 995 DO jj = 1, jpj 996 DO jl = 1, jpreci 997 zt2ew(jj,jl,1) = pt2d(jpreci+jl,jj) 998 zt2we(jj,jl,1) = pt2d(iihom +jl,jj) 999 END DO 922 1000 END DO 923 1001 END SELECT … … 949 1027 SELECT CASE ( nbondi ) 950 1028 CASE ( -1 ) 1029 !$OMP PARALLEL DO schedule(static) private(jj,jl) 951 1030 DO jl = 1, jpreci 952 pt2d(iihom+jl,:) = zt2ew(:,jl,2) 953 END DO 954 CASE ( 0 ) 1031 DO jj = 1, jpj 1032 pt2d(iihom+jl,jj) = zt2ew(jj,jl,2) 1033 END DO 1034 END DO 1035 CASE ( 0 ) 1036 !$OMP PARALLEL DO schedule(static) private(jj,jl) 955 1037 DO jl = 1, jpreci 956 pt2d(jl ,:) = zt2we(:,jl,2) 957 pt2d(iihom+jl,:) = zt2ew(:,jl,2) 958 END DO 959 CASE ( 1 ) 1038 DO jj = 1, jpj 1039 pt2d(jl ,jj) = zt2we(jj,jl,2) 1040 pt2d(iihom+jl,jj) = zt2ew(jj,jl,2) 1041 END DO 1042 END DO 1043 CASE ( 1 ) 1044 !$OMP PARALLEL DO schedule(static) private(jj,jl) 960 1045 DO jl = 1, jpreci 961 pt2d(jl ,:) = zt2we(:,jl,2) 1046 DO jj = 1, jpj 1047 pt2d(jl ,jj) = zt2we(jj,jl,2) 1048 END DO 962 1049 END DO 963 1050 END SELECT … … 970 1057 IF( nbondj /= 2 ) THEN ! Read Dirichlet lateral conditions 971 1058 ijhom = nlcj-nrecj 1059 !$OMP PARALLEL DO schedule(static) private(ji,jl) 972 1060 DO jl = 1, jprecj 973 zt2sn(:,jl,1) = pt2d(:,ijhom +jl) 974 zt2ns(:,jl,1) = pt2d(:,jprecj+jl) 1061 DO ji = 1, jpi 1062 zt2sn(ji,jl,1) = pt2d(ji,ijhom +jl) 1063 zt2ns(ji,jl,1) = pt2d(ji,jprecj+jl) 1064 END DO 975 1065 END DO 976 1066 ENDIF … … 1002 1092 SELECT CASE ( nbondj ) 1003 1093 CASE ( -1 ) 1094 !$OMP PARALLEL DO schedule(static) private(ji,jl) 1004 1095 DO jl = 1, jprecj 1005 pt2d(:,ijhom+jl) = zt2ns(:,jl,2) 1006 END DO 1007 CASE ( 0 ) 1096 DO ji = 1, jpi 1097 pt2d(ji,ijhom+jl) = zt2ns(ji,jl,2) 1098 END DO 1099 END DO 1100 CASE ( 0 ) 1101 !$OMP PARALLEL DO schedule(static) private(ji,jl) 1008 1102 DO jl = 1, jprecj 1009 pt2d(:,jl ) = zt2sn(:,jl,2) 1010 pt2d(:,ijhom+jl) = zt2ns(:,jl,2) 1011 END DO 1012 CASE ( 1 ) 1103 DO ji = 1, jpi 1104 pt2d(ji,jl ) = zt2sn(ji,jl,2) 1105 pt2d(ji,ijhom+jl) = zt2ns(ji,jl,2) 1106 END DO 1107 END DO 1108 CASE ( 1 ) 1109 !$OMP PARALLEL DO schedule(static) private(ji,jl) 1013 1110 DO jl = 1, jprecj 1014 pt2d(:,jl ) = zt2sn(:,jl,2) 1111 DO ji = 1, jpi 1112 pt2d(ji,jl ) = zt2sn(ji,jl,2) 1113 END DO 1015 1114 END DO 1016 1115 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.