Ignore:
Timestamp:
04/08/09 16:04:00 (15 years ago)
Author:
ymipsl
Message:

Correction : utilisation d'OASIS par le server

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_SERVER/trunk/src/IOSERVER/mod_ioserver_para.f90

    r8 r27  
    2020  SUBROUTINE Init_parallel 
    2121  USE mpitrace 
     22  USE mod_ioserver_namelist 
     23  USE mod_prism_get_comm   
    2224  IMPLICIT NONE 
    2325    INCLUDE 'mpif.h' 
     
    2830    INTEGER :: i 
    2931    INTEGER :: group_color 
    30      
    31     CALL MPI_INIT(ierr) 
    32     CALL MPI_COMM_RANK(MPI_COMM_WORLD,global_rank,ierr) 
    33     CALL MPI_COMM_SIZE(MPI_COMM_WORLD,global_size,ierr) 
    34     
    35     CALL MPI_COMM_SPLIT(MPI_COMM_WORLD,color_server,global_rank,intracomm,ierr) 
     32    INTEGER :: Comm_client_server 
     33    INTEGER :: comp_id 
     34    CHARACTER(LEN=6) :: oasis_server_id, oasis_client_id 
     35 
     36    IF (using_oasis) THEN 
     37       oasis_server_id=server_id 
     38       oasis_client_id=client_id 
     39       CALL prism_init_comp_proto (comp_id, oasis_server_id, ierr) 
     40       CALL prism_get_intracomm(Comm_client_server,oasis_client_id,ierr) 
     41    ELSE 
     42      CALL MPI_INIT(ierr) 
     43      Comm_client_server=MPI_COMM_WORLD 
     44    ENDIF 
     45         
     46    CALL MPI_COMM_RANK(Comm_client_server,global_rank,ierr) 
     47    CALL MPI_COMM_SIZE(Comm_client_server,global_size,ierr) 
     48        
     49    CALL MPI_COMM_SPLIT(Comm_client_server,color_server,global_rank,intracomm,ierr) 
    3650    CALL MPI_COMM_SIZE(intracomm,mpi_size,ierr) 
    3751    CALL MPI_COMM_RANK(intracomm,mpi_rank,ierr) 
     
    4054    PRINT *,'group_color',group_color 
    4155 
    42     CALL MPI_COMM_SPLIT(MPI_COMM_WORLD,group_color,global_rank,iocomm,ierr)     
     56    CALL MPI_COMM_SPLIT(Comm_client_server,group_color,global_rank,iocomm,ierr)     
    4357     
    4458    CALL MPI_COMM_SIZE(iocomm,iosize,ierr) 
     
    6478   
    6579  SUBROUTINE Finalize_parallel 
     80  USE mod_ioserver_namelist 
     81  USE mod_prism_proto 
    6682  IMPLICIT NONE 
    6783    include 'mpif.h' 
    6884    INTEGER :: ierr 
    6985     
    70     CALL MPI_FINALIZE(ierr) 
    71  
     86    IF (using_oasis) THEN 
     87      CALL prism_terminate_proto(ierr) 
     88    ELSE 
     89      CALL MPI_FINALIZE(ierr) 
     90    ENDIF 
     91     
    7292  END SUBROUTINE Finalize_parallel 
    7393 
Note: See TracChangeset for help on using the changeset viewer.