Ignore:
Timestamp:
03/19/24 14:23:16 (4 months ago)
Author:
jderouillat
Message:

Add XIOS3 fortran interfaces (resources management, chunking, compression)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/trunk/src/interface/fortran_attr/iaxisgroup_attr.F90

    r1492 r2616  
    1212 
    1313  SUBROUTINE xios(set_axisgroup_attr)  & 
    14     ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    15     , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    16     , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     14    ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     15    , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     16    , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    1717    , unit, value ) 
    1818 
     
    2525      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
    2626      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     27      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: chunking_weight 
    2728      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2829      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin 
     
    5354      (axisgroup_id,axisgroup_hdl) 
    5455      CALL xios(set_axisgroup_attr_hdl_)   & 
    55       ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    56       , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    57       , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     56      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     57      , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     58      , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    5859      , unit, value ) 
    5960 
     
    6162 
    6263  SUBROUTINE xios(set_axisgroup_attr_hdl)  & 
    63     ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    64     , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    65     , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     64    ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     65    , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     66    , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    6667    , unit, value ) 
    6768 
     
    7374      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
    7475      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     76      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: chunking_weight 
    7577      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    7678      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin 
     
    99101 
    100102      CALL xios(set_axisgroup_attr_hdl_)  & 
    101       ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    102       , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    103       , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     103      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     104      , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     105      , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    104106      , unit, value ) 
    105107 
     
    107109 
    108110  SUBROUTINE xios(set_axisgroup_attr_hdl_)   & 
    109     ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_  & 
    110     , data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
     111    ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, chunking_weight_, comment_  & 
     112    , data_begin_, data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
    111113    , group_ref_, index_, label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_  & 
    112114    , positive_, prec_, standard_name_, unit_, value_ ) 
     
    119121      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:,:) 
    120122      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name_ 
     123      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: chunking_weight_ 
    121124      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    122125      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin_ 
     
    169172      ENDIF 
    170173 
     174      IF (PRESENT(chunking_weight_)) THEN 
     175        CALL cxios_set_axisgroup_chunking_weight & 
     176      (axisgroup_hdl%daddr, chunking_weight_) 
     177      ENDIF 
     178 
    171179      IF (PRESENT(comment_)) THEN 
    172180        CALL cxios_set_axisgroup_comment & 
     
    289297 
    290298  SUBROUTINE xios(get_axisgroup_attr)  & 
    291     ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    292     , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    293     , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     299    ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     300    , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     301    , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    294302    , unit, value ) 
    295303 
     
    302310      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
    303311      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     312      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: chunking_weight 
    304313      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    305314      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin 
     
    330339      (axisgroup_id,axisgroup_hdl) 
    331340      CALL xios(get_axisgroup_attr_hdl_)   & 
    332       ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    333       , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    334       , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     341      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     342      , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     343      , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    335344      , unit, value ) 
    336345 
     
    338347 
    339348  SUBROUTINE xios(get_axisgroup_attr_hdl)  & 
    340     ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    341     , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    342     , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     349    ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     350    , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     351    , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    343352    , unit, value ) 
    344353 
     
    350359      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
    351360      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     361      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: chunking_weight 
    352362      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    353363      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin 
     
    376386 
    377387      CALL xios(get_axisgroup_attr_hdl_)  & 
    378       ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    379       , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    380       , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     388      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     389      , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     390      , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    381391      , unit, value ) 
    382392 
     
    384394 
    385395  SUBROUTINE xios(get_axisgroup_attr_hdl_)   & 
    386     ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_  & 
    387     , data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
     396    ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, chunking_weight_, comment_  & 
     397    , data_begin_, data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
    388398    , group_ref_, index_, label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_  & 
    389399    , positive_, prec_, standard_name_, unit_, value_ ) 
     
    396406      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:,:) 
    397407      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name_ 
     408      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: chunking_weight_ 
    398409      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    399410      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin_ 
     
    446457      ENDIF 
    447458 
     459      IF (PRESENT(chunking_weight_)) THEN 
     460        CALL cxios_get_axisgroup_chunking_weight & 
     461      (axisgroup_hdl%daddr, chunking_weight_) 
     462      ENDIF 
     463 
    448464      IF (PRESENT(comment_)) THEN 
    449465        CALL cxios_get_axisgroup_comment & 
     
    566582 
    567583  SUBROUTINE xios(is_defined_axisgroup_attr)  & 
    568     ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    569     , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    570     , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     584    ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     585    , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     586    , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    571587    , unit, value ) 
    572588 
     
    584600      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
    585601      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     602      LOGICAL, OPTIONAL, INTENT(OUT) :: chunking_weight 
     603      LOGICAL(KIND=C_BOOL) :: chunking_weight_tmp 
    586604      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
    587605      LOGICAL(KIND=C_BOOL) :: comment_tmp 
     
    634652      (axisgroup_id,axisgroup_hdl) 
    635653      CALL xios(is_defined_axisgroup_attr_hdl_)   & 
    636       ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    637       , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    638       , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     654      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     655      , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     656      , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    639657      , unit, value ) 
    640658 
     
    642660 
    643661  SUBROUTINE xios(is_defined_axisgroup_attr_hdl)  & 
    644     ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    645     , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    646     , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     662    ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     663    , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     664    , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    647665    , unit, value ) 
    648666 
     
    659677      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
    660678      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     679      LOGICAL, OPTIONAL, INTENT(OUT) :: chunking_weight 
     680      LOGICAL(KIND=C_BOOL) :: chunking_weight_tmp 
    661681      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
    662682      LOGICAL(KIND=C_BOOL) :: comment_tmp 
     
    707727 
    708728      CALL xios(is_defined_axisgroup_attr_hdl_)  & 
    709       ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
    710       , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
    711       , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     729      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, chunking_weight, comment, data_begin  & 
     730      , data_index, data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref  & 
     731      , index, label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
    712732      , unit, value ) 
    713733 
     
    715735 
    716736  SUBROUTINE xios(is_defined_axisgroup_attr_hdl_)   & 
    717     ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_  & 
    718     , data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
     737    ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, chunking_weight_, comment_  & 
     738    , data_begin_, data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
    719739    , group_ref_, index_, label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_  & 
    720740    , positive_, prec_, standard_name_, unit_, value_ ) 
     
    732752      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name_ 
    733753      LOGICAL(KIND=C_BOOL) :: bounds_name__tmp 
     754      LOGICAL, OPTIONAL, INTENT(OUT) :: chunking_weight_ 
     755      LOGICAL(KIND=C_BOOL) :: chunking_weight__tmp 
    734756      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
    735757      LOGICAL(KIND=C_BOOL) :: comment__tmp 
     
    809831      ENDIF 
    810832 
     833      IF (PRESENT(chunking_weight_)) THEN 
     834        chunking_weight__tmp = cxios_is_defined_axisgroup_chunking_weight & 
     835      (axisgroup_hdl%daddr) 
     836        chunking_weight_ = chunking_weight__tmp 
     837      ENDIF 
     838 
    811839      IF (PRESENT(comment_)) THEN 
    812840        comment__tmp = cxios_is_defined_axisgroup_comment & 
Note: See TracChangeset for help on using the changeset viewer.