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 4624 for trunk/NEMOGCM/NEMO/OFF_SRC – NEMO

Ignore:
Timestamp:
2014-04-28T14:09:03+02:00 (10 years ago)
Author:
acc
Message:

#1305. Fix slow start-up problems on some systems by introducing and using lwm logical to restrict output of merged namelists to the first (or only) processor. lwm is true only on the first processor regardless of ln_ctl. Small changes to all flavours of nemogcm.F90 are also required to write namctl and namcfg after the call to mynode which now opens output.namelist.dyn and writes nammpp.

Location:
trunk/NEMOGCM/NEMO/OFF_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OFF_SRC/domain.F90

    r4382 r4624  
    139139      READ  ( numnam_cfg, namrun, IOSTAT = ios, ERR = 902 ) 
    140140902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namrun in configuration namelist', lwp ) 
    141       WRITE ( numond, namrun ) 
     141      IF(lwm) WRITE ( numond, namrun ) 
    142142      ! 
    143143      IF(lwp) THEN                  ! control print 
     
    215215      READ  ( numnam_cfg, namdom, IOSTAT = ios, ERR = 904 ) 
    216216904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp ) 
    217       WRITE ( numond, namdom ) 
     217      IF(lwm) WRITE ( numond, namdom ) 
    218218 
    219219      IF(lwp) THEN 
     
    276276      READ  ( numnam_cfg, namcla, IOSTAT = ios, ERR = 906 ) 
    277277906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcla in configuration namelist', lwp ) 
    278       WRITE( numond, namcla ) 
     278      IF(lwm) WRITE( numond, namcla ) 
    279279 
    280280      IF(lwp) THEN 
     
    293293      READ  ( numnam_cfg, namnc4, IOSTAT = ios, ERR = 908 ) 
    294294908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namnc4 in configuration namelist', lwp ) 
    295       WRITE( numond, namnc4 ) 
     295      IF(lwm) WRITE( numond, namnc4 ) 
    296296      IF(lwp) THEN                        ! control print 
    297297         WRITE(numout,*) 
     
    345345      READ  ( numnam_cfg, namzgr, IOSTAT = ios, ERR = 902 ) 
    346346902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namzgr in configuration namelist', lwp ) 
    347       WRITE ( numond, namzgr ) 
     347      IF(lwm) WRITE ( numond, namzgr ) 
    348348 
    349349      IF(lwp) THEN                     ! Control print 
  • trunk/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r4570 r4624  
    350350      READ  ( numnam_cfg, namdta_dyn, IOSTAT = ios, ERR = 902 ) 
    351351902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namdta_dyn in configuration namelist', lwp ) 
    352       WRITE ( numond, namdta_dyn ) 
     352      IF(lwm) WRITE ( numond, namdta_dyn ) 
    353353      !                                         ! store namelist information in an array 
    354354      !                                         ! Control print 
  • trunk/NEMOGCM/NEMO/OFF_SRC/nemogcm.F90

    r4319 r4624  
    155155      CALL ctl_opn( numnam_ref, 'namelist_ref', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 
    156156      CALL ctl_opn( numnam_cfg, 'namelist_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 
    157       CALL ctl_opn( numond, 'output.namelist.dyn', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. , 1 ) 
    158157      ! 
    159158      REWIND( numnam_ref )              ! Namelist namctl in reference namelist : Control prints & Benchmark 
     
    164163      READ  ( numnam_cfg, namctl, IOSTAT = ios, ERR = 902 ) 
    165164902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist', .TRUE. ) 
    166       WRITE( numond, namctl ) 
    167165 
    168166      ! 
     
    174172      READ  ( numnam_cfg, namcfg, IOSTAT = ios, ERR = 904 ) 
    175173904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in configuration namelist', .TRUE. )    
    176       WRITE( numond, namcfg ) 
    177174 
    178175      ! 
    179176      !                             !--------------------------------------------! 
    180177      !                             !  set communicator & select the local node  ! 
     178      !                             !  NB: mynode also opens output.namelist.dyn ! 
     179      !                             !      on unit number numond on first proc   ! 
    181180      !                             !--------------------------------------------! 
    182181#if defined key_iomput 
    183          CALL  xios_initialize( "nemo",return_comm=ilocal_comm ) 
     182      CALL  xios_initialize( "nemo",return_comm=ilocal_comm ) 
    184183      narea = mynode( cltxt, numnam_ref, numnam_cfg, numond , nstop, ilocal_comm )   ! Nodes selection 
    185184#else 
     
    190189      narea = narea + 1                       ! mynode return the rank of proc (0 --> jpnij -1 ) 
    191190 
     191      lwm = (narea == 1)                      ! control of output namelists 
    192192      lwp = (narea == 1) .OR. ln_ctl          ! control of all listing output print 
     193 
     194      IF(lwm) THEN 
     195         ! write merged namelists from earlier to output namelist now that the 
     196         ! file has been opened in call to mynode. nammpp has already been 
     197         ! written in mynode (if lk_mpp_mpi) 
     198         WRITE( numond, namctl ) 
     199         WRITE( numond, namcfg ) 
     200      ENDIF 
    193201 
    194202      ! If dimensions of processor grid weren't specified in the namelist file  
Note: See TracChangeset for help on using the changeset viewer.