Ignore:
Timestamp:
12/10/10 16:04:54 (14 years ago)
Author:
hozdoba
Message:

Mise à jour

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/XMLIO/c_interface.f03

    r137 r138  
    2323   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
    2424 
    25       SUBROUTINE xios_handle_create(ret, dtype, idt, idt_size) bind(C) 
     25      SUBROUTINE xios_handle_create(ret, dtype, idt, idt_size) BIND(C) 
    2626         import C_CHAR, C_INT 
    2727         INTEGER  (kind = C_INT)                :: ret 
     
    7171   END TYPE XDuration 
    7272 
     73   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
     74 
     75      SUBROUTINE xios_set_timestep(ts_year, ts_month, ts_day,          & 
     76                                   ts_hour, ts_minute, ts_second) BIND(C) 
     77         import C_DOUBLE 
     78         REAL (kind = C_DOUBLE), VALUE :: ts_year, ts_month, ts_day,   & 
     79                                          ts_hour, ts_minute, ts_second 
     80      END SUBROUTINE xios_set_timestep 
     81 
     82      SUBROUTINE xios_update_calendar(step) BIND(C) 
     83         import C_INT 
     84         INTEGER  (kind = C_INT), VALUE :: step 
     85      END SUBROUTINE xios_update_calendar 
     86 
     87   END INTERFACE 
     88 
     89   CONTAINS ! Fonctions disponibles pour les utilisateurs. 
     90 
     91   SUBROUTINE set_timestep(timestep) 
     92      TYPE(XDuration), INTENT(IN):: timestep 
     93 
     94      CALL xios_set_timestep(timestep%year, timestep%month , timestep%day,   & 
     95                             timestep%hour, timestep%minute, timestep%second) 
     96   END SUBROUTINE set_timestep 
     97 
     98   SUBROUTINE update_calendar(step) 
     99      INTEGER, INTENT(IN):: step 
     100      IF (step < 1) THEN 
     101         PRINT *, "L'argument 'step' ne peut être négatif ou nul" 
     102         STOP 
     103      END IF 
     104      CALL xios_update_calendar(step) 
     105   END SUBROUTINE update_calendar 
     106 
    73107END MODULE ICALENDAR 
    74108 
     
    82116   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
    83117 
    84       SUBROUTINE xios_xml_tree_add(parent_, parent_type, child_, child_type, child_id, child_id_size) bind(C) 
     118      SUBROUTINE xios_xml_tree_add(parent_, parent_type, child_, child_type, child_id, child_id_size) BIND(C) 
    85119         import C_CHAR, C_INT 
    86120         INTEGER  (kind = C_INT), VALUE         :: parent_ 
     
    92126      END SUBROUTINE xios_xml_tree_add 
    93127 
    94       SUBROUTINE  xios_xml_tree_show(filename, filename_size) bind(C) 
     128      SUBROUTINE  xios_xml_tree_show(filename, filename_size) BIND(C) 
    95129         import C_CHAR, C_INT 
    96130         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename 
     
    101135      ! Attribut des éléments de type field et field_group ! 
    102136      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    103       SUBROUTINE  xios_xml_set_field_name(field, ftype, fname, fname_size) bind(C) 
     137      SUBROUTINE  xios_xml_set_field_name(field, ftype, fname, fname_size) BIND(C) 
    104138         import C_CHAR, C_INT 
    105139         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    108142      END SUBROUTINE xios_xml_set_field_name 
    109143 
    110       SUBROUTINE  xios_xml_set_field_sname(field, ftype, fsname, fsname_size) bind(C) 
     144      SUBROUTINE  xios_xml_set_field_sname(field, ftype, fsname, fsname_size) BIND(C) 
    111145         import C_CHAR, C_INT 
    112146         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    115149      END SUBROUTINE xios_xml_set_field_sname 
    116150 
    117       SUBROUTINE  xios_xml_set_field_lname(field, ftype, flname, flname_size) bind(C) 
     151      SUBROUTINE  xios_xml_set_field_lname(field, ftype, flname, flname_size) BIND(C) 
    118152         import C_CHAR, C_INT 
    119153         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    122156      END SUBROUTINE xios_xml_set_field_lname 
    123157 
    124       SUBROUTINE  xios_xml_set_field_unit(field, ftype, funit, funit_size) bind(C) 
     158      SUBROUTINE  xios_xml_set_field_unit(field, ftype, funit, funit_size) BIND(C) 
    125159         import C_CHAR, C_INT 
    126160         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    129163      END SUBROUTINE xios_xml_set_field_unit 
    130164 
    131       SUBROUTINE  xios_xml_set_field_operation(field, ftype, foperation, foperation_size) bind(C) 
     165      SUBROUTINE  xios_xml_set_field_operation(field, ftype, foperation, foperation_size) BIND(C) 
    132166         import C_CHAR, C_INT 
    133167         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    136170      END SUBROUTINE xios_xml_set_field_operation 
    137171 
    138       SUBROUTINE  xios_xml_set_field_freq_op(field, ftype, year, month, day, hour, minute, second) bind(C) 
     172      SUBROUTINE  xios_xml_set_field_freq_op(field, ftype, year, month, day, hour, minute, second) BIND(C) 
    139173         import C_DOUBLE, C_INT 
    140174         INTEGER (kind = C_INT), VALUE  :: field, ftype 
     
    142176      END SUBROUTINE xios_xml_set_field_freq_op 
    143177 
    144       SUBROUTINE  xios_xml_set_field_level(field, ftype, flevel) bind(C) 
     178      SUBROUTINE  xios_xml_set_field_level(field, ftype, flevel) BIND(C) 
    145179         import C_INT 
    146180         INTEGER (kind = C_INT), VALUE  :: field, ftype 
     
    148182      END SUBROUTINE xios_xml_set_field_level 
    149183 
    150       SUBROUTINE  xios_xml_set_field_prec(field, ftype, fprec) bind(C) 
     184      SUBROUTINE  xios_xml_set_field_prec(field, ftype, fprec) BIND(C) 
    151185         import C_INT 
    152186         INTEGER (kind = C_INT), VALUE  :: field, ftype 
     
    154188      END SUBROUTINE xios_xml_set_field_prec 
    155189 
    156       SUBROUTINE  xios_xml_set_field_enabled(field, ftype, fenabled) bind(C) 
     190      SUBROUTINE  xios_xml_set_field_enabled(field, ftype, fenabled) BIND(C) 
    157191         import C_INT, C_BOOL 
    158192         INTEGER (kind = C_INT), VALUE  :: field, ftype 
     
    160194      END SUBROUTINE xios_xml_set_field_enabled 
    161195 
    162       SUBROUTINE  xios_xml_set_field_dref(field, ftype, fdref, fdref_size) bind(C) 
     196      SUBROUTINE  xios_xml_set_field_dref(field, ftype, fdref, fdref_size) BIND(C) 
    163197         import C_CHAR, C_INT 
    164198         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    167201      END SUBROUTINE xios_xml_set_field_dref 
    168202 
    169       SUBROUTINE  xios_xml_set_field_aref(field, ftype, faref, faref_size) bind(C) 
     203      SUBROUTINE  xios_xml_set_field_aref(field, ftype, faref, faref_size) BIND(C) 
    170204         import C_CHAR, C_INT 
    171205         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    174208      END SUBROUTINE xios_xml_set_field_aref 
    175209 
    176       SUBROUTINE  xios_xml_set_field_gref(field, ftype, fgref, fgref_size) bind(C) 
     210      SUBROUTINE  xios_xml_set_field_gref(field, ftype, fgref, fgref_size) BIND(C) 
    177211         import C_CHAR, C_INT 
    178212         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    181215      END SUBROUTINE xios_xml_set_field_gref 
    182216 
    183       SUBROUTINE  xios_xml_set_field_zref(field, ftype, fzref, fzref_size) bind(C) 
     217      SUBROUTINE  xios_xml_set_field_zref(field, ftype, fzref, fzref_size) BIND(C) 
    184218         import C_CHAR, C_INT 
    185219         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    188222      END SUBROUTINE xios_xml_set_field_zref 
    189223 
    190       SUBROUTINE  xios_xml_set_field_fref(field, ftype, ffref, ffref_size) bind(C) 
     224      SUBROUTINE  xios_xml_set_field_fref(field, ftype, ffref, ffref_size) BIND(C) 
    191225         import C_CHAR, C_INT 
    192226         INTEGER  (kind = C_INT), VALUE         :: field, ftype 
     
    199233      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    200234 
    201       SUBROUTINE  xios_xml_set_file_name(file_, ftype, fname, fname_size) bind(C) 
     235      SUBROUTINE  xios_xml_set_file_name(file_, ftype, fname, fname_size) BIND(C) 
    202236         import C_CHAR, C_INT 
    203237         INTEGER  (kind = C_INT), VALUE         :: file_, ftype 
     
    206240      END SUBROUTINE xios_xml_set_file_name 
    207241 
    208       SUBROUTINE  xios_xml_set_file_description(file_, ftype, fdescription, fdescription_size) bind(C) 
     242      SUBROUTINE  xios_xml_set_file_description(file_, ftype, fdescription, fdescription_size) BIND(C) 
    209243         import C_CHAR, C_INT 
    210244         INTEGER  (kind = C_INT), VALUE         :: file_, ftype 
     
    213247      END SUBROUTINE xios_xml_set_file_description 
    214248 
    215       SUBROUTINE  xios_xml_set_file_output_freq(file_, ftype, year, month, day, hour, minute, second) bind(C) 
     249      SUBROUTINE  xios_xml_set_file_output_freq(file_, ftype, year, month, day, hour, minute, second) BIND(C) 
    216250         import C_DOUBLE, C_INT 
    217251         INTEGER (kind = C_INT), VALUE :: file_, ftype 
     
    219253      END SUBROUTINE xios_xml_set_file_output_freq 
    220254 
    221       SUBROUTINE  xios_xml_set_file_olevel(file_, ftype, folevel) bind(C) 
     255      SUBROUTINE  xios_xml_set_file_olevel(file_, ftype, folevel) BIND(C) 
    222256         import C_INT 
    223257         INTEGER (kind = C_INT), VALUE :: file_, ftype 
     
    225259      END SUBROUTINE xios_xml_set_file_olevel 
    226260 
    227       SUBROUTINE  xios_xml_set_file_enabled(file_, ftype, fenabled) bind(C) 
     261      SUBROUTINE  xios_xml_set_file_enabled(file_, ftype, fenabled) BIND(C) 
    228262         import C_INT, C_BOOL 
    229263         INTEGER (kind = C_INT), VALUE  :: file_, ftype 
     
    234268      ! Attribut des éléments de type grid et grid_group ! 
    235269      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    236       SUBROUTINE  xios_xml_set_grid_name(grid, ftype, gname, gname_size) bind(C) 
     270      SUBROUTINE  xios_xml_set_grid_name(grid, ftype, gname, gname_size) BIND(C) 
    237271         import C_CHAR, C_INT 
    238272         INTEGER  (kind = C_INT), VALUE         :: grid, ftype 
     
    241275      END SUBROUTINE xios_xml_set_grid_name 
    242276 
    243       SUBROUTINE  xios_xml_set_grid_description(grid, ftype, gdescription, gdescription_size) bind(C) 
     277      SUBROUTINE  xios_xml_set_grid_description(grid, ftype, gdescription, gdescription_size) BIND(C) 
    244278         import C_CHAR, C_INT 
    245279         INTEGER  (kind = C_INT), VALUE         :: grid, ftype 
     
    248282      END SUBROUTINE xios_xml_set_grid_description 
    249283 
    250       SUBROUTINE  xios_xml_set_grid_dref(grid, ftype, dref, dref_size) bind(C) 
     284      SUBROUTINE  xios_xml_set_grid_dref(grid, ftype, dref, dref_size) BIND(C) 
    251285         import C_CHAR, C_INT 
    252286         INTEGER  (kind = C_INT), VALUE         :: grid, ftype 
     
    255289      END SUBROUTINE xios_xml_set_grid_dref 
    256290 
    257       SUBROUTINE  xios_xml_set_grid_aref(grid, ftype, aref, aref_size) bind(C) 
     291      SUBROUTINE  xios_xml_set_grid_aref(grid, ftype, aref, aref_size) BIND(C) 
    258292         import C_CHAR, C_INT 
    259293         INTEGER  (kind = C_INT), VALUE         :: grid, ftype 
     
    265299      ! Attribut des éléments de type axis et axis_group ! 
    266300      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    267       SUBROUTINE  xios_xml_set_axis_name(axis, ftype, aname, aname_size) bind(C) 
     301      SUBROUTINE  xios_xml_set_axis_name(axis, ftype, aname, aname_size) BIND(C) 
    268302         import C_CHAR, C_INT 
    269303         INTEGER  (kind = C_INT), VALUE         :: axis, ftype 
     
    272306      END SUBROUTINE xios_xml_set_axis_name 
    273307 
    274       SUBROUTINE  xios_xml_set_axis_sname(axis, ftype, asname, asname_size) bind(C) 
     308      SUBROUTINE  xios_xml_set_axis_sname(axis, ftype, asname, asname_size) BIND(C) 
    275309         import C_CHAR, C_INT 
    276310         INTEGER  (kind = C_INT), VALUE         :: axis, ftype 
     
    279313      END SUBROUTINE xios_xml_set_axis_sname 
    280314 
    281       SUBROUTINE  xios_xml_set_axis_lname(axis, ftype, alname, alname_size) bind(C) 
     315      SUBROUTINE  xios_xml_set_axis_lname(axis, ftype, alname, alname_size) BIND(C) 
    282316         import C_CHAR, C_INT 
    283317         INTEGER  (kind = C_INT), VALUE         :: axis, ftype 
     
    286320      END SUBROUTINE xios_xml_set_axis_lname 
    287321 
    288       SUBROUTINE  xios_xml_set_axis_unit(axis, ftype, aunit, aunit_size) bind(C) 
     322      SUBROUTINE  xios_xml_set_axis_unit(axis, ftype, aunit, aunit_size) BIND(C) 
    289323         import C_CHAR, C_INT 
    290324         INTEGER  (kind = C_INT), VALUE         :: axis, ftype 
     
    293327      END SUBROUTINE xios_xml_set_axis_unit 
    294328 
    295       SUBROUTINE  xios_xml_set_axis_value(axis, ftype, avalue, avalue_size) bind(C) 
     329      SUBROUTINE  xios_xml_set_axis_value(axis, ftype, avalue, avalue_size) BIND(C) 
    296330         import C_DOUBLE, C_INT 
    297331         INTEGER  (kind = C_INT), VALUE      :: axis, ftype 
     
    304338      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    305339 
    306       SUBROUTINE  xios_xml_set_domain_name(domain, ftype, dname, dname_size) bind(C) 
     340      SUBROUTINE  xios_xml_set_domain_name(domain, ftype, dname, dname_size) BIND(C) 
    307341         import C_CHAR, C_INT 
    308342         INTEGER  (kind = C_INT), VALUE         :: domain, ftype 
     
    311345      END SUBROUTINE xios_xml_set_domain_name 
    312346 
    313       SUBROUTINE  xios_xml_set_domain_sname(domain, ftype, dsname, dsname_size) bind(C) 
     347      SUBROUTINE  xios_xml_set_domain_sname(domain, ftype, dsname, dsname_size) BIND(C) 
    314348         import C_CHAR, C_INT 
    315349         INTEGER  (kind = C_INT), VALUE         :: domain, ftype 
     
    318352      END SUBROUTINE xios_xml_set_domain_sname 
    319353 
    320       SUBROUTINE  xios_xml_set_domain_lname(domain, ftype, dlname, dlname_size) bind(C) 
     354      SUBROUTINE  xios_xml_set_domain_lname(domain, ftype, dlname, dlname_size) BIND(C) 
    321355         import C_CHAR, C_INT 
    322356         INTEGER  (kind = C_INT), VALUE         :: domain, ftype 
     
    325359      END SUBROUTINE xios_xml_set_domain_lname 
    326360 
    327       SUBROUTINE  xios_xml_set_domain_niglo(domain, ftype, niglo) bind(C) 
     361      SUBROUTINE  xios_xml_set_domain_niglo(domain, ftype, niglo) BIND(C) 
    328362         import C_INT 
    329363         INTEGER  (kind = C_INT), VALUE :: domain, ftype, niglo 
    330364      END SUBROUTINE xios_xml_set_domain_niglo 
    331365 
    332       SUBROUTINE  xios_xml_set_domain_njglo(domain, ftype, njglo) bind(C) 
     366      SUBROUTINE  xios_xml_set_domain_njglo(domain, ftype, njglo) BIND(C) 
    333367         import C_INT 
    334368         INTEGER  (kind = C_INT), VALUE :: domain, ftype, njglo 
    335369      END SUBROUTINE xios_xml_set_domain_njglo 
    336370 
    337       SUBROUTINE  xios_xml_set_domain_ibegin(domain, ftype, ibegin) bind(C) 
     371      SUBROUTINE  xios_xml_set_domain_ibegin(domain, ftype, ibegin) BIND(C) 
    338372         import C_INT 
    339373         INTEGER  (kind = C_INT), VALUE :: domain, ftype, ibegin 
    340374      END SUBROUTINE xios_xml_set_domain_ibegin 
    341375 
    342       SUBROUTINE  xios_xml_set_domain_iend(domain, ftype, iend) bind(C) 
     376      SUBROUTINE  xios_xml_set_domain_iend(domain, ftype, iend) BIND(C) 
    343377         import C_INT 
    344378         INTEGER  (kind = C_INT), VALUE :: domain, ftype, iend 
    345379      END SUBROUTINE xios_xml_set_domain_iend 
    346380 
    347       SUBROUTINE  xios_xml_set_domain_ni(domain, ftype, ni) bind(C) 
     381      SUBROUTINE  xios_xml_set_domain_ni(domain, ftype, ni) BIND(C) 
    348382         import C_INT 
    349383         INTEGER  (kind = C_INT), VALUE :: domain, ftype, ni 
    350384      END SUBROUTINE xios_xml_set_domain_ni 
    351385 
    352       SUBROUTINE  xios_xml_set_domain_jbegin(domain, ftype, jbegin) bind(C) 
     386      SUBROUTINE  xios_xml_set_domain_jbegin(domain, ftype, jbegin) BIND(C) 
    353387         import C_INT 
    354388         INTEGER  (kind = C_INT), VALUE :: domain, ftype, jbegin 
    355389      END SUBROUTINE xios_xml_set_domain_jbegin 
    356390 
    357       SUBROUTINE  xios_xml_set_domain_jend(domain, ftype, jend) bind(C) 
     391      SUBROUTINE  xios_xml_set_domain_jend(domain, ftype, jend) BIND(C) 
    358392         import C_INT 
    359393         INTEGER  (kind = C_INT), VALUE :: domain, ftype, jend 
    360394      END SUBROUTINE xios_xml_set_domain_jend 
    361395 
    362       SUBROUTINE  xios_xml_set_domain_nj(domain, ftype, nj) bind(C) 
     396      SUBROUTINE  xios_xml_set_domain_nj(domain, ftype, nj) BIND(C) 
    363397         import C_INT 
    364398         INTEGER  (kind = C_INT), VALUE :: domain, ftype, nj 
    365399      END SUBROUTINE xios_xml_set_domain_nj 
    366400 
    367       SUBROUTINE  xios_xml_set_domain_mask(domain, ftype, mask, maskXsize, maskYsize) bind(C) 
     401      SUBROUTINE  xios_xml_set_domain_mask(domain, ftype, mask, maskXsize, maskYsize) BIND(C) 
    368402         import C_BOOL, C_INT 
    369403         INTEGER  (kind = C_INT), VALUE       :: domain, ftype 
     
    372406      END SUBROUTINE xios_xml_set_domain_mask 
    373407 
    374       SUBROUTINE  xios_xml_set_domain_ddim(domain, ftype, dadim) bind(C) 
     408      SUBROUTINE  xios_xml_set_domain_ddim(domain, ftype, dadim) BIND(C) 
    375409         import C_INT 
    376410         INTEGER  (kind = C_INT), VALUE :: domain, ftype, dadim 
    377411      END SUBROUTINE xios_xml_set_domain_ddim 
    378412 
    379       SUBROUTINE  xios_xml_set_domain_dni(domain, ftype, dni) bind(C) 
     413      SUBROUTINE  xios_xml_set_domain_dni(domain, ftype, dni) BIND(C) 
    380414         import C_INT 
    381415         INTEGER  (kind = C_INT), VALUE :: domain, ftype, dni 
    382416      END SUBROUTINE xios_xml_set_domain_dni 
    383417 
    384       SUBROUTINE  xios_xml_set_domain_dnj(domain, ftype, dnj) bind(C) 
     418      SUBROUTINE  xios_xml_set_domain_dnj(domain, ftype, dnj) BIND(C) 
    385419         import C_INT 
    386420         INTEGER  (kind = C_INT), VALUE :: domain, ftype, dnj 
    387421      END SUBROUTINE xios_xml_set_domain_dnj 
    388422 
    389       SUBROUTINE  xios_xml_set_domain_dibegin(domain, ftype, dibegin) bind(C) 
     423      SUBROUTINE  xios_xml_set_domain_dibegin(domain, ftype, dibegin) BIND(C) 
    390424         import C_INT 
    391425         INTEGER  (kind = C_INT), VALUE :: domain, ftype, dibegin 
    392426      END SUBROUTINE xios_xml_set_domain_dibegin 
    393427 
    394       SUBROUTINE  xios_xml_set_domain_djbegin(domain, ftype, djbegin) bind(C) 
     428      SUBROUTINE  xios_xml_set_domain_djbegin(domain, ftype, djbegin) BIND(C) 
    395429         import C_INT 
    396430         INTEGER  (kind = C_INT), VALUE :: domain, ftype, djbegin 
    397431      END SUBROUTINE xios_xml_set_domain_djbegin 
    398432 
    399       SUBROUTINE  xios_xml_set_domain_dnindex(domain, ftype, dnindex) bind(C) 
     433      SUBROUTINE  xios_xml_set_domain_dnindex(domain, ftype, dnindex) BIND(C) 
    400434         import C_INT 
    401435         INTEGER  (kind = C_INT), VALUE :: domain, ftype, dnindex 
    402436      END SUBROUTINE xios_xml_set_domain_dnindex 
    403437 
    404       SUBROUTINE  xios_xml_set_domain_diindex(domain, ftype, diindex, diindex_size) bind(C) 
     438      SUBROUTINE  xios_xml_set_domain_diindex(domain, ftype, diindex, diindex_size) BIND(C) 
    405439         import C_INT 
    406440         INTEGER  (kind = C_INT), VALUE      :: domain, ftype 
     
    409443      END SUBROUTINE xios_xml_set_domain_diindex 
    410444 
    411       SUBROUTINE  xios_xml_set_domain_djindex(domain, ftype, djindex, djindex_size) bind(C) 
     445      SUBROUTINE  xios_xml_set_domain_djindex(domain, ftype, djindex, djindex_size) BIND(C) 
    412446         import C_INT 
    413447         INTEGER  (kind = C_INT), VALUE      :: domain, ftype 
     
    416450      END SUBROUTINE xios_xml_set_domain_djindex 
    417451 
    418       SUBROUTINE  xios_xml_set_domain_lonvalue(domain, ftype, lonvalue, lonvalue_xsize, lonvalue_ysize) bind(C) 
     452      SUBROUTINE  xios_xml_set_domain_lonvalue(domain, ftype, lonvalue, lonvalue_xsize, lonvalue_ysize) BIND(C) 
    419453         import C_DOUBLE, C_INT 
    420454         INTEGER  (kind = C_INT), VALUE      :: domain, ftype 
     
    423457      END SUBROUTINE xios_xml_set_domain_lonvalue 
    424458 
    425       SUBROUTINE  xios_xml_set_domain_latvalue(domain, ftype, latvalue, latvalue_xsize, lonvalue_ysize) bind(C) 
     459      SUBROUTINE  xios_xml_set_domain_latvalue(domain, ftype, latvalue, latvalue_xsize, lonvalue_ysize) BIND(C) 
    426460         import C_DOUBLE, C_INT 
    427461         INTEGER  (kind = C_INT), VALUE      :: domain, ftype 
     
    430464      END SUBROUTINE xios_xml_set_domain_latvalue 
    431465 
    432       SUBROUTINE  xios_xml_set_domain_domtype(domain, ftype, domtype, domtype_size) bind(C) 
     466      SUBROUTINE  xios_xml_set_domain_domtype(domain, ftype, domtype, domtype_size) BIND(C) 
    433467         import C_CHAR, C_INT 
    434468         INTEGER  (kind = C_INT), VALUE         :: domain, ftype 
     
    829863   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
    830864 
    831       SUBROUTINE xios_xml_Parse_File(filename, filename_size) bind(C) 
     865      SUBROUTINE xios_xml_Parse_File(filename, filename_size) BIND(C) 
    832866         import C_CHAR, C_INT 
    833867         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename 
     
    835869      END SUBROUTINE xios_xml_Parse_File 
    836870 
    837       SUBROUTINE xios_xml_Parse_String(xmlcontent, xmlcontent_size) bind(C) 
     871      SUBROUTINE xios_xml_Parse_String(xmlcontent, xmlcontent_size) BIND(C) 
    838872         import C_CHAR, C_INT 
    839873         CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent 
     
    868902   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
    869903 
    870       SUBROUTINE xios_context_set_current(context, withswap) bind(C) 
     904      SUBROUTINE xios_context_set_current(context, withswap) BIND(C) 
    871905         import C_BOOL, C_INT 
    872906         INTEGER  (kind = C_INT), VALUE :: context 
     
    874908      END SUBROUTINE xios_context_set_current 
    875909 
    876       SUBROUTINE xios_context_create(context, context_id, context_id_size, calendar_type) bind(C) 
     910      SUBROUTINE xios_context_create(context, context_id, context_id_size, calendar_type, & 
     911                                     year, month, day, hour, minute, second) BIND(C) 
    877912         import C_CHAR, C_INT 
    878913         INTEGER  (kind = C_INT)                :: context 
    879914         CHARACTER(kind = C_CHAR), DIMENSION(*) :: context_id 
    880915         INTEGER  (kind = C_INT), VALUE         :: context_id_size 
    881          INTEGER  (kind = C_INT), VALUE         :: calendar_type 
     916         INTEGER  (kind = C_INT), VALUE         :: calendar_type, year, month, day, hour, minute, second 
    882917      END SUBROUTINE xios_context_create 
    883918 
     
    905940 
    906941   ! Créer un nouveau contexte à partir d'un id, d'un type de calendrier et d'une date. 
    907    SUBROUTINE context_create(context_hdl, context_id, calendar_type) 
    908       USE IXHANDLE 
    909       TYPE(XHandle), INTENT(OUT)     :: context_hdl 
    910       CHARACTER(len = *), INTENT(IN) :: context_id 
    911       INTEGER, INTENT(IN)            :: calendar_type 
    912       CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type) 
     942   SUBROUTINE context_create(context_hdl, context_id, calendar_type, init_date) 
     943      USE IXHANDLE 
     944      USE ICALENDAR 
     945      TYPE(XHandle), INTENT(OUT)        :: context_hdl 
     946      CHARACTER(len = *), INTENT(IN)    :: context_id 
     947      INTEGER, INTENT(IN)               :: calendar_type 
     948      TYPE(XDate), INTENT(IN), OPTIONAL :: init_date 
     949      IF (PRESENT(init_date)) THEN 
     950         CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, & 
     951                                  init_date%year, init_date%month, init_date%day,                & 
     952                                  init_date%hour, init_date%minute, init_date%second) 
     953      ELSE 
     954         CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, & 
     955                                  0, 1, 1, 0, 0, 0) 
     956      END IF 
    913957      IF (context_hdl%daddr .EQ. 0) THEN 
    914958         PRINT *, "(F2003 interface) Impossible de créer le context !" 
     
    934978   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 
    935979 
    936       SUBROUTINE xios_dtreatment_start(context_hdl, filetype) bind(C) 
     980      SUBROUTINE xios_dtreatment_start(context_hdl, filetype) BIND(C) 
    937981         import C_INT 
    938982         INTEGER  (kind = C_INT), VALUE  :: context_hdl 
    939983         INTEGER  (kind = C_INT), VALUE  :: filetype 
    940984      END SUBROUTINE xios_dtreatment_start 
     985 
     986      SUBROUTINE xios_dtreatment_end() BIND(C) 
     987         ! Sans argument 
     988      END SUBROUTINE xios_dtreatment_end 
     989 
     990      SUBROUTINE xios_write_data(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     991         import C_INT, C_CHAR, C_PTR, C_FLOAT, C_DOUBLE, C_BOOL 
     992         CHARACTER(kind = C_CHAR), DIMENSION(*) :: fieldid 
     993         INTEGER  (kind = C_INT),  VALUE        :: fieldid_size 
     994         REAL(kind = C_DOUBLE), DIMENSION(*)    :: data_k8 
     995         INTEGER  (kind = C_INT), VALUE         :: data_Xsize, data_Ysize, data_Zsize 
     996      END SUBROUTINE xios_write_data 
    941997 
    942998   END INTERFACE 
     
    9631019   END SUBROUTINE dtreatment_start 
    9641020 
     1021   SUBROUTINE dtreatment_end(context_hdl) 
     1022      USE ICONTEXT 
     1023      USE IXHANDLE 
     1024      TYPE(XHandle), INTENT(IN), VALUE :: context_hdl 
     1025      IF ((context_hdl%dtype .NE. ECONTEXT) .OR. (context_hdl%daddr .EQ. 0)) THEN 
     1026         PRINT *, "(F2003 interface) Impossible de traiter un contexte invalide !" 
     1027         STOP 
     1028      END IF 
     1029      CALL context_set_current(context_hdl) 
     1030      CALL xios_dtreatment_end() 
     1031   END SUBROUTINE dtreatment_end 
     1032 
     1033   SUBROUTINE write_data (fieldid,                         & 
     1034                          data1d_k8, data2d_k8, data3d_k8) 
     1035      CHARACTER(len = *), INTENT(IN)                     :: fieldid 
     1036      REAL(kind = 8), DIMENSION(*), OPTIONAL, INTENT(IN) :: data1d_k8(:), data2d_k8(:,:), data3d_k8(:,:,:) 
     1037      IF((.NOT. PRESENT(data1d_k8)) .AND. & 
     1038         (.NOT. PRESENT(data2d_k8)) .AND. & 
     1039         (.NOT. PRESENT(data3d_k8))) THEN 
     1040         PRINT *, "(F2003 interface) Veuillez spécifier des données à écrire !" 
     1041         STOP 
     1042      END IF 
     1043      IF (PRESENT (data1d_k8)) THEN 
     1044         CALL xios_write_data(fieldid, len(fieldid), data1d_k8, & 
     1045                              size(data1d_k8, 1), -1, -1) 
     1046      ELSE IF (PRESENT (data2d_k8)) THEN 
     1047         CALL xios_write_data(fieldid, len(fieldid), data2d_k8, & 
     1048                              size(data2d_k8, 1), size(data2d_k8, 2), -1) 
     1049      ELSE IF (PRESENT (data3d_k8)) THEN 
     1050         CALL xios_write_data(fieldid, len(fieldid), data3d_k8, & 
     1051                              size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
     1052      END IF 
     1053   END SUBROUTINE 
     1054 
    9651055END MODULE IDATATREATMENT 
    9661056 
Note: See TracChangeset for help on using the changeset viewer.