Ignore:
Timestamp:
02/03/14 14:16:20 (10 years ago)
Author:
ymipsl
Message:

Enhancement : user defined global and field attribute can be output in the netcdfcf file.
A variable child element inclosed into a file element will be output as a global file attribute.
A variable child element inclosed into a field element will be output as a field attribute.

+ variable fortran interface added

YM

Location:
XIOS/trunk/src/interface
Files:
9 added
9 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/c/icxml_tree.cpp

    r352 r472  
    2020#include "axis.hpp" 
    2121#include "domain.hpp" 
     22#include "variable.hpp" 
    2223 
    2324extern "C" 
     
    4344   typedef xios::CAxis      * XAxisPtr; 
    4445   typedef xios::CAxisGroup * XAxisGroupPtr; 
    45     
     46  
     47   typedef xios::CVariable      *  XVariablePtr; 
     48   typedef xios::CVariableGroup *  XVariableGroupPtr; 
     49   
    4650   // ----------------------- Ajout d'enfant à un parent ----------------------- 
    4751    
     
    155159   } 
    156160 
     161   void cxios_xml_tree_add_variabletofile 
     162      (XFilePtr parent_, XVariablePtr * child_, const char * child_id, int child_id_size) 
     163   { 
     164      std::string child_id_str; 
     165      CTimer::get("XIOS").resume() ; 
     166  
     167      if (cstr2string(child_id, child_id_size, child_id_str)) 
     168      { 
     169         *child_ = parent_->addVariable(child_id_str); 
     170         parent_->sendAddVariable(child_id_str) ; 
     171      } 
     172      else 
     173      { 
     174         *child_ = parent_->addVariable(); 
     175         parent_->sendAddVariable() ; 
     176      } 
     177      CTimer::get("XIOS").suspend() ; 
     178   } 
     179    
     180    void cxios_xml_tree_add_variabletofield 
     181      (XFieldPtr parent_, XVariablePtr * child_, const char * child_id, int child_id_size) 
     182   { 
     183      std::string child_id_str; 
     184      CTimer::get("XIOS").resume() ; 
     185  
     186      if (cstr2string(child_id, child_id_size, child_id_str)) 
     187      { 
     188         *child_ = parent_->addVariable(child_id_str); 
     189         parent_->sendAddVariable(child_id_str) ; 
     190      } 
     191      else 
     192      { 
     193         *child_ = parent_->addVariable(); 
     194         parent_->sendAddVariable() ; 
     195      } 
     196      CTimer::get("XIOS").suspend() ; 
     197   }   
    157198   // ----------------------- Ajout de groupe à un parent ---------------------- 
    158199 
     
    264305      CTimer::get("XIOS").suspend() ; 
    265306   } 
     307    
     308   void cxios_xml_tree_add_variablegrouptofile 
     309      (XFilePtr parent_, XVariableGroupPtr * child_, const char * child_id, int child_id_size) 
     310   { 
     311      std::string child_id_str;  
     312      CTimer::get("XIOS").resume() ; 
     313      if (cstr2string(child_id, child_id_size, child_id_str)) 
     314      { 
     315         *child_ = parent_->addVariableGroup(child_id_str); 
     316         parent_->sendAddVariableGroup(child_id_str) ; 
     317      } 
     318      else 
     319      { 
     320         *child_ = parent_->addVariableGroup(); 
     321         parent_->sendAddVariableGroup() ; 
     322      } 
     323      CTimer::get("XIOS").suspend() ; 
     324   } 
     325    
     326   void cxios_xml_tree_add_variablegrouptofield 
     327      (XFieldPtr parent_, XVariableGroupPtr * child_, const char * child_id, int child_id_size) 
     328   { 
     329      std::string child_id_str;  
     330      CTimer::get("XIOS").resume() ; 
     331      if (cstr2string(child_id, child_id_size, child_id_str)) 
     332      { 
     333         *child_ = parent_->addVariableGroup(child_id_str); 
     334         parent_->sendAddVariableGroup(child_id_str) ; 
     335      } 
     336      else 
     337      { 
     338         *child_ = parent_->addVariableGroup(); 
     339         parent_->sendAddVariableGroup() ; 
     340      } 
     341      CTimer::get("XIOS").suspend() ; 
     342   }    
    266343    
    267344    
  • XIOS/trunk/src/interface/c_attr/icfield_attr.cpp

    r464 r472  
    8888   
    8989   
     90  void cxios_set_field_detect_missing_value(field_Ptr field_hdl, bool detect_missing_value) 
     91  { 
     92     CTimer::get("XIOS").resume(); 
     93    field_hdl->detect_missing_value.setValue(detect_missing_value); 
     94    field_hdl->sendAttributToServer(field_hdl->detect_missing_value); 
     95     CTimer::get("XIOS").suspend(); 
     96  } 
     97   
     98  void cxios_get_field_detect_missing_value(field_Ptr field_hdl, bool* detect_missing_value) 
     99  { 
     100    *detect_missing_value = field_hdl->detect_missing_value.getInheritedValue(); 
     101  } 
     102   
     103  bool cxios_is_defined_field_detect_missing_value(field_Ptr field_hdl ) 
     104  { 
     105     CTimer::get("XIOS").resume(); 
     106    return field_hdl->detect_missing_value.hasInheritedValue(); 
     107     CTimer::get("XIOS").suspend(); 
     108  } 
     109   
     110   
     111   
    90112  void cxios_set_field_domain_ref(field_Ptr field_hdl, const char * domain_ref, int domain_ref_size) 
    91113  { 
  • XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp

    r464 r472  
    8888   
    8989   
     90  void cxios_set_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl, bool detect_missing_value) 
     91  { 
     92     CTimer::get("XIOS").resume(); 
     93    fieldgroup_hdl->detect_missing_value.setValue(detect_missing_value); 
     94    fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->detect_missing_value); 
     95     CTimer::get("XIOS").suspend(); 
     96  } 
     97   
     98  void cxios_get_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl, bool* detect_missing_value) 
     99  { 
     100    *detect_missing_value = fieldgroup_hdl->detect_missing_value.getInheritedValue(); 
     101  } 
     102   
     103  bool cxios_is_defined_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl ) 
     104  { 
     105     CTimer::get("XIOS").resume(); 
     106    return fieldgroup_hdl->detect_missing_value.hasInheritedValue(); 
     107     CTimer::get("XIOS").suspend(); 
     108  } 
     109   
     110   
     111   
    90112  void cxios_set_fieldgroup_domain_ref(fieldgroup_Ptr fieldgroup_hdl, const char * domain_ref, int domain_ref_size) 
    91113  { 
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r461 r472  
    4343                             xios(is_defined_fieldgroup_attr), xios(is_defined_fieldgroup_attr_hdl) 
    4444 
     45USE ivariable, ONLY : txios(variable), txios(variablegroup), xios(get_variable_handle),  & 
     46                   xios(get_variablegroup_handle), xios(is_valid_variable),        & 
     47                   xios(is_valid_variablegroup) 
     48 
     49USE ivariable_attr, ONLY : xios(set_variable_attr),xios(set_variable_attr_hdl),    & 
     50                        xios(get_variable_attr),xios(get_variable_attr_hdl), & 
     51                        xios(is_defined_variable_attr),xios(is_defined_variable_attr_hdl) 
     52   
     53USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr), xios(set_variablegroup_attr_hdl),  & 
     54                             xios(get_variablegroup_attr), xios(get_variablegroup_attr_hdl), & 
     55                             xios(is_defined_variablegroup_attr), xios(is_defined_variablegroup_attr_hdl) 
     56                              
    4557USE ifile, ONLY : txios(file), txios(filegroup), xios(get_file_handle),    &  
    4658                  xios(get_filegroup_handle), xios(is_valid_file), xios(is_valid_filegroup) 
     
    7789 
    7890USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),          & 
    79                      xios(add_fieldtofile), xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), & 
    80                      xios(add_fieldgroup), xios(add_domaingroup), xios(add_fieldgrouptofile) 
    81                    
     91                     xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),                  & 
     92                     xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup),         &  
     93                     xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile),            & 
     94                     xios(add_variablegrouptofield) 
    8295 
    8396PRIVATE 
     
    8699INTERFACE xios(set_attr) 
    87100  MODULE PROCEDURE xios(set_domaingroup_attr_hdl), xios(set_domain_attr_hdl), xios(set_fieldgroup_attr_hdl), & 
    88                    xios(set_field_attr_hdl), xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),          & 
     101                   xios(set_field_attr_hdl),xios(set_variable_attr_hdl), xios(set_variablegroup_attr_hdl),   & 
     102                   xios(set_file_attr_hdl), xios(set_filegroup_attr_hdl),                                    & 
    89103                   xios(set_grid_attr_hdl), xios(set_gridgroup_attr_hdl), xios(set_axis_attr_hdl) ,          & 
    90104                   xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl) 
     
    93107INTERFACE xios(get_attr) 
    94108  MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), & 
    95                    xios(get_field_attr_hdl), xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),          & 
     109                   xios(get_field_attr_hdl), xios(get_variable_attr_hdl), xios(get_variablegroup_attr_hdl),  & 
     110                   xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl),                                    & 
    96111                   xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) ,          & 
    97112                   xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl) 
     
    100115INTERFACE xios(is_defined_attr) 
    101116  MODULE PROCEDURE xios(is_defined_domaingroup_attr_hdl), xios(is_defined_domain_attr_hdl), xios(is_defined_fieldgroup_attr_hdl), & 
    102                    xios(is_defined_field_attr_hdl), xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),          & 
     117                   xios(is_defined_field_attr_hdl), xios(is_defined_variable_attr_hdl), xios(is_defined_variablegroup_attr_hdl),  & 
     118                   xios(is_defined_file_attr_hdl), xios(is_defined_filegroup_attr_hdl),                                           & 
    103119                   xios(is_defined_grid_attr_hdl), xios(is_defined_gridgroup_attr_hdl), xios(is_defined_axis_attr_hdl) ,          & 
    104120                   xios(is_defined_axisgroup_attr_hdl), xios(is_defined_context_attr_hdl) 
     
    109125                    xios(get_file_handle), xios(get_filegroup_handle), xios(get_grid_handle),               & 
    110126                    xios(get_gridgroup_handle), xios(get_axis_handle), xios(get_axisgroup_handle),          & 
    111                     xios(get_field_handle), xios(get_fieldgroup_handle) 
     127                    xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),          & 
     128                    xios(get_variablegroup_handle) 
    112129END INTERFACE xios(get_handle)  
    113130 
    114131INTERFACE xios(add_child) 
    115   MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),    & 
    116                    xios(add_fieldtofile), xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), & 
    117                    xios(add_fieldgroup), xios(add_domaingroup), xios(add_fieldgrouptofile) 
     132  MODULE PROCEDURE xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),                & 
     133                   xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup),  & 
     134                   xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup),            & 
     135                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield)  
    118136END INTERFACE xios(add_child) 
    119137 
  • XIOS/trunk/src/interface/fortran/ixml_tree.F90

    r325 r472  
    88   USE IGRID 
    99   USE IDOMAIN 
     10   USE IVARIABLE 
    1011      
    1112   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
     
    5960      END SUBROUTINE cxios_xml_tree_add_fieldtofile 
    6061 
     62      SUBROUTINE cxios_xml_tree_add_variabletofile(parent_, child_, child_id, child_id_size) BIND(C) 
     63         USE ISO_C_BINDING 
     64         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     65         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     66         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     67         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     68      END SUBROUTINE cxios_xml_tree_add_variabletofile 
     69 
     70 
     71      SUBROUTINE cxios_xml_tree_add_variabletofield(parent_, child_, child_id, child_id_size) BIND(C) 
     72         USE ISO_C_BINDING 
     73         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     74         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     75         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     76         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     77      END SUBROUTINE cxios_xml_tree_add_variabletofield 
     78 
     79 
    6180      SUBROUTINE cxios_xml_tree_add_fieldgroup(parent_, child_, child_id, child_id_size) BIND(C) 
    6281         USE ISO_C_BINDING 
     
    106125         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
    107126      END SUBROUTINE cxios_xml_tree_add_fieldgrouptofile     
     127 
     128      SUBROUTINE cxios_xml_tree_add_variablegrouptofile(parent_, child_, child_id, child_id_size) BIND(C) 
     129         USE ISO_C_BINDING 
     130         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     131         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     132         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     133         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     134      END SUBROUTINE cxios_xml_tree_add_variablegrouptofile     
     135 
     136      SUBROUTINE cxios_xml_tree_add_variablegrouptofield(parent_, child_, child_id, child_id_size) BIND(C) 
     137         USE ISO_C_BINDING 
     138         INTEGER  (kind = C_INTPTR_T), VALUE        :: parent_ 
     139         INTEGER  (kind = C_INTPTR_T)               :: child_ 
     140         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: child_id 
     141         INTEGER  (kind = C_INT)     , VALUE        :: child_id_size 
     142      END SUBROUTINE cxios_xml_tree_add_variablegrouptofield     
    108143 
    109144      SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C) 
     
    210245   END SUBROUTINE xios(add_fieldtofile) 
    211246 
     247   SUBROUTINE xios(add_variabletofile)(parent_hdl, child_hdl, child_id) 
     248      TYPE(txios(file))            , INTENT(IN) :: parent_hdl 
     249      TYPE(txios(variable))           , INTENT(OUT):: child_hdl 
     250      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 
     251 
     252      IF (PRESENT(child_id)) THEN 
     253         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     254      ELSE 
     255         CALL cxios_xml_tree_add_variabletofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     256      END IF 
     257 
     258   END SUBROUTINE xios(add_variabletofile) 
     259 
     260   SUBROUTINE xios(add_variabletofield)(parent_hdl, child_hdl, child_id) 
     261      TYPE(txios(field))            , INTENT(IN) :: parent_hdl 
     262      TYPE(txios(variable))           , INTENT(OUT):: child_hdl 
     263      CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 
     264 
     265      IF (PRESENT(child_id)) THEN 
     266         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     267      ELSE 
     268         CALL cxios_xml_tree_add_variabletofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     269      END IF 
     270 
     271   END SUBROUTINE xios(add_variabletofield) 
     272 
    212273 
    213274   SUBROUTINE xios(add_axisgroup)(parent_hdl, child_hdl, child_id) 
     
    288349 
    289350   END SUBROUTINE xios(add_fieldgrouptofile) 
    290        
     351 
     352   SUBROUTINE xios(add_variablegrouptofile)(parent_hdl, child_hdl, child_id) 
     353      TYPE(txios(file))            , INTENT(IN) :: parent_hdl 
     354      TYPE(txios(variablegroup))     , INTENT(OUT):: child_hdl 
     355      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id 
     356 
     357      IF (PRESENT(child_id)) THEN 
     358         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     359      ELSE 
     360         CALL cxios_xml_tree_add_variablegrouptofile(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     361      END IF 
     362 
     363   END SUBROUTINE xios(add_variablegrouptofile) 
     364 
     365   SUBROUTINE xios(add_variablegrouptofield)(parent_hdl, child_hdl, child_id) 
     366      TYPE(txios(field))            , INTENT(IN) :: parent_hdl 
     367      TYPE(txios(variablegroup))     , INTENT(OUT):: child_hdl 
     368      CHARACTER(len = *), OPTIONAL  , INTENT(IN) :: child_id 
     369 
     370      IF (PRESENT(child_id)) THEN 
     371         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 
     372      ELSE 
     373         CALL cxios_xml_tree_add_variablegrouptofield(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 
     374      END IF 
     375 
     376   END SUBROUTINE xios(add_variablegrouptofield)   
     377          
    291378END MODULE IXML_TREE 
  • XIOS/trunk/src/interface/fortran_attr/field_interface_attr.f90

    r464 r472  
    6868     
    6969     
     70    SUBROUTINE cxios_set_field_detect_missing_value(field_hdl, detect_missing_value) BIND(C) 
     71      USE ISO_C_BINDING 
     72      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     73      LOGICAL (KIND=C_BOOL)      , VALUE :: detect_missing_value 
     74    END SUBROUTINE cxios_set_field_detect_missing_value 
     75     
     76    SUBROUTINE cxios_get_field_detect_missing_value(field_hdl, detect_missing_value) BIND(C) 
     77      USE ISO_C_BINDING 
     78      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     79      LOGICAL (KIND=C_BOOL)             :: detect_missing_value 
     80    END SUBROUTINE cxios_get_field_detect_missing_value 
     81     
     82    FUNCTION cxios_is_defined_field_detect_missing_value(field_hdl ) BIND(C) 
     83      USE ISO_C_BINDING 
     84      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_detect_missing_value 
     85      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     86    END FUNCTION cxios_is_defined_field_detect_missing_value 
     87     
     88     
    7089    SUBROUTINE cxios_set_field_domain_ref(field_hdl, domain_ref, domain_ref_size) BIND(C) 
    7190      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.f90

    r464 r472  
    6868     
    6969     
     70    SUBROUTINE cxios_set_fieldgroup_detect_missing_value(fieldgroup_hdl, detect_missing_value) BIND(C) 
     71      USE ISO_C_BINDING 
     72      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     73      LOGICAL (KIND=C_BOOL)      , VALUE :: detect_missing_value 
     74    END SUBROUTINE cxios_set_fieldgroup_detect_missing_value 
     75     
     76    SUBROUTINE cxios_get_fieldgroup_detect_missing_value(fieldgroup_hdl, detect_missing_value) BIND(C) 
     77      USE ISO_C_BINDING 
     78      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     79      LOGICAL (KIND=C_BOOL)             :: detect_missing_value 
     80    END SUBROUTINE cxios_get_fieldgroup_detect_missing_value 
     81     
     82    FUNCTION cxios_is_defined_fieldgroup_detect_missing_value(fieldgroup_hdl ) BIND(C) 
     83      USE ISO_C_BINDING 
     84      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_detect_missing_value 
     85      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     86    END FUNCTION cxios_is_defined_fieldgroup_detect_missing_value 
     87     
     88     
    7089    SUBROUTINE cxios_set_fieldgroup_domain_ref(fieldgroup_hdl, domain_ref, domain_ref_size) BIND(C) 
    7190      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90

    r464 r472  
    1212   
    1313  SUBROUTINE xios(set_field_attr)  & 
    14     ( field_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    15     , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    16     , valid_max, valid_min ) 
     14    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  & 
     15    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
     16    , unit, valid_max, valid_min ) 
    1717     
    1818    IMPLICIT NONE 
     
    2222      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
    2323      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     24      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     25      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    2426      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    2527      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
     
    4244      CALL xios(get_field_handle)(field_id,field_hdl) 
    4345      CALL xios(set_field_attr_hdl_)   & 
    44       ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    45       , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    46       , valid_max, valid_min ) 
     46      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     47      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     48      , standard_name, unit, valid_max, valid_min ) 
    4749     
    4850  END SUBROUTINE xios(set_field_attr) 
    4951   
    5052  SUBROUTINE xios(set_field_attr_hdl)  & 
    51     ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    52     , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    53     , valid_max, valid_min ) 
     53    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     54    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     55    , standard_name, unit, valid_max, valid_min ) 
    5456     
    5557    IMPLICIT NONE 
     
    5860      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
    5961      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     62      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     63      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    6064      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    6165      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
     
    7781       
    7882      CALL xios(set_field_attr_hdl_)  & 
    79       ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    80       , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    81       , valid_max, valid_min ) 
     83      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     84      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     85      , standard_name, unit, valid_max, valid_min ) 
    8286     
    8387  END SUBROUTINE xios(set_field_attr_hdl) 
    8488   
    8589  SUBROUTINE xios(set_field_attr_hdl_)   & 
    86     ( field_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_  & 
    87     , freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_, scale_factor_, standard_name_  & 
    88     , unit_, valid_max_, valid_min_ ) 
     90    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
     91    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  & 
     92    , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    8993     
    9094    IMPLICIT NONE 
     
    9397      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 
    9498      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ 
     99      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value_ 
     100      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    95101      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 
    96102      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_ 
     
    123129      ENDIF 
    124130       
     131      IF (PRESENT(detect_missing_value_)) THEN 
     132        detect_missing_value__tmp=detect_missing_value_ 
     133        CALL cxios_set_field_detect_missing_value(field_hdl%daddr, detect_missing_value__tmp) 
     134      ENDIF 
     135       
    125136      IF (PRESENT(domain_ref_)) THEN 
    126137        CALL cxios_set_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_)) 
     
    193204   
    194205  SUBROUTINE xios(get_field_attr)  & 
    195     ( field_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    196     , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    197     , valid_max, valid_min ) 
     206    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  & 
     207    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
     208    , unit, valid_max, valid_min ) 
    198209     
    199210    IMPLICIT NONE 
     
    203214      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
    204215      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     216      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     217      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    205218      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    206219      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
     
    223236      CALL xios(get_field_handle)(field_id,field_hdl) 
    224237      CALL xios(get_field_attr_hdl_)   & 
    225       ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    226       , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    227       , valid_max, valid_min ) 
     238      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     239      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     240      , standard_name, unit, valid_max, valid_min ) 
    228241     
    229242  END SUBROUTINE xios(get_field_attr) 
    230243   
    231244  SUBROUTINE xios(get_field_attr_hdl)  & 
    232     ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    233     , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    234     , valid_max, valid_min ) 
     245    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     246    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     247    , standard_name, unit, valid_max, valid_min ) 
    235248     
    236249    IMPLICIT NONE 
     
    239252      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
    240253      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     254      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     255      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    241256      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    242257      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
     
    258273       
    259274      CALL xios(get_field_attr_hdl_)  & 
    260       ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    261       , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    262       , valid_max, valid_min ) 
     275      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     276      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     277      , standard_name, unit, valid_max, valid_min ) 
    263278     
    264279  END SUBROUTINE xios(get_field_attr_hdl) 
    265280   
    266281  SUBROUTINE xios(get_field_attr_hdl_)   & 
    267     ( field_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_  & 
    268     , freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_, scale_factor_, standard_name_  & 
    269     , unit_, valid_max_, valid_min_ ) 
     282    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
     283    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  & 
     284    , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    270285     
    271286    IMPLICIT NONE 
     
    274289      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 
    275290      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ 
     291      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     292      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    276293      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 
    277294      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_ 
     
    304321      ENDIF 
    305322       
     323      IF (PRESENT(detect_missing_value_)) THEN 
     324        CALL cxios_get_field_detect_missing_value(field_hdl%daddr, detect_missing_value__tmp) 
     325        detect_missing_value_=detect_missing_value__tmp 
     326      ENDIF 
     327       
    306328      IF (PRESENT(domain_ref_)) THEN 
    307329        CALL cxios_get_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_)) 
     
    374396   
    375397  SUBROUTINE xios(is_defined_field_attr)  & 
    376     ( field_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    377     , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    378     , valid_max, valid_min ) 
     398    ( field_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled, field_ref  & 
     399    , freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
     400    , unit, valid_max, valid_min ) 
    379401     
    380402    IMPLICIT NONE 
     
    387409      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value 
    388410      LOGICAL(KIND=C_BOOL) :: default_value_tmp 
     411      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     412      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    389413      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    390414      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    422446      CALL xios(get_field_handle)(field_id,field_hdl) 
    423447      CALL xios(is_defined_field_attr_hdl_)   & 
    424       ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    425       , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    426       , valid_max, valid_min ) 
     448      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     449      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     450      , standard_name, unit, valid_max, valid_min ) 
    427451     
    428452  END SUBROUTINE xios(is_defined_field_attr) 
    429453   
    430454  SUBROUTINE xios(is_defined_field_attr_hdl)  & 
    431     ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    432     , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    433     , valid_max, valid_min ) 
     455    ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     456    , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     457    , standard_name, unit, valid_max, valid_min ) 
    434458     
    435459    IMPLICIT NONE 
     
    441465      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value 
    442466      LOGICAL(KIND=C_BOOL) :: default_value_tmp 
     467      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     468      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    443469      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    444470      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    475501       
    476502      CALL xios(is_defined_field_attr_hdl_)  & 
    477       ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    478       , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit  & 
    479       , valid_max, valid_min ) 
     503      ( field_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     504      , field_ref, freq_offset, freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor  & 
     505      , standard_name, unit, valid_max, valid_min ) 
    480506     
    481507  END SUBROUTINE xios(is_defined_field_attr_hdl) 
    482508   
    483509  SUBROUTINE xios(is_defined_field_attr_hdl_)   & 
    484     ( field_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_  & 
    485     , freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_, scale_factor_, standard_name_  & 
    486     , unit_, valid_max_, valid_min_ ) 
     510    ( field_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
     511    , field_ref_, freq_offset_, freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_  & 
     512    , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    487513     
    488514    IMPLICIT NONE 
     
    494520      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value_ 
    495521      LOGICAL(KIND=C_BOOL) :: default_value__tmp 
     522      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     523      LOGICAL(KIND=C_BOOL) :: detect_missing_value__tmp 
    496524      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 
    497525      LOGICAL(KIND=C_BOOL) :: domain_ref__tmp 
     
    542570      ENDIF 
    543571       
     572      IF (PRESENT(detect_missing_value_)) THEN 
     573        detect_missing_value__tmp=cxios_is_defined_field_detect_missing_value(field_hdl%daddr) 
     574        detect_missing_value_=detect_missing_value__tmp 
     575      ENDIF 
     576       
    544577      IF (PRESENT(domain_ref_)) THEN 
    545578        domain_ref__tmp=cxios_is_defined_field_domain_ref(field_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90

    r464 r472  
    1212   
    1313  SUBROUTINE xios(set_fieldgroup_attr)  & 
    14     ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    15     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    16     , unit, valid_max, valid_min ) 
     14    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     15    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     16    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    1717     
    1818    IMPLICIT NONE 
     
    2222      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
    2323      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     24      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     25      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    2426      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    2527      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
     
    4345      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 
    4446      CALL xios(set_fieldgroup_attr_hdl_)   & 
    45       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    46       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    47       , unit, valid_max, valid_min ) 
     47      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     48      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     49      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    4850     
    4951  END SUBROUTINE xios(set_fieldgroup_attr) 
    5052   
    5153  SUBROUTINE xios(set_fieldgroup_attr_hdl)  & 
    52     ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    53     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    54     , unit, valid_max, valid_min ) 
     54    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     55    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     56    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    5557     
    5658    IMPLICIT NONE 
     
    5961      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
    6062      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     63      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     64      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    6165      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    6266      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled 
     
    7983       
    8084      CALL xios(set_fieldgroup_attr_hdl_)  & 
    81       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    82       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    83       , unit, valid_max, valid_min ) 
     85      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     86      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     87      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    8488     
    8589  END SUBROUTINE xios(set_fieldgroup_attr_hdl) 
    8690   
    8791  SUBROUTINE xios(set_fieldgroup_attr_hdl_)   & 
    88     ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_  & 
    89     , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_  & 
    90     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     92    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
     93    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
     94    , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    9195     
    9296    IMPLICIT NONE 
     
    9599      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 
    96100      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ 
     101      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value_ 
     102      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    97103      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 
    98104      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_ 
     
    126132      ENDIF 
    127133       
     134      IF (PRESENT(detect_missing_value_)) THEN 
     135        detect_missing_value__tmp=detect_missing_value_ 
     136        CALL cxios_set_fieldgroup_detect_missing_value(fieldgroup_hdl%daddr, detect_missing_value__tmp) 
     137      ENDIF 
     138       
    128139      IF (PRESENT(domain_ref_)) THEN 
    129140        CALL cxios_set_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_)) 
     
    200211   
    201212  SUBROUTINE xios(get_fieldgroup_attr)  & 
    202     ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    203     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    204     , unit, valid_max, valid_min ) 
     213    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     214    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     215    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    205216     
    206217    IMPLICIT NONE 
     
    210221      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
    211222      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     223      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     224      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    212225      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    213226      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
     
    231244      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 
    232245      CALL xios(get_fieldgroup_attr_hdl_)   & 
    233       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    234       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    235       , unit, valid_max, valid_min ) 
     246      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     247      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     248      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    236249     
    237250  END SUBROUTINE xios(get_fieldgroup_attr) 
    238251   
    239252  SUBROUTINE xios(get_fieldgroup_attr_hdl)  & 
    240     ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    241     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    242     , unit, valid_max, valid_min ) 
     253    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     254    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     255    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    243256     
    244257    IMPLICIT NONE 
     
    247260      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
    248261      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     262      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     263      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    249264      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    250265      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled 
     
    267282       
    268283      CALL xios(get_fieldgroup_attr_hdl_)  & 
    269       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    270       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    271       , unit, valid_max, valid_min ) 
     284      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     285      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     286      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    272287     
    273288  END SUBROUTINE xios(get_fieldgroup_attr_hdl) 
    274289   
    275290  SUBROUTINE xios(get_fieldgroup_attr_hdl_)   & 
    276     ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_  & 
    277     , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_  & 
    278     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     291    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
     292    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
     293    , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    279294     
    280295    IMPLICIT NONE 
     
    283298      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 
    284299      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ 
     300      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     301      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    285302      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 
    286303      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_ 
     
    314331      ENDIF 
    315332       
     333      IF (PRESENT(detect_missing_value_)) THEN 
     334        CALL cxios_get_fieldgroup_detect_missing_value(fieldgroup_hdl%daddr, detect_missing_value__tmp) 
     335        detect_missing_value_=detect_missing_value__tmp 
     336      ENDIF 
     337       
    316338      IF (PRESENT(domain_ref_)) THEN 
    317339        CALL cxios_get_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_)) 
     
    388410   
    389411  SUBROUTINE xios(is_defined_fieldgroup_attr)  & 
    390     ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    391     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    392     , unit, valid_max, valid_min ) 
     412    ( fieldgroup_id, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     413    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     414    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    393415     
    394416    IMPLICIT NONE 
     
    401423      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value 
    402424      LOGICAL(KIND=C_BOOL) :: default_value_tmp 
     425      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     426      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    403427      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    404428      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    438462      CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 
    439463      CALL xios(is_defined_fieldgroup_attr_hdl_)   & 
    440       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    441       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    442       , unit, valid_max, valid_min ) 
     464      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     465      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     466      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    443467     
    444468  END SUBROUTINE xios(is_defined_fieldgroup_attr) 
    445469   
    446470  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)  & 
    447     ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    448     , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    449     , unit, valid_max, valid_min ) 
     471    ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     472    , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     473    , scale_factor, standard_name, unit, valid_max, valid_min ) 
    450474     
    451475    IMPLICIT NONE 
     
    457481      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value 
    458482      LOGICAL(KIND=C_BOOL) :: default_value_tmp 
     483      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     484      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    459485      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    460486      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    493519       
    494520      CALL xios(is_defined_fieldgroup_attr_hdl_)  & 
    495       ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset  & 
    496       , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name  & 
    497       , unit, valid_max, valid_min ) 
     521      ( fieldgroup_hdl, add_offset, axis_ref, default_value, detect_missing_value, domain_ref, enabled  & 
     522      , field_ref, freq_offset, freq_op, grid_ref, group_ref, level, long_name, name, operation, prec  & 
     523      , scale_factor, standard_name, unit, valid_max, valid_min ) 
    498524     
    499525  END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) 
    500526   
    501527  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_)   & 
    502     ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_  & 
    503     , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_  & 
    504     , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
     528    ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, detect_missing_value_, domain_ref_  & 
     529    , enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_  & 
     530    , operation_, prec_, scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 
    505531     
    506532    IMPLICIT NONE 
     
    512538      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value_ 
    513539      LOGICAL(KIND=C_BOOL) :: default_value__tmp 
     540      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     541      LOGICAL(KIND=C_BOOL) :: detect_missing_value__tmp 
    514542      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 
    515543      LOGICAL(KIND=C_BOOL) :: domain_ref__tmp 
     
    562590      ENDIF 
    563591       
     592      IF (PRESENT(detect_missing_value_)) THEN 
     593        detect_missing_value__tmp=cxios_is_defined_fieldgroup_detect_missing_value(fieldgroup_hdl%daddr) 
     594        detect_missing_value_=detect_missing_value__tmp 
     595      ENDIF 
     596       
    564597      IF (PRESENT(domain_ref_)) THEN 
    565598        domain_ref__tmp=cxios_is_defined_fieldgroup_domain_ref(fieldgroup_hdl%daddr) 
Note: See TracChangeset for help on using the changeset viewer.