- Timestamp:
- 2018-03-27T15:52:54+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90
r9125 r9440 42 42 43 43 SUBROUTINE prt_ctl (tab2d_1, tab3d_1, mask1, clinfo1, tab2d_2, tab3d_2, & 44 & mask2, clinfo2, ovlap,kdim, clinfo3 )44 & mask2, clinfo2, kdim, clinfo3 ) 45 45 !!---------------------------------------------------------------------- 46 46 !! *** ROUTINE prt_ctl *** … … 74 74 !! mask2 : mask (3D) to apply to the tab[23]d_2 array 75 75 !! clinfo2 : information about the tab[23]d_2 array 76 !! ovlap : overlap value77 76 !! kdim : k- direction for 3D arrays 78 77 !! clinfo3 : additional information … … 86 85 REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: mask2 87 86 CHARACTER (len=*) , INTENT(in), OPTIONAL :: clinfo2 88 INTEGER , INTENT(in), OPTIONAL :: ovlap89 87 INTEGER , INTENT(in), OPTIONAL :: kdim 90 88 CHARACTER (len=*) , INTENT(in), OPTIONAL :: clinfo3 91 89 ! 92 90 CHARACTER (len=15) :: cl2 93 INTEGER :: overlap,jn, sind, eind, kdir,j_id91 INTEGER :: jn, sind, eind, kdir,j_id 94 92 REAL(wp) :: zsum1, zsum2, zvctl1, zvctl2 95 93 REAL(wp), DIMENSION(jpi,jpj) :: ztab2d_1, ztab2d_2 … … 98 96 99 97 ! Arrays, scalars initialization 100 overlap = 0101 98 kdir = jpkm1 102 99 cl2 = '' … … 114 111 ! Control of optional arguments 115 112 IF( PRESENT(clinfo2) ) cl2 = clinfo2 116 IF( PRESENT(ovlap) ) overlap = ovlap117 113 IF( PRESENT(kdim) ) kdir = kdim 118 114 IF( PRESENT(tab2d_1) ) ztab2d_1(:,:) = tab2d_1(:,:) … … 138 134 IF( .NOT. lsp_area ) THEN 139 135 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) ) 144 140 ! Do not take into account the bound of the domain 145 141 IF( ibonitl(jn) == -1 .OR. ibonitl(jn) == 2 ) nictls = MAX(2, nictls) … … 148 144 IF( ibonjtl(jn) == 1 .OR. ibonjtl(jn) == 2 ) njctle = MIN(njctle, nlejtl(jn) - 1) 149 145 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) ) 154 150 ! Do not take into account the bound of the domain 155 151 IF( ibonitl(jn) == -1 .OR. ibonitl(jn) == 2 ) nictls = MAX(2, nictls) … … 420 416 INTEGER, DIMENSION(jpi,jpj) :: iimpptl, ijmpptl, ilcitl, ilcjtl ! workspace 421 417 REAL(wp) :: zidom, zjdom ! temporary scalars 418 INTEGER :: inum ! local logical unit 422 419 !!---------------------------------------------------------------------- 423 420 … … 569 566 END DO 570 567 ! 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 571 582 ! 572 583 !
Note: See TracChangeset
for help on using the changeset viewer.