source: XMLIO_V2/dev/dev_rv/src/xmlio/fortran/idomain.f90 @ 276

Last change on this file since 276 was 276, checked in by hozdoba, 10 years ago

Corrections de bugs

File size: 23.2 KB
Line 
1MODULE IDOMAIN
2   USE, INTRINSIC :: ISO_C_BINDING
3   USE DOMAIN_INTERFACE
4   USE DOMAINGROUP_INTERFACE
5   
6   TYPE XDomainHandle
7      INTEGER(kind = C_INTPTR_T) :: daddr
8   END TYPE XDomainHandle
9   
10   TYPE XDomainGroupHandle
11      INTEGER(kind = C_INTPTR_T) :: daddr
12   END TYPE XDomainGroupHandle
13   
14   !----------------------------------------------------------------------------
15   INTERFACE set_domain_attributes
16      MODULE PROCEDURE set_domain_attributes_id,set_domain_attributes_hdl
17   END INTERFACE 
18   
19   INTERFACE set_domain_group_attributes
20      MODULE PROCEDURE set_domaingroup_attributes_id,set_domaingroup_attributes_hdl
21   END INTERFACE 
22   !----------------------------------------------------------------------------
23   
24   CONTAINS ! Fonctions disponibles pour les utilisateurs.
25   
26   SUBROUTINE set_domaingroup_attributes_id                                                                        &
27   ( domaingroup_id, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,       &
28     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,                   &
29     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,                 &
30     zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)
31      IMPLICIT NONE
32      TYPE(XDomainGroupHandle)                              :: domaingroup_hdl
33      CHARACTER(len = *)                       , INTENT(IN) :: domaingroup_id
34      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: name_
35      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: standard_name_
36      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: long_name_
37      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: domain_group_ref_
38      INTEGER                        , OPTIONAL, INTENT(IN) :: ni_glo_
39      INTEGER                        , OPTIONAL, INTENT(IN) :: nj_glo_
40      INTEGER                        , OPTIONAL, INTENT(IN) :: ibegin_
41      INTEGER                        , OPTIONAL, INTENT(IN) :: iend_
42      INTEGER                        , OPTIONAL, INTENT(IN) :: ni_
43      INTEGER                        , OPTIONAL, INTENT(IN) :: jbegin_
44      INTEGER                        , OPTIONAL, INTENT(IN) :: jend_
45      INTEGER                        , OPTIONAL, INTENT(IN) :: nj_
46      LOGICAL          , dimension(*), OPTIONAL, INTENT(IN) :: mask_(:,:)
47      INTEGER                        , OPTIONAL, INTENT(IN) :: data_dim_
48      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ni_
49      INTEGER                        , OPTIONAL, INTENT(IN) :: data_nj_
50      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ibegin_
51      INTEGER                        , OPTIONAL, INTENT(IN) :: data_jbegin_
52      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ni_
53      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_nj_
54      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ibegin_
55      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_jbegin_
56      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ni_loc_
57      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
58      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_
59      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_
60      INTEGER                        , OPTIONAL, INTENT(IN) :: data_n_index_
61      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_i_index_(:)
62      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_j_index_(:)
63      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: lonvalue_(:)
64      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: latvalue_(:)
65 
66      CALL domaingroup_handle_create(domaingroup_hdl, domaingroup_id)
67      CALL set_domaingroup_attributes_hdl                                                                          &
68   ( domaingroup_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,      &
69     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,                   &
70     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,                 &
71     zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)
72
73   END SUBROUTINE set_domaingroup_attributes_id
74   
75   SUBROUTINE set_domaingroup_attributes_hdl                                                                       &
76   ( domaingroup_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,       &
77     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,                   &
78     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,                 &
79     zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)
80      IMPLICIT NONE
81      TYPE(XDomainGroupHandle)                   , INTENT(IN) :: domaingroup_hdl
82      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: name_
83      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: standard_name_
84      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: long_name_
85      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domain_group_ref_
86      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_glo_
87      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_glo_
88      INTEGER                          , OPTIONAL, INTENT(IN) :: ibegin_
89      INTEGER                          , OPTIONAL, INTENT(IN) :: iend_
90      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_
91      INTEGER                          , OPTIONAL, INTENT(IN) :: jbegin_
92      INTEGER                          , OPTIONAL, INTENT(IN) :: jend_
93      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_
94      LOGICAL          , dimension(*)  , OPTIONAL, INTENT(IN) :: mask_(:,:)
95      LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE          :: mask__! (size(mask_,1),size(mask,2))
96      INTEGER                          , OPTIONAL, INTENT(IN) :: data_dim_
97      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ni_
98      INTEGER                          , OPTIONAL, INTENT(IN) :: data_nj_
99      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ibegin_
100      INTEGER                          , OPTIONAL, INTENT(IN) :: data_jbegin_
101      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni_
102      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj_
103      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin_
104      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin_
105      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni_loc_
106      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
107      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_
108      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_
109      INTEGER                          , OPTIONAL, INTENT(IN) :: data_n_index_
110      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_i_index_(:)
111      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_j_index_(:)
112      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: lonvalue_(:)
113      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: latvalue_(:)
114     
115      IF (PRESENT(name_))             THEN
116         CALL xios_set_domaingroup_name(domaingroup_hdl%daddr, name_, len(name_))
117      END IF
118      IF (PRESENT(standard_name_))    THEN
119         CALL xios_set_domaingroup_standard_name(domaingroup_hdl%daddr, standard_name_, len(standard_name_))
120      END IF
121      IF (PRESENT(long_name_))        THEN
122         CALL xios_set_domaingroup_long_name(domaingroup_hdl%daddr, long_name_, len(long_name_))
123       END IF
124      IF (PRESENT(domain_group_ref_)) THEN
125         CALL xios_set_domaingroup_domain_group_ref(domaingroup_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
126      END IF
127      IF (PRESENT(ni_glo_))           THEN
128         CALL xios_set_domaingroup_ni_glo(domaingroup_hdl%daddr, ni_glo_)
129      END IF
130      IF (PRESENT(nj_glo_))           THEN
131         CALL xios_set_domaingroup_nj_glo(domaingroup_hdl%daddr, nj_glo_)
132      END IF
133      IF (PRESENT(ibegin_))           THEN
134         CALL xios_set_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_)
135       END IF
136      IF (PRESENT(iend_))             THEN
137         CALL xios_set_domaingroup_iend(domaingroup_hdl%daddr, iend_)
138      END IF
139      IF (PRESENT(ni_))               THEN
140         CALL xios_set_domaingroup_ni(domaingroup_hdl%daddr, ni_)
141      END IF
142      IF (PRESENT(jbegin_))           THEN
143         CALL xios_set_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_)
144      END IF
145      IF (PRESENT(jend_))             THEN
146         CALL xios_set_domaingroup_jend(domaingroup_hdl%daddr, jend_)
147      END IF
148      IF (PRESENT(nj_))               THEN
149         CALL xios_set_domaingroup_nj(domaingroup_hdl%daddr, nj_)
150      END IF
151      IF (PRESENT(mask_))             THEN
152         ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))
153         mask__(:,:) = mask_(:,:)
154         CALL xios_set_domaingroup_mask(domaingroup_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))         
155         DEALLOCATE(mask__)
156      END IF
157      IF (PRESENT(data_dim_))         THEN
158         CALL xios_set_domaingroup_data_dim(domaingroup_hdl%daddr, data_dim_)
159      END IF
160      IF (PRESENT(data_ni_))          THEN
161         CALL xios_set_domaingroup_data_ni(domaingroup_hdl%daddr, data_ni_)
162      END IF
163      IF (PRESENT(data_nj_))          THEN
164         CALL xios_set_domaingroup_data_nj(domaingroup_hdl%daddr, data_nj_)
165      END IF
166      IF (PRESENT(data_ibegin_))      THEN
167         CALL xios_set_domaingroup_data_ibegin(domaingroup_hdl%daddr, data_ibegin_)
168      END IF
169      IF (PRESENT(data_jbegin_))      THEN
170         CALL xios_set_domaingroup_data_jbegin(domaingroup_hdl%daddr, data_jbegin_)
171      END IF
172      IF (PRESENT(zoom_ni_))          THEN
173         CALL xios_set_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_)
174      END IF
175      IF (PRESENT(zoom_nj_))          THEN
176       CALL xios_set_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_)
177      END IF
178      IF (PRESENT(zoom_ibegin_))      THEN
179         CALL xios_set_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_)
180      END IF
181      IF (PRESENT(zoom_jbegin_))      THEN
182         CALL xios_set_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_)
183      END IF
184      IF (PRESENT(zoom_ni_loc_))      THEN
185         CALL xios_set_domaingroup_zoom_ni_loc(domaingroup_hdl%daddr, zoom_ni_loc_)
186      END IF   
187      IF (PRESENT(zoom_nj_loc_))      THEN
188         CALL xios_set_domaingroup_zoom_nj_loc(domaingroup_hdl%daddr, zoom_nj_loc_)
189      END IF
190      IF (PRESENT(zoom_ibegin_loc_))  THEN
191         CALL xios_set_domaingroup_zoom_ibegin_loc(domaingroup_hdl%daddr, zoom_ibegin_loc_)
192      END IF
193      IF (PRESENT(zoom_jbegin_loc_))  THEN
194         CALL xios_set_domaingroup_zoom_jbegin_loc(domaingroup_hdl%daddr, zoom_jbegin_loc_)
195      END IF
196      IF (PRESENT(data_n_index_))     THEN
197         CALL xios_set_domaingroup_data_n_index(domaingroup_hdl%daddr, data_n_index_)
198      END IF
199      IF (PRESENT(data_i_index_))     THEN
200         CALL xios_set_domaingroup_data_i_index(domaingroup_hdl%daddr, data_i_index_, size(data_i_index_, 1))
201      END IF
202      IF (PRESENT(data_j_index_))     THEN
203         CALL xios_set_domaingroup_data_j_index(domaingroup_hdl%daddr, data_j_index_, size(data_j_index_, 1))
204      END IF
205      IF (PRESENT(lonvalue_))         THEN
206         CALL xios_set_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_, size(lonvalue_, 1))
207      END IF
208      IF (PRESENT(latvalue_))         THEN
209         CALL xios_set_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_, size(latvalue_, 1))
210      END IF
211
212   END SUBROUTINE set_domaingroup_attributes_hdl
213   
214   SUBROUTINE set_domain_attributes_id                                                                   &
215   ( domain_id, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,  &
216     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,         &
217     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,       &
218     zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)
219      IMPLICIT NONE
220      TYPE(XDomainHandle)                                   :: domain_hdl
221      CHARACTER(len = *)                       , INTENT(IN) :: domain_id
222      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: name_
223      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: standard_name_
224      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: long_name_
225      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: domain_group_ref_
226      INTEGER                        , OPTIONAL, INTENT(IN) :: ni_glo_
227      INTEGER                        , OPTIONAL, INTENT(IN) :: nj_glo_
228      INTEGER                        , OPTIONAL, INTENT(IN) :: ibegin_
229      INTEGER                        , OPTIONAL, INTENT(IN) :: iend_
230      INTEGER                        , OPTIONAL, INTENT(IN) :: ni_
231      INTEGER                        , OPTIONAL, INTENT(IN) :: jbegin_
232      INTEGER                        , OPTIONAL, INTENT(IN) :: jend_
233      INTEGER                        , OPTIONAL, INTENT(IN) :: nj_
234      LOGICAL          , dimension(*), OPTIONAL, INTENT(IN) :: mask_(:,:)
235      INTEGER                        , OPTIONAL, INTENT(IN) :: data_dim_
236      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ni_
237      INTEGER                        , OPTIONAL, INTENT(IN) :: data_nj_
238      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ibegin_
239      INTEGER                        , OPTIONAL, INTENT(IN) :: data_jbegin_
240      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ni_
241      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_nj_
242      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ibegin_
243      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_jbegin_
244      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ni_loc_
245      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
246      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_
247      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_
248      INTEGER                        , OPTIONAL, INTENT(IN) :: data_n_index_
249      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_i_index_(:)
250      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_j_index_(:)
251      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: lonvalue_(:)
252      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: latvalue_(:)
253 
254      CALL domain_handle_create(domain_hdl, domain_id)
255      CALL set_domain_attributes_hdl                                                                     &
256   ( domain_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &
257     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,         &
258     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,       &
259     zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)
260
261   END SUBROUTINE set_domain_attributes_id
262   
263   SUBROUTINE set_domain_attributes_hdl                                                                  &
264   ( domain_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,  &
265     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,         &
266     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, zoom_ni_loc_, zoom_nj_loc_, zoom_ibegin_loc_,       &
267     zoom_jbegin_loc_, data_n_index_, data_i_index_, data_j_index_, lonvalue_, latvalue_)
268      IMPLICIT NONE
269      TYPE(XDomainHandle)                        , INTENT(IN) :: domain_hdl
270      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: name_
271      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: standard_name_
272      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: long_name_
273      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domain_group_ref_
274      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_glo_
275      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_glo_
276      INTEGER                          , OPTIONAL, INTENT(IN) :: ibegin_
277      INTEGER                          , OPTIONAL, INTENT(IN) :: iend_
278      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_
279      INTEGER                          , OPTIONAL, INTENT(IN) :: jbegin_
280      INTEGER                          , OPTIONAL, INTENT(IN) :: jend_
281      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_
282      LOGICAL          , dimension(*)  , OPTIONAL, INTENT(IN) :: mask_(:,:)
283      LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE          :: mask__
284      INTEGER                          , OPTIONAL, INTENT(IN) :: data_dim_
285      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ni_
286      INTEGER                          , OPTIONAL, INTENT(IN) :: data_nj_
287      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ibegin_
288      INTEGER                          , OPTIONAL, INTENT(IN) :: data_jbegin_
289      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni_
290      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj_
291      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin_
292      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin_
293      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni_loc_
294      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj_loc_
295      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin_loc_
296      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin_loc_
297      INTEGER                          , OPTIONAL, INTENT(IN) :: data_n_index_
298      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_i_index_(:)
299      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_j_index_(:)
300      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: lonvalue_(:)
301      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: latvalue_(:)
302      IF (PRESENT(name_))             THEN
303         CALL xios_set_domain_name(domain_hdl%daddr, name_, len(name_))
304      END IF
305      IF (PRESENT(standard_name_))    THEN
306         CALL xios_set_domain_standard_name(domain_hdl%daddr, standard_name_, len(standard_name_))
307      END IF
308      IF (PRESENT(long_name_))        THEN
309         CALL xios_set_domain_long_name(domain_hdl%daddr, long_name_, len(long_name_))
310       END IF
311      IF (PRESENT(domain_group_ref_)) THEN
312         CALL xios_set_domain_domain_group_ref(domain_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
313      END IF
314      IF (PRESENT(ni_glo_))           THEN
315         CALL xios_set_domain_ni_glo(domain_hdl%daddr, ni_glo_)
316      END IF
317      IF (PRESENT(nj_glo_))           THEN
318         CALL xios_set_domain_nj_glo(domain_hdl%daddr, nj_glo_)
319      END IF
320      IF (PRESENT(ibegin_))           THEN
321         CALL xios_set_domain_ibegin(domain_hdl%daddr, ibegin_)
322       END IF
323      IF (PRESENT(iend_))             THEN
324         CALL xios_set_domain_iend(domain_hdl%daddr, iend_)
325      END IF
326      IF (PRESENT(ni_))               THEN
327         CALL xios_set_domain_ni(domain_hdl%daddr, ni_)
328      END IF
329      IF (PRESENT(jbegin_))           THEN
330         CALL xios_set_domain_jbegin(domain_hdl%daddr, jbegin_)
331      END IF
332      IF (PRESENT(jend_))             THEN
333         CALL xios_set_domain_jend(domain_hdl%daddr, jend_)
334      END IF
335      IF (PRESENT(nj_))               THEN
336         CALL xios_set_domain_nj(domain_hdl%daddr, nj_)
337      END IF
338      IF (PRESENT(mask_))             THEN
339         ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))
340         mask__(:,:) = mask_(:,:)
341         CALL xios_set_domain_mask(domain_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))         
342         DEALLOCATE(mask__)
343      END IF
344      IF (PRESENT(data_dim_))         THEN
345         CALL xios_set_domain_data_dim(domain_hdl%daddr, data_dim_)
346      END IF
347      IF (PRESENT(data_ni_))          THEN
348         CALL xios_set_domain_data_ni(domain_hdl%daddr, data_ni_)
349      END IF
350      IF (PRESENT(data_nj_))          THEN
351         CALL xios_set_domain_data_nj(domain_hdl%daddr, data_nj_)
352      END IF
353      IF (PRESENT(data_ibegin_))      THEN
354         CALL xios_set_domain_data_ibegin(domain_hdl%daddr, data_ibegin_)
355      END IF
356      IF (PRESENT(data_jbegin_))      THEN
357         CALL xios_set_domain_data_jbegin(domain_hdl%daddr, data_jbegin_)
358      END IF
359      IF (PRESENT(zoom_ni_))          THEN
360         CALL xios_set_domain_zoom_ni(domain_hdl%daddr, zoom_ni_)
361      END IF
362      IF (PRESENT(zoom_nj_))          THEN
363       CALL xios_set_domain_zoom_nj(domain_hdl%daddr, zoom_nj_)
364      END IF
365      IF (PRESENT(zoom_ibegin_))      THEN
366         CALL xios_set_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_)
367      END IF
368      IF (PRESENT(zoom_jbegin_))      THEN
369         CALL xios_set_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_)
370      END IF
371      IF (PRESENT(zoom_ni_loc_))      THEN
372         CALL xios_set_domain_zoom_ni_loc(domain_hdl%daddr, zoom_ni_loc_)
373      END IF   
374      IF (PRESENT(zoom_nj_loc_))      THEN
375         CALL xios_set_domain_zoom_nj_loc(domain_hdl%daddr, zoom_nj_loc_)
376      END IF
377      IF (PRESENT(zoom_ibegin_loc_))  THEN
378         CALL xios_set_domain_zoom_ibegin_loc(domain_hdl%daddr, zoom_ibegin_loc_)
379      END IF
380      IF (PRESENT(zoom_jbegin_loc_))  THEN
381         CALL xios_set_domain_zoom_jbegin_loc(domain_hdl%daddr, zoom_jbegin_loc_)
382      END IF
383      IF (PRESENT(data_n_index_))     THEN
384         CALL xios_set_domain_data_n_index(domain_hdl%daddr, data_n_index_)
385      END IF
386      IF (PRESENT(data_i_index_))     THEN
387         CALL xios_set_domain_data_i_index(domain_hdl%daddr, data_i_index_, size(data_i_index_, 1))
388      END IF
389      IF (PRESENT(data_j_index_))     THEN
390         CALL xios_set_domain_data_j_index(domain_hdl%daddr, data_j_index_, size(data_j_index_, 1))
391      END IF
392      IF (PRESENT(lonvalue_))         THEN
393         CALL xios_set_domain_lonvalue(domain_hdl%daddr, lonvalue_, size(lonvalue_, 1))
394      END IF
395      IF (PRESENT(latvalue_))         THEN
396         CALL xios_set_domain_latvalue(domain_hdl%daddr, latvalue_, size(latvalue_, 1))
397      END IF
398
399   END SUBROUTINE set_domain_attributes_hdl
400   
401   SUBROUTINE domain_handle_create(ret, idt)
402      IMPLICIT NONE
403      TYPE(XDomainHandle), INTENT(OUT):: ret
404      CHARACTER(len = *) , INTENT(IN) :: idt     
405      CALL xios_domain_handle_create(ret%daddr, idt, len(idt))           
406   END SUBROUTINE domain_handle_create
407   
408   SUBROUTINE domaingroup_handle_create(ret, idt)
409      IMPLICIT NONE
410      TYPE(XDomainGroupHandle), INTENT(OUT):: ret
411      CHARACTER(len = *)      , INTENT(IN) :: idt     
412      CALL xios_domaingroup_handle_create(ret%daddr, idt, len(idt))           
413   END SUBROUTINE domaingroup_handle_create
414   
415END MODULE IDOMAIN
Note: See TracBrowser for help on using the repository browser.