New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7753 for trunk/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90 – NEMO

Ignore:
Timestamp:
2017-03-03T12:46:59+01:00 (7 years ago)
Author:
mocavero
Message:

Reverting trunk to remove OpenMP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r7698 r7753  
    381381         ! 
    382382         ! WARNING ptab is defined only between nld and nle 
    383 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    384383         DO jk = 1, jpk 
    385384            DO jj = nlcj+1, jpj                 ! added line(s)   (inner only) 
     
    400399         !                                        !* Cyclic east-west 
    401400         IF( nbondi == 2 .AND. (nperio == 1 .OR. nperio == 4 .OR. nperio == 6) ) THEN 
    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 
     401            ptab( 1 ,:,:) = ptab(jpim1,:,:) 
     402            ptab(jpi,:,:) = ptab(  2  ,:,:) 
    409403         ELSE                                     !* closed 
    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 
     404            IF( .NOT. cd_type == 'F' )   ptab(     1       :jpreci,:,:) = zland    ! south except F-point 
     405                                         ptab(nlci-jpreci+1:jpi   ,:,:) = zland    ! north 
    424406         ENDIF 
    425407                                          ! North-south cyclic 
    426408         IF ( nbondj == 2 .AND. jperio == 7 )    THEN !* cyclic north south only with no mpp split in latitude 
    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 
     409            ptab(:,1 , :) = ptab(:, jpjm1,:) 
     410            ptab(:,jpj,:) = ptab(:,     2,:) 
    434411         ELSE   !                                   ! North-South boundaries (closed) 
    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 
     412            IF( .NOT. cd_type == 'F' )   ptab(:,     1       :jprecj,:) = zland       ! south except F-point 
     413                                         ptab(:,nlcj-jprecj+1:jpj   ,:) = zland       ! north 
    449414         ENDIF 
    450415         ! 
     
    458423      CASE ( -1, 0, 1 )                ! all exept 2 (i.e. close case) 
    459424         iihom = nlci-nreci 
    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 
     425         DO jl = 1, jpreci 
     426            zt3ew(:,jl,:,1) = ptab(jpreci+jl,:,:) 
     427            zt3we(:,jl,:,1) = ptab(iihom +jl,:,:) 
    468428         END DO 
    469429      END SELECT 
     
    495455      SELECT CASE ( nbondi ) 
    496456      CASE ( -1 ) 
    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 
     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) 
    523468         END DO 
    524469      END SELECT 
     
    530475      IF( nbondj /= 2 ) THEN      ! Read Dirichlet lateral conditions 
    531476         ijhom = nlcj-nrecj 
    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 
     477         DO jl = 1, jprecj 
     478            zt3sn(:,jl,:,1) = ptab(:,ijhom +jl,:) 
     479            zt3ns(:,jl,:,1) = ptab(:,jprecj+jl,:) 
    540480         END DO 
    541481      ENDIF 
     
    567507      SELECT CASE ( nbondj ) 
    568508      CASE ( -1 ) 
    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 
     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) 
    595520         END DO 
    596521      END SELECT 
     
    992917      CASE ( -1, 0, 1 )                ! all exept 2 (i.e. close case) 
    993918         iihom = nlci-nreci 
    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 
     919         DO jl = 1, jpreci 
     920            zt2ew(:,jl,1) = pt2d(jpreci+jl,:) 
     921            zt2we(:,jl,1) = pt2d(iihom +jl,:) 
    1000922         END DO 
    1001923      END SELECT 
     
    1027949      SELECT CASE ( nbondi ) 
    1028950      CASE ( -1 ) 
    1029 !$OMP PARALLEL DO schedule(static) private(jj,jl) 
    1030951         DO jl = 1, jpreci 
    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) 
     952            pt2d(iihom+jl,:) = zt2ew(:,jl,2) 
     953         END DO 
     954      CASE ( 0 ) 
    1037955         DO jl = 1, jpreci 
    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) 
     956            pt2d(jl      ,:) = zt2we(:,jl,2) 
     957            pt2d(iihom+jl,:) = zt2ew(:,jl,2) 
     958         END DO 
     959      CASE ( 1 ) 
    1045960         DO jl = 1, jpreci 
    1046             DO jj = 1, jpj 
    1047                pt2d(jl      ,jj) = zt2we(jj,jl,2) 
    1048             END DO 
     961            pt2d(jl      ,:) = zt2we(:,jl,2) 
    1049962         END DO 
    1050963      END SELECT 
     
    1057970      IF( nbondj /= 2 ) THEN      ! Read Dirichlet lateral conditions 
    1058971         ijhom = nlcj-nrecj 
    1059 !$OMP PARALLEL DO schedule(static) private(ji,jl) 
    1060972         DO jl = 1, jprecj 
    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 
     973            zt2sn(:,jl,1) = pt2d(:,ijhom +jl) 
     974            zt2ns(:,jl,1) = pt2d(:,jprecj+jl) 
    1065975         END DO 
    1066976      ENDIF 
     
    10921002      SELECT CASE ( nbondj ) 
    10931003      CASE ( -1 ) 
    1094 !$OMP PARALLEL DO schedule(static) private(ji,jl) 
    10951004         DO jl = 1, jprecj 
    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) 
     1005            pt2d(:,ijhom+jl) = zt2ns(:,jl,2) 
     1006         END DO 
     1007      CASE ( 0 ) 
    11021008         DO jl = 1, jprecj 
    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) 
     1009            pt2d(:,jl      ) = zt2sn(:,jl,2) 
     1010            pt2d(:,ijhom+jl) = zt2ns(:,jl,2) 
     1011         END DO 
     1012      CASE ( 1 ) 
    11101013         DO jl = 1, jprecj 
    1111             DO ji = 1, jpi 
    1112                pt2d(ji,jl      ) = zt2sn(ji,jl,2) 
    1113             END DO 
     1014            pt2d(:,jl      ) = zt2sn(:,jl,2) 
    11141015         END DO 
    11151016      END SELECT 
Note: See TracChangeset for help on using the changeset viewer.