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 9440 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90 – NEMO

Ignore:
Timestamp:
2018-03-27T15:52:54+02:00 (6 years ago)
Author:
acc
Message:

Branch 2017/dev_merge_2017. Reorganisation of nemogcm.F90 and mppini.F90. Stage 5: Enhancement to prtctl and suppression of overlap option; see ticket #2070

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90

    r9125 r9440  
    4242 
    4343   SUBROUTINE prt_ctl (tab2d_1, tab3d_1, mask1, clinfo1, tab2d_2, tab3d_2,   & 
    44       &                                  mask2, clinfo2, ovlap, kdim, clinfo3 ) 
     44      &                                  mask2, clinfo2, kdim, clinfo3 ) 
    4545      !!---------------------------------------------------------------------- 
    4646      !!                     ***  ROUTINE prt_ctl  *** 
     
    7474      !!                    mask2   : mask (3D) to apply to the tab[23]d_2 array 
    7575      !!                    clinfo2 : information about the tab[23]d_2 array 
    76       !!                    ovlap   : overlap value 
    7776      !!                    kdim    : k- direction for 3D arrays  
    7877      !!                    clinfo3 : additional information  
     
    8685      REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL ::   mask2 
    8786      CHARACTER (len=*)         , INTENT(in), OPTIONAL ::   clinfo2 
    88       INTEGER                   , INTENT(in), OPTIONAL ::   ovlap 
    8987      INTEGER                   , INTENT(in), OPTIONAL ::   kdim 
    9088      CHARACTER (len=*)         , INTENT(in), OPTIONAL ::   clinfo3 
    9189      ! 
    9290      CHARACTER (len=15) :: cl2 
    93       INTEGER ::   overlap, jn, sind, eind, kdir,j_id 
     91      INTEGER ::  jn, sind, eind, kdir,j_id 
    9492      REAL(wp) :: zsum1, zsum2, zvctl1, zvctl2 
    9593      REAL(wp), DIMENSION(jpi,jpj)     :: ztab2d_1, ztab2d_2 
     
    9896 
    9997      ! Arrays, scalars initialization  
    100       overlap   = 0 
    10198      kdir      = jpkm1 
    10299      cl2       = '' 
     
    114111      ! Control of optional arguments 
    115112      IF( PRESENT(clinfo2) )   cl2                  = clinfo2 
    116       IF( PRESENT(ovlap)   )   overlap              = ovlap 
    117113      IF( PRESENT(kdim)    )   kdir                 = kdim 
    118114      IF( PRESENT(tab2d_1) )   ztab2d_1(:,:)        = tab2d_1(:,:) 
     
    138134         IF( .NOT. lsp_area ) THEN 
    139135            IF (lk_mpp .AND. jpnij > 1)   THEN 
    140                nictls = MAX( 1, nlditl(jn) - overlap ) 
    141                nictle = nleitl(jn) + overlap * MIN( 1, nlcitl(jn) - nleitl(jn))  
    142                njctls = MAX( 1, nldjtl(jn) - overlap ) 
    143                njctle = nlejtl(jn) + overlap * MIN( 1, nlcjtl(jn) - nlejtl(jn)) 
     136               nictls = MAX(  1, nlditl(jn) ) 
     137               nictle = MIN(jpi, nleitl(jn) ) 
     138               njctls = MAX(  1, nldjtl(jn) ) 
     139               njctle = MIN(jpj, nlejtl(jn) ) 
    144140               ! Do not take into account the bound of the domain 
    145141               IF( ibonitl(jn) == -1 .OR. ibonitl(jn) == 2 ) nictls = MAX(2, nictls) 
     
    148144               IF( ibonjtl(jn) ==  1 .OR. ibonjtl(jn) == 2 ) njctle = MIN(njctle, nlejtl(jn) - 1) 
    149145            ELSE 
    150                nictls = MAX( 1, nimpptl(jn) + nlditl(jn) - 1 - overlap ) 
    151                nictle = nimpptl(jn) + nleitl(jn) - 1 + overlap * MIN( 1, nlcitl(jn) - nleitl(jn) )  
    152                njctls = MAX( 1, njmpptl(jn) + nldjtl(jn) - 1 - overlap ) 
    153                njctle = njmpptl(jn) + nlejtl(jn) - 1 + overlap * MIN( 1, nlcjtl(jn) - nlejtl(jn) )  
     146               nictls = MAX(  1, nimpptl(jn) - 1 + nlditl(jn) ) 
     147               nictle = MIN(jpi, nimpptl(jn) - 1 + nleitl(jn) ) 
     148               njctls = MAX(  1, njmpptl(jn) - 1 + nldjtl(jn) ) 
     149               njctle = MIN(jpj, njmpptl(jn) - 1 + nlejtl(jn) ) 
    154150               ! Do not take into account the bound of the domain 
    155151               IF( ibonitl(jn) == -1 .OR. ibonitl(jn) == 2 ) nictls = MAX(2, nictls) 
     
    420416      INTEGER, DIMENSION(jpi,jpj) ::   iimpptl, ijmpptl, ilcitl, ilcjtl   ! workspace 
    421417      REAL(wp) ::   zidom, zjdom            ! temporary scalars 
     418      INTEGER ::   inum                     ! local logical unit 
    422419      !!---------------------------------------------------------------------- 
    423420 
     
    569566      END DO 
    570567      ! 
     568      ! Save processor layout in layout_prtctl.dat file  
     569      IF(lwp) THEN 
     570         CALL ctl_opn( inum, 'layout_prtctl.dat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., narea ) 
     571         WRITE(inum,'(a)') 'nproc nlcil nlcjl nldil nldjl nleil nlejl nimpptl njmpptl ibonitl ibonjtl' 
     572         ! 
     573         DO jn = 1, ijsplt 
     574            WRITE(inum,'(i5,6i6,4i8)') jn-1,nlcitl(jn),  nlcjtl(jn), & 
     575               &                            nlditl(jn),  nldjtl(jn), & 
     576               &                            nleitl(jn),  nlejtl(jn), & 
     577               &                           nimpptl(jn), njmpptl(jn), & 
     578               &                           ibonitl(jn), ibonjtl(jn) 
     579         END DO 
     580         CLOSE(inum)    
     581      END IF 
    571582      ! 
    572583      ! 
Note: See TracChangeset for help on using the changeset viewer.