Ignore:
Timestamp:
12/10/14 14:27:09 (9 years ago)
Author:
rlacroix
Message:

Add a new attribute type for dates and use it for the context's start_date and time_origin.

The "xios_date" type should now be used to get/set date attributes through the Fortran interface. This avoids using strings to manipulate dates.

Location:
XIOS/trunk/src/interface/fortran_attr
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/fortran_attr/axis_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE axis_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/axisgroup_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE axisgroup_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/context_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE context_interface_attr 
     
    5152     
    5253     
    53     SUBROUTINE cxios_set_context_start_date(context_hdl, start_date, start_date_size) BIND(C) 
     54    SUBROUTINE cxios_set_context_start_date(context_hdl, start_date) BIND(C) 
    5455      USE ISO_C_BINDING 
     56      USE IDATE 
    5557      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl 
    56       CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: start_date 
    57       INTEGER  (kind = C_INT)     , VALUE        :: start_date_size 
     58      TYPE(xios_date), VALUE :: start_date 
    5859    END SUBROUTINE cxios_set_context_start_date 
    5960     
    60     SUBROUTINE cxios_get_context_start_date(context_hdl, start_date, start_date_size) BIND(C) 
     61    SUBROUTINE cxios_get_context_start_date(context_hdl, start_date) BIND(C) 
    6162      USE ISO_C_BINDING 
     63      USE IDATE 
    6264      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl 
    63       CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: start_date 
    64       INTEGER  (kind = C_INT)     , VALUE        :: start_date_size 
     65      TYPE(txios(date)) :: start_date 
    6566    END SUBROUTINE cxios_get_context_start_date 
    6667     
     
    7273     
    7374     
    74     SUBROUTINE cxios_set_context_time_origin(context_hdl, time_origin, time_origin_size) BIND(C) 
     75    SUBROUTINE cxios_set_context_time_origin(context_hdl, time_origin) BIND(C) 
    7576      USE ISO_C_BINDING 
     77      USE IDATE 
    7678      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl 
    77       CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: time_origin 
    78       INTEGER  (kind = C_INT)     , VALUE        :: time_origin_size 
     79      TYPE(xios_date), VALUE :: time_origin 
    7980    END SUBROUTINE cxios_set_context_time_origin 
    8081     
    81     SUBROUTINE cxios_get_context_time_origin(context_hdl, time_origin, time_origin_size) BIND(C) 
     82    SUBROUTINE cxios_get_context_time_origin(context_hdl, time_origin) BIND(C) 
    8283      USE ISO_C_BINDING 
     84      USE IDATE 
    8385      INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl 
    84       CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: time_origin 
    85       INTEGER  (kind = C_INT)     , VALUE        :: time_origin_size 
     86      TYPE(txios(date)) :: time_origin 
    8687    END SUBROUTINE cxios_get_context_time_origin 
    8788     
  • XIOS/trunk/src/interface/fortran_attr/domain_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE domain_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/domaingroup_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE domaingroup_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/field_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE field_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE fieldgroup_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE file_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE filegroup_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/grid_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE grid_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/gridgroup_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE gridgroup_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/icontext_attr.F90

    r501 r532  
    1919      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type 
    2020      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir 
    21       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date 
    22       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin 
     21      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: start_date 
     22      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: time_origin 
    2323      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep 
    2424       
     
    3636      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type 
    3737      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir 
    38       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date 
    39       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin 
     38      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: start_date 
     39      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: time_origin 
    4040      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep 
    4141       
     
    5252      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type_ 
    5353      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_ 
    54       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_ 
    55       CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin_ 
     54      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: start_date_ 
     55      TYPE(txios(date)) , OPTIONAL, INTENT(IN) :: time_origin_ 
    5656      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timestep_ 
    5757       
     
    6565       
    6666      IF (PRESENT(start_date_)) THEN 
    67         CALL cxios_set_context_start_date(context_hdl%daddr, start_date_, len(start_date_)) 
     67        CALL cxios_set_context_start_date(context_hdl%daddr, start_date_) 
    6868      ENDIF 
    6969       
    7070      IF (PRESENT(time_origin_)) THEN 
    71         CALL cxios_set_context_time_origin(context_hdl%daddr, time_origin_, len(time_origin_)) 
     71        CALL cxios_set_context_time_origin(context_hdl%daddr, time_origin_) 
    7272      ENDIF 
    7373       
     
    8888      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type 
    8989      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir 
    90       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date 
    91       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin 
     90      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: start_date 
     91      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: time_origin 
    9292      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep 
    9393       
     
    105105      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type 
    106106      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir 
    107       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date 
    108       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin 
     107      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: start_date 
     108      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: time_origin 
    109109      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep 
    110110       
     
    121121      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: calendar_type_ 
    122122      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: output_dir_ 
    123       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date_ 
    124       CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin_ 
     123      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: start_date_ 
     124      TYPE(txios(date)) , OPTIONAL, INTENT(OUT) :: time_origin_ 
    125125      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: timestep_ 
    126126       
     
    134134       
    135135      IF (PRESENT(start_date_)) THEN 
    136         CALL cxios_get_context_start_date(context_hdl%daddr, start_date_, len(start_date_)) 
     136        CALL cxios_get_context_start_date(context_hdl%daddr, start_date_) 
    137137      ENDIF 
    138138       
    139139      IF (PRESENT(time_origin_)) THEN 
    140         CALL cxios_get_context_time_origin(context_hdl%daddr, time_origin_, len(time_origin_)) 
     140        CALL cxios_get_context_time_origin(context_hdl%daddr, time_origin_) 
    141141      ENDIF 
    142142       
  • XIOS/trunk/src/interface/fortran_attr/variable_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE variable_interface_attr 
  • XIOS/trunk/src/interface/fortran_attr/variablegroup_interface_attr.F90

    r531 r532  
    22! *               Interface auto generated - do not modify                     * 
    33! * ************************************************************************** * 
     4#include "../fortran/xios_fortran_prefix.hpp" 
    45 
    56MODULE variablegroup_interface_attr 
Note: See TracChangeset for help on using the changeset viewer.