Ignore:
File:
1 edited

Legend:

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

    r8 r30  
    2020  SUBROUTINE Init_parallel 
    2121  USE mpitrace 
     22  USE mod_ioserver_namelist 
     23#ifdef USE_OASIS 
     24  USE mod_prism_get_comm  
     25#endif  
    2226  IMPLICIT NONE 
    2327    INCLUDE 'mpif.h' 
     
    2832    INTEGER :: i 
    2933    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) 
     34    INTEGER :: Comm_client_server 
     35    INTEGER :: comp_id 
     36    CHARACTER(LEN=6) :: oasis_server_id, oasis_client_id 
     37 
     38    IF (using_oasis) THEN 
     39       oasis_server_id=server_id 
     40       oasis_client_id=client_id 
     41#ifdef USE_OASIS 
     42       CALL prism_init_comp_proto (comp_id, oasis_server_id, ierr) 
     43       CALL prism_get_intracomm(Comm_client_server,oasis_client_id,ierr) 
     44#endif 
     45    ELSE 
     46      CALL MPI_INIT(ierr) 
     47      Comm_client_server=MPI_COMM_WORLD 
     48    ENDIF 
     49         
     50    CALL MPI_COMM_RANK(Comm_client_server,global_rank,ierr) 
     51    CALL MPI_COMM_SIZE(Comm_client_server,global_size,ierr) 
     52        
     53    CALL MPI_COMM_SPLIT(Comm_client_server,color_server,global_rank,intracomm,ierr) 
    3654    CALL MPI_COMM_SIZE(intracomm,mpi_size,ierr) 
    3755    CALL MPI_COMM_RANK(intracomm,mpi_rank,ierr) 
     
    4058    PRINT *,'group_color',group_color 
    4159 
    42     CALL MPI_COMM_SPLIT(MPI_COMM_WORLD,group_color,global_rank,iocomm,ierr)     
     60    CALL MPI_COMM_SPLIT(Comm_client_server,group_color,global_rank,iocomm,ierr)     
    4361     
    4462    CALL MPI_COMM_SIZE(iocomm,iosize,ierr) 
     
    6482   
    6583  SUBROUTINE Finalize_parallel 
     84  USE mod_ioserver_namelist 
     85#ifdef USE_OASIS 
     86  USE mod_prism_proto 
     87#endif 
    6688  IMPLICIT NONE 
    6789    include 'mpif.h' 
    6890    INTEGER :: ierr 
    6991     
    70     CALL MPI_FINALIZE(ierr) 
    71  
     92    IF (using_oasis) THEN 
     93#ifdef USE_OASIS 
     94      CALL prism_terminate_proto(ierr) 
     95#endif 
     96    ELSE 
     97      CALL MPI_FINALIZE(ierr) 
     98    ENDIF 
     99     
    72100  END SUBROUTINE Finalize_parallel 
    73101 
Note: See TracChangeset for help on using the changeset viewer.