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 9190 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/LBC/lbc_nfd_nogather_generic.h90 – NEMO

Ignore:
Timestamp:
2018-01-06T15:18:23+01:00 (6 years ago)
Author:
gm
Message:

dev_merge_2017: OPA_SRC: style only, results unchanged

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/LBC/lbc_nfd_nogather_generic.h90

    r9019 r9190  
    5555 
    5656   SUBROUTINE ROUTINE_NFD( ptab, ptab2, cd_nat, psgn, kfld ) 
    57       ! 
    5857      !!---------------------------------------------------------------------- 
    5958      !! 
     
    8584      ! 
    8685      DO jf = 1, ipf                      ! Loop over the number of arrays to be processed 
     86         ! 
    8787         SELECT CASE ( npolj ) 
    8888         ! 
     
    9090            ! 
    9191            SELECT CASE ( NAT_IN(jf) ) 
    92                CASE ( 'T' , 'W' )                         ! T-, W-point 
    93                   IF ( nimpp /= 1 ) THEN   ;   startloop = 1 
    94                   ELSE                     ;   startloop = 2 
    95                ENDIF 
    96                   ! 
     92            ! 
     93            CASE ( 'T' , 'W' )                         ! T-, W-point 
     94               IF ( nimpp /= 1 ) THEN   ;   startloop = 1 
     95               ELSE                     ;   startloop = 2 
     96               ENDIF 
     97               ! 
    9798               DO ji = startloop, nlci 
    98                  ijt=jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 4 
    99                         ARRAY_IN(ji,ijpj,:,:,jf) = SGN_IN(jf) * ARRAY2_IN(ijt,ijpj-2,:,:,jf) 
    100                END DO 
    101                IF(nimpp .eq. 1) THEN 
    102                  ARRAY_IN(1,ijpj,:,:,jf) = SGN_IN(jf) * ARRAY_IN(3,ijpj-2,:,:,jf) 
    103                ENDIF 
    104     
     99                  ijt = jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 4 
     100                  ARRAY_IN(ji,ijpj,:,:,jf) = SGN_IN(jf) * ARRAY2_IN(ijt,ijpj-2,:,:,jf) 
     101               END DO 
     102               IF( nimpp == 1 ) THEN 
     103                  ARRAY_IN(1,ijpj,:,:,jf) = SGN_IN(jf) * ARRAY_IN(3,ijpj-2,:,:,jf) 
     104               ENDIF 
     105               ! 
    105106               IF( nimpp >= jpiglo/2+1 ) THEN 
    106107                  startloop = 1 
     
    110111                  startloop = nlci + 1 
    111112               ENDIF 
    112                IF(startloop <= nlci) THEN 
    113                DO ji = startloop, nlci 
    114                   ijt = jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 4 
    115                   jia = ji + nimpp - 1 
    116                   ijta = jpiglo - jia + 2 
    117                   IF( ijta >= startloop+nimpp-1 .AND. ijta < jia ) THEN 
    118                              ARRAY_IN(ji,ijpjm1,:,:,jf) = SGN_IN(jf) * ARRAY_IN(ijta-nimpp+1,ijpjm1,:,:,jf) 
    119                   ELSE 
    120                              ARRAY_IN(ji,ijpjm1,:,:,jf) = SGN_IN(jf) * ARRAY2_IN(ijt,ijpjm1,:,:,jf) 
    121                   ENDIF 
    122                END DO 
     113               IF( startloop <= nlci ) THEN 
     114                  DO ji = startloop, nlci 
     115                     ijt = jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 4 
     116                     jia = ji + nimpp - 1 
     117                     ijta = jpiglo - jia + 2 
     118                     IF( ijta >= startloop+nimpp-1 .AND. ijta < jia ) THEN 
     119                        ARRAY_IN(ji,ijpjm1,:,:,jf) = SGN_IN(jf) * ARRAY_IN(ijta-nimpp+1,ijpjm1,:,:,jf) 
     120                     ELSE 
     121                        ARRAY_IN(ji,ijpjm1,:,:,jf) = SGN_IN(jf) * ARRAY2_IN(ijt,ijpjm1,:,:,jf) 
     122                     ENDIF 
     123                  END DO 
    123124               ENDIF 
    124125               ! 
     
    289290               ! 
    290291            CASE ( 'I' )                                  ! ice U-V point (I-point) 
    291                   IF( nimpp /= 1 ) THEN 
    292                      startloop = 1 
    293                   ELSE 
    294                      startloop = 2 
    295                   ENDIF 
    296                   IF( nimpp + nlci - 1 /= jpiglo ) THEN 
    297                      endloop = nlci 
    298                   ELSE 
    299                      endloop = nlci - 1 
    300                   ENDIF 
    301                   DO ji = startloop , endloop 
    302                      ijt = jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 4 
    303                      ARRAY_IN(ji,ijpj,:,:,jf) = 0.5 * (ARRAY_IN(ji,ijpjm1,:,:,jf) + SGN_IN(jf) * ARRAY2_IN(ijt,ijpjm1,:,:,jf)) 
    304                   END DO 
    305                   ! 
     292               IF( nimpp /= 1 ) THEN 
     293                  startloop = 1 
     294               ELSE 
     295                  startloop = 2 
     296               ENDIF 
     297               IF( nimpp + nlci - 1 /= jpiglo ) THEN 
     298                  endloop = nlci 
     299               ELSE 
     300                  endloop = nlci - 1 
     301               ENDIF 
     302               DO ji = startloop , endloop 
     303                  ijt = jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 4 
     304                  ARRAY_IN(ji,ijpj,:,:,jf) = 0.5 * (ARRAY_IN(ji,ijpjm1,:,:,jf) + SGN_IN(jf) * ARRAY2_IN(ijt,ijpjm1,:,:,jf)) 
     305               END DO 
     306               ! 
    306307            END SELECT 
    307308            ! 
     
    310311            SELECT CASE ( NAT_IN(jf)) 
    311312            CASE ( 'T' , 'U' , 'V' , 'W' )                 ! T-, U-, V-, W-points 
    312                   ARRAY_IN(:, 1  ,:,:,jf) = 0._wp 
    313                   ARRAY_IN(:,ijpj,:,:,jf) = 0._wp 
     313               ARRAY_IN(:, 1  ,:,:,jf) = 0._wp 
     314               ARRAY_IN(:,ijpj,:,:,jf) = 0._wp 
    314315            CASE ( 'F' )                                   ! F-point 
    315                   ARRAY_IN(:,ijpj,:,:,jf) = 0._wp 
     316               ARRAY_IN(:,ijpj,:,:,jf) = 0._wp 
    316317            CASE ( 'I' )                                   ! ice U-V point 
    317                   ARRAY_IN(:, 1  ,:,:,jf) = 0._wp 
    318                   ARRAY_IN(:,ijpj,:,:,jf) = 0._wp 
     318               ARRAY_IN(:, 1  ,:,:,jf) = 0._wp 
     319               ARRAY_IN(:,ijpj,:,:,jf) = 0._wp 
    319320            END SELECT 
    320321            ! 
Note: See TracChangeset for help on using the changeset viewer.