source: XMLIO_SERVER/trunk/src/IOSERVER/mod_event_client.f90 @ 8

Last change on this file since 8 was 8, checked in by ymipsl, 15 years ago

Importation des sources du serveur XMLIO

File size: 6.0 KB
Line 
1MODULE mod_event_client
2  USE mod_pack, ONLY : pack, pack_field
3  USE mod_mpi_buffer_client, ONLY : create_request, finalize_request
4  USE mod_event_parameters 
5
6  LOGICAL, SAVE :: using_server
7     
8CONTAINS
9
10  SUBROUTINE event__parse_xml_file(filename)
11  USE iomanager
12  IMPLICIT NONE
13    CHARACTER(LEN=*),INTENT(IN) :: filename
14   
15    IF (using_server) THEN
16      CALL create_request(event_id_parse_xml_file)
17      CALL pack(LEN(TRIM(filename)))
18      CALL pack(TRIM(filename))
19      CALL Finalize_request
20    ELSE
21      CALL iom__parse_xml_file(filename)
22    ENDIF
23   
24  END SUBROUTINE  event__parse_xml_file
25
26  SUBROUTINE event__set_vert_axis(vert_name,vert_value)
27  USE iomanager
28  IMPLICIT NONE
29    CHARACTER(LEN=*),INTENT(IN) :: vert_name
30    REAL,INTENT(IN)             :: vert_value(:)
31   
32   
33    IF (using_server) THEN
34      CALL create_request(event_id_set_vert_axis)
35      CALL pack(LEN(TRIM(vert_name)))
36      CALL pack(TRIM(vert_name))
37      CALL pack(SIZE(vert_value))
38      CALL pack(vert_value)
39      CALL Finalize_request
40    ELSE
41      CALL iom__set_vert_axis(vert_name,vert_value)
42    ENDIF
43   
44  END SUBROUTINE  event__set_vert_axis
45
46  SUBROUTINE event__set_grid_dimension(name,ni_glo,nj_glo)
47  USE iomanager
48  IMPLICIT NONE
49    CHARACTER(LEN=*),INTENT(IN) :: name
50    INTEGER,INTENT(IN) :: ni_glo
51    INTEGER,INTENT(IN) :: nj_glo
52   
53    IF (using_server) THEN
54      CALL create_request(event_id_set_grid_dimension)
55      CALL pack(LEN(TRIM(name)))
56      CALL pack(TRIM(name))
57      CALL pack(ni_glo)
58      CALL pack(nj_glo)
59      CALL Finalize_request
60    ELSE
61      CALL iom__set_grid_dimension(name,ni_glo,nj_glo)
62    ENDIF
63   
64  END SUBROUTINE event__set_grid_dimension
65
66 
67  SUBROUTINE event__set_grid_domain(name,ni,nj,ibegin,jbegin,lon,lat)
68  USE iomanager
69  IMPLICIT NONE
70    CHARACTER(LEN=*),INTENT(IN) :: name
71    INTEGER,INTENT(IN) :: ni
72    INTEGER,INTENT(IN) :: nj
73    INTEGER,INTENT(IN) :: ibegin
74    INTEGER,INTENT(IN) :: jbegin
75    REAL,INTENT(IN)    :: lon(ni,nj)
76    REAL,INTENT(IN)    :: lat(ni,nj)
77   
78    IF (using_server) THEN
79      CALL create_request(event_id_set_grid_domain)
80      CALL pack(LEN(TRIM(name)))
81      CALL pack(TRIM(name))
82      CALL pack(ni)
83      CALL pack(nj)
84      CALL pack(ibegin)
85      CALL pack(jbegin)
86      CALL pack(lon)
87      CALL pack(lat)
88      CALL Finalize_request
89    ELSE
90     CALL iom__set_grid_domain(name,ni,nj,ibegin,jbegin,lon,lat)
91    ENDIF
92     
93  END SUBROUTINE event__set_grid_domain
94
95  SUBROUTINE event__set_grid_type_nemo(name)
96  USE iomanager
97  IMPLICIT NONE
98    CHARACTER(LEN=*),INTENT(IN) :: name
99   
100    IF (using_server) THEN
101      CALL create_request(event_id_set_grid_type_nemo)
102      CALL pack(LEN(TRIM(name)))
103      CALL pack(TRIM(name))
104      CALL Finalize_request
105    ELSE
106     CALL iom__set_grid_type_nemo(name)
107    ENDIF
108     
109  END SUBROUTINE event__set_grid_type_nemo
110 
111 
112  SUBROUTINE event__set_time_parameters(itau0,zjulian,zdt)
113  USE iomanager
114  IMPLICIT NONE
115    INTEGER,INTENT(IN)  :: itau0
116    REAL,   INTENT(IN)  :: zjulian
117    REAL,   INTENT(IN)  :: zdt
118       
119    IF (using_server) THEN
120      CALL create_request(event_id_set_time_parameters)
121      CALL pack(itau0)
122      CALL pack(zjulian)
123      CALL pack(zdt)
124      CALL Finalize_request
125    ELSE
126      CALL iom__set_time_parameters(itau0,zjulian,zdt)
127    ENDIF
128   
129  END SUBROUTINE event__set_time_parameters
130
131
132  SUBROUTINE event__enable_field(varname)
133  USE iomanager
134  IMPLICIT NONE
135    CHARACTER(len=*),INTENT(IN)     :: varname
136
137    IF (using_server) THEN
138      CALL create_request(event_id_enable_field)
139      CALL pack(len(varname))
140      CALL pack(varname)
141      CALL Finalize_request 
142    ELSE
143      CALL iom__enable_field(varname)
144    ENDIF
145   
146  END SUBROUTINE event__enable_field
147
148  SUBROUTINE event__disable_field(varname)
149  USE iomanager
150  IMPLICIT NONE
151    CHARACTER(len=*),INTENT(IN)     :: varname
152
153    IF (using_server) THEN
154      CALL create_request(event_id_disable_field)
155      CALL pack(len(varname))
156      CALL pack(varname)
157      CALL Finalize_request 
158    ELSE
159      CALL iom__disable_field(varname)
160    ENDIF
161   
162  END SUBROUTINE event__disable_field
163 
164  SUBROUTINE event__write_field2d(varname,var)
165  USE iomanager
166  IMPLICIT NONE
167    CHARACTER(len=*),INTENT(IN)     :: varname
168    REAL, DIMENSION(:,:),INTENT(IN) :: var
169
170    IF (using_server) THEN
171      CALL create_request(event_id_write_field2d)
172      CALL pack(len(varname))
173      CALL pack(size(var,1))
174      CALL pack(size(var,2))
175      CALL pack(varname)
176      CALL pack_field(var)
177      CALL Finalize_request 
178    ELSE
179      CALL iom__write_field2d(varname,var)
180    ENDIF
181   
182  END SUBROUTINE event__write_field2d
183 
184  SUBROUTINE event__write_field3d(varname,var)
185  USE iomanager
186  IMPLICIT NONE
187    CHARACTER(len=*),INTENT(IN)     :: varname
188    REAL, DIMENSION(:,:,:),INTENT(IN) :: var
189
190    IF (using_server) THEN
191      CALL create_request(event_id_write_field3d)
192      CALL pack(len(varname))
193      CALL pack(size(var,1))
194      CALL pack(size(var,2))
195      CALL pack(size(var,3))
196      CALL pack(varname)
197      CALL pack_field(var)
198      CALL Finalize_request 
199    ELSE
200      CALL iom__write_field3d(varname,var)
201    ENDIF
202  END SUBROUTINE event__write_field3d
203 
204
205  SUBROUTINE event__set_timestep(timestep)
206  USE iomanager
207  IMPLICIT NONE
208    INTEGER,INTENT(IN) :: timestep
209   
210    IF (using_server) THEN
211      CALL create_request(event_id_set_timestep)
212      CALL pack(timestep)
213      CALL Finalize_request
214    ELSE
215      CALL iom__set_timestep(timestep)
216    ENDIF
217
218  END SUBROUTINE event__set_timestep
219   
220   
221  SUBROUTINE event__close_io_definition
222  USE iomanager
223  IMPLICIT NONE
224   
225    IF (using_server) THEN
226      CALL create_request(event_id_close_io_definition)
227      CALL Finalize_request
228    ELSE
229      CALL iom__close_io_definition
230    ENDIF
231
232  END SUBROUTINE event__close_io_definition
233
234 
235  SUBROUTINE event__stop_ioserver
236  USE iomanager
237  IMPLICIT NONE
238 
239    IF (using_server) THEN
240      CALL create_request(event_id_stop_ioserver)
241      CALL Finalize_request
242    ELSE
243      CALL iom__finalize
244    ENDIF
245
246  END SUBROUTINE event__stop_ioserver
247   
248 
249END MODULE mod_event_client
Note: See TracBrowser for help on using the repository browser.