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 624 for trunk/NEMO/OPA_SRC/prtctl.F90 – NEMO

Ignore:
Timestamp:
2007-02-27T15:46:47+01:00 (17 years ago)
Author:
opalod
Message:

nemo_v2_bugfix_025:RB: suppress hard-coded logical units except for dimg and coupled

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/prtctl.F90

    r516 r624  
    1212 
    1313   !! * Module declaration 
     14   INTEGER, DIMENSION(:), ALLOCATABLE :: numid 
    1415   INTEGER, DIMENSION(:), ALLOCATABLE, SAVE ::   &  !: 
    1516      nlditl , nldjtl ,   &  !: first, last indoor index for each i-domain 
     
    9192 
    9293      !! * Local declarations 
    93       INTEGER :: overlap, numid, jn, sind, eind, kdir 
     94      INTEGER :: overlap, jn, sind, eind, kdir,j_id 
    9495      CHARACTER (len=15) :: cl2 
    9596      REAL(wp) :: zsum1, zsum2, zvctl1, zvctl2 
     
    136137      ! Loop over each sub-domain, i.e. the total number of processors ijsplt 
    137138      DO jn = sind, eind 
    138  
    139          numid = 90 + jn 
    140  
     139         ! Set logical unit 
     140         j_id =jn - narea + 1 
    141141         ! Set indices for the SUM control 
    142142         IF( .NOT. lsp_area ) THEN 
     
    187187         ! Print the result 
    188188         IF( PRESENT(clinfo3) )   THEN 
    189             WRITE(numid,FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1-zvctl1, cl2, zsum2-zvctl2 
     189            WRITE(numid(j_id),FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1-zvctl1, cl2, zsum2-zvctl2 
    190190            SELECT CASE( clinfo3 ) 
    191191            CASE ( 'tra-ta' )  
     
    199199            END SELECT 
    200200         ELSEIF ( PRESENT(clinfo2) .OR. PRESENT(tab2d_2) .OR. PRESENT(tab3d_2) )   THEN 
    201             WRITE(numid,FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1, cl2, zsum2 
     201            WRITE(numid(j_id),FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1, cl2, zsum2 
    202202         ELSE 
    203             WRITE(numid,FMT='(a,D23.16)')clinfo1, zsum1 
     203            WRITE(numid(j_id),FMT='(a,D23.16)')clinfo1, zsum1 
    204204         ENDIF 
    205205 
     
    232232 
    233233      !! * Local declarations 
    234       INTEGER ::  numid, jn, sind, eind, iltime 
     234      INTEGER :: jn, sind, eind, iltime, j_id 
    235235      !!---------------------------------------------------------------------- 
    236236 
     
    257257      ! Loop over each sub-domain, i.e. number of processors ijsplt 
    258258      DO jn = sind, eind 
    259  
    260          numid = 90 + jn 
     259          
     260         ! Set logical unit 
     261         j_id = jn - narea +1 
    261262 
    262263         IF( PRESENT(ivar1) .AND. PRESENT(clinfo2) .AND. PRESENT(ivar2) )   THEN 
    263             WRITE(numid,*)clinfo1, ivar1, clinfo2, ivar2 
     264            WRITE(numid(j_id),*)clinfo1, ivar1, clinfo2, ivar2 
    264265         ELSEIF ( PRESENT(ivar1) .AND. PRESENT(clinfo2) .AND. .NOT. PRESENT(ivar2) )   THEN 
    265             WRITE(numid,*)clinfo1, ivar1, clinfo2 
     266            WRITE(numid(j_id),*)clinfo1, ivar1, clinfo2 
    266267         ELSEIF ( PRESENT(ivar1) .AND. .NOT. PRESENT(clinfo2) .AND. PRESENT(ivar2) )   THEN 
    267             WRITE(numid,*)clinfo1, ivar1, ivar2 
     268            WRITE(numid(jn-narea+1),*)clinfo1, ivar1, ivar2 
    268269         ELSEIF ( PRESENT(ivar1) .AND. .NOT. PRESENT(clinfo2) .AND. .NOT. PRESENT(ivar2) )   THEN 
    269             WRITE(numid,*)clinfo1, ivar1 
     270            WRITE(numid(j_id),*)clinfo1, ivar1 
    270271         ELSE 
    271             WRITE(numid,*)clinfo1 
     272            WRITE(numid(j_id),*)clinfo1 
    272273         ENDIF 
    273274 
     
    287288      !!---------------------------------------------------------------------- 
    288289      !! * Local declarations 
    289       INTEGER ::   jn, numid, sind, eind 
     290      INTEGER ::   jn, sind, eind, j_id 
    290291      CHARACTER (len=28) :: clfile_out 
    291292      CHARACTER (len=23) :: clb_name 
     
    344345      ENDIF 
    345346 
     347      ALLOCATE(numid(eind-sind+1)) 
     348 
    346349      DO jn = sind, eind 
    347          numid = 90 + jn 
    348350         WRITE(clfile_out,FMT=clb_name) jn-1 
    349          OPEN ( UNIT=numid, FILE=TRIM(clfile_out),FORM='FORMATTED' ) 
    350          WRITE(numid,*) 
    351          WRITE(numid,*) '                 L O D Y C - I P S L' 
    352          WRITE(numid,*) '                     O P A model' 
    353          WRITE(numid,*) '            Ocean General Circulation Model' 
    354          WRITE(numid,*) '               version OPA 9.0  (2005) ' 
    355          WRITE(numid,*) 
    356          WRITE(numid,*) '                   PROC number: ', jn 
    357          WRITE(numid,*) 
    358          WRITE(numid,FMT="(19x,a20)")cl_run 
     351         j_id = jn -narea + 1 
     352         CALL ctlopn( numid(j_id), clfile_out, 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL',   & 
     353            &         1, numout, .FALSE., 1 ) 
     354         WRITE(numid(j_id),*) 
     355         WRITE(numid(j_id),*) '                 L O D Y C - I P S L' 
     356         WRITE(numid(j_id),*) '                     O P A model' 
     357         WRITE(numid(j_id),*) '            Ocean General Circulation Model' 
     358         WRITE(numid(j_id),*) '               version OPA 9.0  (2005) ' 
     359         WRITE(numid(j_id),*) 
     360         WRITE(numid(j_id),*) '                   PROC number: ', jn 
     361         WRITE(numid(j_id),*) 
     362         WRITE(numid(j_id),FMT="(19x,a20)")cl_run 
    359363 
    360364         ! Print the SUM control indices 
     
    365369            njctle = njmpptl(jn) + nlejtl(jn) - 1 
    366370         ENDIF 
    367          WRITE(numid,*)  
    368          WRITE(numid,*) 'prt_ctl :  Sum control indices' 
    369          WRITE(numid,*) '~~~~~~~' 
    370          WRITE(numid,*) 
    371          WRITE(numid,9000)'                                nlej   = ', nlejtl(jn), '              ' 
    372          WRITE(numid,9000)'                  ------------- njctle = ', njctle, ' -------------' 
    373          WRITE(numid,9001)'                  |                                       |' 
    374          WRITE(numid,9001)'                  |                                       |' 
    375          WRITE(numid,9001)'                  |                                       |' 
    376          WRITE(numid,9002)'           nictls = ', nictls,  '                           nictle = ', nictle 
    377          WRITE(numid,9002)'           nldi   = ', nlditl(jn),  '                           nlei   = ', nleitl(jn) 
    378          WRITE(numid,9001)'                  |                                       |' 
    379          WRITE(numid,9001)'                  |                                       |' 
    380          WRITE(numid,9001)'                  |                                       |' 
    381          WRITE(numid,9004)'  njmpp  = ',njmpptl(jn),'   ------------- njctls = ', njctls, ' -------------' 
    382          WRITE(numid,9003)'           nimpp  = ', nimpptl(jn), '        nldj   = ', nldjtl(jn), '              ' 
    383          WRITE(numid,*) 
    384          WRITE(numid,*) 
     371         WRITE(numid(j_id),*)  
     372         WRITE(numid(j_id),*) 'prt_ctl :  Sum control indices' 
     373         WRITE(numid(j_id),*) '~~~~~~~' 
     374         WRITE(numid(j_id),*) 
     375         WRITE(numid(j_id),9000)'                                nlej   = ', nlejtl(jn), '              ' 
     376         WRITE(numid(j_id),9000)'                  ------------- njctle = ', njctle, ' -------------' 
     377         WRITE(numid(j_id),9001)'                  |                                       |' 
     378         WRITE(numid(j_id),9001)'                  |                                       |' 
     379         WRITE(numid(j_id),9001)'                  |                                       |' 
     380         WRITE(numid(j_id),9002)'           nictls = ', nictls,  '                           nictle = ', nictle 
     381         WRITE(numid(j_id),9002)'           nldi   = ', nlditl(jn),  '                           nlei   = ', nleitl(jn) 
     382         WRITE(numid(j_id),9001)'                  |                                       |' 
     383         WRITE(numid(j_id),9001)'                  |                                       |' 
     384         WRITE(numid(j_id),9001)'                  |                                       |' 
     385         WRITE(numid(j_id),9004)'  njmpp  = ',njmpptl(jn),'   ------------- njctls = ', njctls, ' -------------' 
     386         WRITE(numid(j_id),9003)'           nimpp  = ', nimpptl(jn), '        nldj   = ', nldjtl(jn), '              ' 
     387         WRITE(numid(j_id),*) 
     388         WRITE(numid(j_id),*) 
    385389 
    3863909000     FORMAT(a41,i4.4,a14) 
Note: See TracChangeset for help on using the changeset viewer.