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 8860 for branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/OPA_SRC/LBC/lbc_nfd_ext_generic.h90 – NEMO

Ignore:
Timestamp:
2017-11-30T16:11:05+01:00 (6 years ago)
Author:
acc
Message:

Branch 2017/dev_r8126_ROBUST08_no_ghost. Revamp of extended halo north-fold icb routines which makes the logic cleaner and more understandable. Sucessfully SETTE tested and continuity of trajectories across the north-fold have been verified

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8126_ROBUST08_no_ghost/NEMOGCM/NEMO/OPA_SRC/LBC/lbc_nfd_ext_generic.h90

    r8854 r8860  
    1010#define ARRAY_TYPE(i,j,k,l,f)    REAL(wp),INTENT(inout)::ARRAY_IN(i,j,k,l,f) 
    1111 
    12    SUBROUTINE ROUTINE_NFD( ptab, cd_nat, psgn, ipr2dj ) 
     12   SUBROUTINE ROUTINE_NFD( ptab, cd_nat, psgn, kextj ) 
    1313      ARRAY_TYPE(:,:,:,:,:)                             ! array or pointer of arrays on which the boundary condition is applied 
    1414      CHARACTER(len=1) , INTENT(in   ) ::   NAT_IN(:)   ! nature of array grid-points 
    1515      REAL(wp)         , INTENT(in   ) ::   SGN_IN(:)   ! sign used across the north fold boundary 
    16       INTEGER          , INTENT(in   ) ::   ipr2dj      ! extra halo width to exchange 
     16      INTEGER          , INTENT(in   ) ::   kextj       ! extra halo width at north fold 
    1717      ! 
    1818      INTEGER  ::    ji,  jj,  jk,  jl, jh,  jf   ! dummy loop indices 
     
    3131      END SELECT 
    3232      ! 
    33       IF (jpni > 1 ) ipj = ipj + ipr2dj 
    34       ! 
    3533      ipjm1 = ipj-1 
    3634 
     
    4442            SELECT CASE ( NAT_IN(jf)  ) 
    4543            CASE ( 'T' , 'W' )                         ! T-, W-point 
    46                DO jh = 0, ipr2dj 
     44               DO jh = 0, kextj 
    4745                  DO ji = 2, jpiglo 
    4846                     ijt = jpiglo-ji+2 
     
    5654               END DO 
    5755            CASE ( 'U' )                               ! U-point 
    58                DO jh = 0, ipr2dj 
     56               DO jh = 0, kextj 
    5957                  DO ji = 1, jpiglo-1 
    6058                     iju = jpiglo-ji+1 
     
    6967               END DO 
    7068            CASE ( 'V' )                               ! V-point 
    71                DO jh = 0, ipr2dj 
     69               DO jh = 0, kextj 
    7270                  DO ji = 2, jpiglo 
    7371                     ijt = jpiglo-ji+2 
     
    7876               END DO 
    7977            CASE ( 'F' )                               ! F-point 
    80                DO jh = 0, ipr2dj 
     78               DO jh = 0, kextj 
    8179                  DO ji = 1, jpiglo-1 
    8280                     iju = jpiglo-ji+1 
     
    9391            SELECT CASE ( NAT_IN(jf)  ) 
    9492            CASE ( 'T' , 'W' )                         ! T-, W-point 
    95                DO jh = 0, ipr2dj 
     93               DO jh = 0, kextj 
    9694                  DO ji = 1, jpiglo 
    9795                     ijt = jpiglo-ji+1 
     
    10098               END DO 
    10199            CASE ( 'U' )                               ! U-point 
    102                DO jh = 0, ipr2dj 
     100               DO jh = 0, kextj 
    103101                  DO ji = 1, jpiglo-1 
    104102                     iju = jpiglo-ji 
     
    108106               END DO 
    109107            CASE ( 'V' )                               ! V-point 
    110                DO jh = 0, ipr2dj 
     108               DO jh = 0, kextj 
    111109                  DO ji = 1, jpiglo 
    112110                     ijt = jpiglo-ji+1 
     
    119117               END DO 
    120118            CASE ( 'F' )                               ! F-point 
    121                DO jh = 0, ipr2dj 
     119               DO jh = 0, kextj 
    122120                  DO ji = 1, jpiglo-1 
    123121                     iju = jpiglo-ji 
     
    136134            SELECT CASE ( NAT_IN(jf) ) 
    137135            CASE ( 'T' , 'U' , 'V' , 'W' )             ! T-, U-, V-, W-points 
    138                ARRAY_IN(:,  1:1-ipr2dj  ,:,:,jf) = 0._wp 
    139                ARRAY_IN(:,ipj:ipj+ipr2dj,:,:,jf) = 0._wp 
     136               ARRAY_IN(:,  1:1-kextj  ,:,:,jf) = 0._wp 
     137               ARRAY_IN(:,ipj:ipj+kextj,:,:,jf) = 0._wp 
    140138            CASE ( 'F' )                               ! F-point 
    141                ARRAY_IN(:,ipj:ipj+ipr2dj,:,:,jf) = 0._wp 
     139               ARRAY_IN(:,ipj:ipj+kextj,:,:,jf) = 0._wp 
    142140            END SELECT 
    143141            ! 
Note: See TracChangeset for help on using the changeset viewer.