source: XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient.f90 @ 37

Last change on this file since 37 was 37, checked in by ymipsl, 12 years ago

Feature : permet d'utiliser XMLIO-SERVER sans MPI, donc en mode édition de lien, sans server.

File size: 1.3 KB
Line 
1MODULE mod_ioclient
2
3
4CONTAINS
5
6  SUBROUTINE init_ioclient(NEW_COMM)
7  USE mod_ioclient_para
8  USE mod_mpi_buffer_client
9  USE mod_wait
10  USE mod_ioserver_namelist
11  USE mod_event_client
12  USE iomanager
13  USE mpi_mod
14  IMPLICIT NONE
15    INTEGER, INTENT(INOUT),OPTIONAL :: NEW_COMM
16
17    INTEGER :: Comm
18    INTEGER :: nb_server
19    INTEGER :: rank
20    INTEGER :: ierr
21    LOGICAL :: init
22 
23    CALL read_namelist
24
25    IF (using_mpi) THEN
26      IF (using_server) THEN
27        CALL Init_parallel
28        CALL Init_mpi_buffer
29        CALL Init_wait
30        IF (PRESENT(NEW_COMM)) THEN
31          NEW_COMM=intracomm
32        ENDIF
33      ELSE
34        CALL MPI_INITIALIZED(init,ierr)
35        IF (init) THEN
36          IF (.NOT. PRESENT(NEW_COMM)) THEN
37             Comm=MPI_COMM_WORLD
38          ELSE
39            Comm=New_Comm
40          ENDIF
41        ELSE
42          CALL MPI_INIT(ierr)
43          Comm=MPI_COMM_WORLD
44         
45          IF (PRESENT(NEW_COMM)) THEN
46            New_Comm=MPI_COMM_WORLD
47          ENDIF
48        ENDIF 
49        CALL MPI_COMM_SIZE(Comm,nb_server,ierr)     
50        CALL MPI_COMM_RANK(Comm,rank,ierr)
51        CALL iom__init(1,nb_server,rank)
52        CALL iom__set_current_rank(1)
53      ENDIF
54    ELSE
55      CALL iom__init(1,1,0)
56      CALL iom__set_current_rank(1)
57    ENDIF
58   
59  END SUBROUTINE init_ioclient
60
61END MODULE mod_ioclient
Note: See TracBrowser for help on using the repository browser.