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 1579 for trunk/NEMO/OPA_SRC/lib_mpp.F90 – NEMO

Ignore:
Timestamp:
2009-08-05T12:14:11+02:00 (15 years ago)
Author:
smasson
Message:

avoid write in numout before definition of lwp, see ticket:237

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/lib_mpp.F90

    r1559 r1579  
    165165CONTAINS 
    166166 
    167    FUNCTION mynode(localComm) 
     167   FUNCTION mynode(ldtxt, localComm) 
    168168      !!---------------------------------------------------------------------- 
    169169      !!                  ***  routine mynode  *** 
     
    172172      !! 
    173173      !!---------------------------------------------------------------------- 
     174      CHARACTER(len=*),DIMENSION(:), INTENT(  out) ::   ldtxt  
     175      INTEGER, OPTIONAL            , INTENT(in   ) ::   localComm 
    174176      INTEGER ::   mynode, ierr, code 
    175177      LOGICAL ::   mpi_was_called 
    176       INTEGER, OPTIONAL ::   localComm 
     178       
    177179      NAMELIST/nam_mpp/ c_mpi_send, nn_buffer 
    178180      !!---------------------------------------------------------------------- 
    179181      ! 
    180       WRITE(numout,*) 
    181       WRITE(numout,*) 'mynode : mpi initialisation' 
    182       WRITE(numout,*) '~~~~~~ ' 
    183       WRITE(numout,*) 
     182      WRITE(ldtxt(1),*) 
     183      WRITE(ldtxt(2),*) 'mynode : mpi initialisation' 
     184      WRITE(ldtxt(3),*) '~~~~~~ ' 
     185      WRITE(ldtxt(4),*) 
    184186      ! 
    185187      REWIND( numnam )               ! Namelist namrun : parameters of the run 
    186188      READ  ( numnam, nam_mpp ) 
    187189      !                              ! control print 
    188       WRITE(numout,*) '        Namelist nam_mpp' 
    189       WRITE(numout,*) '           mpi send type            c_mpi_send = ', c_mpi_send 
     190      WRITE(ldtxt(5),*) '        Namelist nam_mpp' 
     191      WRITE(ldtxt(6),*) '           mpi send type            c_mpi_send = ', c_mpi_send 
    190192 
    191193#if defined key_agrif 
     
    196198         CALL mpi_initialized ( mpi_was_called, code ) 
    197199         IF( code /= MPI_SUCCESS ) THEN 
    198             CALL ctl_stop( ' lib_mpp: Error in routine mpi_initialized' ) 
     200            WRITE(*, cform_err) 
     201            WRITE(*, *) 'lib_mpp: Error in routine mpi_initialized' 
    199202            CALL mpi_abort( mpi_comm_world, code, ierr ) 
    200203         ENDIF 
     
    204207            SELECT CASE ( c_mpi_send ) 
    205208            CASE ( 'S' )                ! Standard mpi send (blocking) 
    206                WRITE(numout,*) '           Standard blocking mpi send (send)' 
     209               WRITE(ldtxt(7),*) '           Standard blocking mpi send (send)' 
    207210            CASE ( 'B' )                ! Buffer mpi send (blocking) 
    208                WRITE(numout,*) '           Buffer blocking mpi send (bsend)' 
     211               WRITE(ldtxt(7),*) '           Buffer blocking mpi send (bsend)' 
    209212               CALL mpi_init_opa( ierr )  
    210213            CASE ( 'I' )                ! Immediate mpi send (non-blocking send) 
    211                WRITE(numout,*) '           Immediate non-blocking send (isend)' 
     214               WRITE(ldtxt(7),*) '           Immediate non-blocking send (isend)' 
    212215               l_isend = .TRUE. 
    213216            CASE DEFAULT 
    214                WRITE(numout,cform_err) 
    215                WRITE(numout,*) '           bad value for c_mpi_send = ', c_mpi_send 
     217               WRITE(ldtxt(7),cform_err) 
     218               WRITE(ldtxt(8),*) '           bad value for c_mpi_send = ', c_mpi_send 
    216219               nstop = nstop + 1 
    217220            END SELECT 
    218221         ELSE IF ( PRESENT(localComm) .and. .not. mpi_was_called ) THEN 
    219             WRITE(numout,*) ' lib_mpp: You cannot provide a local communicator ' 
    220             WRITE(numout,*) '          without calling MPI_Init before ! ' 
     222            WRITE(ldtxt(7),*) ' lib_mpp: You cannot provide a local communicator ' 
     223            WRITE(ldtxt(8),*) '          without calling MPI_Init before ! ' 
     224            nstop = nstop + 1 
    221225         ELSE 
    222226#endif 
    223227            SELECT CASE ( c_mpi_send ) 
    224228            CASE ( 'S' )                ! Standard mpi send (blocking) 
    225                WRITE(numout,*) '           Standard blocking mpi send (send)' 
     229               WRITE(ldtxt(7),*) '           Standard blocking mpi send (send)' 
    226230               CALL mpi_init( ierr ) 
    227231            CASE ( 'B' )                ! Buffer mpi send (blocking) 
    228                WRITE(numout,*) '           Buffer blocking mpi send (bsend)' 
     232               WRITE(ldtxt(7),*) '           Buffer blocking mpi send (bsend)' 
    229233               CALL mpi_init_opa( ierr ) 
    230234            CASE ( 'I' )                ! Immediate mpi send (non-blocking send) 
    231                WRITE(numout,*) '           Immediate non-blocking send (isend)' 
     235               WRITE(ldtxt(7),*) '           Immediate non-blocking send (isend)' 
    232236               l_isend = .TRUE. 
    233237               CALL mpi_init( ierr ) 
    234238            CASE DEFAULT 
    235                WRITE(ctmp1,*) '           bad value for c_mpi_send = ', c_mpi_send 
    236                CALL ctl_stop( ctmp1 ) 
     239               WRITE(ldtxt(7),cform_err) 
     240               WRITE(ldtxt(8),*) '           bad value for c_mpi_send = ', c_mpi_send 
     241               nstop = nstop + 1 
    237242            END SELECT 
    238243 
     
    240245            CALL mpi_comm_dup( mpi_comm_world, mpi_comm_opa, code) 
    241246            IF( code /= MPI_SUCCESS ) THEN 
    242                CALL ctl_stop( ' lib_mpp: Error in routine mpi_comm_dup' ) 
     247               WRITE(*, cform_err) 
     248               WRITE(*, *) ' lib_mpp: Error in routine mpi_comm_dup' 
    243249               CALL mpi_abort( mpi_comm_world, code, ierr ) 
    244250            ENDIF 
     
    250256         SELECT CASE ( c_mpi_send ) 
    251257         CASE ( 'S' )                ! Standard mpi send (blocking) 
    252             WRITE(numout,*) '           Standard blocking mpi send (send)' 
     258            WRITE(ldtxt(7),*) '           Standard blocking mpi send (send)' 
    253259         CASE ( 'B' )                ! Buffer mpi send (blocking) 
    254             WRITE(numout,*) '           Buffer blocking mpi send (bsend)' 
     260            WRITE(ldtxt(7),*) '           Buffer blocking mpi send (bsend)' 
    255261         CASE ( 'I' )                ! Immediate mpi send (non-blocking send) 
    256             WRITE(numout,*) '           Immediate non-blocking send (isend)' 
     262            WRITE(ldtxt(7),*) '           Immediate non-blocking send (isend)' 
    257263            l_isend = .TRUE. 
    258264         CASE DEFAULT 
    259             WRITE(numout,cform_err) 
    260             WRITE(numout,*) '           bad value for c_mpi_send = ', c_mpi_send 
     265            WRITE(ldtxt(7),cform_err) 
     266            WRITE(ldtxt(8),*) '           bad value for c_mpi_send = ', c_mpi_send 
    261267            nstop = nstop + 1 
    262268         END SELECT 
     
    22912297CONTAINS 
    22922298 
    2293    FUNCTION mynode( localComm ) RESULT (function_value) 
    2294       INTEGER, OPTIONAL :: localComm 
     2299   FUNCTION mynode( ldtxt, localComm ) RESULT (function_value) 
     2300      CHARACTER(len=*),DIMENSION(:), INTENT(  out) ::   ldtxt  
     2301      INTEGER, OPTIONAL            , INTENT(in   ) ::   localComm 
    22952302      IF( PRESENT( localComm ) .OR. .NOT.PRESENT( localComm ) )   function_value = 0 
     2303      IF( .FALSE. )   ldtxt(:) = 'never done' 
    22962304   END FUNCTION mynode 
    22972305 
Note: See TracChangeset for help on using the changeset viewer.