Ignore:
Timestamp:
2014-04-28T14:09:03+02:00 (7 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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.