source:
vendors/XMLIO_SERVER/current/src/IOSERVER/mod_ioclient.f90
@
8121
Last change on this file since 8121 was 1897, checked in by flavoni, 14 years ago | |
---|---|
File size: 1.3 KB |
Rev | Line | |
---|---|---|
[1897] | 1 | MODULE mod_ioclient |
2 | ||
3 | ||
4 | CONTAINS | |
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 | ||
61 | END MODULE mod_ioclient |
Note: See TracBrowser
for help on using the repository browser.