source: XIOS/trunk/src/fortran/idomain.F90 @ 312

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

suppress old fortran interface

YM

File size: 26.6 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE IDOMAIN
4   USE, INTRINSIC :: ISO_C_BINDING
5   USE DOMAIN_INTERFACE
6   USE DOMAINGROUP_INTERFACE
7   
8   TYPE txios(domain)
9      INTEGER(kind = C_INTPTR_T) :: daddr
10   END TYPE txios(domain)
11   
12   TYPE txios(domaingroup)
13      INTEGER(kind = C_INTPTR_T) :: daddr
14   END TYPE txios(domaingroup)
15   
16   
17   CONTAINS ! Fonctions disponibles pour les utilisateurs.
18
19
20   SUBROUTINE xios(set_domaingroup_attr)                                                                   &
21   ( domaingroup_id, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,       &
22     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,                     &
23     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index,                 &
24     lonvalue, latvalue)
25      IMPLICIT NONE
26      TYPE(txios(domaingroup))                              :: domaingroup_hdl
27      CHARACTER(len = *)                       , INTENT(IN) :: domaingroup_id
28      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: name
29      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: standard_name
30      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: long_name
31      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: domain_group_ref
32      INTEGER                        , OPTIONAL, INTENT(IN) :: ni_glo
33      INTEGER                        , OPTIONAL, INTENT(IN) :: nj_glo
34      INTEGER                        , OPTIONAL, INTENT(IN) :: ibegin
35      INTEGER                        , OPTIONAL, INTENT(IN) :: iend
36      INTEGER                        , OPTIONAL, INTENT(IN) :: ni
37      INTEGER                        , OPTIONAL, INTENT(IN) :: jbegin
38      INTEGER                        , OPTIONAL, INTENT(IN) :: jend
39      INTEGER                        , OPTIONAL, INTENT(IN) :: nj
40      LOGICAL          , dimension(*), OPTIONAL, INTENT(IN) :: mask(:,:)
41      INTEGER                        , OPTIONAL, INTENT(IN) :: data_dim
42      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ni
43      INTEGER                        , OPTIONAL, INTENT(IN) :: data_nj
44      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ibegin
45      INTEGER                        , OPTIONAL, INTENT(IN) :: data_jbegin
46      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ni
47      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_nj
48      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ibegin
49      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_jbegin
50      INTEGER                        , OPTIONAL, INTENT(IN) :: data_n_index
51      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_i_index(:)
52      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_j_index(:)
53      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: lonvalue(:)
54      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: latvalue(:)
55 
56      CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)
57      CALL xios(set_domaingroup_attr_hdl_)                                                                 &
58   ( domaingroup_hdl, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,      &
59     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,                     &
60     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index,                 &
61     lonvalue, latvalue)
62
63   END SUBROUTINE xios(set_domaingroup_attr)
64
65   SUBROUTINE xios(set_domaingroup_attr_hdl)                                                               &   
66   ( domaingroup_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,       &
67     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,                     &
68     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index,                               &
69     data_j_index, lonvalue, latvalue)
70      IMPLICIT NONE
71      TYPE(txios(domaingroup))             , INTENT(IN) :: domaingroup_hdl
72      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: name
73      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: standard_name
74      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: long_name
75      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domain_group_ref
76      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_glo
77      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_glo
78      INTEGER                          , OPTIONAL, INTENT(IN) :: ibegin
79      INTEGER                          , OPTIONAL, INTENT(IN) :: iend
80      INTEGER                          , OPTIONAL, INTENT(IN) :: ni
81      INTEGER                          , OPTIONAL, INTENT(IN) :: jbegin
82      INTEGER                          , OPTIONAL, INTENT(IN) :: jend
83      INTEGER                          , OPTIONAL, INTENT(IN) :: nj
84      LOGICAL          , dimension(*)  , OPTIONAL, INTENT(IN) :: mask(:,:)
85      INTEGER                          , OPTIONAL, INTENT(IN) :: data_dim
86      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ni
87      INTEGER                          , OPTIONAL, INTENT(IN) :: data_nj
88      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ibegin
89      INTEGER                          , OPTIONAL, INTENT(IN) :: data_jbegin
90      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni
91      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj
92      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin
93      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin
94      INTEGER                          , OPTIONAL, INTENT(IN) :: data_n_index
95      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_i_index(:)
96      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_j_index(:)
97      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: lonvalue(:)
98      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: latvalue(:)   
99
100      CALL xios(set_domaingroup_attr_hdl_)                                                               &
101   ( domaingroup_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,     &
102     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,                   &
103     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index,               &
104     lonvalue, latvalue)
105
106    END SUBROUTINE xios(set_domaingroup_attr_hdl)
107
108   SUBROUTINE xios(set_domaingroup_attr_hdl_)                                                                       &
109   ( domaingroup_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,       &
110     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,                   &
111     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, data_n_index_, data_i_index_, data_j_index_,                  &
112     lonvalue_, latvalue_)
113      IMPLICIT NONE
114      TYPE(txios(domaingroup))             , INTENT(IN) :: domaingroup_hdl
115      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: name_
116      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: standard_name_
117      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: long_name_
118      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domain_group_ref_
119      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_glo_
120      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_glo_
121      INTEGER                          , OPTIONAL, INTENT(IN) :: ibegin_
122      INTEGER                          , OPTIONAL, INTENT(IN) :: iend_
123      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_
124      INTEGER                          , OPTIONAL, INTENT(IN) :: jbegin_
125      INTEGER                          , OPTIONAL, INTENT(IN) :: jend_
126      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_
127      LOGICAL          , dimension(*)  , OPTIONAL, INTENT(IN) :: mask_(:,:)
128      LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE          :: mask__! (size(mask_,1),size(mask,2))
129      INTEGER                          , OPTIONAL, INTENT(IN) :: data_dim_
130      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ni_
131      INTEGER                          , OPTIONAL, INTENT(IN) :: data_nj_
132      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ibegin_
133      INTEGER                          , OPTIONAL, INTENT(IN) :: data_jbegin_
134      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni_
135      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj_
136      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin_
137      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin_
138      INTEGER                          , OPTIONAL, INTENT(IN) :: data_n_index_
139      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_i_index_(:)
140      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_j_index_(:)
141      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: lonvalue_(:)
142      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: latvalue_(:)
143     
144      IF (PRESENT(name_))             THEN
145         CALL cxios_set_domaingroup_name(domaingroup_hdl%daddr, name_, len(name_))
146      END IF
147      IF (PRESENT(standard_name_))    THEN
148         CALL cxios_set_domaingroup_standard_name(domaingroup_hdl%daddr, standard_name_, len(standard_name_))
149      END IF
150      IF (PRESENT(long_name_))        THEN
151         CALL cxios_set_domaingroup_long_name(domaingroup_hdl%daddr, long_name_, len(long_name_))
152       END IF
153      IF (PRESENT(domain_group_ref_)) THEN
154         CALL cxios_set_domaingroup_domain_group_ref(domaingroup_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
155      END IF
156      IF (PRESENT(ni_glo_))           THEN
157         CALL cxios_set_domaingroup_ni_glo(domaingroup_hdl%daddr, ni_glo_)
158      END IF
159      IF (PRESENT(nj_glo_))           THEN
160         CALL cxios_set_domaingroup_nj_glo(domaingroup_hdl%daddr, nj_glo_)
161      END IF
162      IF (PRESENT(ibegin_))           THEN
163         CALL cxios_set_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_)
164       END IF
165      IF (PRESENT(iend_))             THEN
166         CALL cxios_set_domaingroup_iend(domaingroup_hdl%daddr, iend_)
167      END IF
168      IF (PRESENT(ni_))               THEN
169         CALL cxios_set_domaingroup_ni(domaingroup_hdl%daddr, ni_)
170      END IF
171      IF (PRESENT(jbegin_))           THEN
172         CALL cxios_set_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_)
173      END IF
174      IF (PRESENT(jend_))             THEN
175         CALL cxios_set_domaingroup_jend(domaingroup_hdl%daddr, jend_)
176      END IF
177      IF (PRESENT(nj_))               THEN
178         CALL cxios_set_domaingroup_nj(domaingroup_hdl%daddr, nj_)
179      END IF
180      IF (PRESENT(mask_))             THEN
181         ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))
182         mask__(:,:) = mask_(:,:)
183         CALL cxios_set_domaingroup_mask(domaingroup_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))         
184         DEALLOCATE(mask__)
185      END IF
186      IF (PRESENT(data_dim_))         THEN
187         CALL cxios_set_domaingroup_data_dim(domaingroup_hdl%daddr, data_dim_)
188      END IF
189      IF (PRESENT(data_ni_))          THEN
190         CALL cxios_set_domaingroup_data_ni(domaingroup_hdl%daddr, data_ni_)
191      END IF
192      IF (PRESENT(data_nj_))          THEN
193         CALL cxios_set_domaingroup_data_nj(domaingroup_hdl%daddr, data_nj_)
194      END IF
195      IF (PRESENT(data_ibegin_))      THEN
196         CALL cxios_set_domaingroup_data_ibegin(domaingroup_hdl%daddr, data_ibegin_)
197      END IF
198      IF (PRESENT(data_jbegin_))      THEN
199         CALL cxios_set_domaingroup_data_jbegin(domaingroup_hdl%daddr, data_jbegin_)
200      END IF
201      IF (PRESENT(zoom_ni_))          THEN
202         CALL cxios_set_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_)
203      END IF
204      IF (PRESENT(zoom_nj_))          THEN
205       CALL cxios_set_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_)
206      END IF
207      IF (PRESENT(zoom_ibegin_))      THEN
208         CALL cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_)
209      END IF
210      IF (PRESENT(zoom_jbegin_))      THEN
211         CALL cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_)
212      END IF
213
214      IF (PRESENT(data_n_index_))     THEN
215         CALL cxios_set_domaingroup_data_n_index(domaingroup_hdl%daddr, data_n_index_)
216      END IF
217      IF (PRESENT(data_i_index_))     THEN
218         CALL cxios_set_domaingroup_data_i_index(domaingroup_hdl%daddr, data_i_index_, size(data_i_index_, 1))
219      END IF
220      IF (PRESENT(data_j_index_))     THEN
221         CALL cxios_set_domaingroup_data_j_index(domaingroup_hdl%daddr, data_j_index_, size(data_j_index_, 1))
222      END IF
223      IF (PRESENT(lonvalue_))         THEN
224         CALL cxios_set_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_, size(lonvalue_, 1))
225      END IF
226      IF (PRESENT(latvalue_))         THEN
227         CALL cxios_set_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_, size(latvalue_, 1))
228      END IF
229
230   END SUBROUTINE xios(set_domaingroup_attr_hdl_)
231   
232   
233   SUBROUTINE xios(set_domain_attr)                                                                &
234   ( domain_id, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,    &
235     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,             &
236     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index,         &
237     lonvalue, latvalue)
238      IMPLICIT NONE
239     
240      TYPE(txios(domain))                                   :: domain_hdl
241      CHARACTER(len = *)                       , INTENT(IN) :: domain_id
242      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: name
243      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: standard_name
244      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: long_name
245      CHARACTER(len = *)             , OPTIONAL, INTENT(IN) :: domain_group_ref
246      INTEGER                        , OPTIONAL, INTENT(IN) :: ni_glo
247      INTEGER                        , OPTIONAL, INTENT(IN) :: nj_glo
248      INTEGER                        , OPTIONAL, INTENT(IN) :: ibegin
249      INTEGER                        , OPTIONAL, INTENT(IN) :: iend
250      INTEGER                        , OPTIONAL, INTENT(IN) :: ni
251      INTEGER                        , OPTIONAL, INTENT(IN) :: jbegin
252      INTEGER                        , OPTIONAL, INTENT(IN) :: jend
253      INTEGER                        , OPTIONAL, INTENT(IN) :: nj
254      LOGICAL          , dimension(*), OPTIONAL, INTENT(IN) :: mask(:,:)
255      INTEGER                        , OPTIONAL, INTENT(IN) :: data_dim
256      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ni
257      INTEGER                        , OPTIONAL, INTENT(IN) :: data_nj
258      INTEGER                        , OPTIONAL, INTENT(IN) :: data_ibegin
259      INTEGER                        , OPTIONAL, INTENT(IN) :: data_jbegin
260      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ni
261      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_nj
262      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_ibegin
263      INTEGER                        , OPTIONAL, INTENT(IN) :: zoom_jbegin
264      INTEGER                        , OPTIONAL, INTENT(IN) :: data_n_index
265      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_i_index(:)
266      INTEGER       , dimension(*)   , OPTIONAL, INTENT(IN) :: data_j_index(:)
267      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: lonvalue(:)
268      REAL(kind = 8), dimension(*)   , OPTIONAL, INTENT(IN) :: latvalue(:)
269 
270      CALL xios(get_domain_handle)(domain_id,domain_hdl)
271      CALL xios(set_domain_attr_hdl_)                                                               &
272   ( domain_hdl, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,    &
273     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,              &
274     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index,          &
275     lonvalue, latvalue)
276
277   END SUBROUTINE xios(set_domain_attr)
278
279
280   SUBROUTINE xios(set_domain_attr_hdl)                                                            &
281   ( domain_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,    &
282     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,             &
283     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index,                       &
284     data_j_index, lonvalue, latvalue)
285      IMPLICIT NONE
286     
287      TYPE(txios(domain))                       , INTENT(IN) :: domain_hdl
288      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: name
289      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: standard_name
290      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: long_name
291      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domain_group_ref
292      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_glo
293      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_glo
294      INTEGER                          , OPTIONAL, INTENT(IN) :: ibegin
295      INTEGER                          , OPTIONAL, INTENT(IN) :: iend
296      INTEGER                          , OPTIONAL, INTENT(IN) :: ni
297      INTEGER                          , OPTIONAL, INTENT(IN) :: jbegin
298      INTEGER                          , OPTIONAL, INTENT(IN) :: jend
299      INTEGER                          , OPTIONAL, INTENT(IN) :: nj
300      LOGICAL          , dimension(*)  , OPTIONAL, INTENT(IN) :: mask(:,:)
301      INTEGER                          , OPTIONAL, INTENT(IN) :: data_dim
302      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ni
303      INTEGER                          , OPTIONAL, INTENT(IN) :: data_nj
304      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ibegin
305      INTEGER                          , OPTIONAL, INTENT(IN) :: data_jbegin
306      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni
307      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj
308      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin
309      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin
310      INTEGER                          , OPTIONAL, INTENT(IN) :: data_n_index
311      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_i_index(:)
312      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_j_index(:)
313      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: lonvalue(:)
314      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: latvalue(:)
315     
316      CALL xios(set_domain_attr_hdl_)                                                             &
317   ( domain_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend,   &
318     ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin,            &
319     zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index,        &
320     lonvalue, latvalue)
321     
322   END SUBROUTINE xios(set_domain_attr_hdl)
323       
324   SUBROUTINE xios(set_domain_attr_hdl_)                                                                 &
325   ( domain_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_,  &
326     ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_,         &
327     zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, data_n_index_, data_i_index_, data_j_index_,        &
328     lonvalue_, latvalue_)
329
330      IMPLICIT NONE
331      TYPE(txios(domain))                       , INTENT(IN) :: domain_hdl
332      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: name_
333      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: standard_name_
334      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: long_name_
335      CHARACTER(len = *)               , OPTIONAL, INTENT(IN) :: domain_group_ref_
336      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_glo_
337      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_glo_
338      INTEGER                          , OPTIONAL, INTENT(IN) :: ibegin_
339      INTEGER                          , OPTIONAL, INTENT(IN) :: iend_
340      INTEGER                          , OPTIONAL, INTENT(IN) :: ni_
341      INTEGER                          , OPTIONAL, INTENT(IN) :: jbegin_
342      INTEGER                          , OPTIONAL, INTENT(IN) :: jend_
343      INTEGER                          , OPTIONAL, INTENT(IN) :: nj_
344      LOGICAL          , dimension(*)  , OPTIONAL, INTENT(IN) :: mask_(:,:)
345      LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE          :: mask__
346      INTEGER                          , OPTIONAL, INTENT(IN) :: data_dim_
347      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ni_
348      INTEGER                          , OPTIONAL, INTENT(IN) :: data_nj_
349      INTEGER                          , OPTIONAL, INTENT(IN) :: data_ibegin_
350      INTEGER                          , OPTIONAL, INTENT(IN) :: data_jbegin_
351      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ni_
352      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_nj_
353      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_ibegin_
354      INTEGER                          , OPTIONAL, INTENT(IN) :: zoom_jbegin_
355      INTEGER                          , OPTIONAL, INTENT(IN) :: data_n_index_
356      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_i_index_(:)
357      INTEGER       , dimension(*)     , OPTIONAL, INTENT(IN) :: data_j_index_(:)
358      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: lonvalue_(:)
359      REAL(kind = 8), dimension(*)     , OPTIONAL, INTENT(IN) :: latvalue_(:)
360      IF (PRESENT(name_))             THEN
361         CALL cxios_set_domain_name(domain_hdl%daddr, name_, len(name_))
362      END IF
363      IF (PRESENT(standard_name_))    THEN
364         CALL cxios_set_domain_standard_name(domain_hdl%daddr, standard_name_, len(standard_name_))
365      END IF
366      IF (PRESENT(long_name_))        THEN
367         CALL cxios_set_domain_long_name(domain_hdl%daddr, long_name_, len(long_name_))
368       END IF
369      IF (PRESENT(domain_group_ref_)) THEN
370         CALL cxios_set_domain_domain_group_ref(domain_hdl%daddr, domain_group_ref_, len(domain_group_ref_))
371      END IF
372      IF (PRESENT(ni_glo_))           THEN
373         CALL cxios_set_domain_ni_glo(domain_hdl%daddr, ni_glo_)
374      END IF
375      IF (PRESENT(nj_glo_))           THEN
376         CALL cxios_set_domain_nj_glo(domain_hdl%daddr, nj_glo_)
377      END IF
378      IF (PRESENT(ibegin_))           THEN
379         CALL cxios_set_domain_ibegin(domain_hdl%daddr, ibegin_)
380       END IF
381      IF (PRESENT(iend_))             THEN
382         CALL cxios_set_domain_iend(domain_hdl%daddr, iend_)
383      END IF
384      IF (PRESENT(ni_))               THEN
385         CALL cxios_set_domain_ni(domain_hdl%daddr, ni_)
386      END IF
387      IF (PRESENT(jbegin_))           THEN
388         CALL cxios_set_domain_jbegin(domain_hdl%daddr, jbegin_)
389      END IF
390      IF (PRESENT(jend_))             THEN
391         CALL cxios_set_domain_jend(domain_hdl%daddr, jend_)
392      END IF
393      IF (PRESENT(nj_))               THEN
394         CALL cxios_set_domain_nj(domain_hdl%daddr, nj_)
395      END IF
396      IF (PRESENT(mask_))             THEN
397         ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))
398         mask__(:,:) = mask_(:,:)
399         CALL cxios_set_domain_mask(domain_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))         
400         DEALLOCATE(mask__)
401      END IF
402      IF (PRESENT(data_dim_))         THEN
403         CALL cxios_set_domain_data_dim(domain_hdl%daddr, data_dim_)
404      END IF
405      IF (PRESENT(data_ni_))          THEN
406         CALL cxios_set_domain_data_ni(domain_hdl%daddr, data_ni_)
407      END IF
408      IF (PRESENT(data_nj_))          THEN
409         CALL cxios_set_domain_data_nj(domain_hdl%daddr, data_nj_)
410      END IF
411      IF (PRESENT(data_ibegin_))      THEN
412         CALL cxios_set_domain_data_ibegin(domain_hdl%daddr, data_ibegin_)
413      END IF
414      IF (PRESENT(data_jbegin_))      THEN
415         CALL cxios_set_domain_data_jbegin(domain_hdl%daddr, data_jbegin_)
416      END IF
417      IF (PRESENT(zoom_ni_))          THEN
418         CALL cxios_set_domain_zoom_ni(domain_hdl%daddr, zoom_ni_)
419      END IF
420      IF (PRESENT(zoom_nj_))          THEN
421       CALL cxios_set_domain_zoom_nj(domain_hdl%daddr, zoom_nj_)
422      END IF
423      IF (PRESENT(zoom_ibegin_))      THEN
424         CALL cxios_set_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_)
425      END IF
426      IF (PRESENT(zoom_jbegin_))      THEN
427         CALL cxios_set_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_)
428      END IF
429      IF (PRESENT(data_n_index_))     THEN
430         CALL cxios_set_domain_data_n_index(domain_hdl%daddr, data_n_index_)
431      END IF
432      IF (PRESENT(data_i_index_))     THEN
433         CALL cxios_set_domain_data_i_index(domain_hdl%daddr, data_i_index_, size(data_i_index_, 1))
434      END IF
435      IF (PRESENT(data_j_index_))     THEN
436         CALL cxios_set_domain_data_j_index(domain_hdl%daddr, data_j_index_, size(data_j_index_, 1))
437      END IF
438      IF (PRESENT(lonvalue_))         THEN
439         CALL cxios_set_domain_lonvalue(domain_hdl%daddr, lonvalue_, size(lonvalue_, 1))
440      END IF
441      IF (PRESENT(latvalue_))         THEN
442         CALL cxios_set_domain_latvalue(domain_hdl%daddr, latvalue_, size(latvalue_, 1))
443      END IF
444
445   END SUBROUTINE xios(set_domain_attr_hdl_)
446
447
448   
449   SUBROUTINE xios(get_domain_handle)(idt,ret)
450      IMPLICIT NONE
451      CHARACTER(len = *) , INTENT(IN) :: idt     
452      TYPE(txios(domain)), INTENT(OUT):: ret
453 
454      CALL cxios_domain_handle_create(ret%daddr, idt, len(idt))           
455
456   END SUBROUTINE xios(get_domain_handle)
457   
458   SUBROUTINE xios(get_domaingroup_handle)(idt, ret)
459      IMPLICIT NONE
460      CHARACTER(len = *)      , INTENT(IN) :: idt     
461      TYPE(txios(domaingroup)), INTENT(OUT):: ret
462
463      CALL cxios_domaingroup_handle_create(ret%daddr, idt, len(idt))           
464
465   END SUBROUTINE xios(get_domaingroup_handle)
466
467   LOGICAL FUNCTION xios(is_valid_domain)(idt)
468      IMPLICIT NONE
469      CHARACTER(len  = *)    , INTENT(IN) :: idt
470      LOGICAL  (kind = 1)                 :: val
471      CALL cxios_domain_valid_id(val, idt, len(idt));
472      xios(is_valid_domain) = val
473   END FUNCTION  xios(is_valid_domain)
474
475   LOGICAL FUNCTION xios(is_valid_domaingroup)(idt)
476      IMPLICIT NONE
477      CHARACTER(len  = *)    , INTENT(IN) :: idt
478      LOGICAL  (kind = 1)                 :: val
479      CALL cxios_domaingroup_valid_id(val, idt, len(idt));
480      xios(is_valid_domaingroup) = val
481   END FUNCTION  xios(is_valid_domaingroup)
482   
483END MODULE IDOMAIN
Note: See TracBrowser for help on using the repository browser.