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 7701 for branches/UKMO/dev_r5518_MEDUSA_optim_RH/NEMOGCM/NEMO/TOP_SRC – NEMO

Ignore:
Timestamp:
2017-02-20T11:07:50+01:00 (7 years ago)
Author:
frrh
Message:

Improve control of numstr unit.

In addition to only producing output, and doing the
related global sums when we really need them, we
need to restrict it to one instance on the master PE
in all circumstances and to explicitly close it at the
end of the run. (Currently if lwp = true you get a separate
file for every PE containing identical information and none
of the tracer.stat files are explicitly closed.)

Location:
branches/UKMO/dev_r5518_MEDUSA_optim_RH/NEMOGCM/NEMO/TOP_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_MEDUSA_optim_RH/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r7693 r7701  
    2626   INTEGER, PUBLIC                                                 ::   numnat_cfg = -1   !: logical unit for the reference passive tracer namelist_top_cfg 
    2727   INTEGER, PUBLIC                                                 ::   numont     = -1   !: logical unit for the reference passive tracer namelist output output.namelist.top 
    28    INTEGER, PUBLIC                                                 ::   numstr        !: logical unit for tracer statistics 
     28   INTEGER, PUBLIC                                                 ::   numstr     = -1   !: logical unit for tracer statistics 
    2929   INTEGER, PUBLIC                                                 ::   numrtr        !: logical unit for trc restart (read ) 
    3030   INTEGER, PUBLIC                                                 ::   numrtw        !: logical unit for trc restart ( write ) 
  • branches/UKMO/dev_r5518_MEDUSA_optim_RH/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r7693 r7701  
    123123# endif 
    124124 
    125       IF( lwp ) THEN 
     125      IF( ln_ctl ) THEN 
    126126         ! 
    127          CALL ctl_opn( numstr, 'tracer.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp , narea ) 
     127         IF (narea == 1) THEN  
     128            ! The tracer.stat file only contains global tracer sum values, if 
     129            ! it contains anything at all. Hence it only needs to be opened 
     130            ! and written to on the master PE, not on all PEs.  
     131            CALL ctl_opn( numstr, 'tracer.stat', 'REPLACE', 'FORMATTED',  & 
     132                          'SEQUENTIAL', -1, numout, lwp , narea ) 
     133         ENDIF  
    128134         ! 
    129135      ENDIF 
  • branches/UKMO/dev_r5518_MEDUSA_optim_RH/NEMOGCM/NEMO/TOP_SRC/trcstp.F90

    r7694 r7701  
    5555      !!              Update the passive tracers 
    5656      !!------------------------------------------------------------------- 
     57 
     58      USE dom_oce, ONLY: narea  
     59 
    5760      INTEGER, INTENT( in ) ::  kt      ! ocean time-step index 
    5861      INTEGER               ::  jk, jn  ! dummy loop indices 
     
    136139         ! Hence we restrict its use by protecting it with the ln_ctl RTL 
    137140         ! which should normally only be used under debugging conditions 
    138          ! and not in operational runs.  
    139          ztrai = 0._wp                                                   !  content of all tracers 
     141         ! and not in operational runs. We also need to restrict output  
     142         ! to the master PE since there's no point duplicating the same results 
     143         ! on all processors.     
     144         ztrai = 0._wp                                !  content of all tracers 
    140145         DO jn = 1, jptra 
    141146            ztrai = ztrai + glob_sum( trn(:,:,:,jn) * cvol(:,:,:)   ) 
    142147         END DO 
    143          IF( lwp ) WRITE(numstr,9300) kt,  ztrai / areatot 
     148         IF (narea == 1) WRITE(numstr,9300) kt,  ztrai / areatot 
    1441499300     FORMAT(i10,e18.10) 
    145150      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.