source: XIOS/trunk/src/fortran/icontext.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: 3.8 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE ICONTEXT
4   USE, INTRINSIC :: ISO_C_BINDING
5   USE CONTEXT_INTERFACE
6   USE IDATE
7
8   
9   TYPE txios(context)
10      INTEGER(kind = C_INTPTR_T) :: daddr
11   END TYPE txios(context)
12     
13   
14   CONTAINS ! Fonctions disponibles pour les utilisateurs.
15   
16   SUBROUTINE xios(set_context_attr)( context_id, calendar_type, start_date, output_dir)
17      IMPLICIT NONE
18      CHARACTER(len = *)            , INTENT(IN) :: context_id
19      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: calendar_type
20      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: start_date
21      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: output_dir
22         
23      CALL xios(set_context_attr_)( context_id, calendar_type, start_date, output_dir)
24   END SUBROUTINE xios(set_context_attr)
25
26
27   SUBROUTINE xios(set_context_attr_)( context_id, calendar_type_, start_date_, output_dir_)
28      IMPLICIT NONE
29      CHARACTER(len = *)            , INTENT(IN) :: context_id
30      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: calendar_type_
31      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: start_date_
32      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: output_dir_
33      TYPE(txios(context))                      :: context_hdl
34         
35      CALL xios(get_context_handle)(context_id,context_hdl)
36      CALL xios(set_context_attr_hdl_)( context_hdl, calendar_type_, start_date_, output_dir_)
37   END SUBROUTINE xios(set_context_attr_)
38
39
40   SUBROUTINE xios(set_context_attr_hdl)( context_hdl, calendar_type, start_date, output_dir)
41      IMPLICIT NONE
42      TYPE(txios(context))          , INTENT(IN) :: context_hdl
43      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: calendar_type
44      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: start_date
45      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: output_dir   
46       
47      CALL  xios(set_context_attr_hdl_)( context_hdl, calendar_type, start_date, output_dir) 
48
49   END SUBROUTINE xios(set_context_attr_hdl)
50
51   SUBROUTINE xios(set_context_attr_hdl_)( context_hdl, calendar_type_, start_date_, output_dir_)
52      IMPLICIT NONE
53      TYPE(txios(context))          , INTENT(IN) :: context_hdl
54      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: calendar_type_
55      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: start_date_
56      CHARACTER(len = *)  , OPTIONAL, INTENT(IN) :: output_dir_   
57         
58      IF (PRESENT(calendar_type_)) THEN
59         CALL cxios_set_context_calendar_type(context_hdl%daddr, calendar_type_, len(calendar_type_))
60      END IF
61      IF (PRESENT(start_date_))    THEN
62         CALL cxios_set_context_start_date(context_hdl%daddr, start_date_, len(start_date_))
63      END IF
64      IF (PRESENT(output_dir_))    THEN
65         CALL cxios_set_context_output_dir(context_hdl%daddr, output_dir_, len(output_dir_))
66      END IF
67   END SUBROUTINE xios(set_context_attr_hdl_)
68
69
70
71   SUBROUTINE xios(get_context_handle)(idt,ret)
72      IMPLICIT NONE
73      CHARACTER(len = *)  , INTENT(IN)  :: idt     
74      TYPE(txios(context)), INTENT(OUT):: ret
75
76      CALL cxios_context_handle_create(ret%daddr, idt, len(idt))           
77   END SUBROUTINE xios(get_context_handle)
78   
79   SUBROUTINE xios(set_current_context)(context, withswap)
80      IMPLICIT NONE
81
82      TYPE(txios(context))          , INTENT(IN) :: context
83      LOGICAL             , OPTIONAL, INTENT(IN) :: withswap
84      LOGICAL (kind = 1)                       :: wswap
85
86      IF (PRESENT(withswap)) THEN
87         wswap = withswap
88      ELSE
89         wswap = .FALSE.
90      END IF
91      CALL cxios_context_set_current(context%daddr, wswap)
92
93   END SUBROUTINE xios(set_current_context)
94 
95   LOGICAL FUNCTION xios(is_valid_context)(idt)
96      IMPLICIT NONE
97      CHARACTER(len  = *)    , INTENT(IN) :: idt
98      LOGICAL  (kind = 1)                 :: val
99
100      CALL cxios_context_valid_id(val, idt, len(idt));
101      xios(is_valid_context) = val
102
103   END FUNCTION  xios(is_valid_context)
104
105   
106END MODULE ICONTEXT
Note: See TracBrowser for help on using the repository browser.