Changeset 932


Ignore:
Timestamp:
09/21/16 14:35:03 (5 years ago)
Author:
mhnguyen
Message:

Adding Fortran interface for high-dimension grid (up to 7)

+) Add check mask for high-dimension grid
+) Add Fortran interface for send_field, recv_field

Test
+) On Curie
+) Work

Location:
XIOS/trunk/src
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/attribute_array_decl.cpp

    r664 r932  
    1313  template class CAttributeArray<bool,2> ; 
    1414  template class CAttributeArray<bool,3> ; 
    15 //  template class CAttributeArray<bool,4> ; 
    16 //  template class CAttributeArray<bool,5> ; 
    17 //  template class CAttributeArray<bool,6> ; 
    18 //  template class CAttributeArray<bool,7> ; 
     15  template class CAttributeArray<bool,4> ; 
     16  template class CAttributeArray<bool,5> ; 
     17  template class CAttributeArray<bool,6> ; 
     18  template class CAttributeArray<bool,7> ; 
    1919} 
  • XIOS/trunk/src/config/grid_attribute.conf

    r887 r932  
    55DECLARE_ARRAY(bool, 2, mask_2d) 
    66DECLARE_ARRAY(bool, 3, mask_3d) 
    7 //DECLARE_ARRAY(bool, 4, mask_4d) 
    8 //DECLARE_ARRAY(bool, 5, mask_5d) 
    9 //DECLARE_ARRAY(bool, 6, mask_6d) 
    10 //DECLARE_ARRAY(bool, 7, mask_7d) 
     7DECLARE_ARRAY(bool, 4, mask_4d) 
     8DECLARE_ARRAY(bool, 5, mask_5d) 
     9DECLARE_ARRAY(bool, 6, mask_6d) 
     10DECLARE_ARRAY(bool, 7, mask_7d) 
    1111 
    1212 
  • XIOS/trunk/src/distribution_client.cpp

    r890 r932  
    7777    case 3: 
    7878      readGridMaskInfo(grid->mask_3d); 
     79      break; 
     80    case 4: 
     81      readGridMaskInfo(grid->mask_4d); 
     82      break; 
     83    case 5: 
     84      readGridMaskInfo(grid->mask_5d); 
     85      break; 
     86    case 6: 
     87      readGridMaskInfo(grid->mask_6d); 
     88      break; 
     89    case 7: 
     90      readGridMaskInfo(grid->mask_7d); 
    7991      break; 
    8092    default: 
  • XIOS/trunk/src/filter/source_filter.cpp

    r756 r932  
    3434  template void CSourceFilter::streamData<2>(CDate date, const CArray<double, 2>& data); 
    3535  template void CSourceFilter::streamData<3>(CDate date, const CArray<double, 3>& data); 
     36  template void CSourceFilter::streamData<4>(CDate date, const CArray<double, 4>& data); 
     37  template void CSourceFilter::streamData<5>(CDate date, const CArray<double, 5>& data); 
     38  template void CSourceFilter::streamData<6>(CDate date, const CArray<double, 6>& data); 
     39  template void CSourceFilter::streamData<7>(CDate date, const CArray<double, 7>& data); 
    3640 
    3741  void CSourceFilter::streamDataFromServer(CDate date, const std::map<int, CArray<double, 1> >& data) 
  • XIOS/trunk/src/filter/store_filter.cpp

    r683 r932  
    5959  template CDataPacket::StatusCode CStoreFilter::getData<2>(Time timestamp, CArray<double, 2>& data); 
    6060  template CDataPacket::StatusCode CStoreFilter::getData<3>(Time timestamp, CArray<double, 3>& data); 
     61  template CDataPacket::StatusCode CStoreFilter::getData<4>(Time timestamp, CArray<double, 4>& data); 
     62  template CDataPacket::StatusCode CStoreFilter::getData<5>(Time timestamp, CArray<double, 5>& data); 
     63  template CDataPacket::StatusCode CStoreFilter::getData<6>(Time timestamp, CArray<double, 6>& data); 
     64  template CDataPacket::StatusCode CStoreFilter::getData<7>(Time timestamp, CArray<double, 7>& data); 
    6165 
    6266  void CStoreFilter::onInputReady(std::vector<CDataPacketPtr> data) 
  • XIOS/trunk/src/generate_interface_impl.hpp

    r674 r932  
    440440    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
    441441    oss << "}" << std::endl; \ 
     442  } \ 
     443\ 
     444  template <> \ 
     445  void CInterface::AttributeCInterface<CArray<T,4> >(ostream& oss, const string& className, const string& name) \ 
     446  { \ 
     447    string typeName=getStrType<T>(); \ 
     448\ 
     449    oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     450    oss << "{" << iendl; \ 
     451    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     452    oss << "  CArray<" << typeName << ",4> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData);" << iendl; \ 
     453    oss << "  " << className << "_hdl->" << name << ".reference(tmp.copy());" << iendl; \ 
     454    /*oss << "  " << className << "_hdl->sendAttributToServer(" << className << "_hdl->" << name << ");" << iendl;*/ \ 
     455    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     456    oss << "}" << std::endl; \ 
     457    oss << iendl; \ 
     458    oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     459    oss << "{" << iendl; \ 
     460    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     461    oss << "  CArray<" << typeName << ",4> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData);" << iendl; \ 
     462    oss << "  tmp=" << className << "_hdl->" << name << ".getInheritedValue();" << iendl; \ 
     463    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     464    oss << "}" << std::endl; \ 
     465  } \ 
     466\ 
     467  template <> \ 
     468  void CInterface::AttributeCInterface<CArray<T,5> >(ostream& oss, const string& className, const string& name) \ 
     469  { \ 
     470    string typeName=getStrType<T>(); \ 
     471\ 
     472    oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     473    oss << "{" << iendl; \ 
     474    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     475    oss << "  CArray<" << typeName << ",5> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData);" << iendl; \ 
     476    oss << "  " << className << "_hdl->" << name << ".reference(tmp.copy());" << iendl; \ 
     477    /*oss << "  " << className << "_hdl->sendAttributToServer(" << className << "_hdl->" << name << ");" << iendl;*/ \ 
     478    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     479    oss << "}" << std::endl; \ 
     480    oss << iendl; \ 
     481    oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     482    oss << "{" << iendl; \ 
     483    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     484    oss << "  CArray<" << typeName << ",5> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData);" << iendl; \ 
     485    oss << "  tmp=" << className << "_hdl->" << name << ".getInheritedValue();" << iendl; \ 
     486    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     487    oss << "}" << std::endl; \ 
     488  } \ 
     489\ 
     490  template <> \ 
     491  void CInterface::AttributeCInterface<CArray<T,6> >(ostream& oss, const string& className, const string& name) \ 
     492  { \ 
     493    string typeName=getStrType<T>(); \ 
     494\ 
     495    oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     496    oss << "{" << iendl; \ 
     497    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     498    oss << "  CArray<" << typeName << ",6> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData);" << iendl; \ 
     499    oss << "  " << className << "_hdl->" << name << ".reference(tmp.copy());" << iendl; \ 
     500    /*oss << "  " << className << "_hdl->sendAttributToServer(" << className << "_hdl->" << name << ");" << iendl;*/ \ 
     501    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     502    oss << "}" << std::endl; \ 
     503    oss << iendl; \ 
     504    oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     505    oss << "{" << iendl; \ 
     506    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     507    oss << "  CArray<" << typeName << ",6> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData);" << iendl; \ 
     508    oss << "  tmp=" << className << "_hdl->" << name << ".getInheritedValue();" << iendl; \ 
     509    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     510    oss << "}" << std::endl; \ 
     511  }  \ 
     512\ 
     513  template <> \ 
     514  void CInterface::AttributeCInterface<CArray<T,7> >(ostream& oss, const string& className, const string& name) \ 
     515  { \ 
     516    string typeName=getStrType<T>(); \ 
     517\ 
     518    oss << "void cxios_set_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     519    oss << "{" << iendl; \ 
     520    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     521    oss << "  CArray<" << typeName << ",7> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData);" << iendl; \ 
     522    oss << "  " << className << "_hdl->" << name << ".reference(tmp.copy());" << iendl; \ 
     523    /*oss << "  " << className << "_hdl->sendAttributToServer(" << className << "_hdl->" << name << ");" << iendl;*/ \ 
     524    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     525    oss << "}" << std::endl; \ 
     526    oss << iendl; \ 
     527    oss << "void cxios_get_" << className << "_" << name << "(" << className << "_Ptr " << className << "_hdl, " << typeName << "* " << name << ", int* extent)" << iendl; \ 
     528    oss << "{" << iendl; \ 
     529    oss << "  CTimer::get(\"XIOS\").resume();" << iendl; \ 
     530    oss << "  CArray<" << typeName << ",7> tmp(" << name << ", shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData);" << iendl; \ 
     531    oss << "  tmp=" << className << "_hdl->" << name << ".getInheritedValue();" << iendl; \ 
     532    oss << "   CTimer::get(\"XIOS\").suspend();" << iendl; \ 
     533    oss << "}" << std::endl; \ 
    442534  } 
    443535 
     
    494586    oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 
    495587  } \ 
    496     \ 
     588 \ 
    497589  template <> \ 
    498590  void CInterface::AttributeFortran2003Interface<CArray<T,3> >(ostream& oss, const string& className, const string& name) \ 
     591  { \ 
     592    string fortranType=getStrFortranType<T>(); \ 
     593    string fortranKindC=getStrFortranKindC<T>(); \ 
     594      \ 
     595    oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     596    oss << "  USE ISO_C_BINDING" << iendl; \ 
     597    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     598    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     599    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     600    oss << "END SUBROUTINE cxios_set_" << className << "_" << name << std::endl; \ 
     601    oss << iendl; \ 
     602    oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     603    oss << "  USE ISO_C_BINDING" << iendl; \ 
     604    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     605    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     606    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     607    oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 
     608  }  \ 
     609 \ 
     610  template <> \ 
     611  void CInterface::AttributeFortran2003Interface<CArray<T,4> >(ostream& oss, const string& className, const string& name) \ 
     612  { \ 
     613    string fortranType=getStrFortranType<T>(); \ 
     614    string fortranKindC=getStrFortranKindC<T>(); \ 
     615      \ 
     616    oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     617    oss << "  USE ISO_C_BINDING" << iendl; \ 
     618    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     619    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     620    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     621    oss << "END SUBROUTINE cxios_set_" << className << "_" << name << std::endl; \ 
     622    oss << iendl; \ 
     623    oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     624    oss << "  USE ISO_C_BINDING" << iendl; \ 
     625    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     626    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     627    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     628    oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 
     629  }\ 
     630 \ 
     631  template <> \ 
     632  void CInterface::AttributeFortran2003Interface<CArray<T,5> >(ostream& oss, const string& className, const string& name) \ 
     633  { \ 
     634    string fortranType=getStrFortranType<T>(); \ 
     635    string fortranKindC=getStrFortranKindC<T>(); \ 
     636      \ 
     637    oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     638    oss << "  USE ISO_C_BINDING" << iendl; \ 
     639    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     640    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     641    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     642    oss << "END SUBROUTINE cxios_set_" << className << "_" << name << std::endl; \ 
     643    oss << iendl; \ 
     644    oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     645    oss << "  USE ISO_C_BINDING" << iendl; \ 
     646    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     647    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     648    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     649    oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 
     650  }\ 
     651 \ 
     652  template <> \ 
     653  void CInterface::AttributeFortran2003Interface<CArray<T,6> >(ostream& oss, const string& className, const string& name) \ 
     654  { \ 
     655    string fortranType=getStrFortranType<T>(); \ 
     656    string fortranKindC=getStrFortranKindC<T>(); \ 
     657      \ 
     658    oss << "SUBROUTINE cxios_set_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     659    oss << "  USE ISO_C_BINDING" << iendl; \ 
     660    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     661    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     662    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     663    oss << "END SUBROUTINE cxios_set_" << className << "_" << name << std::endl; \ 
     664    oss << iendl; \ 
     665    oss << "SUBROUTINE cxios_get_" << className << "_" << name << "(" << className << "_hdl, " << name << ", extent) BIND(C)" << iendl; \ 
     666    oss << "  USE ISO_C_BINDING" << iendl; \ 
     667    oss << "  INTEGER (kind = C_INTPTR_T), VALUE       :: " << className << "_hdl" << iendl; \ 
     668    oss << "  " << fortranType << " " << fortranKindC << "     , DIMENSION(*) :: " << name << iendl; \ 
     669    oss << "  INTEGER (kind = C_INT), DIMENSION(*)     :: extent" << iendl; \ 
     670    oss << "END SUBROUTINE cxios_get_" << className << "_" << name << std::endl; \ 
     671  }\ 
     672 \ 
     673  template <> \ 
     674  void CInterface::AttributeFortran2003Interface<CArray<T,7> >(ostream& oss, const string& className, const string& name) \ 
    499675  { \ 
    500676    string fortranType=getStrFortranType<T>(); \ 
     
    562738    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(OUT) :: " << name << "(:,:,:)"; \ 
    563739    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:)"; \ 
     740  }\ 
     741 \ 
     742  template <> \ 
     743  void CInterface::AttributeFortranInterfaceDeclaration<CArray<T,4> >(ostream& oss, const string& className, const string& name) \ 
     744  { \ 
     745    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(IN) :: " << name << "(:,:,:,:)"; \ 
     746    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:)"; \ 
     747  } \ 
     748 \ 
     749  template <> \ 
     750  void CInterface::AttributeFortranInterfaceGetDeclaration<CArray<T,4> >(ostream& oss, const string& className, const string& name) \ 
     751  { \ 
     752    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(OUT) :: " << name << "(:,:,:,:)"; \ 
     753    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:)"; \ 
     754  }\ 
     755 \ 
     756  template <> \ 
     757  void CInterface::AttributeFortranInterfaceDeclaration<CArray<T,5> >(ostream& oss, const string& className, const string& name) \ 
     758  { \ 
     759    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(IN) :: " << name << "(:,:,:,:,:)"; \ 
     760    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:,:)"; \ 
     761  } \ 
     762 \ 
     763  template <> \ 
     764  void CInterface::AttributeFortranInterfaceGetDeclaration<CArray<T,5> >(ostream& oss, const string& className, const string& name) \ 
     765  { \ 
     766    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(OUT) :: " << name << "(:,:,:,:,:)"; \ 
     767    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:,:)"; \ 
     768  }\ 
     769 \ 
     770  template <> \ 
     771  void CInterface::AttributeFortranInterfaceDeclaration<CArray<T,6> >(ostream& oss, const string& className, const string& name) \ 
     772  { \ 
     773    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(IN) :: " << name << "(:,:,:,:,:,:)"; \ 
     774    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:,:,:)"; \ 
     775  } \ 
     776 \ 
     777  template <> \ 
     778  void CInterface::AttributeFortranInterfaceGetDeclaration<CArray<T,6> >(ostream& oss, const string& className, const string& name) \ 
     779  { \ 
     780    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(OUT) :: " << name << "(:,:,:,:,:,:)"; \ 
     781    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:,:,:)"; \ 
     782  }\ 
     783 \ 
     784  template <> \ 
     785  void CInterface::AttributeFortranInterfaceDeclaration<CArray<T,7> >(ostream& oss, const string& className, const string& name) \ 
     786  { \ 
     787    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(IN) :: " << name << "(:,:,:,:,:,:,:)"; \ 
     788    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:,:,:,:)"; \ 
     789  } \ 
     790 \ 
     791  template <> \ 
     792  void CInterface::AttributeFortranInterfaceGetDeclaration<CArray<T,7> >(ostream& oss, const string& className, const string& name) \ 
     793  { \ 
     794    oss << getStrFortranType<T>() << " " << getStrFortranKind<T>() << " , OPTIONAL, INTENT(OUT) :: " << name << "(:,:,:,:,:,:,:)"; \ 
     795    if (!matchingTypeCFortran<T>()) oss << iendl << getStrFortranType<T>() << " " << getStrFortranKindC<T>() << " , ALLOCATABLE :: " << name << "_tmp(:,:,:,:,:,:,:)"; \ 
    564796  } 
    565797 
     
    602834    oss << "ENDIF"; \ 
    603835  } \ 
    604     \ 
     836  \ 
    605837  template <>  \ 
    606838  void CInterface::AttributeFortranInterfaceBody< CArray<T,3> >(ostream& oss, const string& className, const string& name) \ 
     
    617849    else oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
    618850    oss << "ENDIF"; \ 
     851  }\ 
     852  \ 
     853  template <>  \ 
     854  void CInterface::AttributeFortranInterfaceBody< CArray<T,4> >(ostream& oss, const string& className, const string& name) \ 
     855  {  \ 
     856    string name_tmp=name+"__tmp"; \ 
     857      \ 
     858    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     859    if (!matchingTypeCFortran<T>())  \ 
     860    { \ 
     861      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4)))" << iendl; \ 
     862      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     863      oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     864    } \ 
     865    else oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     866    oss << "ENDIF"; \ 
     867  }\ 
     868  \ 
     869  template <>  \ 
     870  void CInterface::AttributeFortranInterfaceBody< CArray<T,5> >(ostream& oss, const string& className, const string& name) \ 
     871  {  \ 
     872    string name_tmp=name+"__tmp"; \ 
     873      \ 
     874    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     875    if (!matchingTypeCFortran<T>())  \ 
     876    { \ 
     877      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4), SIZE(" << name << "_,5)))" << iendl; \ 
     878      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     879      oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     880    } \ 
     881    else oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     882    oss << "ENDIF"; \ 
     883  }\ 
     884  \ 
     885  template <>  \ 
     886  void CInterface::AttributeFortranInterfaceBody< CArray<T,6> >(ostream& oss, const string& className, const string& name) \ 
     887  {  \ 
     888    string name_tmp=name+"__tmp"; \ 
     889      \ 
     890    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     891    if (!matchingTypeCFortran<T>())  \ 
     892    { \ 
     893      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4), SIZE(" << name << "_,5), SIZE(" << name << "_,6)))" << iendl; \ 
     894      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     895      oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     896    } \ 
     897    else oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     898    oss << "ENDIF"; \ 
     899  }\ 
     900  \ 
     901  template <>  \ 
     902  void CInterface::AttributeFortranInterfaceBody< CArray<T,7> >(ostream& oss, const string& className, const string& name) \ 
     903  {  \ 
     904    string name_tmp=name+"__tmp"; \ 
     905      \ 
     906    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     907    if (!matchingTypeCFortran<T>())  \ 
     908    { \ 
     909      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4), SIZE(" << name << "_,5), SIZE(" << name << "_,6), SIZE(" << name << "_,7)))" << iendl; \ 
     910      oss << "  " << name_tmp << " = " << name << "_" << iendl; \ 
     911      oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     912    } \ 
     913    else oss << "  CALL cxios_set_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     914    oss << "ENDIF"; \ 
    619915  } 
    620916 
     
    657953    oss << "ENDIF"; \ 
    658954  } \ 
    659     \ 
     955 \ 
    660956  template <>  \ 
    661957  void CInterface::AttributeFortranInterfaceGetBody< CArray<T,3> >(ostream& oss, const string& className, const string& name) \ 
     
    672968    else oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
    673969    oss << "ENDIF"; \ 
     970  } \ 
     971 \ 
     972  template <>  \ 
     973  void CInterface::AttributeFortranInterfaceGetBody< CArray<T,4> >(ostream& oss, const string& className, const string& name) \ 
     974  {  \ 
     975    string name_tmp=name+"__tmp"; \ 
     976      \ 
     977    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     978    if (!matchingTypeCFortran<T>())  \ 
     979    { \ 
     980      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4)))" << iendl; \ 
     981      oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     982      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
     983      } \ 
     984    else oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     985    oss << "ENDIF"; \ 
     986  } \ 
     987 \ 
     988  template <>  \ 
     989  void CInterface::AttributeFortranInterfaceGetBody< CArray<T,5> >(ostream& oss, const string& className, const string& name) \ 
     990  {  \ 
     991    string name_tmp=name+"__tmp"; \ 
     992      \ 
     993    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     994    if (!matchingTypeCFortran<T>())  \ 
     995    { \ 
     996      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4), SIZE(" << name << "_,5)))" << iendl; \ 
     997      oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     998      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
     999      } \ 
     1000    else oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     1001    oss << "ENDIF"; \ 
     1002  }\ 
     1003 \ 
     1004  template <>  \ 
     1005  void CInterface::AttributeFortranInterfaceGetBody< CArray<T,6> >(ostream& oss, const string& className, const string& name) \ 
     1006  {  \ 
     1007    string name_tmp=name+"__tmp"; \ 
     1008      \ 
     1009    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     1010    if (!matchingTypeCFortran<T>())  \ 
     1011    { \ 
     1012      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4), SIZE(" << name << "_,5), SIZE(" << name << "_,6)))" << iendl; \ 
     1013      oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1014      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
     1015      } \ 
     1016    else oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     1017    oss << "ENDIF"; \ 
     1018  } \ 
     1019 \ 
     1020  template <>  \ 
     1021  void CInterface::AttributeFortranInterfaceGetBody< CArray<T,7> >(ostream& oss, const string& className, const string& name) \ 
     1022  {  \ 
     1023    string name_tmp=name+"__tmp"; \ 
     1024      \ 
     1025    oss << "IF (PRESENT(" << name << "_)) THEN" << iendl; \ 
     1026    if (!matchingTypeCFortran<T>())  \ 
     1027    { \ 
     1028      oss << "  ALLOCATE(" << name_tmp << "(SIZE(" << name << "_,1), SIZE(" << name << "_,2), SIZE(" << name << "_,3), SIZE(" << name << "_,4), SIZE(" << name << "_,5), SIZE(" << name << "_,6), SIZE(" << name << "_,7)))" << iendl; \ 
     1029      oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name_tmp << ", SHAPE(" << name << "_))" << iendl; \ 
     1030      oss << "  " << name << "_ = " << name_tmp << iendl; \ 
     1031      } \ 
     1032    else oss << "  CALL cxios_get_" << className << "_" << name << "(" << className << "_hdl%daddr, " << name << "_, SHAPE(" << name << "_))" << iendl; \ 
     1033    oss << "ENDIF"; \ 
    6741034  } 
    6751035 
  • XIOS/trunk/src/interface/c/icdata.cpp

    r704 r932  
    438438   } 
    439439 
     440   void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size) 
     441   { 
     442      std::string fieldid_str; 
     443      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     444 
     445      CTimer::get("XIOS").resume(); 
     446      CTimer::get("XIOS send field").resume(); 
     447 
     448      CContext* context = CContext::getCurrent(); 
     449      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     450        context->checkBuffersAndListen(); 
     451 
     452      CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     453      CField::get(fieldid_str)->setData(data); 
     454 
     455      CTimer::get("XIOS send field").suspend(); 
     456      CTimer::get("XIOS").suspend(); 
     457   } 
     458 
     459   void cxios_write_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 
     460                             int data_0size, int data_1size, int data_2size, 
     461                             int data_3size, int data_4size) 
     462   { 
     463      std::string fieldid_str; 
     464      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     465 
     466      CTimer::get("XIOS").resume(); 
     467      CTimer::get("XIOS send field").resume(); 
     468 
     469      CContext* context = CContext::getCurrent(); 
     470      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     471        context->checkBuffersAndListen(); 
     472 
     473      CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     474      CField::get(fieldid_str)->setData(data); 
     475 
     476      CTimer::get("XIOS send field").suspend(); 
     477      CTimer::get("XIOS").suspend(); 
     478   } 
     479 
     480   void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 
     481                             int data_0size, int data_1size, int data_2size, 
     482                             int data_3size, int data_4size, int data_5size) 
     483   { 
     484      std::string fieldid_str; 
     485      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     486 
     487      CTimer::get("XIOS").resume(); 
     488      CTimer::get("XIOS send field").resume(); 
     489 
     490      CContext* context = CContext::getCurrent(); 
     491      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     492        context->checkBuffersAndListen(); 
     493 
     494      CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     495      CField::get(fieldid_str)->setData(data); 
     496 
     497      CTimer::get("XIOS send field").suspend(); 
     498      CTimer::get("XIOS").suspend(); 
     499   } 
     500 
     501   void cxios_write_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     502                             int data_0size, int data_1size, int data_2size, 
     503                             int data_3size, int data_4size, int data_5size, 
     504                             int data_6size) 
     505   { 
     506      std::string fieldid_str; 
     507      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     508 
     509      CTimer::get("XIOS").resume(); 
     510      CTimer::get("XIOS send field").resume(); 
     511 
     512      CContext* context = CContext::getCurrent(); 
     513      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     514        context->checkBuffersAndListen(); 
     515 
     516      CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
     517      CField::get(fieldid_str)->setData(data); 
     518 
     519      CTimer::get("XIOS send field").suspend(); 
     520      CTimer::get("XIOS").suspend(); 
     521   } 
     522 
    440523   void cxios_write_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
    441524   { 
     
    520603    } 
    521604 
     605   void cxios_write_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
     606                             int data_0size, int data_1size, int data_2size, 
     607                             int data_3size) 
     608   { 
     609      std::string fieldid_str; 
     610      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     611 
     612      CTimer::get("XIOS").resume(); 
     613      CTimer::get("XIOS send field").resume(); 
     614 
     615      CContext* context = CContext::getCurrent(); 
     616      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     617        context->checkBuffersAndListen(); 
     618 
     619      CArray<float, 4> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     620      CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 
     621      data = data_tmp; 
     622      CField::get(fieldid_str)->setData(data); 
     623 
     624      CTimer::get("XIOS send field").suspend(); 
     625      CTimer::get("XIOS").suspend(); 
     626    } 
     627 
     628   void cxios_write_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
     629                             int data_0size, int data_1size, int data_2size, 
     630                             int data_3size, int data_4size) 
     631   { 
     632      std::string fieldid_str; 
     633      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     634 
     635      CTimer::get("XIOS").resume(); 
     636      CTimer::get("XIOS send field").resume(); 
     637 
     638      CContext* context = CContext::getCurrent(); 
     639      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     640        context->checkBuffersAndListen(); 
     641 
     642      CArray<float, 5> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     643      CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 
     644      data = data_tmp; 
     645      CField::get(fieldid_str)->setData(data); 
     646 
     647      CTimer::get("XIOS send field").suspend(); 
     648      CTimer::get("XIOS").suspend(); 
     649    } 
     650 
     651   void cxios_write_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
     652                             int data_0size, int data_1size, int data_2size, 
     653                             int data_3size, int data_4size, int data_5size) 
     654   { 
     655      std::string fieldid_str; 
     656      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     657 
     658      CTimer::get("XIOS").resume(); 
     659      CTimer::get("XIOS send field").resume(); 
     660 
     661      CContext* context = CContext::getCurrent(); 
     662      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     663        context->checkBuffersAndListen(); 
     664 
     665      CArray<float, 6> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     666      CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 
     667      data = data_tmp; 
     668      CField::get(fieldid_str)->setData(data); 
     669 
     670      CTimer::get("XIOS send field").suspend(); 
     671      CTimer::get("XIOS").suspend(); 
     672    } 
     673 
     674   void cxios_write_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     675                             int data_0size, int data_1size, int data_2size, 
     676                             int data_3size, int data_4size, int data_5size, 
     677                             int data_6size) 
     678   { 
     679      std::string fieldid_str; 
     680      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     681 
     682      CTimer::get("XIOS").resume(); 
     683      CTimer::get("XIOS send field").resume(); 
     684 
     685      CContext* context = CContext::getCurrent(); 
     686      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     687        context->checkBuffersAndListen(); 
     688 
     689      CArray<float, 7> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
     690      CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 
     691      data = data_tmp; 
     692      CField::get(fieldid_str)->setData(data); 
     693 
     694      CTimer::get("XIOS send field").suspend(); 
     695      CTimer::get("XIOS").suspend(); 
     696    } 
     697 
    522698   // ---------------------- Lecture des données ------------------------------ 
    523699 
     
    573749 
    574750      CArray<double, 3>data(data_k8, shape(data_Xsize, data_Ysize, data_Zsize), neverDeleteData); 
     751      CField::get(fieldid_str)->getData(data); 
     752 
     753      CTimer::get("XIOS recv field").suspend(); 
     754      CTimer::get("XIOS").suspend(); 
     755   } 
     756 
     757   void cxios_read_data_k84(const char* fieldid, int fieldid_size, double* data_k8, 
     758                            int data_0size, int data_1size, int data_2size, 
     759                            int data_3size) 
     760   { 
     761      std::string fieldid_str; 
     762      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     763 
     764      CTimer::get("XIOS").resume(); 
     765      CTimer::get("XIOS recv field").resume(); 
     766 
     767      CContext* context = CContext::getCurrent(); 
     768      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     769        context->checkBuffersAndListen(); 
     770 
     771      CArray<double, 4>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     772      CField::get(fieldid_str)->getData(data); 
     773 
     774      CTimer::get("XIOS recv field").suspend(); 
     775      CTimer::get("XIOS").suspend(); 
     776   } 
     777 
     778   void cxios_read_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 
     779                            int data_0size, int data_1size, int data_2size, 
     780                            int data_3size, int data_4size) 
     781   { 
     782      std::string fieldid_str; 
     783      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     784 
     785      CTimer::get("XIOS").resume(); 
     786      CTimer::get("XIOS recv field").resume(); 
     787 
     788      CContext* context = CContext::getCurrent(); 
     789      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     790        context->checkBuffersAndListen(); 
     791 
     792      CArray<double, 5>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     793      CField::get(fieldid_str)->getData(data); 
     794 
     795      CTimer::get("XIOS recv field").suspend(); 
     796      CTimer::get("XIOS").suspend(); 
     797   } 
     798 
     799   void cxios_read_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 
     800                            int data_0size, int data_1size, int data_2size, 
     801                            int data_3size, int data_4size, int data_5size) 
     802   { 
     803      std::string fieldid_str; 
     804      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     805 
     806      CTimer::get("XIOS").resume(); 
     807      CTimer::get("XIOS recv field").resume(); 
     808 
     809      CContext* context = CContext::getCurrent(); 
     810      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     811        context->checkBuffersAndListen(); 
     812 
     813      CArray<double, 6>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     814      CField::get(fieldid_str)->getData(data); 
     815 
     816      CTimer::get("XIOS recv field").suspend(); 
     817      CTimer::get("XIOS").suspend(); 
     818   } 
     819 
     820   void cxios_read_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     821                            int data_0size, int data_1size, int data_2size, 
     822                            int data_3size, int data_4size, int data_5size, 
     823                            int data_6size) 
     824   { 
     825      std::string fieldid_str; 
     826      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     827 
     828      CTimer::get("XIOS").resume(); 
     829      CTimer::get("XIOS recv field").resume(); 
     830 
     831      CContext* context = CContext::getCurrent(); 
     832      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     833        context->checkBuffersAndListen(); 
     834 
     835      CArray<double, 7>data(data_k8, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
    575836      CField::get(fieldid_str)->getData(data); 
    576837 
     
    641902      CTimer::get("XIOS").suspend(); 
    642903    } 
     904 
     905   void cxios_read_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
     906                            int data_0size, int data_1size, int data_2size, 
     907                            int data_3size) 
     908   { 
     909      std::string fieldid_str; 
     910      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     911 
     912      CTimer::get("XIOS").resume(); 
     913      CTimer::get("XIOS recv field").resume(); 
     914 
     915      CContext* context = CContext::getCurrent(); 
     916      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     917        context->checkBuffersAndListen(); 
     918 
     919      CArray<double, 4> data(data_0size, data_1size, data_2size, data_3size); 
     920      CField::get(fieldid_str)->getData(data); 
     921      CArray<float, 4> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size), neverDeleteData); 
     922      data_tmp = data; 
     923 
     924      CTimer::get("XIOS recv field").suspend(); 
     925      CTimer::get("XIOS").suspend(); 
     926    } 
     927 
     928   void cxios_read_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
     929                            int data_0size, int data_1size, int data_2size, 
     930                            int data_3size, int data_4size) 
     931   { 
     932      std::string fieldid_str; 
     933      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     934 
     935      CTimer::get("XIOS").resume(); 
     936      CTimer::get("XIOS recv field").resume(); 
     937 
     938      CContext* context = CContext::getCurrent(); 
     939      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     940        context->checkBuffersAndListen(); 
     941 
     942      CArray<double, 5> data(data_0size, data_1size, data_2size, data_3size, data_4size); 
     943      CField::get(fieldid_str)->getData(data); 
     944      CArray<float, 5> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size), neverDeleteData); 
     945      data_tmp = data; 
     946 
     947      CTimer::get("XIOS recv field").suspend(); 
     948      CTimer::get("XIOS").suspend(); 
     949    } 
     950 
     951   void cxios_read_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
     952                            int data_0size, int data_1size, int data_2size, 
     953                            int data_3size, int data_4size, int data_5size) 
     954   { 
     955      std::string fieldid_str; 
     956      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     957 
     958      CTimer::get("XIOS").resume(); 
     959      CTimer::get("XIOS recv field").resume(); 
     960 
     961      CContext* context = CContext::getCurrent(); 
     962      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     963        context->checkBuffersAndListen(); 
     964 
     965      CArray<double, 6> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size); 
     966      CField::get(fieldid_str)->getData(data); 
     967      CArray<float, 6> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size), neverDeleteData); 
     968      data_tmp = data; 
     969 
     970      CTimer::get("XIOS recv field").suspend(); 
     971      CTimer::get("XIOS").suspend(); 
     972    } 
     973 
     974   void cxios_read_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     975                            int data_0size, int data_1size, int data_2size, 
     976                            int data_3size, int data_4size, int data_5size, 
     977                            int data_6size) 
     978   { 
     979      std::string fieldid_str; 
     980      if (!cstr2string(fieldid, fieldid_size, fieldid_str)) return; 
     981 
     982      CTimer::get("XIOS").resume(); 
     983      CTimer::get("XIOS recv field").resume(); 
     984 
     985      CContext* context = CContext::getCurrent(); 
     986      if (!context->hasServer && !context->client->isAttachedModeEnabled()) 
     987        context->checkBuffersAndListen(); 
     988 
     989      CArray<double, 7> data(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size); 
     990      CField::get(fieldid_str)->getData(data); 
     991      CArray<float, 7> data_tmp(data_k4, shape(data_0size, data_1size, data_2size, data_3size, data_4size, data_5size, data_6size), neverDeleteData); 
     992      data_tmp = data; 
     993 
     994      CTimer::get("XIOS recv field").suspend(); 
     995      CTimer::get("XIOS").suspend(); 
     996    } 
    643997} // extern "C" 
  • XIOS/trunk/src/interface/c_attr/icfile_attr.cpp

    r891 r932  
    6464 
    6565 
     66  void cxios_set_file_convention(file_Ptr file_hdl, const char * convention, int convention_size) 
     67  { 
     68    std::string convention_str; 
     69    if (!cstr2string(convention, convention_size, convention_str)) return; 
     70    CTimer::get("XIOS").resume(); 
     71    file_hdl->convention.fromString(convention_str); 
     72    CTimer::get("XIOS").suspend(); 
     73  } 
     74 
     75  void cxios_get_file_convention(file_Ptr file_hdl, char * convention, int convention_size) 
     76  { 
     77    CTimer::get("XIOS").resume(); 
     78    if (!string_copy(file_hdl->convention.getInheritedStringValue(), convention, convention_size)) 
     79      ERROR("void cxios_get_file_convention(file_Ptr file_hdl, char * convention, int convention_size)", << "Input string is too short"); 
     80    CTimer::get("XIOS").suspend(); 
     81  } 
     82 
     83  bool cxios_is_defined_file_convention(file_Ptr file_hdl) 
     84  { 
     85     CTimer::get("XIOS").resume(); 
     86     bool isDefined = file_hdl->convention.hasInheritedValue(); 
     87     CTimer::get("XIOS").suspend(); 
     88     return isDefined; 
     89  } 
     90 
     91 
    6692  void cxios_set_file_cyclic(file_Ptr file_hdl, bool cyclic) 
    6793  { 
  • XIOS/trunk/src/interface/c_attr/icfilegroup_attr.cpp

    r891 r932  
    6464 
    6565 
     66  void cxios_set_filegroup_convention(filegroup_Ptr filegroup_hdl, const char * convention, int convention_size) 
     67  { 
     68    std::string convention_str; 
     69    if (!cstr2string(convention, convention_size, convention_str)) return; 
     70    CTimer::get("XIOS").resume(); 
     71    filegroup_hdl->convention.fromString(convention_str); 
     72    CTimer::get("XIOS").suspend(); 
     73  } 
     74 
     75  void cxios_get_filegroup_convention(filegroup_Ptr filegroup_hdl, char * convention, int convention_size) 
     76  { 
     77    CTimer::get("XIOS").resume(); 
     78    if (!string_copy(filegroup_hdl->convention.getInheritedStringValue(), convention, convention_size)) 
     79      ERROR("void cxios_get_filegroup_convention(filegroup_Ptr filegroup_hdl, char * convention, int convention_size)", << "Input string is too short"); 
     80    CTimer::get("XIOS").suspend(); 
     81  } 
     82 
     83  bool cxios_is_defined_filegroup_convention(filegroup_Ptr filegroup_hdl) 
     84  { 
     85     CTimer::get("XIOS").resume(); 
     86     bool isDefined = filegroup_hdl->convention.hasInheritedValue(); 
     87     CTimer::get("XIOS").suspend(); 
     88     return isDefined; 
     89  } 
     90 
     91 
    6692  void cxios_set_filegroup_cyclic(filegroup_Ptr filegroup_hdl, bool cyclic) 
    6793  { 
  • XIOS/trunk/src/interface/c_attr/icgrid_attr.cpp

    r817 r932  
    119119 
    120120 
     121  void cxios_set_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent) 
     122  { 
     123    CTimer::get("XIOS").resume(); 
     124    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     125    grid_hdl->mask_4d.reference(tmp.copy()); 
     126     CTimer::get("XIOS").suspend(); 
     127  } 
     128 
     129  void cxios_get_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent) 
     130  { 
     131    CTimer::get("XIOS").resume(); 
     132    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     133    tmp=grid_hdl->mask_4d.getInheritedValue(); 
     134     CTimer::get("XIOS").suspend(); 
     135  } 
     136 
     137  bool cxios_is_defined_grid_mask_4d(grid_Ptr grid_hdl) 
     138  { 
     139     CTimer::get("XIOS").resume(); 
     140     bool isDefined = grid_hdl->mask_4d.hasInheritedValue(); 
     141     CTimer::get("XIOS").suspend(); 
     142     return isDefined; 
     143  } 
     144 
     145 
     146  void cxios_set_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent) 
     147  { 
     148    CTimer::get("XIOS").resume(); 
     149    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     150    grid_hdl->mask_5d.reference(tmp.copy()); 
     151     CTimer::get("XIOS").suspend(); 
     152  } 
     153 
     154  void cxios_get_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent) 
     155  { 
     156    CTimer::get("XIOS").resume(); 
     157    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     158    tmp=grid_hdl->mask_5d.getInheritedValue(); 
     159     CTimer::get("XIOS").suspend(); 
     160  } 
     161 
     162  bool cxios_is_defined_grid_mask_5d(grid_Ptr grid_hdl) 
     163  { 
     164     CTimer::get("XIOS").resume(); 
     165     bool isDefined = grid_hdl->mask_5d.hasInheritedValue(); 
     166     CTimer::get("XIOS").suspend(); 
     167     return isDefined; 
     168  } 
     169 
     170 
     171  void cxios_set_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent) 
     172  { 
     173    CTimer::get("XIOS").resume(); 
     174    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     175    grid_hdl->mask_6d.reference(tmp.copy()); 
     176     CTimer::get("XIOS").suspend(); 
     177  } 
     178 
     179  void cxios_get_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent) 
     180  { 
     181    CTimer::get("XIOS").resume(); 
     182    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     183    tmp=grid_hdl->mask_6d.getInheritedValue(); 
     184     CTimer::get("XIOS").suspend(); 
     185  } 
     186 
     187  bool cxios_is_defined_grid_mask_6d(grid_Ptr grid_hdl) 
     188  { 
     189     CTimer::get("XIOS").resume(); 
     190     bool isDefined = grid_hdl->mask_6d.hasInheritedValue(); 
     191     CTimer::get("XIOS").suspend(); 
     192     return isDefined; 
     193  } 
     194 
     195 
     196  void cxios_set_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent) 
     197  { 
     198    CTimer::get("XIOS").resume(); 
     199    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     200    grid_hdl->mask_7d.reference(tmp.copy()); 
     201     CTimer::get("XIOS").suspend(); 
     202  } 
     203 
     204  void cxios_get_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent) 
     205  { 
     206    CTimer::get("XIOS").resume(); 
     207    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     208    tmp=grid_hdl->mask_7d.getInheritedValue(); 
     209     CTimer::get("XIOS").suspend(); 
     210  } 
     211 
     212  bool cxios_is_defined_grid_mask_7d(grid_Ptr grid_hdl) 
     213  { 
     214     CTimer::get("XIOS").resume(); 
     215     bool isDefined = grid_hdl->mask_7d.hasInheritedValue(); 
     216     CTimer::get("XIOS").suspend(); 
     217     return isDefined; 
     218  } 
     219 
     220 
    121221  void cxios_set_grid_name(grid_Ptr grid_hdl, const char * name, int name_size) 
    122222  { 
  • XIOS/trunk/src/interface/c_attr/icgridgroup_attr.cpp

    r817 r932  
    145145 
    146146 
     147  void cxios_set_gridgroup_mask_4d(gridgroup_Ptr gridgroup_hdl, bool* mask_4d, int* extent) 
     148  { 
     149    CTimer::get("XIOS").resume(); 
     150    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     151    gridgroup_hdl->mask_4d.reference(tmp.copy()); 
     152     CTimer::get("XIOS").suspend(); 
     153  } 
     154 
     155  void cxios_get_gridgroup_mask_4d(gridgroup_Ptr gridgroup_hdl, bool* mask_4d, int* extent) 
     156  { 
     157    CTimer::get("XIOS").resume(); 
     158    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData); 
     159    tmp=gridgroup_hdl->mask_4d.getInheritedValue(); 
     160     CTimer::get("XIOS").suspend(); 
     161  } 
     162 
     163  bool cxios_is_defined_gridgroup_mask_4d(gridgroup_Ptr gridgroup_hdl) 
     164  { 
     165     CTimer::get("XIOS").resume(); 
     166     bool isDefined = gridgroup_hdl->mask_4d.hasInheritedValue(); 
     167     CTimer::get("XIOS").suspend(); 
     168     return isDefined; 
     169  } 
     170 
     171 
     172  void cxios_set_gridgroup_mask_5d(gridgroup_Ptr gridgroup_hdl, bool* mask_5d, int* extent) 
     173  { 
     174    CTimer::get("XIOS").resume(); 
     175    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     176    gridgroup_hdl->mask_5d.reference(tmp.copy()); 
     177     CTimer::get("XIOS").suspend(); 
     178  } 
     179 
     180  void cxios_get_gridgroup_mask_5d(gridgroup_Ptr gridgroup_hdl, bool* mask_5d, int* extent) 
     181  { 
     182    CTimer::get("XIOS").resume(); 
     183    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData); 
     184    tmp=gridgroup_hdl->mask_5d.getInheritedValue(); 
     185     CTimer::get("XIOS").suspend(); 
     186  } 
     187 
     188  bool cxios_is_defined_gridgroup_mask_5d(gridgroup_Ptr gridgroup_hdl) 
     189  { 
     190     CTimer::get("XIOS").resume(); 
     191     bool isDefined = gridgroup_hdl->mask_5d.hasInheritedValue(); 
     192     CTimer::get("XIOS").suspend(); 
     193     return isDefined; 
     194  } 
     195 
     196 
     197  void cxios_set_gridgroup_mask_6d(gridgroup_Ptr gridgroup_hdl, bool* mask_6d, int* extent) 
     198  { 
     199    CTimer::get("XIOS").resume(); 
     200    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     201    gridgroup_hdl->mask_6d.reference(tmp.copy()); 
     202     CTimer::get("XIOS").suspend(); 
     203  } 
     204 
     205  void cxios_get_gridgroup_mask_6d(gridgroup_Ptr gridgroup_hdl, bool* mask_6d, int* extent) 
     206  { 
     207    CTimer::get("XIOS").resume(); 
     208    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData); 
     209    tmp=gridgroup_hdl->mask_6d.getInheritedValue(); 
     210     CTimer::get("XIOS").suspend(); 
     211  } 
     212 
     213  bool cxios_is_defined_gridgroup_mask_6d(gridgroup_Ptr gridgroup_hdl) 
     214  { 
     215     CTimer::get("XIOS").resume(); 
     216     bool isDefined = gridgroup_hdl->mask_6d.hasInheritedValue(); 
     217     CTimer::get("XIOS").suspend(); 
     218     return isDefined; 
     219  } 
     220 
     221 
     222  void cxios_set_gridgroup_mask_7d(gridgroup_Ptr gridgroup_hdl, bool* mask_7d, int* extent) 
     223  { 
     224    CTimer::get("XIOS").resume(); 
     225    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     226    gridgroup_hdl->mask_7d.reference(tmp.copy()); 
     227     CTimer::get("XIOS").suspend(); 
     228  } 
     229 
     230  void cxios_get_gridgroup_mask_7d(gridgroup_Ptr gridgroup_hdl, bool* mask_7d, int* extent) 
     231  { 
     232    CTimer::get("XIOS").resume(); 
     233    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData); 
     234    tmp=gridgroup_hdl->mask_7d.getInheritedValue(); 
     235     CTimer::get("XIOS").suspend(); 
     236  } 
     237 
     238  bool cxios_is_defined_gridgroup_mask_7d(gridgroup_Ptr gridgroup_hdl) 
     239  { 
     240     CTimer::get("XIOS").resume(); 
     241     bool isDefined = gridgroup_hdl->mask_7d.hasInheritedValue(); 
     242     CTimer::get("XIOS").suspend(); 
     243     return isDefined; 
     244  } 
     245 
     246 
    147247  void cxios_set_gridgroup_name(gridgroup_Ptr gridgroup_hdl, const char * name, int name_size) 
    148248  { 
  • XIOS/trunk/src/interface/fortran/idata.F90

    r886 r932  
    5757      END SUBROUTINE cxios_write_data_k80 
    5858 
     59      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
     60         USE ISO_C_BINDING 
     61         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     62         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     63         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     64         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
     65      END SUBROUTINE cxios_write_data_k81 
     66 
     67      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C) 
     68         USE ISO_C_BINDING 
     69         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     70         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     71         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     72         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
     73      END SUBROUTINE cxios_write_data_k82 
     74 
     75      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
     76         USE ISO_C_BINDING 
     77         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     78         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     79         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     80         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
     81      END SUBROUTINE cxios_write_data_k83 
     82 
     83      SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, & 
     84                                      data_0size, data_1size, data_2size, & 
     85                                      data_3size) BIND(C) 
     86         USE ISO_C_BINDING 
     87         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     88         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     89         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     90         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     91         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     92      END SUBROUTINE cxios_write_data_k84 
     93 
     94      SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, & 
     95                                      data_0size, data_1size, data_2size, & 
     96                                      data_3size, data_4size) BIND(C) 
     97         USE ISO_C_BINDING 
     98         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     99         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     100         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     101         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     102         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     103      END SUBROUTINE cxios_write_data_k85 
     104 
     105      SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, & 
     106                                      data_0size, data_1size, data_2size, & 
     107                                      data_3size, data_4size, data_5size) BIND(C) 
     108         USE ISO_C_BINDING 
     109         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     110         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     111         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     112         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     113         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     114      END SUBROUTINE cxios_write_data_k86 
     115 
     116      SUBROUTINE cxios_write_data_k87(fieldid, fieldid_size, data_k8, & 
     117                                      data_0size, data_1size, data_2size, & 
     118                                      data_3size, data_4size, data_5size, & 
     119                                      data_6size) BIND(C) 
     120         USE ISO_C_BINDING 
     121         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     122         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     123         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     124         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     125         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     126         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     127      END SUBROUTINE cxios_write_data_k87 
     128 
    59129      SUBROUTINE cxios_write_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    60130         USE ISO_C_BINDING 
     
    65135      END SUBROUTINE cxios_write_data_k40 
    66136 
    67  
    68       SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    69          USE ISO_C_BINDING 
    70          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    71          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
    72          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
    73          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize 
    74       END SUBROUTINE cxios_write_data_k81 
    75  
    76       SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C) 
    77          USE ISO_C_BINDING 
    78          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    79          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
    80          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
    81          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize 
    82       END SUBROUTINE cxios_write_data_k82 
    83  
    84       SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C) 
    85          USE ISO_C_BINDING 
    86          CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
    87          REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
    88          INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
    89          INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
    90       END SUBROUTINE cxios_write_data_k83 
    91  
    92137      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    93138         USE ISO_C_BINDING 
     
    114159      END SUBROUTINE cxios_write_data_k43 
    115160 
     161      SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, & 
     162                                      data_0size, data_1size, data_2size, & 
     163                                      data_3size) BIND(C) 
     164         USE ISO_C_BINDING 
     165         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     166         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     167         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     168         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     169         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     170      END SUBROUTINE cxios_write_data_k44 
     171 
     172      SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, & 
     173                                      data_0size, data_1size, data_2size, & 
     174                                      data_3size, data_4size) BIND(C) 
     175         USE ISO_C_BINDING 
     176         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     177         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     178         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     179         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     180         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     181      END SUBROUTINE cxios_write_data_k45 
     182 
     183      SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, & 
     184                                      data_0size, data_1size, data_2size, & 
     185                                      data_3size, data_4size, data_5size) BIND(C) 
     186         USE ISO_C_BINDING 
     187         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     188         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     189         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     190         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     191         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     192      END SUBROUTINE cxios_write_data_k46 
     193 
     194      SUBROUTINE cxios_write_data_k47(fieldid, fieldid_size, data_k4, & 
     195                                      data_0size, data_1size, data_2size, & 
     196                                      data_3size, data_4size, data_5size, & 
     197                                      data_6size) BIND(C) 
     198         USE ISO_C_BINDING 
     199         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     200         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     201         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     202         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     203         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     204         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     205      END SUBROUTINE cxios_write_data_k47 
     206 
     207      ! Read data 
    116208      SUBROUTINE cxios_read_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C) 
    117209         USE ISO_C_BINDING 
     
    138230      END SUBROUTINE cxios_read_data_k83 
    139231 
     232      SUBROUTINE cxios_read_data_k84(fieldid, fieldid_size, data_k8, & 
     233                                      data_0size, data_1size, data_2size, & 
     234                                      data_3size) BIND(C) 
     235         USE ISO_C_BINDING 
     236         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     237         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     238         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     239         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     240         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     241      END SUBROUTINE cxios_read_data_k84 
     242 
     243      SUBROUTINE cxios_read_data_k85(fieldid, fieldid_size, data_k8, & 
     244                                      data_0size, data_1size, data_2size, & 
     245                                      data_3size, data_4size) BIND(C) 
     246         USE ISO_C_BINDING 
     247         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     248         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     249         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     250         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     251         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     252      END SUBROUTINE cxios_read_data_k85 
     253 
     254      SUBROUTINE cxios_read_data_k86(fieldid, fieldid_size, data_k8, & 
     255                                      data_0size, data_1size, data_2size, & 
     256                                      data_3size, data_4size, data_5size) BIND(C) 
     257         USE ISO_C_BINDING 
     258         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     259         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     260         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     261         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     262         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     263      END SUBROUTINE cxios_read_data_k86 
     264 
     265      SUBROUTINE cxios_read_data_k87(fieldid, fieldid_size, data_k8, & 
     266                                      data_0size, data_1size, data_2size, & 
     267                                      data_3size, data_4size, data_5size, & 
     268                                      data_6size) BIND(C) 
     269         USE ISO_C_BINDING 
     270         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     271         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8 
     272         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     273         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     274         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     275         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     276      END SUBROUTINE cxios_read_data_k87 
     277 
    140278      SUBROUTINE cxios_read_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C) 
    141279         USE ISO_C_BINDING 
     
    161299         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize 
    162300      END SUBROUTINE cxios_read_data_k43 
     301 
     302      SUBROUTINE cxios_read_data_k44(fieldid, fieldid_size, data_k4, & 
     303                                      data_0size, data_1size, data_2size, & 
     304                                      data_3size) BIND(C) 
     305         USE ISO_C_BINDING 
     306         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     307         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     308         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     309         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     310         INTEGER  (kind = C_INT)   , VALUE        :: data_3size 
     311      END SUBROUTINE cxios_read_data_k44 
     312 
     313      SUBROUTINE cxios_read_data_k45(fieldid, fieldid_size, data_k4, & 
     314                                      data_0size, data_1size, data_2size, & 
     315                                      data_3size, data_4size) BIND(C) 
     316         USE ISO_C_BINDING 
     317         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     318         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     319         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     320         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     321         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size 
     322      END SUBROUTINE cxios_read_data_k45 
     323 
     324      SUBROUTINE cxios_read_data_k46(fieldid, fieldid_size, data_k4, & 
     325                                      data_0size, data_1size, data_2size, & 
     326                                      data_3size, data_4size, data_5size) BIND(C) 
     327         USE ISO_C_BINDING 
     328         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     329         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     330         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     331         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     332         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     333      END SUBROUTINE cxios_read_data_k46 
     334 
     335      SUBROUTINE cxios_read_data_k47(fieldid, fieldid_size, data_k4, & 
     336                                      data_0size, data_1size, data_2size, & 
     337                                      data_3size, data_4size, data_5size, & 
     338                                      data_6size) BIND(C) 
     339         USE ISO_C_BINDING 
     340         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid 
     341         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4 
     342         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size 
     343         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size 
     344         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size 
     345         INTEGER  (kind = C_INT)   , VALUE        :: data_6size 
     346      END SUBROUTINE cxios_read_data_k47 
    163347 
    164348      ! Binding C and Fortran interface of get_variable (icdata.cpp) 
     
    332516   END SUBROUTINE xios(send_field_r8_0d) 
    333517 
     518   SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8) 
     519   IMPLICIT NONE 
     520      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     521      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 
     522      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1)) 
     523   END SUBROUTINE xios(send_field_r8_1d) 
     524 
     525   SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8) 
     526   IMPLICIT NONE 
     527      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     528      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 
     529      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 
     530   END SUBROUTINE  xios(send_field_r8_2d) 
     531 
     532   SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8) 
     533   IMPLICIT NONE 
     534      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     535      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 
     536      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
     537   END SUBROUTINE  xios(send_field_r8_3d) 
     538 
     539   SUBROUTINE  xios(send_field_r8_4d)(fieldid, data4d_k8) 
     540   IMPLICIT NONE 
     541      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     542      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:) 
     543      CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, & 
     544                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 
     545                                size(data4d_k8, 4)) 
     546   END SUBROUTINE  xios(send_field_r8_4d) 
     547 
     548   SUBROUTINE  xios(send_field_r8_5d)(fieldid, data5d_k8) 
     549   IMPLICIT NONE 
     550      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     551      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:) 
     552      CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, & 
     553                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 
     554                                size(data5d_k8, 4), size(data5d_k8, 5)) 
     555   END SUBROUTINE  xios(send_field_r8_5d) 
     556 
     557   SUBROUTINE  xios(send_field_r8_6d)(fieldid, data6d_k8) 
     558   IMPLICIT NONE 
     559      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     560      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:) 
     561      CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, & 
     562                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 
     563                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6)) 
     564   END SUBROUTINE  xios(send_field_r8_6d) 
     565 
     566   SUBROUTINE  xios(send_field_r8_7d)(fieldid, data7d_k8) 
     567   IMPLICIT NONE 
     568      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     569      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:) 
     570      CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, & 
     571                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 
     572                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 
     573                                size(data7d_k8, 7)) 
     574   END SUBROUTINE  xios(send_field_r8_7d) 
     575 
    334576   SUBROUTINE xios(send_field_r4_0d)(fieldid, data_k4) 
    335577   IMPLICIT NONE 
     
    339581   END SUBROUTINE xios(send_field_r4_0d) 
    340582 
    341    SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8) 
    342    IMPLICIT NONE 
    343       CHARACTER(len = *)               , INTENT(IN) :: fieldid 
    344       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:) 
    345       CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1)) 
    346    END SUBROUTINE xios(send_field_r8_1d) 
    347  
    348    SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8) 
    349    IMPLICIT NONE 
    350       CHARACTER(len = *)               , INTENT(IN) :: fieldid 
    351       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:) 
    352       CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2)) 
    353    END SUBROUTINE  xios(send_field_r8_2d) 
    354  
    355    SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8) 
    356    IMPLICIT NONE 
    357       CHARACTER(len = *)               , INTENT(IN) :: fieldid 
    358       REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:) 
    359       CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3)) 
    360    END SUBROUTINE  xios(send_field_r8_3d) 
    361  
    362583   SUBROUTINE xios(send_field_r4_1d)(fieldid, data1d_k4) 
    363584   IMPLICIT NONE 
     
    381602   END SUBROUTINE xios(send_field_r4_3d) 
    382603 
     604   SUBROUTINE  xios(send_field_r4_4d)(fieldid, data4d_k4) 
     605   IMPLICIT NONE 
     606      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     607      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:) 
     608      CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, & 
     609                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 
     610                                size(data4d_k4, 4)) 
     611   END SUBROUTINE  xios(send_field_r4_4d) 
     612 
     613   SUBROUTINE  xios(send_field_r4_5d)(fieldid, data5d_k4) 
     614   IMPLICIT NONE 
     615      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     616      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:) 
     617      CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, & 
     618                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 
     619                                size(data5d_k4, 4), size(data5d_k4, 5)) 
     620   END SUBROUTINE  xios(send_field_r4_5d) 
     621 
     622   SUBROUTINE  xios(send_field_r4_6d)(fieldid, data6d_k4) 
     623   IMPLICIT NONE 
     624      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     625      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:) 
     626      CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, & 
     627                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 
     628                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6)) 
     629   END SUBROUTINE  xios(send_field_r4_6d) 
     630 
     631   SUBROUTINE  xios(send_field_r4_7d)(fieldid, data7d_k4) 
     632   IMPLICIT NONE 
     633      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     634      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:) 
     635      CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, & 
     636                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 
     637                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 
     638                                size(data7d_k4, 7)) 
     639   END SUBROUTINE  xios(send_field_r4_7d) 
     640 
    383641   ! Receive field functions 
    384642   SUBROUTINE xios(recv_field_r8_1d)(fieldid, data1d_k8) 
     
    403661   END SUBROUTINE  xios(recv_field_r8_3d) 
    404662 
     663   SUBROUTINE  xios(recv_field_r8_4d)(fieldid, data4d_k8) 
     664   IMPLICIT NONE 
     665      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     666      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data4d_k8(:,:,:,:) 
     667      CALL cxios_read_data_k84(fieldid, len(fieldid), data4d_k8, & 
     668                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), & 
     669                                size(data4d_k8, 4)) 
     670   END SUBROUTINE  xios(recv_field_r8_4d) 
     671 
     672   SUBROUTINE  xios(recv_field_r8_5d)(fieldid, data5d_k8) 
     673   IMPLICIT NONE 
     674      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     675      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data5d_k8(:,:,:,:,:) 
     676      CALL cxios_read_data_k85(fieldid, len(fieldid), data5d_k8, & 
     677                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), & 
     678                                size(data5d_k8, 4), size(data5d_k8, 5)) 
     679   END SUBROUTINE  xios(recv_field_r8_5d) 
     680 
     681   SUBROUTINE  xios(recv_field_r8_6d)(fieldid, data6d_k8) 
     682   IMPLICIT NONE 
     683      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     684      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data6d_k8(:,:,:,:,:,:) 
     685      CALL cxios_read_data_k86(fieldid, len(fieldid), data6d_k8, & 
     686                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), & 
     687                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6)) 
     688   END SUBROUTINE  xios(recv_field_r8_6d) 
     689 
     690   SUBROUTINE  xios(recv_field_r8_7d)(fieldid, data7d_k8) 
     691   IMPLICIT NONE 
     692      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     693      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data7d_k8(:,:,:,:,:,:,:) 
     694      CALL cxios_read_data_k87(fieldid, len(fieldid), data7d_k8, & 
     695                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), & 
     696                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), & 
     697                                size(data7d_k8, 7)) 
     698   END SUBROUTINE  xios(recv_field_r8_7d) 
     699 
    405700   SUBROUTINE xios(recv_field_r4_1d)(fieldid, data1d_k4) 
    406701   IMPLICIT NONE 
     
    424719   END SUBROUTINE xios(recv_field_r4_3d) 
    425720 
     721   SUBROUTINE  xios(recv_field_r4_4d)(fieldid, data4d_k4) 
     722   IMPLICIT NONE 
     723      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     724      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data4d_k4(:,:,:,:) 
     725      CALL cxios_read_data_k44(fieldid, len(fieldid), data4d_k4, & 
     726                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), & 
     727                                size(data4d_k4, 4)) 
     728   END SUBROUTINE  xios(recv_field_r4_4d) 
     729 
     730   SUBROUTINE  xios(recv_field_r4_5d)(fieldid, data5d_k4) 
     731   IMPLICIT NONE 
     732      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     733      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data5d_k4(:,:,:,:,:) 
     734      CALL cxios_read_data_k45(fieldid, len(fieldid), data5d_k4, & 
     735                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), & 
     736                                size(data5d_k4, 4), size(data5d_k4, 5)) 
     737   END SUBROUTINE  xios(recv_field_r4_5d) 
     738 
     739   SUBROUTINE  xios(recv_field_r4_6d)(fieldid, data6d_k4) 
     740   IMPLICIT NONE 
     741      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     742      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data6d_k4(:,:,:,:,:,:) 
     743      CALL cxios_read_data_k46(fieldid, len(fieldid), data6d_k4, & 
     744                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), & 
     745                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6)) 
     746   END SUBROUTINE  xios(recv_field_r4_6d) 
     747 
     748   SUBROUTINE  xios(recv_field_r4_7d)(fieldid, data7d_k4) 
     749   IMPLICIT NONE 
     750      CHARACTER(len = *)               , INTENT(IN) :: fieldid 
     751      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data7d_k4(:,:,:,:,:,:,:) 
     752      CALL cxios_read_data_k47(fieldid, len(fieldid), data7d_k4, & 
     753                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), & 
     754                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), & 
     755                                size(data7d_k4, 7)) 
     756   END SUBROUTINE  xios(recv_field_r4_7d) 
     757 
    426758   ! Get variable functions 
    427759   LOGICAL FUNCTION xios(getVar_k8)(varId, data_k8) 
  • XIOS/trunk/src/interface/fortran/ixios_interfaces.F90

    r903 r932  
    88 
    99USE idata, ONLY : xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), & 
     10                  xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), & 
    1011                  xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
    11                   xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d),                       & 
    12                   xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d),                       & 
    13                   xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char),    & 
     12                  xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d), & 
     13                  xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d),                         & 
     14                  xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 
     15                  xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d),                         & 
     16                  xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d), & 
     17                  xios(getVar_k8), xios(getVar_k4), xios(getVar_int), xios(getVar_logic), xios(getVar_char),      & 
    1418                  xios(setVar_k8), xios(setVar_k4), xios(setVar_int), xios(setVar_logic), xios(setVar_char) 
    1519 
     
    164168 
    165169INTERFACE xios(send_field) 
    166   MODULE PROCEDURE xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), & 
    167                    xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
    168                    xios(send_field_r8_0d), xios(send_field_r4_0d) 
     170  MODULE PROCEDURE xios(send_field_r8_0d), xios(send_field_r8_1d), xios(send_field_r8_2d), xios(send_field_r8_3d), & 
     171                   xios(send_field_r8_4d), xios(send_field_r8_5d), xios(send_field_r8_6d), xios(send_field_r8_7d), & 
     172                   xios(send_field_r4_0d), xios(send_field_r4_1d), xios(send_field_r4_2d), xios(send_field_r4_3d), & 
     173                   xios(send_field_r4_4d), xios(send_field_r4_5d), xios(send_field_r4_6d), xios(send_field_r4_7d) 
    169174END INTERFACE xios(send_field) 
    170175 
    171176INTERFACE xios(recv_field) 
    172177  MODULE PROCEDURE xios(recv_field_r8_1d), xios(recv_field_r8_2d), xios(recv_field_r8_3d), & 
    173                    xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d) 
     178                   xios(recv_field_r8_4d), xios(recv_field_r8_5d), xios(recv_field_r8_6d), xios(recv_field_r8_7d), & 
     179                   xios(recv_field_r4_1d), xios(recv_field_r4_2d), xios(recv_field_r4_3d), & 
     180                   xios(recv_field_r4_4d), xios(recv_field_r4_5d), xios(recv_field_r4_6d), xios(recv_field_r4_7d) 
    174181END INTERFACE xios(recv_field) 
    175182 
  • XIOS/trunk/src/interface/fortran_attr/file_interface_attr.F90

    r891 r932  
    4848 
    4949 
     50    SUBROUTINE cxios_set_file_convention(file_hdl, convention, convention_size) BIND(C) 
     51      USE ISO_C_BINDING 
     52      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     53      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     54      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     55    END SUBROUTINE cxios_set_file_convention 
     56 
     57    SUBROUTINE cxios_get_file_convention(file_hdl, convention, convention_size) BIND(C) 
     58      USE ISO_C_BINDING 
     59      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     60      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     61      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     62    END SUBROUTINE cxios_get_file_convention 
     63 
     64    FUNCTION cxios_is_defined_file_convention(file_hdl) BIND(C) 
     65      USE ISO_C_BINDING 
     66      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_convention 
     67      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     68    END FUNCTION cxios_is_defined_file_convention 
     69 
     70 
    5071    SUBROUTINE cxios_set_file_cyclic(file_hdl, cyclic) BIND(C) 
    5172      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/filegroup_interface_attr.F90

    r891 r932  
    4848 
    4949 
     50    SUBROUTINE cxios_set_filegroup_convention(filegroup_hdl, convention, convention_size) BIND(C) 
     51      USE ISO_C_BINDING 
     52      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     53      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     54      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     55    END SUBROUTINE cxios_set_filegroup_convention 
     56 
     57    SUBROUTINE cxios_get_filegroup_convention(filegroup_hdl, convention, convention_size) BIND(C) 
     58      USE ISO_C_BINDING 
     59      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     60      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: convention 
     61      INTEGER  (kind = C_INT)     , VALUE        :: convention_size 
     62    END SUBROUTINE cxios_get_filegroup_convention 
     63 
     64    FUNCTION cxios_is_defined_filegroup_convention(filegroup_hdl) BIND(C) 
     65      USE ISO_C_BINDING 
     66      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_convention 
     67      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     68    END FUNCTION cxios_is_defined_filegroup_convention 
     69 
     70 
    5071    SUBROUTINE cxios_set_filegroup_cyclic(filegroup_hdl, cyclic) BIND(C) 
    5172      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/grid_interface_attr.F90

    r817 r932  
    9494 
    9595 
     96    SUBROUTINE cxios_set_grid_mask_4d(grid_hdl, mask_4d, extent) BIND(C) 
     97      USE ISO_C_BINDING 
     98      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     99      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     100      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     101    END SUBROUTINE cxios_set_grid_mask_4d 
     102 
     103    SUBROUTINE cxios_get_grid_mask_4d(grid_hdl, mask_4d, extent) BIND(C) 
     104      USE ISO_C_BINDING 
     105      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     106      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     107      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     108    END SUBROUTINE cxios_get_grid_mask_4d 
     109 
     110    FUNCTION cxios_is_defined_grid_mask_4d(grid_hdl) BIND(C) 
     111      USE ISO_C_BINDING 
     112      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_4d 
     113      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     114    END FUNCTION cxios_is_defined_grid_mask_4d 
     115 
     116 
     117    SUBROUTINE cxios_set_grid_mask_5d(grid_hdl, mask_5d, extent) BIND(C) 
     118      USE ISO_C_BINDING 
     119      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     120      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     121      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     122    END SUBROUTINE cxios_set_grid_mask_5d 
     123 
     124    SUBROUTINE cxios_get_grid_mask_5d(grid_hdl, mask_5d, extent) BIND(C) 
     125      USE ISO_C_BINDING 
     126      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     127      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     128      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     129    END SUBROUTINE cxios_get_grid_mask_5d 
     130 
     131    FUNCTION cxios_is_defined_grid_mask_5d(grid_hdl) BIND(C) 
     132      USE ISO_C_BINDING 
     133      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_5d 
     134      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     135    END FUNCTION cxios_is_defined_grid_mask_5d 
     136 
     137 
     138    SUBROUTINE cxios_set_grid_mask_6d(grid_hdl, mask_6d, extent) BIND(C) 
     139      USE ISO_C_BINDING 
     140      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     141      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     142      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     143    END SUBROUTINE cxios_set_grid_mask_6d 
     144 
     145    SUBROUTINE cxios_get_grid_mask_6d(grid_hdl, mask_6d, extent) BIND(C) 
     146      USE ISO_C_BINDING 
     147      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     148      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     149      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     150    END SUBROUTINE cxios_get_grid_mask_6d 
     151 
     152    FUNCTION cxios_is_defined_grid_mask_6d(grid_hdl) BIND(C) 
     153      USE ISO_C_BINDING 
     154      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_6d 
     155      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     156    END FUNCTION cxios_is_defined_grid_mask_6d 
     157 
     158 
     159    SUBROUTINE cxios_set_grid_mask_7d(grid_hdl, mask_7d, extent) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     162      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     163      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     164    END SUBROUTINE cxios_set_grid_mask_7d 
     165 
     166    SUBROUTINE cxios_get_grid_mask_7d(grid_hdl, mask_7d, extent) BIND(C) 
     167      USE ISO_C_BINDING 
     168      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     169      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     170      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     171    END SUBROUTINE cxios_get_grid_mask_7d 
     172 
     173    FUNCTION cxios_is_defined_grid_mask_7d(grid_hdl) BIND(C) 
     174      USE ISO_C_BINDING 
     175      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_7d 
     176      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     177    END FUNCTION cxios_is_defined_grid_mask_7d 
     178 
     179 
    96180    SUBROUTINE cxios_set_grid_name(grid_hdl, name, name_size) BIND(C) 
    97181      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/gridgroup_interface_attr.F90

    r817 r932  
    115115 
    116116 
     117    SUBROUTINE cxios_set_gridgroup_mask_4d(gridgroup_hdl, mask_4d, extent) BIND(C) 
     118      USE ISO_C_BINDING 
     119      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     120      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     121      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     122    END SUBROUTINE cxios_set_gridgroup_mask_4d 
     123 
     124    SUBROUTINE cxios_get_gridgroup_mask_4d(gridgroup_hdl, mask_4d, extent) BIND(C) 
     125      USE ISO_C_BINDING 
     126      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     127      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_4d 
     128      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     129    END SUBROUTINE cxios_get_gridgroup_mask_4d 
     130 
     131    FUNCTION cxios_is_defined_gridgroup_mask_4d(gridgroup_hdl) BIND(C) 
     132      USE ISO_C_BINDING 
     133      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_4d 
     134      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     135    END FUNCTION cxios_is_defined_gridgroup_mask_4d 
     136 
     137 
     138    SUBROUTINE cxios_set_gridgroup_mask_5d(gridgroup_hdl, mask_5d, extent) BIND(C) 
     139      USE ISO_C_BINDING 
     140      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     141      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     142      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     143    END SUBROUTINE cxios_set_gridgroup_mask_5d 
     144 
     145    SUBROUTINE cxios_get_gridgroup_mask_5d(gridgroup_hdl, mask_5d, extent) BIND(C) 
     146      USE ISO_C_BINDING 
     147      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     148      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_5d 
     149      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     150    END SUBROUTINE cxios_get_gridgroup_mask_5d 
     151 
     152    FUNCTION cxios_is_defined_gridgroup_mask_5d(gridgroup_hdl) BIND(C) 
     153      USE ISO_C_BINDING 
     154      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_5d 
     155      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     156    END FUNCTION cxios_is_defined_gridgroup_mask_5d 
     157 
     158 
     159    SUBROUTINE cxios_set_gridgroup_mask_6d(gridgroup_hdl, mask_6d, extent) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     162      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     163      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     164    END SUBROUTINE cxios_set_gridgroup_mask_6d 
     165 
     166    SUBROUTINE cxios_get_gridgroup_mask_6d(gridgroup_hdl, mask_6d, extent) BIND(C) 
     167      USE ISO_C_BINDING 
     168      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     169      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_6d 
     170      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     171    END SUBROUTINE cxios_get_gridgroup_mask_6d 
     172 
     173    FUNCTION cxios_is_defined_gridgroup_mask_6d(gridgroup_hdl) BIND(C) 
     174      USE ISO_C_BINDING 
     175      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_6d 
     176      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     177    END FUNCTION cxios_is_defined_gridgroup_mask_6d 
     178 
     179 
     180    SUBROUTINE cxios_set_gridgroup_mask_7d(gridgroup_hdl, mask_7d, extent) BIND(C) 
     181      USE ISO_C_BINDING 
     182      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     183      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     184      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     185    END SUBROUTINE cxios_set_gridgroup_mask_7d 
     186 
     187    SUBROUTINE cxios_get_gridgroup_mask_7d(gridgroup_hdl, mask_7d, extent) BIND(C) 
     188      USE ISO_C_BINDING 
     189      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     190      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_7d 
     191      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     192    END SUBROUTINE cxios_get_gridgroup_mask_7d 
     193 
     194    FUNCTION cxios_is_defined_gridgroup_mask_7d(gridgroup_hdl) BIND(C) 
     195      USE ISO_C_BINDING 
     196      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_7d 
     197      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     198    END FUNCTION cxios_is_defined_gridgroup_mask_7d 
     199 
     200 
    117201    SUBROUTINE cxios_set_gridgroup_name(gridgroup_hdl, name, name_size) BIND(C) 
    118202      USE ISO_C_BINDING 
  • XIOS/trunk/src/interface/fortran_attr/ifile_attr.F90

    r891 r932  
    1212 
    1313  SUBROUTINE xios(set_file_attr)  & 
    14     ( file_id, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    15     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    16     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     14    ( file_id, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     15    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     16    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     17     ) 
    1718 
    1819    IMPLICIT NONE 
     
    2223      LOGICAL (KIND=C_BOOL) :: append_tmp 
    2324      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    2426      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    2527      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    4749      CALL xios(get_file_handle)(file_id,file_hdl) 
    4850      CALL xios(set_file_attr_hdl_)   & 
    49       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    50       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    51       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     51      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     52      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     53      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     54       ) 
    5255 
    5356  END SUBROUTINE xios(set_file_attr) 
    5457 
    5558  SUBROUTINE xios(set_file_attr_hdl)  & 
    56     ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    57     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    58     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     59    ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     60    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     61    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     62     ) 
    5963 
    6064    IMPLICIT NONE 
     
    6367      LOGICAL (KIND=C_BOOL) :: append_tmp 
    6468      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     69      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    6570      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    6671      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    8792 
    8893      CALL xios(set_file_attr_hdl_)  & 
    89       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    90       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    91       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     94      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     95      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     96      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     97       ) 
    9298 
    9399  END SUBROUTINE xios(set_file_attr_hdl) 
    94100 
    95101  SUBROUTINE xios(set_file_attr_hdl_)   & 
    96     ( file_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, min_digits_  & 
    97     , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_, split_freq_  & 
    98     , split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_, ts_prefix_  & 
    99     , type_ ) 
     102    ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     103    , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
     104    , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
     105    , ts_prefix_, type_ ) 
    100106 
    101107    IMPLICIT NONE 
     
    104110      LOGICAL (KIND=C_BOOL) :: append__tmp 
    105111      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
     112      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 
    106113      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic_ 
    107114      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    136143      ENDIF 
    137144 
     145      IF (PRESENT(convention_)) THEN 
     146        CALL cxios_set_file_convention(file_hdl%daddr, convention_, len(convention_)) 
     147      ENDIF 
     148 
    138149      IF (PRESENT(cyclic_)) THEN 
    139150        cyclic__tmp = cyclic_ 
     
    221232 
    222233  SUBROUTINE xios(get_file_attr)  & 
    223     ( file_id, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    224     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    225     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     234    ( file_id, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     235    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     236    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     237     ) 
    226238 
    227239    IMPLICIT NONE 
     
    231243      LOGICAL (KIND=C_BOOL) :: append_tmp 
    232244      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     245      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    233246      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    234247      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    256269      CALL xios(get_file_handle)(file_id,file_hdl) 
    257270      CALL xios(get_file_attr_hdl_)   & 
    258       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    259       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    260       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     271      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     272      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     273      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     274       ) 
    261275 
    262276  END SUBROUTINE xios(get_file_attr) 
    263277 
    264278  SUBROUTINE xios(get_file_attr_hdl)  & 
    265     ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    266     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    267     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     279    ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     280    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     281    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     282     ) 
    268283 
    269284    IMPLICIT NONE 
     
    272287      LOGICAL (KIND=C_BOOL) :: append_tmp 
    273288      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     289      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    274290      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    275291      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    296312 
    297313      CALL xios(get_file_attr_hdl_)  & 
    298       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    299       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    300       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     314      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     315      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     316      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     317       ) 
    301318 
    302319  END SUBROUTINE xios(get_file_attr_hdl) 
    303320 
    304321  SUBROUTINE xios(get_file_attr_hdl_)   & 
    305     ( file_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, min_digits_  & 
    306     , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_, split_freq_  & 
    307     , split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_, ts_prefix_  & 
    308     , type_ ) 
     322    ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     323    , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
     324    , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
     325    , ts_prefix_, type_ ) 
    309326 
    310327    IMPLICIT NONE 
     
    313330      LOGICAL (KIND=C_BOOL) :: append__tmp 
    314331      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
     332      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 
    315333      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic_ 
    316334      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    345363      ENDIF 
    346364 
     365      IF (PRESENT(convention_)) THEN 
     366        CALL cxios_get_file_convention(file_hdl%daddr, convention_, len(convention_)) 
     367      ENDIF 
     368 
    347369      IF (PRESENT(cyclic_)) THEN 
    348370        CALL cxios_get_file_cyclic(file_hdl%daddr, cyclic__tmp) 
     
    430452 
    431453  SUBROUTINE xios(is_defined_file_attr)  & 
    432     ( file_id, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    433     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    434     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     454    ( file_id, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     455    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     456    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     457     ) 
    435458 
    436459    IMPLICIT NONE 
     
    441464      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    442465      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     466      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     467      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    443468      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    444469      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    484509      CALL xios(get_file_handle)(file_id,file_hdl) 
    485510      CALL xios(is_defined_file_attr_hdl_)   & 
    486       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    487       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    488       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     511      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     512      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     513      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     514       ) 
    489515 
    490516  END SUBROUTINE xios(is_defined_file_attr) 
    491517 
    492518  SUBROUTINE xios(is_defined_file_attr_hdl)  & 
    493     ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    494     , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    495     , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     519    ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     520    , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     521    , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     522     ) 
    496523 
    497524    IMPLICIT NONE 
     
    501528      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    502529      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     530      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     531      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    503532      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    504533      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    543572 
    544573      CALL xios(is_defined_file_attr_hdl_)  & 
    545       ( file_hdl, append, compression_level, cyclic, description, enabled, format, min_digits, mode  & 
    546       , name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq, split_freq_format  & 
    547       , sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type ) 
     574      ( file_hdl, append, compression_level, convention, cyclic, description, enabled, format, min_digits  & 
     575      , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
     576      , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
     577       ) 
    548578 
    549579  END SUBROUTINE xios(is_defined_file_attr_hdl) 
    550580 
    551581  SUBROUTINE xios(is_defined_file_attr_hdl_)   & 
    552     ( file_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, min_digits_  & 
    553     , mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_, split_freq_  & 
    554     , split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_, ts_prefix_  & 
    555     , type_ ) 
     582    ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     583    , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
     584    , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
     585    , ts_prefix_, type_ ) 
    556586 
    557587    IMPLICIT NONE 
     
    561591      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    562592      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     593      LOGICAL, OPTIONAL, INTENT(OUT) :: convention_ 
     594      LOGICAL(KIND=C_BOOL) :: convention__tmp 
    563595      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic_ 
    564596      LOGICAL(KIND=C_BOOL) :: cyclic__tmp 
     
    612644      ENDIF 
    613645 
     646      IF (PRESENT(convention_)) THEN 
     647        convention__tmp = cxios_is_defined_file_convention(file_hdl%daddr) 
     648        convention_ = convention__tmp 
     649      ENDIF 
     650 
    614651      IF (PRESENT(cyclic_)) THEN 
    615652        cyclic__tmp = cxios_is_defined_file_cyclic(file_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/ifilegroup_attr.F90

    r891 r932  
    1212 
    1313  SUBROUTINE xios(set_filegroup_attr)  & 
    14     ( filegroup_id, append, compression_level, cyclic, description, enabled, format, group_ref, min_digits  & 
    15     , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
    16     , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
    17     ) 
     14    ( filegroup_id, append, compression_level, convention, cyclic, description, enabled, format  & 
     15    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     16    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
     17    , type ) 
    1818 
    1919    IMPLICIT NONE 
     
    2323      LOGICAL (KIND=C_BOOL) :: append_tmp 
    2424      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    2526      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    2627      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    4950      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    5051      CALL xios(set_filegroup_attr_hdl_)   & 
    51       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    52       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     52      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     53      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    5354      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    5455      , type ) 
     
    5758 
    5859  SUBROUTINE xios(set_filegroup_attr_hdl)  & 
    59     ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    60     , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     60    ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     61    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    6162    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    6263    , type ) 
     
    6768      LOGICAL (KIND=C_BOOL) :: append_tmp 
    6869      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
     70      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
    6971      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic 
    7072      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    9294 
    9395      CALL xios(set_filegroup_attr_hdl_)  & 
    94       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    95       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     96      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     97      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    9698      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    9799      , type ) 
     
    100102 
    101103  SUBROUTINE xios(set_filegroup_attr_hdl_)   & 
    102     ( filegroup_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, group_ref_  & 
    103     , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
    104     , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
    105     , ts_prefix_, type_ ) 
     104    ( filegroup_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     105    , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     106    , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     107    , timeseries_, ts_prefix_, type_ ) 
    106108 
    107109    IMPLICIT NONE 
     
    110112      LOGICAL (KIND=C_BOOL) :: append__tmp 
    111113      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
     114      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 
    112115      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic_ 
    113116      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    143146      ENDIF 
    144147 
     148      IF (PRESENT(convention_)) THEN 
     149        CALL cxios_set_filegroup_convention(filegroup_hdl%daddr, convention_, len(convention_)) 
     150      ENDIF 
     151 
    145152      IF (PRESENT(cyclic_)) THEN 
    146153        cyclic__tmp = cyclic_ 
     
    232239 
    233240  SUBROUTINE xios(get_filegroup_attr)  & 
    234     ( filegroup_id, append, compression_level, cyclic, description, enabled, format, group_ref, min_digits  & 
    235     , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
    236     , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
    237     ) 
     241    ( filegroup_id, append, compression_level, convention, cyclic, description, enabled, format  & 
     242    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     243    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
     244    , type ) 
    238245 
    239246    IMPLICIT NONE 
     
    243250      LOGICAL (KIND=C_BOOL) :: append_tmp 
    244251      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     252      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    245253      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    246254      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    269277      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    270278      CALL xios(get_filegroup_attr_hdl_)   & 
    271       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    272       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     279      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     280      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    273281      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    274282      , type ) 
     
    277285 
    278286  SUBROUTINE xios(get_filegroup_attr_hdl)  & 
    279     ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    280     , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     287    ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     288    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    281289    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    282290    , type ) 
     
    287295      LOGICAL (KIND=C_BOOL) :: append_tmp 
    288296      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
     297      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
    289298      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic 
    290299      LOGICAL (KIND=C_BOOL) :: cyclic_tmp 
     
    312321 
    313322      CALL xios(get_filegroup_attr_hdl_)  & 
    314       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    315       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     323      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     324      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    316325      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    317326      , type ) 
     
    320329 
    321330  SUBROUTINE xios(get_filegroup_attr_hdl_)   & 
    322     ( filegroup_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, group_ref_  & 
    323     , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
    324     , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
    325     , ts_prefix_, type_ ) 
     331    ( filegroup_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     332    , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     333    , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     334    , timeseries_, ts_prefix_, type_ ) 
    326335 
    327336    IMPLICIT NONE 
     
    330339      LOGICAL (KIND=C_BOOL) :: append__tmp 
    331340      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
     341      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 
    332342      LOGICAL  , OPTIONAL, INTENT(OUT) :: cyclic_ 
    333343      LOGICAL (KIND=C_BOOL) :: cyclic__tmp 
     
    363373      ENDIF 
    364374 
     375      IF (PRESENT(convention_)) THEN 
     376        CALL cxios_get_filegroup_convention(filegroup_hdl%daddr, convention_, len(convention_)) 
     377      ENDIF 
     378 
    365379      IF (PRESENT(cyclic_)) THEN 
    366380        CALL cxios_get_filegroup_cyclic(filegroup_hdl%daddr, cyclic__tmp) 
     
    452466 
    453467  SUBROUTINE xios(is_defined_filegroup_attr)  & 
    454     ( filegroup_id, append, compression_level, cyclic, description, enabled, format, group_ref, min_digits  & 
    455     , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq  & 
    456     , split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix, type  & 
    457     ) 
     468    ( filegroup_id, append, compression_level, convention, cyclic, description, enabled, format  & 
     469    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     470    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
     471    , type ) 
    458472 
    459473    IMPLICIT NONE 
     
    464478      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    465479      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     480      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     481      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    466482      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    467483      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    509525      CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl) 
    510526      CALL xios(is_defined_filegroup_attr_hdl_)   & 
    511       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    512       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     527      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     528      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    513529      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    514530      , type ) 
     
    517533 
    518534  SUBROUTINE xios(is_defined_filegroup_attr_hdl)  & 
    519     ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    520     , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     535    ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     536    , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    521537    , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    522538    , type ) 
     
    528544      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    529545      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     546      LOGICAL, OPTIONAL, INTENT(OUT) :: convention 
     547      LOGICAL(KIND=C_BOOL) :: convention_tmp 
    530548      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 
    531549      LOGICAL(KIND=C_BOOL) :: cyclic_tmp 
     
    572590 
    573591      CALL xios(is_defined_filegroup_attr_hdl_)  & 
    574       ( filegroup_hdl, append, compression_level, cyclic, description, enabled, format, group_ref  & 
    575       , min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
     592      ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format  & 
     593      , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    576594      , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, timeseries, ts_prefix  & 
    577595      , type ) 
     
    580598 
    581599  SUBROUTINE xios(is_defined_filegroup_attr_hdl_)   & 
    582     ( filegroup_hdl, append_, compression_level_, cyclic_, description_, enabled_, format_, group_ref_  & 
    583     , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_  & 
    584     , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, timeseries_  & 
    585     , ts_prefix_, type_ ) 
     600    ( filegroup_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_  & 
     601    , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
     602    , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     603    , timeseries_, ts_prefix_, type_ ) 
    586604 
    587605    IMPLICIT NONE 
     
    591609      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    592610      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     611      LOGICAL, OPTIONAL, INTENT(OUT) :: convention_ 
     612      LOGICAL(KIND=C_BOOL) :: convention__tmp 
    593613      LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic_ 
    594614      LOGICAL(KIND=C_BOOL) :: cyclic__tmp 
     
    644664      ENDIF 
    645665 
     666      IF (PRESENT(convention_)) THEN 
     667        convention__tmp = cxios_is_defined_filegroup_convention(filegroup_hdl%daddr) 
     668        convention_ = convention__tmp 
     669      ENDIF 
     670 
    646671      IF (PRESENT(cyclic_)) THEN 
    647672        cyclic__tmp = cxios_is_defined_filegroup_cyclic(filegroup_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/igrid_attr.F90

    r817 r932  
    1212 
    1313  SUBROUTINE xios(set_grid_attr)  & 
    14     ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 
     14    ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     15     ) 
    1516 
    1617    IMPLICIT NONE 
     
    2425      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    2526      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     27      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     28      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     29      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     30      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     31      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     32      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     33      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     34      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    2635      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2736 
    2837      CALL xios(get_grid_handle)(grid_id,grid_hdl) 
    2938      CALL xios(set_grid_attr_hdl_)   & 
    30       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     39      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     40       ) 
    3141 
    3242  END SUBROUTINE xios(set_grid_attr) 
    3343 
    3444  SUBROUTINE xios(set_grid_attr_hdl)  & 
    35     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     45    ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     46     ) 
    3647 
    3748    IMPLICIT NONE 
     
    4455      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    4556      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     57      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     58      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     59      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     60      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     61      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     62      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     63      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     64      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    4665      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    4766 
    4867      CALL xios(set_grid_attr_hdl_)  & 
    49       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     68      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     69       ) 
    5070 
    5171  END SUBROUTINE xios(set_grid_attr_hdl) 
    5272 
    5373  SUBROUTINE xios(set_grid_attr_hdl_)   & 
    54     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     74    ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
     75    , name_ ) 
    5576 
    5677    IMPLICIT NONE 
     
    6384      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d_(:,:,:) 
    6485      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     86      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d_(:,:,:,:) 
     87      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     88      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d_(:,:,:,:,:) 
     89      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     90      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d_(:,:,:,:,:,:) 
     91      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     92      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d_(:,:,:,:,:,:,:) 
     93      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    6594      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    6695 
     
    87116      ENDIF 
    88117 
     118      IF (PRESENT(mask_4d_)) THEN 
     119        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     120        mask_4d__tmp = mask_4d_ 
     121        CALL cxios_set_grid_mask_4d(grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     122      ENDIF 
     123 
     124      IF (PRESENT(mask_5d_)) THEN 
     125        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     126        mask_5d__tmp = mask_5d_ 
     127        CALL cxios_set_grid_mask_5d(grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     128      ENDIF 
     129 
     130      IF (PRESENT(mask_6d_)) THEN 
     131        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     132        mask_6d__tmp = mask_6d_ 
     133        CALL cxios_set_grid_mask_6d(grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     134      ENDIF 
     135 
     136      IF (PRESENT(mask_7d_)) THEN 
     137        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     138        mask_7d__tmp = mask_7d_ 
     139        CALL cxios_set_grid_mask_7d(grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     140      ENDIF 
     141 
    89142      IF (PRESENT(name_)) THEN 
    90143        CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_)) 
     
    94147 
    95148  SUBROUTINE xios(get_grid_attr)  & 
    96     ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 
     149    ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     150     ) 
    97151 
    98152    IMPLICIT NONE 
     
    106160      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    107161      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     162      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     163      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     164      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     165      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     166      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     167      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     168      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     169      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    108170      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    109171 
    110172      CALL xios(get_grid_handle)(grid_id,grid_hdl) 
    111173      CALL xios(get_grid_attr_hdl_)   & 
    112       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     174      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     175       ) 
    113176 
    114177  END SUBROUTINE xios(get_grid_attr) 
    115178 
    116179  SUBROUTINE xios(get_grid_attr_hdl)  & 
    117     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     180    ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     181     ) 
    118182 
    119183    IMPLICIT NONE 
     
    126190      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    127191      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     192      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     193      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     194      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     195      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     196      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     197      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     198      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     199      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    128200      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    129201 
    130202      CALL xios(get_grid_attr_hdl_)  & 
    131       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     203      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     204       ) 
    132205 
    133206  END SUBROUTINE xios(get_grid_attr_hdl) 
    134207 
    135208  SUBROUTINE xios(get_grid_attr_hdl_)   & 
    136     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     209    ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
     210    , name_ ) 
    137211 
    138212    IMPLICIT NONE 
     
    145219      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d_(:,:,:) 
    146220      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     221      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d_(:,:,:,:) 
     222      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     223      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d_(:,:,:,:,:) 
     224      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     225      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d_(:,:,:,:,:,:) 
     226      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     227      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d_(:,:,:,:,:,:,:) 
     228      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    147229      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    148230 
     
    169251      ENDIF 
    170252 
     253      IF (PRESENT(mask_4d_)) THEN 
     254        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     255        CALL cxios_get_grid_mask_4d(grid_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     256        mask_4d_ = mask_4d__tmp 
     257      ENDIF 
     258 
     259      IF (PRESENT(mask_5d_)) THEN 
     260        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     261        CALL cxios_get_grid_mask_5d(grid_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     262        mask_5d_ = mask_5d__tmp 
     263      ENDIF 
     264 
     265      IF (PRESENT(mask_6d_)) THEN 
     266        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     267        CALL cxios_get_grid_mask_6d(grid_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     268        mask_6d_ = mask_6d__tmp 
     269      ENDIF 
     270 
     271      IF (PRESENT(mask_7d_)) THEN 
     272        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     273        CALL cxios_get_grid_mask_7d(grid_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     274        mask_7d_ = mask_7d__tmp 
     275      ENDIF 
     276 
    171277      IF (PRESENT(name_)) THEN 
    172278        CALL cxios_get_grid_name(grid_hdl%daddr, name_, len(name_)) 
     
    176282 
    177283  SUBROUTINE xios(is_defined_grid_attr)  & 
    178     ( grid_id, description, mask_1d, mask_2d, mask_3d, name ) 
     284    ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     285     ) 
    179286 
    180287    IMPLICIT NONE 
     
    189296      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    190297      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     298      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     299      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     300      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     301      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     302      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     303      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     304      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     305      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    191306      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    192307      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    194309      CALL xios(get_grid_handle)(grid_id,grid_hdl) 
    195310      CALL xios(is_defined_grid_attr_hdl_)   & 
    196       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     311      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     312       ) 
    197313 
    198314  END SUBROUTINE xios(is_defined_grid_attr) 
    199315 
    200316  SUBROUTINE xios(is_defined_grid_attr_hdl)  & 
    201     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     317    ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     318     ) 
    202319 
    203320    IMPLICIT NONE 
     
    211328      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    212329      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     330      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     331      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     332      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     333      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     334      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     335      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     336      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     337      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    213338      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    214339      LOGICAL(KIND=C_BOOL) :: name_tmp 
    215340 
    216341      CALL xios(is_defined_grid_attr_hdl_)  & 
    217       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, name ) 
     342      ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
     343       ) 
    218344 
    219345  END SUBROUTINE xios(is_defined_grid_attr_hdl) 
    220346 
    221347  SUBROUTINE xios(is_defined_grid_attr_hdl_)   & 
    222     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     348    ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
     349    , name_ ) 
    223350 
    224351    IMPLICIT NONE 
     
    232359      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d_ 
    233360      LOGICAL(KIND=C_BOOL) :: mask_3d__tmp 
     361      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d_ 
     362      LOGICAL(KIND=C_BOOL) :: mask_4d__tmp 
     363      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d_ 
     364      LOGICAL(KIND=C_BOOL) :: mask_5d__tmp 
     365      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d_ 
     366      LOGICAL(KIND=C_BOOL) :: mask_6d__tmp 
     367      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d_ 
     368      LOGICAL(KIND=C_BOOL) :: mask_7d__tmp 
    234369      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    235370      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    255390      ENDIF 
    256391 
     392      IF (PRESENT(mask_4d_)) THEN 
     393        mask_4d__tmp = cxios_is_defined_grid_mask_4d(grid_hdl%daddr) 
     394        mask_4d_ = mask_4d__tmp 
     395      ENDIF 
     396 
     397      IF (PRESENT(mask_5d_)) THEN 
     398        mask_5d__tmp = cxios_is_defined_grid_mask_5d(grid_hdl%daddr) 
     399        mask_5d_ = mask_5d__tmp 
     400      ENDIF 
     401 
     402      IF (PRESENT(mask_6d_)) THEN 
     403        mask_6d__tmp = cxios_is_defined_grid_mask_6d(grid_hdl%daddr) 
     404        mask_6d_ = mask_6d__tmp 
     405      ENDIF 
     406 
     407      IF (PRESENT(mask_7d_)) THEN 
     408        mask_7d__tmp = cxios_is_defined_grid_mask_7d(grid_hdl%daddr) 
     409        mask_7d_ = mask_7d__tmp 
     410      ENDIF 
     411 
    257412      IF (PRESENT(name_)) THEN 
    258413        name__tmp = cxios_is_defined_grid_name(grid_hdl%daddr) 
  • XIOS/trunk/src/interface/fortran_attr/igridgroup_attr.F90

    r817 r932  
    1212 
    1313  SUBROUTINE xios(set_gridgroup_attr)  & 
    14     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     14    ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     15    , mask_7d, name ) 
    1516 
    1617    IMPLICIT NONE 
     
    2526      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    2627      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     28      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     29      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     30      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     31      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     32      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     33      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     34      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     35      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    2736      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    2837 
    2938      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 
    3039      CALL xios(set_gridgroup_attr_hdl_)   & 
    31       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     40      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     41      , mask_7d, name ) 
    3242 
    3343  END SUBROUTINE xios(set_gridgroup_attr) 
    3444 
    3545  SUBROUTINE xios(set_gridgroup_attr_hdl)  & 
    36     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     46    ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     47    , mask_7d, name ) 
    3748 
    3849    IMPLICIT NONE 
     
    4657      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d(:,:,:) 
    4758      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     59      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d(:,:,:,:) 
     60      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     61      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d(:,:,:,:,:) 
     62      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     63      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d(:,:,:,:,:,:) 
     64      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     65      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d(:,:,:,:,:,:,:) 
     66      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    4867      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
    4968 
    5069      CALL xios(set_gridgroup_attr_hdl_)  & 
    51       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     70      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     71      , mask_7d, name ) 
    5272 
    5373  END SUBROUTINE xios(set_gridgroup_attr_hdl) 
    5474 
    5575  SUBROUTINE xios(set_gridgroup_attr_hdl_)   & 
    56     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     76    ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     77    , mask_6d_, mask_7d_, name_ ) 
    5778 
    5879    IMPLICIT NONE 
     
    6687      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_3d_(:,:,:) 
    6788      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     89      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_4d_(:,:,:,:) 
     90      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     91      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_5d_(:,:,:,:,:) 
     92      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     93      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_6d_(:,:,:,:,:,:) 
     94      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     95      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_7d_(:,:,:,:,:,:,:) 
     96      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    6897      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    6998 
     
    94123      ENDIF 
    95124 
     125      IF (PRESENT(mask_4d_)) THEN 
     126        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     127        mask_4d__tmp = mask_4d_ 
     128        CALL cxios_set_gridgroup_mask_4d(gridgroup_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     129      ENDIF 
     130 
     131      IF (PRESENT(mask_5d_)) THEN 
     132        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     133        mask_5d__tmp = mask_5d_ 
     134        CALL cxios_set_gridgroup_mask_5d(gridgroup_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     135      ENDIF 
     136 
     137      IF (PRESENT(mask_6d_)) THEN 
     138        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     139        mask_6d__tmp = mask_6d_ 
     140        CALL cxios_set_gridgroup_mask_6d(gridgroup_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     141      ENDIF 
     142 
     143      IF (PRESENT(mask_7d_)) THEN 
     144        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     145        mask_7d__tmp = mask_7d_ 
     146        CALL cxios_set_gridgroup_mask_7d(gridgroup_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     147      ENDIF 
     148 
    96149      IF (PRESENT(name_)) THEN 
    97150        CALL cxios_set_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_)) 
     
    101154 
    102155  SUBROUTINE xios(get_gridgroup_attr)  & 
    103     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     156    ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     157    , mask_7d, name ) 
    104158 
    105159    IMPLICIT NONE 
     
    114168      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    115169      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     170      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     171      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     172      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     173      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     174      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     175      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     176      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     177      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    116178      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    117179 
    118180      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 
    119181      CALL xios(get_gridgroup_attr_hdl_)   & 
    120       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     182      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     183      , mask_7d, name ) 
    121184 
    122185  END SUBROUTINE xios(get_gridgroup_attr) 
    123186 
    124187  SUBROUTINE xios(get_gridgroup_attr_hdl)  & 
    125     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     188    ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     189    , mask_7d, name ) 
    126190 
    127191    IMPLICIT NONE 
     
    135199      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d(:,:,:) 
    136200      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d_tmp(:,:,:) 
     201      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d(:,:,:,:) 
     202      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d_tmp(:,:,:,:) 
     203      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d(:,:,:,:,:) 
     204      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d_tmp(:,:,:,:,:) 
     205      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d(:,:,:,:,:,:) 
     206      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d_tmp(:,:,:,:,:,:) 
     207      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d(:,:,:,:,:,:,:) 
     208      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d_tmp(:,:,:,:,:,:,:) 
    137209      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
    138210 
    139211      CALL xios(get_gridgroup_attr_hdl_)  & 
    140       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     212      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     213      , mask_7d, name ) 
    141214 
    142215  END SUBROUTINE xios(get_gridgroup_attr_hdl) 
    143216 
    144217  SUBROUTINE xios(get_gridgroup_attr_hdl_)   & 
    145     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     218    ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     219    , mask_6d_, mask_7d_, name_ ) 
    146220 
    147221    IMPLICIT NONE 
     
    155229      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_3d_(:,:,:) 
    156230      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_3d__tmp(:,:,:) 
     231      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_4d_(:,:,:,:) 
     232      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_4d__tmp(:,:,:,:) 
     233      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_5d_(:,:,:,:,:) 
     234      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_5d__tmp(:,:,:,:,:) 
     235      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_6d_(:,:,:,:,:,:) 
     236      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_6d__tmp(:,:,:,:,:,:) 
     237      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_7d_(:,:,:,:,:,:,:) 
     238      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_7d__tmp(:,:,:,:,:,:,:) 
    157239      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    158240 
     
    183265      ENDIF 
    184266 
     267      IF (PRESENT(mask_4d_)) THEN 
     268        ALLOCATE(mask_4d__tmp(SIZE(mask_4d_,1), SIZE(mask_4d_,2), SIZE(mask_4d_,3), SIZE(mask_4d_,4))) 
     269        CALL cxios_get_gridgroup_mask_4d(gridgroup_hdl%daddr, mask_4d__tmp, SHAPE(mask_4d_)) 
     270        mask_4d_ = mask_4d__tmp 
     271      ENDIF 
     272 
     273      IF (PRESENT(mask_5d_)) THEN 
     274        ALLOCATE(mask_5d__tmp(SIZE(mask_5d_,1), SIZE(mask_5d_,2), SIZE(mask_5d_,3), SIZE(mask_5d_,4), SIZE(mask_5d_,5))) 
     275        CALL cxios_get_gridgroup_mask_5d(gridgroup_hdl%daddr, mask_5d__tmp, SHAPE(mask_5d_)) 
     276        mask_5d_ = mask_5d__tmp 
     277      ENDIF 
     278 
     279      IF (PRESENT(mask_6d_)) THEN 
     280        ALLOCATE(mask_6d__tmp(SIZE(mask_6d_,1), SIZE(mask_6d_,2), SIZE(mask_6d_,3), SIZE(mask_6d_,4), SIZE(mask_6d_,5), SIZE(mask_6d_,6))) 
     281        CALL cxios_get_gridgroup_mask_6d(gridgroup_hdl%daddr, mask_6d__tmp, SHAPE(mask_6d_)) 
     282        mask_6d_ = mask_6d__tmp 
     283      ENDIF 
     284 
     285      IF (PRESENT(mask_7d_)) THEN 
     286        ALLOCATE(mask_7d__tmp(SIZE(mask_7d_,1), SIZE(mask_7d_,2), SIZE(mask_7d_,3), SIZE(mask_7d_,4), SIZE(mask_7d_,5), SIZE(mask_7d_,6), SIZE(mask_7d_,7))) 
     287        CALL cxios_get_gridgroup_mask_7d(gridgroup_hdl%daddr, mask_7d__tmp, SHAPE(mask_7d_)) 
     288        mask_7d_ = mask_7d__tmp 
     289      ENDIF 
     290 
    185291      IF (PRESENT(name_)) THEN 
    186292        CALL cxios_get_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_)) 
     
    190296 
    191297  SUBROUTINE xios(is_defined_gridgroup_attr)  & 
    192     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     298    ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     299    , mask_7d, name ) 
    193300 
    194301    IMPLICIT NONE 
     
    205312      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    206313      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     314      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     315      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     316      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     317      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     318      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     319      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     320      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     321      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    207322      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    208323      LOGICAL(KIND=C_BOOL) :: name_tmp 
     
    210325      CALL xios(get_gridgroup_handle)(gridgroup_id,gridgroup_hdl) 
    211326      CALL xios(is_defined_gridgroup_attr_hdl_)   & 
    212       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     327      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     328      , mask_7d, name ) 
    213329 
    214330  END SUBROUTINE xios(is_defined_gridgroup_attr) 
    215331 
    216332  SUBROUTINE xios(is_defined_gridgroup_attr_hdl)  & 
    217     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     333    ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     334    , mask_7d, name ) 
    218335 
    219336    IMPLICIT NONE 
     
    229346      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d 
    230347      LOGICAL(KIND=C_BOOL) :: mask_3d_tmp 
     348      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d 
     349      LOGICAL(KIND=C_BOOL) :: mask_4d_tmp 
     350      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d 
     351      LOGICAL(KIND=C_BOOL) :: mask_5d_tmp 
     352      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d 
     353      LOGICAL(KIND=C_BOOL) :: mask_6d_tmp 
     354      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d 
     355      LOGICAL(KIND=C_BOOL) :: mask_7d_tmp 
    231356      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    232357      LOGICAL(KIND=C_BOOL) :: name_tmp 
    233358 
    234359      CALL xios(is_defined_gridgroup_attr_hdl_)  & 
    235       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, name ) 
     360      ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     361      , mask_7d, name ) 
    236362 
    237363  END SUBROUTINE xios(is_defined_gridgroup_attr_hdl) 
    238364 
    239365  SUBROUTINE xios(is_defined_gridgroup_attr_hdl_)   & 
    240     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, name_ ) 
     366    ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     367    , mask_6d_, mask_7d_, name_ ) 
    241368 
    242369    IMPLICIT NONE 
     
    252379      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_3d_ 
    253380      LOGICAL(KIND=C_BOOL) :: mask_3d__tmp 
     381      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_4d_ 
     382      LOGICAL(KIND=C_BOOL) :: mask_4d__tmp 
     383      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_5d_ 
     384      LOGICAL(KIND=C_BOOL) :: mask_5d__tmp 
     385      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_6d_ 
     386      LOGICAL(KIND=C_BOOL) :: mask_6d__tmp 
     387      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_7d_ 
     388      LOGICAL(KIND=C_BOOL) :: mask_7d__tmp 
    254389      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    255390      LOGICAL(KIND=C_BOOL) :: name__tmp 
     
    280415      ENDIF 
    281416 
     417      IF (PRESENT(mask_4d_)) THEN 
     418        mask_4d__tmp = cxios_is_defined_gridgroup_mask_4d(gridgroup_hdl%daddr) 
     419        mask_4d_ = mask_4d__tmp 
     420      ENDIF 
     421 
     422      IF (PRESENT(mask_5d_)) THEN 
     423        mask_5d__tmp = cxios_is_defined_gridgroup_mask_5d(gridgroup_hdl%daddr) 
     424        mask_5d_ = mask_5d__tmp 
     425      ENDIF 
     426 
     427      IF (PRESENT(mask_6d_)) THEN 
     428        mask_6d__tmp = cxios_is_defined_gridgroup_mask_6d(gridgroup_hdl%daddr) 
     429        mask_6d_ = mask_6d__tmp 
     430      ENDIF 
     431 
     432      IF (PRESENT(mask_7d_)) THEN 
     433        mask_7d__tmp = cxios_is_defined_gridgroup_mask_7d(gridgroup_hdl%daddr) 
     434        mask_7d_ = mask_7d__tmp 
     435      ENDIF 
     436 
    282437      IF (PRESENT(name_)) THEN 
    283438        name__tmp = cxios_is_defined_gridgroup_name(gridgroup_hdl%daddr) 
  • XIOS/trunk/src/node/field_decl.cpp

    r593 r932  
    66  template void CField::setData<2>(const CArray<double, 2>& _data); 
    77  template void CField::setData<3>(const CArray<double, 3>& _data); 
     8  template void CField::setData<4>(const CArray<double, 4>& _data); 
     9  template void CField::setData<5>(const CArray<double, 5>& _data); 
     10  template void CField::setData<6>(const CArray<double, 6>& _data); 
     11  template void CField::setData<7>(const CArray<double, 7>& _data); 
    812 
    913  template void CField::getData<1>(CArray<double, 1>& _data) const; 
    1014  template void CField::getData<2>(CArray<double, 2>& _data) const; 
    1115  template void CField::getData<3>(CArray<double, 3>& _data) const; 
     16  template void CField::getData<4>(CArray<double, 4>& _data) const; 
     17  template void CField::getData<5>(CArray<double, 5>& _data) const; 
     18  template void CField::getData<6>(CArray<double, 6>& _data) const; 
     19  template void CField::getData<7>(CArray<double, 7>& _data) const; 
    1220} 
  • XIOS/trunk/src/node/grid.cpp

    r927 r932  
    353353          checkGridMask(mask_3d, domainMasks, axisMasks, axis_domain_order); 
    354354          break; 
    355 //        case 4: 
    356 //          checkGridMask(mask4, domainMasks, axisMasks, axis_domain_order); 
    357 //          break; 
    358 //        case 5: 
    359 //          checkGridMask(mask5, domainMasks, axisMasks, axis_domain_order); 
    360 //          break; 
    361 //        case 6: 
    362 //          checkGridMask(mask6, domainMasks, axisMasks, axis_domain_order); 
    363 //          break; 
    364 //        case 7: 
    365 //          checkGridMask(mask7, domainMasks, axisMasks, axis_domain_order); 
    366 //          break; 
     355        case 4: 
     356          checkGridMask(mask_4d, domainMasks, axisMasks, axis_domain_order); 
     357          break; 
     358        case 5: 
     359          checkGridMask(mask_5d, domainMasks, axisMasks, axis_domain_order); 
     360          break; 
     361        case 6: 
     362          checkGridMask(mask_6d, domainMasks, axisMasks, axis_domain_order); 
     363          break; 
     364        case 7: 
     365          checkGridMask(mask_7d, domainMasks, axisMasks, axis_domain_order); 
     366          break; 
    367367        default: 
    368368          break; 
     
    387387          modifyGridMask(mask_3d, indexToModify); 
    388388          break; 
    389  
     389        case 4: 
     390          modifyGridMask(mask_1d, indexToModify); 
     391          break; 
     392        case 5: 
     393          modifyGridMask(mask_2d, indexToModify); 
     394          break; 
     395        case 6: 
     396          modifyGridMask(mask_3d, indexToModify); 
     397          break; 
     398        case 7: 
     399          modifyGridMask(mask_3d, indexToModify); 
     400          break; 
    390401        default: 
    391402          break; 
Note: See TracChangeset for help on using the changeset viewer.