Ignore:
Timestamp:
09/22/14 14:17:33 (10 years ago)
Author:
mhnguyen
Message:

Ticket 50: Implementing the getting/setting methods for Fortran interface

+) Add some C and Fortran functions to set and get data to/from CVariable with an id
+) Add method to send, receive and dispatch in CVariable
+) Add dispatch method in server class

Test
-) On Curie
-) Test data: integer, float, double, boolean, string
-) File: one and multiple, using_server: ON and OFF
+) All test cases passed and had correct results

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/interface/fortran/ixios.F90

    r472 r489  
    1010                          xios(get_context_attr), xios(get_context_attr_hdl), & 
    1111                          xios(is_defined_context_attr), xios(is_defined_context_attr_hdl) 
    12                                                 
     12 
    1313USE idata, ONLY : xios(initialize),xios(init_server), xios(finalize), xios(context_initialize),  & 
    1414                  xios(context_is_initialized), xios(close_context_definition),xios(solve_inheritance),       & 
    1515                  xios(context_finalize), xios(send_field_r8_1d), xios(send_field_r8_2d), & 
    1616                  xios(send_field_r8_3d), xios(send_field_r4_1d), xios(send_field_r4_2d), & 
    17                   xios(send_field_r4_3d) 
     17                  xios(send_field_r4_3d), xios(getVar_k8), xios(getVar_k4), xios(getVar_int), & 
     18                  xios(getVar_logic), xios(getVar_char), xios(setVar_k8), xios(setVar_k4), xios(setVar_int), & 
     19                  xios(setVar_logic), xios(setVar_char) 
    1820 
    1921USE idate, ONLY : txios(date),txios(time), xios(set_timestep),xios(update_calendar) 
     
    2729                          xios(is_defined_domain_attr), xios(is_defined_domain_attr_hdl) 
    2830 
    29 USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr), xios(set_domaingroup_attr_hdl),  &  
    30                               xios(get_domaingroup_attr), xios(get_domaingroup_attr_hdl), &  
    31                               xios(is_defined_domaingroup_attr), xios(is_defined_domaingroup_attr_hdl)  
    32                      
     31USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr), xios(set_domaingroup_attr_hdl),  & 
     32                              xios(get_domaingroup_attr), xios(get_domaingroup_attr_hdl), & 
     33                              xios(is_defined_domaingroup_attr), xios(is_defined_domaingroup_attr_hdl) 
     34 
    3335USE ifield, ONLY : txios(field), txios(fieldgroup), xios(get_field_handle),  & 
    3436                   xios(get_fieldgroup_handle), xios(is_valid_field),        & 
    35                    xios(is_valid_fieldgroup),xios(field_is_active_id),xios(field_is_active_hdl)   
     37                   xios(is_valid_fieldgroup),xios(field_is_active_id),xios(field_is_active_hdl) 
    3638 
    3739USE ifield_attr, ONLY : xios(set_field_attr),xios(set_field_attr_hdl),    & 
    3840                        xios(get_field_attr),xios(get_field_attr_hdl), & 
    3941                        xios(is_defined_field_attr),xios(is_defined_field_attr_hdl) 
    40    
     42 
    4143USE ifieldgroup_attr, ONLY : xios(set_fieldgroup_attr), xios(set_fieldgroup_attr_hdl),  & 
    4244                             xios(get_fieldgroup_attr), xios(get_fieldgroup_attr_hdl), & 
     
    5052                        xios(get_variable_attr),xios(get_variable_attr_hdl), & 
    5153                        xios(is_defined_variable_attr),xios(is_defined_variable_attr_hdl) 
    52    
     54 
    5355USE ivariablegroup_attr, ONLY : xios(set_variablegroup_attr), xios(set_variablegroup_attr_hdl),  & 
    5456                             xios(get_variablegroup_attr), xios(get_variablegroup_attr_hdl), & 
    5557                             xios(is_defined_variablegroup_attr), xios(is_defined_variablegroup_attr_hdl) 
    56                               
    57 USE ifile, ONLY : txios(file), txios(filegroup), xios(get_file_handle),    &  
     58 
     59USE ifile, ONLY : txios(file), txios(filegroup), xios(get_file_handle),    & 
    5860                  xios(get_filegroup_handle), xios(is_valid_file), xios(is_valid_filegroup) 
    5961 
     
    6567                            xios(get_filegroup_attr), xios(get_filegroup_attr_hdl), & 
    6668                            xios(is_defined_filegroup_attr), xios(is_defined_filegroup_attr_hdl) 
    67                    
     69 
    6870USE igrid, ONLY : txios(grid), txios(gridgroup), xios(get_grid_handle),     & 
    69                   xios(get_gridgroup_handle), xios(is_valid_grid), xios(is_valid_gridgroup)  
     71                  xios(get_gridgroup_handle), xios(is_valid_grid), xios(is_valid_gridgroup) 
    7072 
    7173USE igrid_attr, ONLY : xios(set_grid_attr_hdl), xios(set_grid_attr), & 
     
    7880 
    7981USE iaxis, ONLY : txios(axis), txios(axisgroup), xios(get_axis_handle),     & 
    80                   xios(get_axisgroup_handle), xios(is_valid_axis), xios(is_valid_axisgroup)  
     82                  xios(get_axisgroup_handle), xios(is_valid_axis), xios(is_valid_axisgroup) 
    8183 
    8284USE iaxis_attr, ONLY :  xios(set_axis_attr), xios(set_axis_attr_hdl), & 
     
    9092USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain),          & 
    9193                     xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield),                  & 
    92                      xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup),         &  
     94                     xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup),         & 
    9395                     xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile),            & 
    9496                     xios(add_variablegrouptofield) 
     
    127129                    xios(get_field_handle), xios(get_fieldgroup_handle),xios(get_variable_handle),          & 
    128130                    xios(get_variablegroup_handle) 
    129 END INTERFACE xios(get_handle)  
     131END INTERFACE xios(get_handle) 
    130132 
    131133INTERFACE xios(add_child) 
     
    133135                   xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup),  & 
    134136                   xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup),            & 
    135                    xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield)  
     137                   xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield) 
    136138END INTERFACE xios(add_child) 
    137139 
     
    145147  MODULE PROCEDURE xios(field_is_active_id),xios(field_is_active_hdl) 
    146148END INTERFACE 
    147    
     149 
     150INTERFACE xios(getVar) 
     151  MODULE PROCEDURE xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char) 
     152END INTERFACE xios(getVar) 
     153 
     154INTERFACE xios(setVar) 
     155  MODULE PROCEDURE xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char) 
     156END INTERFACE xios(setVar) 
     157 
    148158 PUBLIC :: txios(domain), txios(domaingroup),txios(field), txios(fieldgroup),txios(file), txios(filegroup), & 
    149           txios(grid), txios(gridgroup), txios(axis), txios(axisgroup),txios(context), txios(date),txios(time)   
     159          txios(grid), txios(gridgroup), txios(axis), txios(axisgroup),txios(context), txios(date),txios(time) 
    150160 
    151161 PUBLIC :: xios(set_attr), xios(set_domain_attr), xios(set_domaingroup_attr), xios(set_fieldgroup_attr), & 
     
    164174          xios(is_defined_axisgroup_attr), xios(is_defined_context_attr) 
    165175 
    166  PUBLIC :: xios(get_handle)  
    167  PUBLIC :: xios(add_child)  
     176 PUBLIC :: xios(get_handle) 
     177 PUBLIC :: xios(add_child) 
    168178 
    169179 PUBLIC :: xios(is_valid_context),xios(is_valid_domain), xios(is_valid_domaingroup),xios(is_valid_field),        & 
    170180          xios(is_valid_fieldgroup), xios(is_valid_file), xios(is_valid_filegroup), xios(is_valid_grid),         & 
    171181          xios(is_valid_gridgroup), xios(is_valid_axis), xios(is_valid_axisgroup) 
    172            
    173  PUBLIC :: xios(set_current_context)   
     182 
     183 PUBLIC :: xios(set_current_context) 
    174184 PUBLIC :: xios(set_timestep),xios(update_calendar) 
    175185 PUBLIC :: xios(initialize), xios(init_server), xios(finalize), xios(context_initialize),xios(context_is_initialized), & 
     
    177187           xios(field_is_active) 
    178188 
     189 PUBLIC :: xios(getVar) 
     190 PUBLIC :: xios(setVar) 
     191 
    179192END MODULE XIOS 
Note: See TracChangeset for help on using the changeset viewer.