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 11101 for branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM – NEMO

Ignore:
Timestamp:
2019-06-11T16:10:28+02:00 (5 years ago)
Author:
frrh
Message:

Merge changes from Met Office GMED ticket 450 to reduce unnecessary
text output from NEMO.
This output, which is typically not switchable, is rarely of interest
in normal (non-debugging) runs and simply redunantley consumes extra
file space.
Further, the presence of this text output has been shown to
significantly degrade performance of models which are run during
Met Office HPC RAID (disk) checks.
The new code introduces switches which are configurable via the
changes made in the associated Met Office MOCI ticket 399.

Location:
branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90

    r6491 r11101  
    9999   !!---------------------------------------------------------------------- 
    100100   LOGICAL ::   ln_ctl       !: run control for debugging 
     101   TYPE :: sn_ctl                !: optional use structure for finer control over output selection 
     102      LOGICAL :: l_config  = .FALSE.  !: activate/deactivate finer control 
     103                                      !  Note if l_config is True then ln_ctl is ignored. 
     104                                      !  Otherwise setting ln_ctl True is equivalent to setting 
     105                                      !  all the following logicals in this structure True 
     106      LOGICAL :: l_runstat = .FALSE.  !: Produce/do not produce run.stat file (T/F) 
     107      LOGICAL :: l_trcstat = .FALSE.  !: Produce/do not produce tracer.stat file (T/F) 
     108      LOGICAL :: l_oceout  = .FALSE.  !: Produce all ocean.outputs    (T) or just one (F) 
     109      LOGICAL :: l_layout  = .FALSE.  !: Produce all layout.dat files (T) or just one (F) 
     110      LOGICAL :: l_mppout  = .FALSE.  !: Produce/do not produce mpp.output_XXXX files (T/F) 
     111      LOGICAL :: l_mpptop  = .FALSE.  !: Produce/do not produce mpp.top.output_XXXX files (T/F) 
     112                                      !  Optional subsetting of processor report files 
     113                                      !  Default settings of 0/1000000/1 should ensure all areas report. 
     114                                      !  Set to a more restrictive range to select specific areas 
     115      INTEGER :: procmin   = 0        !: Minimum narea to output 
     116      INTEGER :: procmax   = 1000000  !: Maximum narea to output 
     117      INTEGER :: procincr  = 1        !: narea increment to output 
     118      INTEGER :: ptimincr  = 1        !: timestep increment to output (time.step and run.stat) 
     119   END TYPE 
     120   TYPE(sn_ctl) :: sn_cfctl     !: run control structure for selective output 
    101121   INTEGER ::   nn_timing    !: run control for timing 
    102122   INTEGER ::   nn_print     !: level of print (0 no print) 
     
    109129   INTEGER ::   nn_bench     !: benchmark parameter (0/1) 
    110130   INTEGER ::   nn_bit_cmp   =    0    !: bit reproducibility  (0/1) 
    111  
     131   LOGICAL ::   ln_flush     !: namelist flush numout after write statement 
    112132   !                                           
     133   LOGICAL ::   lflush       !: flush numout after write statement 
    113134   INTEGER ::   nprint, nictls, nictle, njctls, njctle, isplt, jsplt, nbench    !: OLD namelist names 
    114135 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r9830 r11101  
    484484               iom_file(jf)%nfid       = 0          ! free the id  
    485485               IF( PRESENT(kiomid) )   kiomid = 0   ! return 0 as id to specify that the file was closed 
    486                IF(lwp) WRITE(numout,*) TRIM(clinfo)//' close file: '//TRIM(iom_file(jf)%name)//' ok' 
     486               IF(lwp .AND. nprint > 0) WRITE(numout,*) TRIM(clinfo)//' close file: '//TRIM(iom_file(jf)%name)//' ok' 
    487487            ELSEIF( PRESENT(kiomid) ) THEN 
    488488               WRITE(ctmp1,*) '--->',  kiomid 
     
    924924 
    925925         IF( istop == nstop ) THEN   ! no additional errors until this point... 
    926             IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i6,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name) 
     926            IF(lwp .AND. nprint > 1) & 
     927               WRITE(numout,"(10x,' read ',a,' (rec: ',i6,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name) 
    927928           
    928929            !--- overlap areas and extra hallows (mpp) 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM/iom_nf90.F90

    r6491 r11101  
    8484         !                 ! ============= 
    8585         IF( ldwrt ) THEN  ! ... in write mode 
    86             IF(lwp) WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in WRITE mode' 
     86            IF(lwp .AND. nprint > 0) THEN 
     87               WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in WRITE mode' 
     88               IF(lflush) CALL flush(numout) 
     89            ENDIF 
    8790            IF( snc4set%luse ) THEN 
    8891               CALL iom_nf90_check(NF90_OPEN( TRIM(cdname), NF90_WRITE  , if90id ), clinfo) 
     
    9295            CALL iom_nf90_check(NF90_SET_FILL( if90id, NF90_NOFILL, idmy                          ), clinfo) 
    9396         ELSE              ! ... in read mode 
    94             IF(lwp) WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in READ mode' 
     97            IF(lwp .AND. nprint > 0) THEN 
     98               WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in READ mode' 
     99               IF(lflush) CALL flush(numout) 
     100            ENDIF 
    95101            CALL iom_nf90_check(NF90_OPEN( TRIM(cdname), NF90_NOWRITE, if90id, chunksize = ichunk ), clinfo) 
    96102         ENDIF 
     
    103109               cdname = TRIM(cltmp) 
    104110            ENDIF 
    105             IF(lwp) WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode' 
     111            IF(lwp .AND. nprint > 0) THEN 
     112               WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode' 
     113               IF(lflush) CALL flush(numout) 
     114            ENDIF 
    106115 
    107116            IF( llclobber ) THEN   ;   imode = IOR( NF90_64BIT_OFFSET, NF90_CLOBBER   ) 
     
    109118            ENDIF 
    110119            IF( snc4set%luse ) THEN 
    111                IF(lwp) WRITE(numout,*) TRIM(clinfo)//' creating file: '//TRIM(cdname)//' in hdf5 (netcdf4) mode' 
     120               IF(lwp .AND. nprint > 0) THEN 
     121                  WRITE(numout,*) TRIM(clinfo)//' creating file: '//TRIM(cdname)//' in hdf5 (netcdf4) mode' 
     122                  IF(lflush) CALL flush(numout) 
     123               ENDIF 
    112124               CALL GET_NF90_SYMBOL("NF90_HDF5", ihdf5) 
    113125               IF( llclobber ) THEN   ;   imode = IOR(ihdf5, NF90_CLOBBER) 
     
    158170        &                                               len  = iom_file(kiomid)%lenuld ), clinfo ) 
    159171         ENDIF 
    160          IF(lwp) WRITE(numout,*) '                   ---> '//TRIM(cdname)//' OK' 
     172         IF(lwp .AND. nprint > 0) THEN 
     173            WRITE(numout,*) '                   ---> '//TRIM(cdname)//' OK' 
     174            IF(lflush) CALL flush(numout) 
     175         ENDIF 
    161176      ELSE 
    162177         kiomid = 0               ! return error flag 
     
    431446         ! trick: defined to 0 to say that dimension variables are defined but not yet written 
    432447         iom_file(kiomid)%dimsz(1, 1)  = 0    
    433          IF(lwp) WRITE(numout,*) TRIM(clinfo)//' define dimension variables done' 
     448         IF(lwp .AND. nprint > 1) THEN 
     449            WRITE(numout,*) TRIM(clinfo)//' define dimension variables done' 
     450            IF(lflush) CALL flush(numout) 
     451         ENDIF 
    434452      ENDIF 
    435453      ! define the data if it is not already done 
     
    498516            CALL iom_nf90_check(SET_NF90_DEF_VAR_CHUNKING(if90id, idvar, ichunkalg, ichunksz), clinfo) 
    499517            CALL iom_nf90_check(SET_NF90_DEF_VAR_DEFLATE(if90id, idvar, ishuffle, ideflate, ideflate_level), clinfo) 
    500             IF(lwp) WRITE(numout,*) TRIM(clinfo)//' chunked ok. Chunks sizes: ', ichunksz 
    501          ENDIF 
    502          IF(lwp) WRITE(numout,*) TRIM(clinfo)//' defined ok' 
     518            IF(lwp .AND. nprint > 1) WRITE(numout,*) TRIM(clinfo)//' chunked ok. Chunks sizes: ', ichunksz 
     519         ENDIF 
     520         IF(lwp .AND. nprint > 1) THEN 
     521            WRITE(numout,*) TRIM(clinfo)//' defined ok' 
     522            IF(lflush) CALL flush(numout) 
     523         ENDIF 
    503524      ELSE 
    504525         idvar = kvid 
     
    543564               CALL iom_nf90_check(NF90_INQUIRE_DIMENSION( if90id, 3, len = iom_file(kiomid)%dimsz(1,3) ), clinfo) 
    544565               iom_file(kiomid)%dimsz(1  , 4) = 1   ! unlimited dimension 
    545                IF(lwp) WRITE(numout,*) TRIM(clinfo)//' write dimension variables done' 
     566               IF(lwp .AND. nprint > 1) THEN 
     567                 WRITE(numout,*) TRIM(clinfo)//' write dimension variables done' 
     568                 IF(lflush) CALL flush(numout) 
     569               ENDIF 
    546570            ENDIF 
    547571         ENDIF 
     
    561585         IF( iom_file(kiomid)%luld(idvar) )   iom_file(kiomid)%dimsz(iom_file(kiomid)%ndims(idvar), idvar)    & 
    562586               &                            = iom_file(kiomid)%dimsz(iom_file(kiomid)%ndims(idvar), idvar) + 1 
    563          IF(lwp) WRITE(numout,*) TRIM(clinfo)//' written ok' 
     587         IF(lwp .AND. nprint > 0) THEN 
     588           WRITE(numout,*) TRIM(clinfo)//' written ok' 
     589           IF(lflush) CALL flush(numout) 
     590         ENDIF 
    564591      ENDIF 
    565592      !      
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM/prtctl.F90

    r6486 r11101  
    369369         WRITE(j_id,*) 
    370370         WRITE(j_id,*) 
     371         IF(lflush) CALL flush(j_id) 
    371372 
    3723739000     FORMAT(a41,i4.4,a14) 
     
    515516      IF(lwp) WRITE(numout,*)' sum ilcitl(1,j) = ', zjdom, ' jpjglo = ', jpjglo 
    516517      IF(lwp) WRITE(numout,*) 
     518      IF(lwp .AND. lflush) CALL flush(numout) 
    517519       
    518520 
  • branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r9321 r11101  
    110110                   '             open ocean restart NetCDF file: ',TRIM(clpath)//clname 
    111111               END SELECT 
    112                IF ( snc4set%luse )      WRITE(numout,*) '             opened for NetCDF4 chunking and compression' 
    113                IF( kt == nitrst - 1 ) THEN   ;   WRITE(numout,*) '             kt = nitrst - 1 = ', kt 
    114                ELSE                          ;   WRITE(numout,*) '             kt = '             , kt 
     112               IF(nprint > 1) THEN 
     113                  IF ( snc4set%luse )      WRITE(numout,*) '             opened for NetCDF4 chunking and compression' 
     114                  IF( kt == nitrst - 1) THEN 
     115                     WRITE(numout,*) '             kt = nitrst - 1 = ', kt 
     116                  ELSE                           
     117                     WRITE(numout,*) '             kt = '             , kt 
     118                  ENDIF 
    115119               ENDIF 
     120               IF(lflush) CALL flush(numout) 
    116121            ENDIF 
    117122            ! 
     
    209214            IF ( snc4set%luse )      WRITE(numout,*) 'rst_read : configured with NetCDF4 support' 
    210215            WRITE(numout,*) '~~~~~~~~' 
     216            IF(lflush) CALL flush(numout) 
    211217         ENDIF 
    212218 
Note: See TracChangeset for help on using the changeset viewer.