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 12807 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/TOP/prtctl_trc.F90 – NEMO

Ignore:
Timestamp:
2020-04-23T15:14:45+02:00 (4 years ago)
Author:
smasson
Message:

Extra_Halo: input file only over inner domain + new variables names, see #2366

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/TOP/prtctl_trc.F90

    r12377 r12807  
    1818   PRIVATE 
    1919 
    20    INTEGER , DIMENSION(:), ALLOCATABLE ::   numid_trc          !: logical unit  
    21    INTEGER , DIMENSION(:), ALLOCATABLE ::   nlditl , nldjtl    !: first, last indoor index for each i-domain 
    22    INTEGER , DIMENSION(:), ALLOCATABLE ::   nleitl , nlejtl    !: first, last indoor index for each j-domain 
    23    INTEGER , DIMENSION(:), ALLOCATABLE ::   nimpptl, njmpptl   !: i-, j-indexes for each processor 
    24    INTEGER , DIMENSION(:), ALLOCATABLE ::   nlcitl , nlcjtl    !: dimensions of every subdomain 
    25    INTEGER , DIMENSION(:), ALLOCATABLE ::   ibonitl, ibonjtl 
     20   INTEGER , DIMENSION(:), ALLOCATABLE ::   numid_trc            !: logical unit  
     21   INTEGER , DIMENSION(:), ALLOCATABLE ::   nis0allp, njs0allp   !: first, last indoor index for each i-domain 
     22   INTEGER , DIMENSION(:), ALLOCATABLE ::   nie0allp, nje0allp   !: first, last indoor index for each j-domain 
     23   INTEGER , DIMENSION(:), ALLOCATABLE ::    nimpptl, njmpptl   !: i-, j-indexes for each processor 
     24   INTEGER , DIMENSION(:), ALLOCATABLE ::    jpiallp,  jpjallp   !: dimensions of every subdomain 
     25   INTEGER , DIMENSION(:), ALLOCATABLE ::    ibonitl, ibonjtl 
    2626 
    2727   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   tra_ctl         !: previous trend values 
     
    105105         IF( .NOT. lsp_area ) THEN 
    106106            IF (lk_mpp )   THEN 
    107                nictls = MAX( 1, nlditl(js) - overlap ) 
    108                nictle = nleitl(js) + overlap * MIN( 1, nlcitl(js) - nleitl(js))  
    109                njctls = MAX( 1, nldjtl(js) - overlap ) 
    110                njctle = nlejtl(js) + overlap * MIN( 1, nlcjtl(js) - nlejtl(js)) 
     107               nictls = MAX( 1, nis0allp(js) - overlap ) 
     108               nictle = nie0allp(js) + overlap * MIN( 1, jpiallp(js) - nie0allp(js))  
     109               njctls = MAX( 1, njs0allp(js) - overlap ) 
     110               njctle = nje0allp(js) + overlap * MIN( 1, jpjallp(js) - nje0allp(js)) 
    111111               ! Do not take into account the bound of the domain 
    112112               IF( ibonitl(js) == -1 .OR. ibonitl(js) == 2 )   nictls = MAX( 2, nictls ) 
    113                IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 )   nictle = MIN( nictle, nleitl(js) - 1 ) 
     113               IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 )   nictle = MIN( nictle, nie0allp(js) - 1 ) 
    114114               IF( ibonjtl(js) == -1 .OR. ibonjtl(js) == 2 )   njctls = MAX( 2, njctls ) 
    115                IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 )   njctle = MIN( njctle, nlejtl(js) - 1 ) 
     115               IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 )   njctle = MIN( njctle, nje0allp(js) - 1 ) 
    116116            ELSE 
    117                nictls = MAX( 1, nimpptl(js) + nlditl(js) - 1 - overlap ) 
    118                nictle = nimpptl(js) + nleitl(js) - 1 + overlap * MIN( 1, nlcitl(js) - nleitl(js) )  
    119                njctls = MAX( 1, njmpptl(js) + nldjtl(js) - 1 - overlap ) 
    120                njctle = njmpptl(js) + nlejtl(js) - 1 + overlap * MIN( 1, nlcjtl(js) - nlejtl(js) )  
     117               nictls = MAX( 1, nimpptl(js) + nis0allp(js) - 1 - overlap ) 
     118               nictle = nimpptl(js) + nie0allp(js) - 1 + overlap * MIN( 1, jpiallp(js) - nie0allp(js) )  
     119               njctls = MAX( 1, njmpptl(js) + njs0allp(js) - 1 - overlap ) 
     120               njctle = njmpptl(js) + nje0allp(js) - 1 + overlap * MIN( 1, jpjallp(js) - nje0allp(js) )  
    121121               ! Do not take into account the bound of the domain 
    122122               IF( ibonitl(js) == -1 .OR. ibonitl(js) == 2 )   nictls = MAX( 2, nictls ) 
    123123               IF( ibonjtl(js) == -1 .OR. ibonjtl(js) == 2 )   njctls = MAX( 2, njctls ) 
    124                IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 )   nictle = MIN( nictle, nimpptl(js) + nleitl(js) - 2 ) 
    125                IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 )   njctle = MIN( njctle, njmpptl(js) + nlejtl(js) - 2 ) 
     124               IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 )   nictle = MIN( nictle, nimpptl(js) + nie0allp(js) - 2 ) 
     125               IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 )   njctle = MIN( njctle, njmpptl(js) + nje0allp(js) - 2 ) 
    126126            ENDIF 
    127127         ENDIF 
     
    193193 
    194194      !                             ! Allocate arrays 
    195       ALLOCATE( nlditl (ijsplt) ) 
    196       ALLOCATE( nldjtl (ijsplt) ) 
    197       ALLOCATE( nleitl (ijsplt) ) 
    198       ALLOCATE( nlejtl (ijsplt) ) 
     195      ALLOCATE( nis0allp(ijsplt) ) 
     196      ALLOCATE( njs0allp(ijsplt) ) 
     197      ALLOCATE( nie0allp(ijsplt) ) 
     198      ALLOCATE( nje0allp(ijsplt) ) 
    199199      ALLOCATE( nimpptl(ijsplt) ) 
    200200      ALLOCATE( njmpptl(ijsplt) ) 
    201       ALLOCATE( nlcitl (ijsplt) ) 
    202       ALLOCATE( nlcjtl (ijsplt) ) 
     201      ALLOCATE( jpiallp(ijsplt) ) 
     202      ALLOCATE( jpjallp(ijsplt) ) 
    203203      ALLOCATE( tra_ctl(jptra,ijsplt) ) 
    204204      ALLOCATE( ibonitl(ijsplt) ) 
     
    213213         cl_run = 'MULTI processor run' 
    214214         ! use indices for each area computed by mpp_init subroutine 
    215          nlditl(1:jpnij) = nldit(:)  
    216          nleitl(1:jpnij) = nleit(:)  
    217          nldjtl(1:jpnij) = nldjt(:)  
    218          nlejtl(1:jpnij) = nlejt(:)  
     215         nis0allp(1:jpnij) = nis0all(:)  
     216         nie0allp(1:jpnij) = nie0all(:)  
     217         njs0allp(1:jpnij) = njs0all(:)  
     218         nje0allp(1:jpnij) = nje0all(:)  
    219219         ! 
    220220         nimpptl(1:jpnij) = nimppt(:) 
    221221         njmpptl(1:jpnij) = njmppt(:) 
    222222         ! 
    223          nlcitl(1:jpnij) = nlcit(:) 
    224          nlcjtl(1:jpnij) = nlcjt(:) 
     223         jpiallp(1:jpnij) = jpiall(:) 
     224         jpjallp(1:jpnij) = jpjall(:) 
    225225         ! 
    226226         ibonitl(1:jpnij) = ibonit(:) 
     
    254254         IF( .NOT. lsp_area )   THEN 
    255255            IF ( lk_mpp )   THEN 
    256                nictls = nlditl(js)  
    257                nictle = nleitl(js) 
    258                njctls = nldjtl(js) 
    259                njctle = nlejtl(js) 
     256               nictls = nis0allp(js)  
     257               nictle = nie0allp(js) 
     258               njctls = njs0allp(js) 
     259               njctle = nje0allp(js) 
    260260            ELSE 
    261                nictls = nimpptl(js) + nlditl(js) - 1 
    262                nictle = nimpptl(js) + nleitl(js) - 1 
    263                njctls = njmpptl(js) + nldjtl(js) - 1 
    264                njctle = njmpptl(js) + nlejtl(js) - 1 
     261               nictls = nimpptl(js) + nis0allp(js) - 1 
     262               nictle = nimpptl(js) + nie0allp(js) - 1 
     263               njctls = njmpptl(js) + njs0allp(js) - 1 
     264               njctle = njmpptl(js) + nje0allp(js) - 1 
    265265            ENDIF 
    266266         ENDIF 
     
    269269         WRITE(j_id,*) '~~~~~~~' 
    270270         WRITE(j_id,*) 
    271          WRITE(j_id,9000)'                                nlej   = ', nlejtl(js), '              ' 
     271         WRITE(j_id,9000)'                                Nje0   = ', nje0allp(js), '              ' 
    272272         WRITE(j_id,9000)'                  ------------- njctle = ', njctle, ' -------------' 
    273273         WRITE(j_id,9001)'                  |                                       |' 
     
    275275         WRITE(j_id,9001)'                  |                                       |' 
    276276         WRITE(j_id,9002)'           nictls = ', nictls,  '                           nictle = ', nictle 
    277          WRITE(j_id,9002)'           nldi   = ', nlditl(js),  '                           nlei   = ', nleitl(js) 
     277         WRITE(j_id,9002)'           Nis0   = ', nis0allp(js),  '                           Nie0   = ', nie0allp(js) 
    278278         WRITE(j_id,9001)'                  |                                       |' 
    279279         WRITE(j_id,9001)'                  |                                       |' 
    280280         WRITE(j_id,9001)'                  |                                       |' 
    281281         WRITE(j_id,9004)'  njmpp  = ',njmpptl(js),'   ------------- njctls = ', njctls, ' -------------' 
    282          WRITE(j_id,9003)'           nimpp  = ', nimpptl(js), '        nldj   = ', nldjtl(js), '              ' 
     282         WRITE(j_id,9003)'           nimpp  = ', nimpptl(js), '        Njs0   = ', njs0allp(js), '              ' 
    283283         WRITE(j_id,*) 
    284284         WRITE(j_id,*) 
Note: See TracChangeset for help on using the changeset viewer.