Ignore:
Timestamp:
2019-01-24T16:14:49+01:00 (19 months ago)
Author:
acc
Message:

Trunk update to implement finer control over the choice of text report files generated. See ticket: #2167

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OFF/nemogcm.F90

    r10457 r10570  
    159159      CHARACTER(len=120), DIMENSION(30) ::   cltxt, cltxt2, clnam 
    160160      !! 
    161       NAMELIST/namctl/ ln_ctl   , nn_print, nn_ictls, nn_ictle,   & 
    162          &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,   & 
     161      NAMELIST/namctl/ ln_ctl   , sn_cfctl, nn_print, nn_ictls, nn_ictle,   & 
     162         &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,             & 
    163163         &             ln_timing, ln_diacfl 
    164164      NAMELIST/namcfg/ ln_read_cfg, cn_domcfg, ln_closea, ln_write_cfg, cn_domcfg_out, ln_use_jattr 
     
    215215      narea = narea + 1                       ! mynode return the rank of proc (0 --> jpnij -1 ) 
    216216 
     217      IF( sn_cfctl%l_config ) THEN 
     218         ! Activate finer control of report outputs 
     219         ! optionally switch off output from selected areas (note this only 
     220         ! applies to output which does not involve global communications) 
     221         IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. & 
     222           & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    & 
     223           &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. ) 
     224      ELSE 
     225         ! Use ln_ctl to turn on or off all options. 
     226         CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. ) 
     227      ENDIF 
     228 
    217229      lwm = (narea == 1)                      ! control of output namelists 
    218230      lwp = (narea == 1) .OR. ln_ctl          ! control of all listing output print 
     
    238250         WRITE(numout,*) '                       NEMO team' 
    239251         WRITE(numout,*) '                   Off-line TOP Model' 
    240          WRITE(numout,*) '                NEMO version 4.0  (2017) ' 
    241          WRITE(numout,*) 
     252         WRITE(numout,*) '                NEMO version 4.0  (2019) ' 
     253         WRITE(numout,*) 
     254         WRITE(numout,*) "           ._      ._      ._      ._      ._    " 
     255         WRITE(numout,*) "       _.-._)`\_.-._)`\_.-._)`\_.-._)`\_.-._)`\_ " 
     256         WRITE(numout,*) 
     257         WRITE(numout,*) "           o         _,           _,             " 
     258         WRITE(numout,*) "            o      .' (        .-' /             " 
     259         WRITE(numout,*) "           o     _/..._'.    .'   /              " 
     260         WRITE(numout,*) "      (    o .-'`      ` '-./  _.'               " 
     261         WRITE(numout,*) "       )    ( o)           ;= <_         (       " 
     262         WRITE(numout,*) "      (      '-.,\\__ __.-;`\   '.        )      " 
     263         WRITE(numout,*) "       )  )       \) |`\ \)  '.   \      (   (   " 
     264         WRITE(numout,*) "      (  (           \_/       '-._\      )   )  " 
     265         WRITE(numout,*) "       )  )                        `     (   (   " 
     266         WRITE(numout,*) "     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ " 
    242267         WRITE(numout,*) 
    243268         DO ji = 1, SIZE(cltxt) 
    244             IF( TRIM(cltxt (ji)) /= '' )   WRITE(numout,*) cltxt(ji)    ! control print of mynode 
     269            IF( TRIM(cltxt (ji)) /= '' )   WRITE(numout,*) TRIM(cltxt(ji))    ! control print of mynode 
    245270         END DO 
    246271         WRITE(numout,*) 
    247272         WRITE(numout,*) 
    248273         DO ji = 1, SIZE(cltxt2) 
    249             IF( TRIM(cltxt2(ji)) /= '' )   WRITE(numout,*) cltxt2(ji)   ! control print of domain size 
     274            IF( TRIM(cltxt2(ji)) /= '' )   WRITE(numout,*) TRIM(cltxt2(ji))   ! control print of domain size 
    250275         END DO 
    251276         ! 
     
    324349         WRITE(numout,*) '   Namelist namctl' 
    325350         WRITE(numout,*) '      run control (for debugging)     ln_ctl     = ', ln_ctl 
     351         WRITE(numout,*) '       finer control over o/p sn_cfctl%l_config  = ', sn_cfctl%l_config 
     352         WRITE(numout,*) '                              sn_cfctl%l_runstat = ', sn_cfctl%l_runstat 
     353         WRITE(numout,*) '                              sn_cfctl%l_trcstat = ', sn_cfctl%l_trcstat 
     354         WRITE(numout,*) '                              sn_cfctl%l_oceout  = ', sn_cfctl%l_oceout 
     355         WRITE(numout,*) '                              sn_cfctl%l_layout  = ', sn_cfctl%l_layout 
     356         WRITE(numout,*) '                              sn_cfctl%l_mppout  = ', sn_cfctl%l_mppout 
     357         WRITE(numout,*) '                              sn_cfctl%l_mpptop  = ', sn_cfctl%l_mpptop 
     358         WRITE(numout,*) '                              sn_cfctl%procmin   = ', sn_cfctl%procmin   
     359         WRITE(numout,*) '                              sn_cfctl%procmax   = ', sn_cfctl%procmax   
     360         WRITE(numout,*) '                              sn_cfctl%procincr  = ', sn_cfctl%procincr  
     361         WRITE(numout,*) '                              sn_cfctl%ptimincr  = ', sn_cfctl%ptimincr  
    326362         WRITE(numout,*) '      level of print                  nn_print   = ', nn_print 
    327363         WRITE(numout,*) '      Start i indice for SUM control  nn_ictls   = ', nn_ictls 
     
    449485   END SUBROUTINE nemo_alloc 
    450486 
     487   SUBROUTINE nemo_set_cfctl(sn_cfctl, setto, for_all ) 
     488      !!---------------------------------------------------------------------- 
     489      !!                     ***  ROUTINE nemo_set_cfctl  *** 
     490      !! 
     491      !! ** Purpose :   Set elements of the output control structure to setto. 
     492      !!                for_all should be .false. unless all areas are to be 
     493      !!                treated identically. 
     494      !! 
     495      !! ** Method  :   Note this routine can be used to switch on/off some 
     496      !!                types of output for selected areas but any output types 
     497      !!                that involve global communications (e.g. mpp_max, glob_sum) 
     498      !!                should be protected from selective switching by the 
     499      !!                for_all argument 
     500      !!---------------------------------------------------------------------- 
     501      LOGICAL :: setto, for_all 
     502      TYPE (sn_ctl) :: sn_cfctl 
     503      !!---------------------------------------------------------------------- 
     504      IF( for_all ) THEN 
     505         sn_cfctl%l_runstat = setto 
     506         sn_cfctl%l_trcstat = setto 
     507      ENDIF 
     508      sn_cfctl%l_oceout  = setto 
     509      sn_cfctl%l_layout  = setto 
     510      sn_cfctl%l_mppout  = setto 
     511      sn_cfctl%l_mpptop  = setto 
     512   END SUBROUTINE nemo_set_cfctl 
     513 
    451514   SUBROUTINE istate_init 
    452515      !!---------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.