Ignore:
Timestamp:
06/18/18 20:32:55 (6 years ago)
Author:
yushan
Message:

branch_openmp merged with trunk r1544

Location:
XIOS/dev/branch_openmp/src
Files:
30 added
183 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/src/array.hpp

    r591 r1545  
    44/// boost headers /// 
    55#include <boost/cstdint.hpp> 
    6 #include <boost/shared_ptr.hpp> 
    76#include <boost/multi_array.hpp> 
    87 
  • XIOS/dev/branch_openmp/src/array_mac.hpp

    r591 r1545  
    55 
    66// Type Fortran 
    7 #define ARRAY(valuetype, numdims) boost::shared_ptr<CArray<valuetype, numdims> > 
     7#define ARRAY(valuetype, numdims) std::shared_ptr<CArray<valuetype, numdims> > 
    88 
    99#define ARRAY_ASSIGN(value, valuetype, numdims, extent)\ 
  • XIOS/dev/branch_openmp/src/attribute_template_impl.hpp

    r1482 r1545  
    6666        inheritedValue.reset() ; 
    6767      } 
    68  
    6968 
    7069      template <class T> 
     
    8079        } 
    8180      } 
    82        
     81 
    8382      template <class T> 
    8483      T CAttributeTemplate<T>::getValue(void) const 
     
    8685        return CType<T>::get() ; 
    8786      } 
    88  
    8987 
    9088 
  • XIOS/dev/branch_openmp/src/buffer_client.cpp

    r1520 r1545  
    1515  size_t CClientBuffer::maxRequestSize = 0; 
    1616 
    17   CClientBuffer::CClientBuffer(MPI_Comm interComm, int serverRank, StdSize bufferSize, StdSize estimatedMaxEventSize, StdSize maxBufferedEvents):  
    18     interComm(interComm) 
     17  CClientBuffer::CClientBuffer(MPI_Comm interComm, int serverRank, StdSize bufferSize, StdSize estimatedMaxEventSize, StdSize maxBufferedEvents) 
     18    : interComm(interComm) 
    1919    , serverRank(serverRank) 
    2020    , bufferSize(bufferSize) 
  • XIOS/dev/branch_openmp/src/buffer_client.hpp

    r1460 r1545  
    4343 
    4444      CBufferOut* retBuffer; 
    45       ep_lib::MPI_Comm interComm; 
     45      const ep_lib::MPI_Comm interComm; 
    4646  }; 
    4747} 
  • XIOS/dev/branch_openmp/src/calendar_util.cpp

    r1482 r1545  
    132132      CDuration dur( dt0.getYear() - dt1.getYear(), dt0.getMonth()  - dt1.getMonth() , dt0.getDay()   - dt1.getDay(), 
    133133      dt0.getHour() - dt1.getHour(), dt0.getMinute() - dt1.getMinute(), dt0.getSecond() - dt1.getSecond() ); 
    134  
    135134      return (dur.resolve(dt0.getRelCalendar())); 
    136135    } 
  • XIOS/dev/branch_openmp/src/client.cpp

    r1460 r1545  
    1818    MPI_Comm CClient::intraComm ; 
    1919    MPI_Comm CClient::interComm ; 
    20     //std::list<MPI_Comm> CClient::contextInterComms; 
    2120    std::list<MPI_Comm> *CClient::contextInterComms_ptr = 0; 
    2221    int CClient::serverLeader ; 
     
    110109            MPI_Comm_size(intraComm,&intraCommSize) ; 
    111110            MPI_Comm_rank(intraComm,&intraCommRank) ; 
     111 
     112            MPI_Intercomm_create(intraComm, 0, CXios::globalComm, serverLeader, 0, &interComm) ; 
    112113            #pragma omp critical (_output) 
    113114            { 
     
    115116                   <<" intraCommRank :"<<intraCommRank<<"  clientLeader "<< serverLeader<<endl ; 
    116117            }  
    117             MPI_Intercomm_create(intraComm, 0, CXios::globalComm, serverLeader, 0, &interComm) ; 
    118             //rank_ = intraCommRank; 
     118             
    119119          } 
    120120          else 
     
    198198        CContext::setCurrent(id); 
    199199 
    200         //contextInterComms.push_back(contextInterComm); 
    201200        if(contextInterComms_ptr == NULL) contextInterComms_ptr = new std::list<MPI_Comm>; 
    202201        contextInterComms_ptr->push_back(contextInterComm); 
     
    234233        context->initClient(contextComm,contextInterComm) ; 
    235234 
    236         //contextInterComms.push_back(contextInterComm); 
    237235        if(contextInterComms_ptr == NULL) contextInterComms_ptr = new std::list<MPI_Comm>; 
    238236        contextInterComms_ptr->push_back(contextInterComm); 
     
    260258      } 
    261259 
    262       //for (std::list<MPI_Comm>::iterator it = contextInterComms.begin(); it != contextInterComms.end(); it++) 
    263260      for (std::list<MPI_Comm>::iterator it = contextInterComms_ptr->begin(); it != contextInterComms_ptr->end(); it++) 
    264261        MPI_Comm_free(&(*it)); 
     
    333330      if (!fb->is_open()) 
    334331        ERROR("void CClient::openStream(const StdString& fileName, const StdString& ext, std::filebuf* fb)", 
    335               << std::endl << "Can not open <" << fileNameClient << "> file to write the client log(s)."); 
     332              << std::endl << "Can not open <" << fileNameClient.str() << "> file to write the client log(s)."); 
    336333    } 
    337334 
  • XIOS/dev/branch_openmp/src/client_client_dht_template.hpp

    r1328 r1545  
    1515#include "mpi.hpp" 
    1616#include "policy.hpp" 
    17 #include <boost/unordered_map.hpp> 
     17#include  <unordered_map> 
    1818#include "dht_data_types.hpp" 
    1919 
     
    3434    typedef T InfoType; 
    3535    static const int infoTypeSize = sizeof(InfoType); 
    36 //    typedef typename boost::unordered_map<InfoType, std::vector<size_t> > InfoType2IndexMap; 
    37     typedef typename boost::unordered_map<size_t,InfoType> Index2InfoTypeMap; 
    38     typedef typename boost::unordered_map<size_t,std::vector<InfoType> > Index2VectorInfoTypeMap; 
     36 
     37    typedef typename std::unordered_map<size_t,InfoType> Index2InfoTypeMap; 
     38    typedef typename std::unordered_map<size_t,std::vector<InfoType> > Index2VectorInfoTypeMap; 
    3939 
    4040  public: 
  • XIOS/dev/branch_openmp/src/client_client_dht_template_impl.hpp

    r1460 r1545  
    116116  size_t index; 
    117117  HashXIOS<size_t> hashGlobalIndex; 
    118   boost::unordered_map<size_t,int> nbIndices; 
     118  std::unordered_map<size_t,int> nbIndices; 
    119119  nbIndices.rehash(std::ceil(ssize/nbIndices.max_load_factor())); 
    120120  for (int i = 0; i < ssize; ++i) 
     
    131131  } 
    132132 
    133   boost::unordered_map<int, size_t* > client2ClientIndex; 
     133  std::unordered_map<int, size_t* > client2ClientIndex; 
    134134  for (int idx = 0; idx < nbClient; ++idx) 
    135135  { 
     
    191191    if (0 != recvNbIndexClientCount[idx]) 
    192192      recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, &request[request_position++]); 
    193       //recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, request); 
    194193    currentIndex += recvNbIndexClientCount[idx]; 
    195194  } 
    196195 
    197   boost::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex, 
     196  std::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex, 
    198197                                                iteIndex = client2ClientIndex.end(); 
    199198  for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 
    200199    sendIndexToClients(itIndex->first, (itIndex->second), sendNbIndexBuff[itIndex->first-groupRankBegin], commLevel, &request[request_position++]); 
    201     //sendIndexToClients(itIndex->first, (itIndex->second), sendNbIndexBuff[itIndex->first-groupRankBegin], commLevel, request); 
    202200 
    203201  std::vector<ep_lib::MPI_Status> status(request.size()); 
     
    280278    if (0 != recvNbIndexOnReturn[idx]) 
    281279    { 
    282       //recvIndexFromClients(recvRankOnReturn[idx], recvIndexBuffOnReturn+currentIndex, recvNbIndexOnReturn[idx], commLevel, requestOnReturn); 
    283       //recvInfoFromClients(recvRankOnReturn[idx], 
    284       //                    recvInfoBuffOnReturn+currentIndex*ProcessDHTElement<InfoType>::typeSize(), 
    285       //                    recvNbIndexOnReturn[idx]*ProcessDHTElement<InfoType>::typeSize(), 
    286       //                    commLevel, requestOnReturn); 
    287280      recvIndexFromClients(recvRankOnReturn[idx], recvIndexBuffOnReturn+currentIndex, recvNbIndexOnReturn[idx], commLevel, &requestOnReturn[requestOnReturn_position++]); 
    288281      recvInfoFromClients(recvRankOnReturn[idx], 
     
    294287  } 
    295288 
    296   boost::unordered_map<int,unsigned char*> client2ClientInfoOnReturn; 
    297   boost::unordered_map<int,size_t*> client2ClientIndexOnReturn; 
     289  std::unordered_map<int,unsigned char*> client2ClientInfoOnReturn; 
     290  std::unordered_map<int,size_t*> client2ClientIndexOnReturn; 
    298291  currentIndex = 0; 
    299292  for (int idx = 0; idx < nbRecvClient; ++idx) 
     
    322315      } 
    323316 
    324       //sendIndexToClients(rank, client2ClientIndexOnReturn[rank], 
    325       //                   sendNbIndexOnReturn[idx], commLevel, requestOnReturn); 
    326       //sendInfoToClients(rank, client2ClientInfoOnReturn[rank], 
    327       //                  sendNbIndexOnReturn[idx]*ProcessDHTElement<InfoType>::typeSize(), commLevel, requestOnReturn); 
    328317      sendIndexToClients(rank, client2ClientIndexOnReturn[rank], 
    329318                         sendNbIndexOnReturn[idx], commLevel, &requestOnReturn[requestOnReturn_position++]); 
     
    349338  indexToInfoMappingLevel_.swap(indexToInfoMapping); 
    350339  if (0 != recvNbIndexCount) delete [] recvIndexBuff; 
    351   for (boost::unordered_map<int,size_t*>::const_iterator it = client2ClientIndex.begin(); 
     340  for (std::unordered_map<int,size_t*>::const_iterator it = client2ClientIndex.begin(); 
    352341                                                        it != client2ClientIndex.end(); ++it) 
    353342      delete [] it->second; 
     
    360349  } 
    361350 
    362   for (boost::unordered_map<int,unsigned char*>::const_iterator it = client2ClientInfoOnReturn.begin(); 
     351  for (std::unordered_map<int,unsigned char*>::const_iterator it = client2ClientInfoOnReturn.begin(); 
    363352                                                               it != client2ClientInfoOnReturn.end(); ++it) 
    364353      delete [] it->second; 
    365354 
    366   for (boost::unordered_map<int,size_t*>::const_iterator it = client2ClientIndexOnReturn.begin(); 
     355  for (std::unordered_map<int,size_t*>::const_iterator it = client2ClientIndexOnReturn.begin(); 
    367356                                            it != client2ClientIndexOnReturn.end(); ++it) 
    368357      delete [] it->second; 
     
    430419  } 
    431420 
    432   boost::unordered_map<int, size_t*> client2ClientIndex; 
    433   boost::unordered_map<int, unsigned char*> client2ClientInfo; 
     421  std::unordered_map<int, size_t*> client2ClientIndex; 
     422  std::unordered_map<int, unsigned char*> client2ClientInfo; 
    434423  for (int idx = 0; idx < nbClient; ++idx) 
    435424  { 
     
    500489    if (0 != recvNbIndexClientCount[idx]) 
    501490    { 
    502       //recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, request); 
    503       //recvInfoFromClients(recvRankClient[idx], 
    504       //                    recvInfoBuff+currentIndex*ProcessDHTElement<InfoType>::typeSize(), 
    505       //                    recvNbIndexClientCount[idx]*ProcessDHTElement<InfoType>::typeSize(), 
    506       //                    commLevel, request); 
    507491        recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, &request[request_position++]); 
    508492        recvInfoFromClients(recvRankClient[idx], 
     
    514498  } 
    515499 
    516   boost::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex, 
     500  std::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex, 
    517501                                                iteIndex = client2ClientIndex.end(); 
    518502  for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 
    519503    sendIndexToClients(itIndex->first, itIndex->second, sendNbIndexBuff[itIndex->first-groupRankBegin], commLevel, &request[request_position++]); 
    520     //sendIndexToClients(itIndex->first, itIndex->second, sendNbIndexBuff[itIndex->first-groupRankBegin], commLevel, request); 
    521   boost::unordered_map<int, unsigned char*>::iterator itbInfo = client2ClientInfo.begin(), itInfo, 
     504  std::unordered_map<int, unsigned char*>::iterator itbInfo = client2ClientInfo.begin(), itInfo, 
    522505                                                      iteInfo = client2ClientInfo.end(); 
    523506  for (itInfo = itbInfo; itInfo != iteInfo; ++itInfo) 
    524507    sendInfoToClients(itInfo->first, itInfo->second, sendNbInfo[itInfo->first-groupRankBegin], commLevel, &request[request_position++]); 
    525     //sendInfoToClients(itInfo->first, itInfo->second, sendNbInfo[itInfo->first-groupRankBegin], commLevel, request); 
    526508 
    527509  std::vector<ep_lib::MPI_Status> status(request.size()); 
     
    551533    delete [] recvInfoBuff; 
    552534  } 
    553   for (boost::unordered_map<int,unsigned char*>::const_iterator it = client2ClientInfo.begin(); 
     535  for (std::unordered_map<int,unsigned char*>::const_iterator it = client2ClientInfo.begin(); 
    554536                                                               it != client2ClientInfo.end(); ++it) 
    555537      delete [] it->second; 
    556538 
    557   for (boost::unordered_map<int,size_t*>::const_iterator it = client2ClientIndex.begin(); 
     539  for (std::unordered_map<int,size_t*>::const_iterator it = client2ClientIndex.begin(); 
    558540                                                        it != client2ClientIndex.end(); ++it) 
    559541      delete [] it->second; 
  • XIOS/dev/branch_openmp/src/client_server_mapping.hpp

    r1460 r1545  
    1313#include "array_new.hpp" 
    1414#include "mpi.hpp" 
    15 #include <boost/unordered_map.hpp> 
     15#include <unordered_map> 
    1616 
    1717namespace xios { 
     
    2525{ 
    2626public: 
    27   typedef boost::unordered_map<int, std::vector<size_t> > GlobalIndexMap; 
     27  typedef std::unordered_map<int, std::vector<size_t> > GlobalIndexMap; 
    2828  public: 
    2929    /** Default constructor */ 
  • XIOS/dev/branch_openmp/src/client_server_mapping_distributed.cpp

    r1460 r1545  
    2020{ 
    2121 
    22 CClientServerMappingDistributed::CClientServerMappingDistributed(const boost::unordered_map<size_t,int>& globalIndexOfServer, 
     22CClientServerMappingDistributed::CClientServerMappingDistributed(const std::unordered_map<size_t,int>& globalIndexOfServer, 
    2323                                                                 const MPI_Comm& clientIntraComm, bool isDataDistributed) 
    2424  : CClientServerMapping(), ccDHT_(0) 
  • XIOS/dev/branch_openmp/src/client_server_mapping_distributed.hpp

    r1460 r1545  
    1616#include "array_new.hpp" 
    1717#include "mpi.hpp" 
    18 #include <boost/unordered_map.hpp> 
     18#include <unordered_map> 
    1919#include "client_client_dht_template.hpp" 
    2020 
     
    3434  public: 
    3535    /** Default constructor */ 
    36     CClientServerMappingDistributed(const boost::unordered_map<size_t,int>& globalIndexOfServer, 
     36    CClientServerMappingDistributed(const std::unordered_map<size_t,int>& globalIndexOfServer, 
    3737                                    const ep_lib::MPI_Comm& clientIntraComm, 
    3838                                    bool isDataDistributed = true); 
  • XIOS/dev/branch_openmp/src/config/axis_attribute.conf

    r1460 r1545  
    22DECLARE_ATTRIBUTE(StdString, standard_name) 
    33DECLARE_ATTRIBUTE(StdString, long_name) 
     4 
     5DECLARE_ATTRIBUTE(StdString, comment) 
    46 
    57DECLARE_ATTRIBUTE(StdString, unit) 
  • XIOS/dev/branch_openmp/src/config/calendar_wrapper_attribute.conf

    r550 r1545  
     1DECLARE_ATTRIBUTE(StdString, comment) 
    12DECLARE_ENUM6(type, D360, AllLeap, NoLeap, Julian, Gregorian, user_defined) 
    23DECLARE_ATTRIBUTE(CDuration, timestep) 
  • XIOS/dev/branch_openmp/src/config/domain_attribute.conf

    r1460 r1545  
    99DECLARE_ATTRIBUTE(StdString       , dim_i_name) 
    1010DECLARE_ATTRIBUTE(StdString       , dim_j_name) 
     11 
     12DECLARE_ATTRIBUTE(StdString, comment) 
    1113 
    1214/* GLOBAL */ 
  • XIOS/dev/branch_openmp/src/config/field_attribute.conf

    r1205 r1545  
    22DECLARE_ATTRIBUTE(StdString, standard_name) 
    33DECLARE_ATTRIBUTE(StdString, long_name) 
     4 
     5DECLARE_ATTRIBUTE(StdString, comment) 
    46 
    57DECLARE_ATTRIBUTE(StdString, unit) 
     
    1820DECLARE_ATTRIBUTE(bool,      check_if_active) 
    1921 
    20 DECLARE_ATTRIBUTE(StdString, domain_ref) 
    21 DECLARE_ATTRIBUTE(StdString, axis_ref) 
    22 DECLARE_ATTRIBUTE(StdString, scalar_ref) 
     22DECLARE_ATTRIBUTE(StdString, domain_ref, false) 
     23DECLARE_ATTRIBUTE(StdString, axis_ref, false) 
     24DECLARE_ATTRIBUTE(StdString, scalar_ref, false) 
    2325DECLARE_ATTRIBUTE(StdString, grid_ref) 
    2426DECLARE_ATTRIBUTE(StdString, field_ref) 
  • XIOS/dev/branch_openmp/src/config/file_attribute.conf

    r1491 r1545  
    11DECLARE_ATTRIBUTE(StdString, name) 
    22DECLARE_ATTRIBUTE(StdString, description) 
     3 
     4DECLARE_ATTRIBUTE(StdString, comment) 
    35 
    46DECLARE_ATTRIBUTE(StdString, name_suffix) 
  • XIOS/dev/branch_openmp/src/config/grid_attribute.conf

    r1460 r1545  
    11DECLARE_ATTRIBUTE(StdString, name) 
    22DECLARE_ATTRIBUTE(StdString, description) 
     3 
     4DECLARE_ATTRIBUTE(StdString, comment) 
    35 
    46DECLARE_ARRAY(bool, 1, mask_1d, false) 
  • XIOS/dev/branch_openmp/src/config/scalar_attribute.conf

    r1460 r1545  
    22DECLARE_ATTRIBUTE(StdString, standard_name) 
    33DECLARE_ATTRIBUTE(StdString, long_name) 
     4 
     5DECLARE_ATTRIBUTE(StdString, comment) 
    46 
    57DECLARE_ATTRIBUTE(StdString, unit) 
  • XIOS/dev/branch_openmp/src/context_client.cpp

    r1520 r1545  
    102102        typeId_in=event.getTypeId() ; 
    103103        classId_in=event.getClassId() ; 
    104         //MPI_Allreduce(&timeLine,&timeLine_out, 1, MPI_UINT64_T, MPI_SUM, intraComm) ; 
    105104        MPI_Allreduce(&timeLine,&timeLine_out, 1, MPI_LONG_LONG_INT, MPI_SUM, intraComm) ; 
    106105        MPI_Allreduce(&typeId_in,&typeId, 1, MPI_INT, MPI_SUM, intraComm) ; 
     
    342341       if (ratio < minBufferSizeEventSizeRatio) minBufferSizeEventSizeRatio = ratio; 
    343342     } 
    344      //MPI_Allreduce(MPI_IN_PLACE, &minBufferSizeEventSizeRatio, 1, MPI_DOUBLE, MPI_MIN, intraComm); 
    345343     MPI_Allreduce(&minBufferSizeEventSizeRatio, &minBufferSizeEventSizeRatio, 1, MPI_DOUBLE, MPI_MIN, intraComm); 
    346344 
  • XIOS/dev/branch_openmp/src/context_server.cpp

    r1538 r1545  
    130130       MPI_Irecv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &request); 
    131131       MPI_Wait(&request, &status); 
    132        //MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status); 
    133132       mapBufferSize_.insert(std::make_pair(rank, buffSize)); 
    134133       it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first; 
  • XIOS/dev/branch_openmp/src/cxios.cpp

    r1538 r1545  
    6666    usingServer2=getin<bool>("using_server2",false) ; 
    6767    ratioServer2=getin<int>("ratio_server2",50); 
    68     nbPoolsServer2=getin<int>("number_pools_server2",1); 
     68    nbPoolsServer2=getin<int>("number_pools_server2",0); 
    6969    info.setLevel(getin<int>("info_level",0)) ; 
    7070    report.setLevel(getin<int>("info_level",50)); 
     
    108108      MPI_Comm_create_endpoints(MPI_COMM_WORLD->mpi_comm, num_ep, info, ep_comm);  // servers should reach here too. 
    109109      passage = ep_comm;  
    110       //::MPI_Comm_group(to_mpi_comm(MPI_COMM_WORLD->mpi_comm), &MPI_GROUP_WORLD);  
    111110    } 
    112111         
  • XIOS/dev/branch_openmp/src/data_output.cpp

    r1328 r1545  
    8787      { 
    8888         CContext* context = CContext::getCurrent() ; 
    89          boost::shared_ptr<CCalendar> calendar = context->getCalendar(); 
     89         std::shared_ptr<CCalendar> calendar = context->getCalendar(); 
    9090 
    9191         this->writeTimeAxis_(field, calendar); 
  • XIOS/dev/branch_openmp/src/data_output.hpp

    r1334 r1545  
    5959            virtual void writeTimeDimension_(void)           = 0; 
    6060            virtual void writeTimeAxis_ (CField*     field, 
    61                                          const boost::shared_ptr<CCalendar> cal) = 0; 
     61                                         const std::shared_ptr<CCalendar> cal) = 0; 
    6262 
    6363            /// Propriétés protégées /// 
  • XIOS/dev/branch_openmp/src/date.cpp

    r1105 r1545  
    235235      void CDate::addMonth(int value) 
    236236      {// Value doit être égale à 1 ou -1. 
     237 
     238        const CCalendar& c = getRelCalendar(); 
     239        int nbMonthsPerYear = c.getYearLength(); 
     240 
    237241        this->month += value; 
    238         if (this->month == 13) { year++; this->month = 1; } 
    239         if (this->month == 0)  { year--; this->month = 12; } 
     242 
     243        if (this->month == nbMonthsPerYear + 1) { year++; this->month = 1; } 
     244        if (this->month == 0)  { year--; this->month = nbMonthsPerYear; } 
    240245      } 
    241246 
  • XIOS/dev/branch_openmp/src/distribution.hpp

    r1460 r1545  
    1212#include "xios_spl.hpp" 
    1313#include "array_new.hpp" 
    14 #include <boost/unordered_map.hpp> 
     14#include <unordered_map> 
    1515 
    1616namespace xios { 
     
    2424{ 
    2525  public: 
    26   typedef boost::unordered_map<size_t,int> GlobalLocalMap; 
     26  typedef std::unordered_map<size_t,int> GlobalLocalMap; 
    2727 
    2828  public: 
  • XIOS/dev/branch_openmp/src/duration.cpp

    r1482 r1545  
    77{ 
    88      /// ////////////////////// Définitions ////////////////////// /// 
    9                        
     9 
    1010      const CDuration Year     ( 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); 
    1111      const CDuration Month    ( 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); 
     
    2525      } 
    2626 
     27      ///--------------------------------------------------------------- 
    2728 
    2829      CDuration& CDuration::operator=(const CDuration& duration) 
  • XIOS/dev/branch_openmp/src/duration.hpp

    r1482 r1545  
    2121         public: 
    2222            CDuration(double year=0.0, double month=0.0, double day=0.0, double hour=0.0, double minute=0.0, double second=0.0, double timestep=0.0); 
    23              
     23 
    2424            /// Opérateurs /// 
    2525            CDuration& operator=(const CDuration& duration); 
  • XIOS/dev/branch_openmp/src/filter/binary_arithmetic_filter.hpp

    r642 r1545  
    55#include <string> 
    66#include "operator_expr.hpp" 
     7#include <unordered_map> 
    78 
    89namespace xios 
  • XIOS/dev/branch_openmp/src/filter/data_packet.hpp

    r643 r1545  
    22#define __XIOS_CDataPacket__ 
    33 
    4 #include <boost/shared_ptr.hpp> 
     4#include <memory> 
    55 
    66#include "array_new.hpp" 
     
    4343  }; // struct CDataPacket 
    4444 
    45   typedef boost::shared_ptr<CDataPacket> CDataPacketPtr; 
    46   typedef boost::shared_ptr<const CDataPacket> CConstDataPacketPtr; 
     45  typedef std::shared_ptr<CDataPacket> CDataPacketPtr; 
     46  typedef std::shared_ptr<const CDataPacket> CConstDataPacketPtr; 
    4747} // namespace xios 
    4848 
  • XIOS/dev/branch_openmp/src/filter/output_pin.cpp

    r1460 r1545  
    99  { /* Nothing to do */ } 
    1010 
    11   void COutputPin::connectOutput(boost::shared_ptr<CInputPin> inputPin, size_t inputSlot) 
     11  void COutputPin::connectOutput(std::shared_ptr<CInputPin> inputPin, size_t inputSlot) 
    1212  { 
    1313    if (!inputPin) 
     
    4242            "The packet cannot be null."); 
    4343 
    44     std::vector<std::pair<boost::shared_ptr<CInputPin>, size_t> >::iterator it, itEnd; 
     44    std::vector<std::pair<std::shared_ptr<CInputPin>, size_t> >::iterator it, itEnd; 
    4545    for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 
    4646      it->first->setInput(it->second, packet); 
     
    6868  bool COutputPin::mustAutoTrigger() const 
    6969  { 
    70     std::vector<std::pair<boost::shared_ptr<CInputPin>, size_t> >::const_iterator it, itEnd; 
     70    std::vector<std::pair<std::shared_ptr<CInputPin>, size_t> >::const_iterator it, itEnd; 
    7171    for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 
    7272    { 
     
    8080  void COutputPin::setOutputTriggers() 
    8181  { 
    82     std::vector<std::pair<boost::shared_ptr<CInputPin>, size_t> >::iterator it, itEnd; 
     82    std::vector<std::pair<std::shared_ptr<CInputPin>, size_t> >::iterator it, itEnd; 
    8383    for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 
    8484      it->first->setInputTrigger(it->second, this); 
     
    8787  bool COutputPin::isDataExpected(const CDate& date) const 
    8888  { 
    89     std::vector<std::pair<boost::shared_ptr<CInputPin>, size_t> >::const_iterator it, itEnd; 
     89    std::vector<std::pair<std::shared_ptr<CInputPin>, size_t> >::const_iterator it, itEnd; 
    9090    for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 
    9191    { 
  • XIOS/dev/branch_openmp/src/filter/output_pin.hpp

    r1460 r1545  
    2929       * \param inputSlot the input slot number 
    3030       */ 
    31       void connectOutput(boost::shared_ptr<CInputPin> inputPin, size_t inputSlot); 
     31      void connectOutput(std::shared_ptr<CInputPin> inputPin, size_t inputSlot); 
    3232 
    3333      /*! 
     
    9393 
    9494      //!< The list of connected filters and the corresponding slot numbers 
    95       std::vector<std::pair<boost::shared_ptr<CInputPin>, size_t> > outputs; 
     95      std::vector<std::pair<std::shared_ptr<CInputPin>, size_t> > outputs; 
    9696 
    9797      //! Output buffer, store the packets until the output is triggered 
  • XIOS/dev/branch_openmp/src/filter/spatial_transform_filter.cpp

    r1482 r1545  
    1313  { /* Nothing to do */ } 
    1414 
    15   std::pair<boost::shared_ptr<CSpatialTransformFilter>, boost::shared_ptr<CSpatialTransformFilter> > 
     15  std::pair<std::shared_ptr<CSpatialTransformFilter>, std::shared_ptr<CSpatialTransformFilter> > 
    1616  CSpatialTransformFilter::buildFilterGraph(CGarbageCollector& gc, CGrid* srcGrid, CGrid* destGrid, bool hasMissingValue, double missingValue) 
    1717  { 
    1818    if (!srcGrid || !destGrid) 
    19       ERROR("std::pair<boost::shared_ptr<CSpatialTransformFilter>, boost::shared_ptr<CSpatialTransformFilter> >" 
     19      ERROR("std::pair<std::shared_ptr<CSpatialTransformFilter>, std::shared_ptr<CSpatialTransformFilter> >" 
    2020            "buildFilterGraph(CGarbageCollector& gc, CGrid* srcGrid, CGrid* destGrid)", 
    2121            "Impossible to build the filter graph if either the source or the destination grid are null."); 
    2222 
    23     boost::shared_ptr<CSpatialTransformFilter> firstFilter, lastFilter; 
     23    std::shared_ptr<CSpatialTransformFilter> firstFilter, lastFilter; 
    2424    // Note that this loop goes from the last transformation to the first transformation 
    2525    do 
     
    3838      for (it=algoList.begin();it!=algoList.end();++it)  if (it->second.first == TRANS_TEMPORAL_SPLITTING) isSpatialTemporal=true ; 
    3939 
    40       boost::shared_ptr<CSpatialTransformFilter> filter ; 
    41       if( isSpatialTemporal) filter = boost::shared_ptr<CSpatialTransformFilter>(new CSpatialTemporalFilter(gc, engine, gridTransformation, defaultValue, inputCount)); 
    42       else filter = boost::shared_ptr<CSpatialTransformFilter>(new CSpatialTransformFilter(gc, engine, defaultValue, inputCount)); 
     40      std::shared_ptr<CSpatialTransformFilter> filter ; 
     41      if( isSpatialTemporal) filter = std::shared_ptr<CSpatialTransformFilter>(new CSpatialTemporalFilter(gc, engine, gridTransformation, defaultValue, inputCount)); 
     42      else filter = std::shared_ptr<CSpatialTransformFilter>(new CSpatialTransformFilter(gc, engine, defaultValue, inputCount)); 
    4343 
    4444       
     
    142142  } 
    143143 
    144   //std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > CSpatialTransformFilterEngine::engines; 
    145   std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > *CSpatialTransformFilterEngine::engines_ptr = 0; 
     144  std::map<CGridTransformation*, std::shared_ptr<CSpatialTransformFilterEngine> > *CSpatialTransformFilterEngine::engines_ptr = 0; 
    146145 
    147146  CSpatialTransformFilterEngine* CSpatialTransformFilterEngine::get(CGridTransformation* gridTransformation) 
     
    151150            "Impossible to get the requested engine, the grid transformation is invalid."); 
    152151     
    153     if(engines_ptr == NULL) engines_ptr = new std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> >; 
    154  
    155     //std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> >::iterator it = engines.find(gridTransformation); 
    156     std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> >::iterator it = engines_ptr->find(gridTransformation); 
    157     //if (it == engines.end()) 
     152    if(engines_ptr == NULL) engines_ptr = new std::map<CGridTransformation*, std::shared_ptr<CSpatialTransformFilterEngine> >; 
     153 
     154 
     155    std::map<CGridTransformation*, std::shared_ptr<CSpatialTransformFilterEngine> >::iterator it = engines_ptr->find(gridTransformation); 
    158156    if (it == engines_ptr->end()) 
    159157    { 
    160       boost::shared_ptr<CSpatialTransformFilterEngine> engine(new CSpatialTransformFilterEngine(gridTransformation)); 
    161       //it = engines.insert(std::make_pair(gridTransformation, engine)).first; 
     158      std::shared_ptr<CSpatialTransformFilterEngine> engine(new CSpatialTransformFilterEngine(gridTransformation)); 
    162159      it = engines_ptr->insert(std::make_pair(gridTransformation, engine)).first; 
    163160    } 
  • XIOS/dev/branch_openmp/src/filter/spatial_transform_filter.hpp

    r1460 r1545  
    3636       * \return the first and the last filters of the filter graph 
    3737       */ 
    38       static std::pair<boost::shared_ptr<CSpatialTransformFilter>, boost::shared_ptr<CSpatialTransformFilter> > 
     38      static std::pair<std::shared_ptr<CSpatialTransformFilter>, std::shared_ptr<CSpatialTransformFilter> > 
    3939      buildFilterGraph(CGarbageCollector& gc, CGrid* srcGrid, CGrid* destGrid, bool hasMissingValue, double defaultValue); 
    4040 
     
    141141 
    142142      //! The allocated engines 
    143       //static std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > engines; 
    144       static std::map<CGridTransformation*, boost::shared_ptr<CSpatialTransformFilterEngine> > *engines_ptr; 
     143 
     144      static std::map<CGridTransformation*, std::shared_ptr<CSpatialTransformFilterEngine> > *engines_ptr; 
    145145      #pragma omp threadprivate(engines_ptr) 
    146146  }; // class CSpatialTransformFilterEngine 
  • XIOS/dev/branch_openmp/src/filter/temporal_filter.cpp

    r1482 r1545  
    2222                        this->samplingOffset.second, this->samplingOffset.timestep) 
    2323    , initDate(initDate) 
    24     , nextSamplingDate(initDate + (this->samplingOffset + initDate.getRelCalendar().getTimeStep())) 
     24    , nextSamplingDate(initDate + offsetMonth + ( offsetAllButMonth + initDate.getRelCalendar().getTimeStep())) 
    2525    , nbOperationDates(1) 
    2626    , nbSamplingDates(0) 
  • XIOS/dev/branch_openmp/src/generate_fortran_interface.cpp

    r1460 r1545  
    302302  file.open((path+"iexpand_domain_attr.F90").c_str()); 
    303303  expandDomain.generateFortranInterface(file); 
     304  file.close(); 
    304305 
    305306  file.open((path+"reorder_domain_interface_attr.F90").c_str()); 
  • XIOS/dev/branch_openmp/src/group_factory.hpp

    r1334 r1545  
    11#ifndef __XIOS_CGroupFactory__ 
    22#define __XIOS_CGroupFactory__ 
    3  
    4 /// boost headers /// 
    5 #include <boost/shared_ptr.hpp> 
    63 
    74/// XIOS headers /// 
     
    2320 
    2421         template <typename U> 
    25             static void AddGroup(boost::shared_ptr<U> pgroup, 
    26                                         boost::shared_ptr<U> cgroup); 
     22            static void AddGroup(std::shared_ptr<U> pgroup, 
     23                                        std::shared_ptr<U> cgroup); 
    2724 
    2825         template <typename U> 
    29             static void AddChild(boost::shared_ptr<U> group, 
    30                                         boost::shared_ptr<typename U::RelChild> child); 
     26            static void AddChild(std::shared_ptr<U> group, 
     27                                        std::shared_ptr<typename U::RelChild> child); 
    3128 
    3229         /// Accesseurs /// 
     
    3431 
    3532         template <typename U> 
    36             static boost::shared_ptr<U> 
    37                GetGroup(boost::shared_ptr<U> group, const StdString & id); 
     33            static std::shared_ptr<U> 
     34               GetGroup(std::shared_ptr<U> group, const StdString & id); 
    3835 
    3936         template <typename U> 
    40             static boost::shared_ptr<typename U::RelChild> 
    41                GetChild(boost::shared_ptr<U> group, const StdString & id); 
     37            static std::shared_ptr<typename U::RelChild> 
     38               GetChild(std::shared_ptr<U> group, const StdString & id); 
    4239 
    4340         template <typename U> 
    44             static int GetGroupNum(boost::shared_ptr<U> group); 
     41            static int GetGroupNum(std::shared_ptr<U> group); 
    4542         template <typename U> 
    46             static int GetGroupIdNum(boost::shared_ptr<U> group); 
     43            static int GetGroupIdNum(std::shared_ptr<U> group); 
    4744         template <typename U> 
    48             static int GetChildNum(boost::shared_ptr<U> group); 
     45            static int GetChildNum(std::shared_ptr<U> group); 
    4946         template <typename U> 
    50             static int GetChildIdNum(boost::shared_ptr<U> group); 
     47            static int GetChildIdNum(std::shared_ptr<U> group); 
    5148 
    5249         /// Tests /// 
    5350         template <typename U> 
    54             static bool HasGroup(boost::shared_ptr<U> group, const StdString & id); 
     51            static bool HasGroup(std::shared_ptr<U> group, const StdString & id); 
    5552 
    5653         template <typename U> 
    57             static bool HasChild(boost::shared_ptr<U> group, const StdString & id); 
     54            static bool HasChild(std::shared_ptr<U> group, const StdString & id); 
    5855 
    5956         /// Instanciateur /// 
    6057         template <typename U> 
    61             static boost::shared_ptr<U> 
    62                CreateGroup(boost::shared_ptr<U> group, const StdString & id = StdString("")); 
     58            static std::shared_ptr<U> 
     59               CreateGroup(std::shared_ptr<U> group, const StdString & id = StdString("")); 
    6360 
    6461         template <typename U> 
    65             static boost::shared_ptr<typename U::RelChild> 
    66                CreateChild(boost::shared_ptr<U> group, const StdString & id = StdString("")); 
     62            static std::shared_ptr<typename U::RelChild> 
     63               CreateChild(std::shared_ptr<U> group, const StdString & id = StdString("")); 
    6764 
    6865      private : 
  • XIOS/dev/branch_openmp/src/group_factory_decl.cpp

    r1460 r1545  
    55{ 
    66# define  macro(U) \ 
    7   template void CGroupFactory::AddGroup<U>(boost::shared_ptr<U> pgroup,boost::shared_ptr<U> cgroup); \ 
    8   template void CGroupFactory::AddChild<U>(boost::shared_ptr<U> group, boost::shared_ptr<U::RelChild> child); \ 
    9   template boost::shared_ptr<U>  CGroupFactory::GetGroup<U>(boost::shared_ptr<U> group, const StdString & id); \ 
    10   template boost::shared_ptr<U::RelChild> CGroupFactory::GetChild<U>(boost::shared_ptr<U> group, const StdString & id); \ 
    11   template int CGroupFactory::GetGroupNum<U>(boost::shared_ptr<U> group); \ 
    12   template int CGroupFactory::GetGroupIdNum<U>(boost::shared_ptr<U> group); \ 
    13   template int CGroupFactory::GetChildNum<U>(boost::shared_ptr<U> group); \ 
    14   template int CGroupFactory::GetChildIdNum<U>(boost::shared_ptr<U> group); \ 
    15   template bool CGroupFactory::HasGroup<U>(boost::shared_ptr<U> group, const StdString & id); \ 
    16   template bool CGroupFactory::HasChild<U>(boost::shared_ptr<U> group, const StdString & id); \ 
    17   template boost::shared_ptr<U> CGroupFactory::CreateGroup<U>(boost::shared_ptr<U> group, const StdString & id ); \ 
    18   template boost::shared_ptr<U::RelChild>  CGroupFactory::CreateChild<U>(boost::shared_ptr<U> group, const StdString & id); 
     7  template void CGroupFactory::AddGroup<U>(std::shared_ptr<U> pgroup, std::shared_ptr<U> cgroup); \ 
     8  template void CGroupFactory::AddChild<U>(std::shared_ptr<U> group, std::shared_ptr<U::RelChild> child); \ 
     9  template std::shared_ptr<U>  CGroupFactory::GetGroup<U>(std::shared_ptr<U> group, const StdString & id); \ 
     10  template std::shared_ptr<U::RelChild> CGroupFactory::GetChild<U>( std::shared_ptr<U> group, const StdString & id); \ 
     11  template int CGroupFactory::GetGroupNum<U>(std::shared_ptr<U> group); \ 
     12  template int CGroupFactory::GetGroupIdNum<U>(std::shared_ptr<U> group); \ 
     13  template int CGroupFactory::GetChildNum<U>(std::shared_ptr<U> group); \ 
     14  template int CGroupFactory::GetChildIdNum<U>(std::shared_ptr<U> group); \ 
     15  template bool CGroupFactory::HasGroup<U>(std::shared_ptr<U> group, const StdString & id); \ 
     16  template bool CGroupFactory::HasChild<U>(std::shared_ptr<U> group, const StdString & id); \ 
     17  template std::shared_ptr<U> CGroupFactory::CreateGroup<U>(std::shared_ptr<U> group, const StdString & id ); \ 
     18  template std::shared_ptr<U::RelChild>  CGroupFactory::CreateChild<U>(std::shared_ptr<U> group, const StdString & id); 
    1919 
    2020  macro(CFieldGroup) 
  • XIOS/dev/branch_openmp/src/group_factory_impl.hpp

    r591 r1545  
    99 
    1010   template <typename U> 
    11       void CGroupFactory::AddGroup(boost::shared_ptr<U> pgroup, 
    12                                    boost::shared_ptr<U> cgroup) 
     11      void CGroupFactory::AddGroup(std::shared_ptr<U> pgroup, 
     12                                   std::shared_ptr<U> cgroup) 
    1313   { 
    1414      if (cgroup.get() == NULL || pgroup.get() == NULL ) 
    15          ERROR("CGroupFactory::AddGroup(boost::shared_ptr<U> pgroup, boost::shared_ptr<U> cgroup)", 
     15         ERROR("CGroupFactory::AddGroup(std::shared_ptr<U> pgroup, std::shared_ptr<U> cgroup)", 
    1616               << " pgroup or cgroup NULL !"); 
    1717      if (!cgroup->hasId()) 
     
    2525 
    2626   template <typename U> 
    27       void CGroupFactory::AddChild(boost::shared_ptr<U> group, 
    28                                    boost::shared_ptr<typename U::RelChild> child) 
     27      void CGroupFactory::AddChild(std::shared_ptr<U> group, 
     28                                   std::shared_ptr<typename U::RelChild> child) 
    2929   { 
    3030      if (group.get() == NULL || child.get() == NULL ) 
    31          ERROR("CGroupFactory::AddGroup(boost::shared_ptr<U> pgroup, boost::shared_ptr<U> cgroup)", 
     31         ERROR("CGroupFactory::AddGroup(std::shared_ptr<U> pgroup, std::shared_ptr<U> cgroup)", 
    3232               << " pgroup or cgroup NULL !"); 
    3333      if (!child->hasId()) 
     
    4141 
    4242   template <typename U> 
    43       boost::shared_ptr<U> 
    44          CGroupFactory::CreateGroup(boost::shared_ptr<U> group, const StdString & id) 
     43      std::shared_ptr<U> 
     44         CGroupFactory::CreateGroup(std::shared_ptr<U> group, const StdString & id) 
    4545   { 
    4646      CObjectFactory::SetCurrentContextId 
     
    4848      if (id.size() == 0) 
    4949      { 
    50          boost::shared_ptr<U> value = CObjectFactory::CreateObject<U>(CObjectFactory::GenUId<U>()); 
     50         std::shared_ptr<U> value = CObjectFactory::CreateObject<U>(CObjectFactory::GenUId<U>()); 
    5151         group->groupList.insert(group->groupList.end(), value.get()); 
    5252         group->groupMap.insert(std::make_pair(value->getId(), value.get())); 
     
    5757      else 
    5858      { 
    59          boost::shared_ptr<U> value = CObjectFactory::CreateObject<U>(id); 
     59         std::shared_ptr<U> value = CObjectFactory::CreateObject<U>(id); 
    6060         group->groupList.insert(group->groupList.end(), value.get()); 
    6161         group->groupMap.insert(std::make_pair(id, value.get())); 
     
    6565 
    6666   template <typename U> 
    67       boost::shared_ptr<typename U::RelChild> 
    68          CGroupFactory::CreateChild(boost::shared_ptr<U> group, const StdString & id) 
     67      std::shared_ptr<typename U::RelChild> 
     68         CGroupFactory::CreateChild(std::shared_ptr<U> group, const StdString & id) 
    6969   { 
    7070      CObjectFactory::SetCurrentContextId 
     
    7272      if (id.size() == 0) 
    7373      { 
    74          boost::shared_ptr<typename U::RelChild> value = 
     74         std::shared_ptr<typename U::RelChild> value = 
    7575               CObjectFactory::CreateObject<typename U::RelChild>(); 
    7676         group->childList.insert(group->childList.end(), value.get()); 
     
    8282      else 
    8383      { 
    84          boost::shared_ptr<typename U::RelChild> value = 
     84         std::shared_ptr<typename U::RelChild> value = 
    8585               CObjectFactory::CreateObject<typename U::RelChild>(id); 
    8686         group->childList.insert(group->childList.end(), value.get()); 
     
    9191 
    9292   template <typename U> 
    93       bool CGroupFactory::HasGroup(boost::shared_ptr<U> group, const StdString & id) 
     93      bool CGroupFactory::HasGroup(std::shared_ptr<U> group, const StdString & id) 
    9494   {  return (group->groupMap.find(id) != group->groupMap.end()); } 
    9595 
    9696   template <typename U> 
    97       bool CGroupFactory::HasChild(boost::shared_ptr<U> group, const StdString & id) 
     97      bool CGroupFactory::HasChild(std::shared_ptr<U> group, const StdString & id) 
    9898   {  return (group->childMap.find(id) != group->childMap.end()); } 
    9999 
    100100   template <typename U> 
    101       int CGroupFactory::GetGroupNum(boost::shared_ptr<U> group) 
     101      int CGroupFactory::GetGroupNum(std::shared_ptr<U> group) 
    102102   { return (group->groupList.size()); } 
    103103 
    104104   template <typename U> 
    105       int CGroupFactory::GetGroupIdNum(boost::shared_ptr<U> group) 
     105      int CGroupFactory::GetGroupIdNum(std::shared_ptr<U> group) 
    106106   { return (group->groupMap.size()); } 
    107107 
    108108   template <typename U> 
    109       int CGroupFactory::GetChildNum(boost::shared_ptr<U> group) 
     109      int CGroupFactory::GetChildNum(std::shared_ptr<U> group) 
    110110   { return (group->childList.size()); } 
    111111 
    112112   template <typename U> 
    113       int CGroupFactory::GetChildIdNum(boost::shared_ptr<U> group) 
     113      int CGroupFactory::GetChildIdNum(std::shared_ptr<U> group) 
    114114   { return (group->childMap.size()); } 
    115115 
    116116   template <typename U> 
    117       boost::shared_ptr<U> 
    118          CGroupFactory::GetGroup(boost::shared_ptr<U> group, const StdString & id) 
     117      std::shared_ptr<U> 
     118         CGroupFactory::GetGroup(std::shared_ptr<U> group, const StdString & id) 
    119119   { 
    120120      if (!CGroupFactory::HasGroup<U>(group, id)) 
    121          ERROR("CGroupFactory::GetGroup(boost::shared_ptr<U> group, const StdString & id)", 
     121         ERROR("CGroupFactory::GetGroup(std::shared_ptr<U> group, const StdString & id)", 
    122122               << "[ id = " << id << ", U = " << U::GetName() << " ] " 
    123123               << " group is not referenced !"); 
     
    126126 
    127127   template <typename U> 
    128       boost::shared_ptr<typename U::RelChild> 
    129          CGroupFactory::GetChild(boost::shared_ptr<U> group, const StdString & id) 
     128      std::shared_ptr<typename U::RelChild> 
     129         CGroupFactory::GetChild(std::shared_ptr<U> group, const StdString & id) 
    130130   { 
    131131      if (!CGroupFactory::HasChild<U>(group, id)) 
    132          ERROR("CGroupFactory::GetChild(boost::shared_ptr<U> group, const StdString & id)", 
     132         ERROR("CGroupFactory::GetChild(std::shared_ptr<U> group, const StdString & id)", 
    133133               << "[ id = " << id << ", U = " << U::GetName() << " ] " 
    134134               << " child is not referenced !"); 
  • XIOS/dev/branch_openmp/src/group_template.hpp

    r1460 r1545  
    4646         virtual void fromString(const StdString & str); 
    4747          
    48 //         virtual void toBinary  (StdOStream & os) const; 
    49 //         virtual void fromBinary(StdIStream & is); 
    5048 
    5149         virtual void parse(xml::CXMLNode & node); 
     
    6361         virtual void solveDescInheritance(bool apply, const CAttributeMap * const parent = 0); 
    6462         void solveRefInheritance(void); 
    65 //         static bool has(const string & id);  
    66 //         static boost::shared_ptr<V> get(const string& id) ; 
    67 //         static boost::shared_ptr<V> create(const string& id=string("")) ; 
     63 
     64 
    6865         U* createChild(const string& id="") ; 
    6966           
  • XIOS/dev/branch_openmp/src/group_template_impl.hpp

    r1460 r1545  
    319319   { /* Ne rien faire de plus */ } 
    320320    
    321 //   template <class U, class V, class W> 
    322 //   bool CGroupTemplate<U, V, W>::has(const string& id)  
    323 //   { 
    324 //       return CObjectFactory::HasObject<V>(id) ; 
    325 //   } 
    326  
    327 //   template <class U, class V, class W> 
    328 //   boost::shared_ptr<V> CGroupTemplate<U, V, W>::get(const string& id)  
    329 //   { 
    330 //       return CObjectFactory::GetObject<V>(id) ; 
    331 //   } 
    332  
    333 //   template <class U, class V, class W> 
    334 //   boost::shared_ptr<V> CGroupTemplate<U, V, W>::get()  
    335 //   { 
    336 //       return CObjectFactory::GetObject<V>(this) ; 
    337 //   } 
    338     
    339 //   template <class U, class V, class W> 
    340 //   boost::shared_ptr<V> CGroupTemplate<U, V, W>::create(const string& id)  
    341 //   { 
    342 //       return CObjectFactory::CreateObject<V>(id) ; 
    343 //   } 
    344321   ///-------------------------------------------------------------- 
    345322 
  • XIOS/dev/branch_openmp/src/interface/c/icaxis.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77 
    88#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/iccalendar.cpp

    r704 r1545  
    2424    CTimer::get("XIOS").resume(); 
    2525    const xios::CContext* context = CContext::getCurrent(); 
    26     const boost::shared_ptr<xios::CCalendar> cal = context->getCalendar(); 
     26    const std::shared_ptr<xios::CCalendar> cal = context->getCalendar(); 
    2727    if (!cal) 
    2828      ERROR("void cxios_get_current_date(cxios_date* current_date_c)", 
     
    4141  { 
    4242    CTimer::get("XIOS").resume(); 
    43     const boost::shared_ptr<xios::CCalendar> cal = CContext::getCurrent()->getCalendar(); 
     43    const std::shared_ptr<xios::CCalendar> cal = CContext::getCurrent()->getCalendar(); 
    4444    if (!cal) 
    4545      ERROR("int cxios_get_year_length_in_seconds(int year)", 
     
    5454  { 
    5555    CTimer::get("XIOS").resume(); 
    56     const boost::shared_ptr<xios::CCalendar> cal = CContext::getCurrent()->getCalendar(); 
     56    const std::shared_ptr<xios::CCalendar> cal = CContext::getCurrent()->getCalendar(); 
    5757    if (!cal) 
    5858      ERROR("int cxios_get_day_length_in_seconds()", 
  • XIOS/dev/branch_openmp/src/interface/c/iccalendar_wrapper.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/iccompute_connectivity_domain.cpp

    r934 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
    76 
    87#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/iccontext.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icdata.cpp

    r1460 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include <string> 
    88#include <cstring> 
  • XIOS/dev/branch_openmp/src/interface/c/icdate.cpp

    r1482 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
    76 
    87#include "xios.hpp" 
     
    2726  if (!context) 
    2827    ERROR(idFunc, << "Impossible to do calendar operations: no current context available."); 
    29   const boost::shared_ptr<xios::CCalendar> cal = context->getCalendar(); 
     28  const std::shared_ptr<xios::CCalendar> cal = context->getCalendar(); 
    3029  if (!cal) 
    3130    ERROR(idFunc, << "Impossible to do calendar operations: no calendar was defined."); 
     
    8281                                   date_c.hour, date_c.minute, date_c.second); 
    8382    xios::CDuration dur( dur_c.year, dur_c.month, dur_c.day, dur_c.hour, dur_c.minute, dur_c.second, dur_c.timestep ); 
     83 
    8484    xios::CDate res = date - dur; 
    8585    return { res.getYear(), res.getMonth(), res.getDay(), res.getHour(), res.getMinute(), res.getSecond() }; 
  • XIOS/dev/branch_openmp/src/interface/c/icdomain.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icduration.cpp

    r1482 r1545  
    88  { 
    99    xios::CDuration dur( dur_c.year, dur_c.month, dur_c.day, dur_c.hour, dur_c.minute, dur_c.second, dur_c.timestep ); 
     10 
    1011    if (!string_copy(dur.toString(), str, str_size)) 
    1112      ERROR("void cxios_duration_convert_to_string(cxios_duration dur_c, char* str, int str_size)", << "Input string is too short"); 
     
    2728    xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep ); 
    2829    xios::CDuration dur2( dur2_c.year, dur2_c.month, dur2_c.day, dur2_c.hour, dur2_c.minute, dur2_c.second, dur2_c.timestep ); 
     30 
    2931    xios::CDuration res = dur1 + dur2; 
    3032    return { res.year, res.month, res.day, res.hour, res.minute, res.second, res.timestep }; 
     
    3537    xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep ); 
    3638    xios::CDuration dur2( dur2_c.year, dur2_c.month, dur2_c.day, dur2_c.hour, dur2_c.minute, dur2_c.second, dur2_c.timestep ); 
     39 
    3740    xios::CDuration res = dur1 - dur2; 
    3841    return { res.year, res.month, res.day, res.hour, res.minute, res.second, res.timestep }; 
  • XIOS/dev/branch_openmp/src/interface/c/icexpand_domain.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icextract_to_axis.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77 
    88#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icextract_to_scalar.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77 
    88#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icfield.cpp

    r1119 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icfile.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77 
    88#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icgenerate_rectilinear_domain.cpp

    r786 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icgrid.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
    76 
    87#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icinterpolate.cpp

    r786 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
    76 
    87#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icinverse_axis.cpp

    r786 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icreduce_to_axis.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icreduce_to_scalar.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
    76 
    87#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icscalar.cpp

    r891 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77 
    88#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icvariable.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/icxml_tree.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77 
    88#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c/iczoom.cpp

    r786 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6 
     7#include <memory> 
    78 
    89#include "xios.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icaxis_attr.cpp

    r1052 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    4444 
    4545 
     46  void cxios_set_axis_axis_type(axis_Ptr axis_hdl, const char * axis_type, int axis_type_size) 
     47  { 
     48    std::string axis_type_str; 
     49    if (!cstr2string(axis_type, axis_type_size, axis_type_str)) return; 
     50    CTimer::get("XIOS").resume(); 
     51    axis_hdl->axis_type.fromString(axis_type_str); 
     52    CTimer::get("XIOS").suspend(); 
     53  } 
     54 
     55  void cxios_get_axis_axis_type(axis_Ptr axis_hdl, char * axis_type, int axis_type_size) 
     56  { 
     57    CTimer::get("XIOS").resume(); 
     58    if (!string_copy(axis_hdl->axis_type.getInheritedStringValue(), axis_type, axis_type_size)) 
     59      ERROR("void cxios_get_axis_axis_type(axis_Ptr axis_hdl, char * axis_type, int axis_type_size)", << "Input string is too short"); 
     60    CTimer::get("XIOS").suspend(); 
     61  } 
     62 
     63  bool cxios_is_defined_axis_axis_type(axis_Ptr axis_hdl) 
     64  { 
     65     CTimer::get("XIOS").resume(); 
     66     bool isDefined = axis_hdl->axis_type.hasInheritedValue(); 
     67     CTimer::get("XIOS").suspend(); 
     68     return isDefined; 
     69  } 
     70 
     71 
    4672  void cxios_set_axis_begin(axis_Ptr axis_hdl, int begin) 
    4773  { 
     
    92118 
    93119 
     120  void cxios_set_axis_bounds_name(axis_Ptr axis_hdl, const char * bounds_name, int bounds_name_size) 
     121  { 
     122    std::string bounds_name_str; 
     123    if (!cstr2string(bounds_name, bounds_name_size, bounds_name_str)) return; 
     124    CTimer::get("XIOS").resume(); 
     125    axis_hdl->bounds_name.setValue(bounds_name_str); 
     126    CTimer::get("XIOS").suspend(); 
     127  } 
     128 
     129  void cxios_get_axis_bounds_name(axis_Ptr axis_hdl, char * bounds_name, int bounds_name_size) 
     130  { 
     131    CTimer::get("XIOS").resume(); 
     132    if (!string_copy(axis_hdl->bounds_name.getInheritedValue(), bounds_name, bounds_name_size)) 
     133      ERROR("void cxios_get_axis_bounds_name(axis_Ptr axis_hdl, char * bounds_name, int bounds_name_size)", << "Input string is too short"); 
     134    CTimer::get("XIOS").suspend(); 
     135  } 
     136 
     137  bool cxios_is_defined_axis_bounds_name(axis_Ptr axis_hdl) 
     138  { 
     139     CTimer::get("XIOS").resume(); 
     140     bool isDefined = axis_hdl->bounds_name.hasInheritedValue(); 
     141     CTimer::get("XIOS").suspend(); 
     142     return isDefined; 
     143  } 
     144 
     145 
     146  void cxios_set_axis_comment(axis_Ptr axis_hdl, const char * comment, int comment_size) 
     147  { 
     148    std::string comment_str; 
     149    if (!cstr2string(comment, comment_size, comment_str)) return; 
     150    CTimer::get("XIOS").resume(); 
     151    axis_hdl->comment.setValue(comment_str); 
     152    CTimer::get("XIOS").suspend(); 
     153  } 
     154 
     155  void cxios_get_axis_comment(axis_Ptr axis_hdl, char * comment, int comment_size) 
     156  { 
     157    CTimer::get("XIOS").resume(); 
     158    if (!string_copy(axis_hdl->comment.getInheritedValue(), comment, comment_size)) 
     159      ERROR("void cxios_get_axis_comment(axis_Ptr axis_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     160    CTimer::get("XIOS").suspend(); 
     161  } 
     162 
     163  bool cxios_is_defined_axis_comment(axis_Ptr axis_hdl) 
     164  { 
     165     CTimer::get("XIOS").resume(); 
     166     bool isDefined = axis_hdl->comment.hasInheritedValue(); 
     167     CTimer::get("XIOS").suspend(); 
     168     return isDefined; 
     169  } 
     170 
     171 
    94172  void cxios_set_axis_data_begin(axis_Ptr axis_hdl, int data_begin) 
    95173  { 
     
    158236     CTimer::get("XIOS").resume(); 
    159237     bool isDefined = axis_hdl->data_n.hasInheritedValue(); 
     238     CTimer::get("XIOS").suspend(); 
     239     return isDefined; 
     240  } 
     241 
     242 
     243  void cxios_set_axis_dim_name(axis_Ptr axis_hdl, const char * dim_name, int dim_name_size) 
     244  { 
     245    std::string dim_name_str; 
     246    if (!cstr2string(dim_name, dim_name_size, dim_name_str)) return; 
     247    CTimer::get("XIOS").resume(); 
     248    axis_hdl->dim_name.setValue(dim_name_str); 
     249    CTimer::get("XIOS").suspend(); 
     250  } 
     251 
     252  void cxios_get_axis_dim_name(axis_Ptr axis_hdl, char * dim_name, int dim_name_size) 
     253  { 
     254    CTimer::get("XIOS").resume(); 
     255    if (!string_copy(axis_hdl->dim_name.getInheritedValue(), dim_name, dim_name_size)) 
     256      ERROR("void cxios_get_axis_dim_name(axis_Ptr axis_hdl, char * dim_name, int dim_name_size)", << "Input string is too short"); 
     257    CTimer::get("XIOS").suspend(); 
     258  } 
     259 
     260  bool cxios_is_defined_axis_dim_name(axis_Ptr axis_hdl) 
     261  { 
     262     CTimer::get("XIOS").resume(); 
     263     bool isDefined = axis_hdl->dim_name.hasInheritedValue(); 
     264     CTimer::get("XIOS").suspend(); 
     265     return isDefined; 
     266  } 
     267 
     268 
     269  void cxios_set_axis_formula(axis_Ptr axis_hdl, const char * formula, int formula_size) 
     270  { 
     271    std::string formula_str; 
     272    if (!cstr2string(formula, formula_size, formula_str)) return; 
     273    CTimer::get("XIOS").resume(); 
     274    axis_hdl->formula.setValue(formula_str); 
     275    CTimer::get("XIOS").suspend(); 
     276  } 
     277 
     278  void cxios_get_axis_formula(axis_Ptr axis_hdl, char * formula, int formula_size) 
     279  { 
     280    CTimer::get("XIOS").resume(); 
     281    if (!string_copy(axis_hdl->formula.getInheritedValue(), formula, formula_size)) 
     282      ERROR("void cxios_get_axis_formula(axis_Ptr axis_hdl, char * formula, int formula_size)", << "Input string is too short"); 
     283    CTimer::get("XIOS").suspend(); 
     284  } 
     285 
     286  bool cxios_is_defined_axis_formula(axis_Ptr axis_hdl) 
     287  { 
     288     CTimer::get("XIOS").resume(); 
     289     bool isDefined = axis_hdl->formula.hasInheritedValue(); 
     290     CTimer::get("XIOS").suspend(); 
     291     return isDefined; 
     292  } 
     293 
     294 
     295  void cxios_set_axis_formula_bounds(axis_Ptr axis_hdl, const char * formula_bounds, int formula_bounds_size) 
     296  { 
     297    std::string formula_bounds_str; 
     298    if (!cstr2string(formula_bounds, formula_bounds_size, formula_bounds_str)) return; 
     299    CTimer::get("XIOS").resume(); 
     300    axis_hdl->formula_bounds.setValue(formula_bounds_str); 
     301    CTimer::get("XIOS").suspend(); 
     302  } 
     303 
     304  void cxios_get_axis_formula_bounds(axis_Ptr axis_hdl, char * formula_bounds, int formula_bounds_size) 
     305  { 
     306    CTimer::get("XIOS").resume(); 
     307    if (!string_copy(axis_hdl->formula_bounds.getInheritedValue(), formula_bounds, formula_bounds_size)) 
     308      ERROR("void cxios_get_axis_formula_bounds(axis_Ptr axis_hdl, char * formula_bounds, int formula_bounds_size)", << "Input string is too short"); 
     309    CTimer::get("XIOS").suspend(); 
     310  } 
     311 
     312  bool cxios_is_defined_axis_formula_bounds(axis_Ptr axis_hdl) 
     313  { 
     314     CTimer::get("XIOS").resume(); 
     315     bool isDefined = axis_hdl->formula_bounds.hasInheritedValue(); 
     316     CTimer::get("XIOS").suspend(); 
     317     return isDefined; 
     318  } 
     319 
     320 
     321  void cxios_set_axis_formula_term(axis_Ptr axis_hdl, const char * formula_term, int formula_term_size) 
     322  { 
     323    std::string formula_term_str; 
     324    if (!cstr2string(formula_term, formula_term_size, formula_term_str)) return; 
     325    CTimer::get("XIOS").resume(); 
     326    axis_hdl->formula_term.setValue(formula_term_str); 
     327    CTimer::get("XIOS").suspend(); 
     328  } 
     329 
     330  void cxios_get_axis_formula_term(axis_Ptr axis_hdl, char * formula_term, int formula_term_size) 
     331  { 
     332    CTimer::get("XIOS").resume(); 
     333    if (!string_copy(axis_hdl->formula_term.getInheritedValue(), formula_term, formula_term_size)) 
     334      ERROR("void cxios_get_axis_formula_term(axis_Ptr axis_hdl, char * formula_term, int formula_term_size)", << "Input string is too short"); 
     335    CTimer::get("XIOS").suspend(); 
     336  } 
     337 
     338  bool cxios_is_defined_axis_formula_term(axis_Ptr axis_hdl) 
     339  { 
     340     CTimer::get("XIOS").resume(); 
     341     bool isDefined = axis_hdl->formula_term.hasInheritedValue(); 
     342     CTimer::get("XIOS").suspend(); 
     343     return isDefined; 
     344  } 
     345 
     346 
     347  void cxios_set_axis_formula_term_bounds(axis_Ptr axis_hdl, const char * formula_term_bounds, int formula_term_bounds_size) 
     348  { 
     349    std::string formula_term_bounds_str; 
     350    if (!cstr2string(formula_term_bounds, formula_term_bounds_size, formula_term_bounds_str)) return; 
     351    CTimer::get("XIOS").resume(); 
     352    axis_hdl->formula_term_bounds.setValue(formula_term_bounds_str); 
     353    CTimer::get("XIOS").suspend(); 
     354  } 
     355 
     356  void cxios_get_axis_formula_term_bounds(axis_Ptr axis_hdl, char * formula_term_bounds, int formula_term_bounds_size) 
     357  { 
     358    CTimer::get("XIOS").resume(); 
     359    if (!string_copy(axis_hdl->formula_term_bounds.getInheritedValue(), formula_term_bounds, formula_term_bounds_size)) 
     360      ERROR("void cxios_get_axis_formula_term_bounds(axis_Ptr axis_hdl, char * formula_term_bounds, int formula_term_bounds_size)", << "Input string is too short"); 
     361    CTimer::get("XIOS").suspend(); 
     362  } 
     363 
     364  bool cxios_is_defined_axis_formula_term_bounds(axis_Ptr axis_hdl) 
     365  { 
     366     CTimer::get("XIOS").resume(); 
     367     bool isDefined = axis_hdl->formula_term_bounds.hasInheritedValue(); 
    160368     CTimer::get("XIOS").suspend(); 
    161369     return isDefined; 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icaxisgroup_attr.cpp

    r1052 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    4444 
    4545 
     46  void cxios_set_axisgroup_axis_type(axisgroup_Ptr axisgroup_hdl, const char * axis_type, int axis_type_size) 
     47  { 
     48    std::string axis_type_str; 
     49    if (!cstr2string(axis_type, axis_type_size, axis_type_str)) return; 
     50    CTimer::get("XIOS").resume(); 
     51    axisgroup_hdl->axis_type.fromString(axis_type_str); 
     52    CTimer::get("XIOS").suspend(); 
     53  } 
     54 
     55  void cxios_get_axisgroup_axis_type(axisgroup_Ptr axisgroup_hdl, char * axis_type, int axis_type_size) 
     56  { 
     57    CTimer::get("XIOS").resume(); 
     58    if (!string_copy(axisgroup_hdl->axis_type.getInheritedStringValue(), axis_type, axis_type_size)) 
     59      ERROR("void cxios_get_axisgroup_axis_type(axisgroup_Ptr axisgroup_hdl, char * axis_type, int axis_type_size)", << "Input string is too short"); 
     60    CTimer::get("XIOS").suspend(); 
     61  } 
     62 
     63  bool cxios_is_defined_axisgroup_axis_type(axisgroup_Ptr axisgroup_hdl) 
     64  { 
     65     CTimer::get("XIOS").resume(); 
     66     bool isDefined = axisgroup_hdl->axis_type.hasInheritedValue(); 
     67     CTimer::get("XIOS").suspend(); 
     68     return isDefined; 
     69  } 
     70 
     71 
    4672  void cxios_set_axisgroup_begin(axisgroup_Ptr axisgroup_hdl, int begin) 
    4773  { 
     
    92118 
    93119 
     120  void cxios_set_axisgroup_bounds_name(axisgroup_Ptr axisgroup_hdl, const char * bounds_name, int bounds_name_size) 
     121  { 
     122    std::string bounds_name_str; 
     123    if (!cstr2string(bounds_name, bounds_name_size, bounds_name_str)) return; 
     124    CTimer::get("XIOS").resume(); 
     125    axisgroup_hdl->bounds_name.setValue(bounds_name_str); 
     126    CTimer::get("XIOS").suspend(); 
     127  } 
     128 
     129  void cxios_get_axisgroup_bounds_name(axisgroup_Ptr axisgroup_hdl, char * bounds_name, int bounds_name_size) 
     130  { 
     131    CTimer::get("XIOS").resume(); 
     132    if (!string_copy(axisgroup_hdl->bounds_name.getInheritedValue(), bounds_name, bounds_name_size)) 
     133      ERROR("void cxios_get_axisgroup_bounds_name(axisgroup_Ptr axisgroup_hdl, char * bounds_name, int bounds_name_size)", << "Input string is too short"); 
     134    CTimer::get("XIOS").suspend(); 
     135  } 
     136 
     137  bool cxios_is_defined_axisgroup_bounds_name(axisgroup_Ptr axisgroup_hdl) 
     138  { 
     139     CTimer::get("XIOS").resume(); 
     140     bool isDefined = axisgroup_hdl->bounds_name.hasInheritedValue(); 
     141     CTimer::get("XIOS").suspend(); 
     142     return isDefined; 
     143  } 
     144 
     145 
     146  void cxios_set_axisgroup_comment(axisgroup_Ptr axisgroup_hdl, const char * comment, int comment_size) 
     147  { 
     148    std::string comment_str; 
     149    if (!cstr2string(comment, comment_size, comment_str)) return; 
     150    CTimer::get("XIOS").resume(); 
     151    axisgroup_hdl->comment.setValue(comment_str); 
     152    CTimer::get("XIOS").suspend(); 
     153  } 
     154 
     155  void cxios_get_axisgroup_comment(axisgroup_Ptr axisgroup_hdl, char * comment, int comment_size) 
     156  { 
     157    CTimer::get("XIOS").resume(); 
     158    if (!string_copy(axisgroup_hdl->comment.getInheritedValue(), comment, comment_size)) 
     159      ERROR("void cxios_get_axisgroup_comment(axisgroup_Ptr axisgroup_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     160    CTimer::get("XIOS").suspend(); 
     161  } 
     162 
     163  bool cxios_is_defined_axisgroup_comment(axisgroup_Ptr axisgroup_hdl) 
     164  { 
     165     CTimer::get("XIOS").resume(); 
     166     bool isDefined = axisgroup_hdl->comment.hasInheritedValue(); 
     167     CTimer::get("XIOS").suspend(); 
     168     return isDefined; 
     169  } 
     170 
     171 
    94172  void cxios_set_axisgroup_data_begin(axisgroup_Ptr axisgroup_hdl, int data_begin) 
    95173  { 
     
    158236     CTimer::get("XIOS").resume(); 
    159237     bool isDefined = axisgroup_hdl->data_n.hasInheritedValue(); 
     238     CTimer::get("XIOS").suspend(); 
     239     return isDefined; 
     240  } 
     241 
     242 
     243  void cxios_set_axisgroup_dim_name(axisgroup_Ptr axisgroup_hdl, const char * dim_name, int dim_name_size) 
     244  { 
     245    std::string dim_name_str; 
     246    if (!cstr2string(dim_name, dim_name_size, dim_name_str)) return; 
     247    CTimer::get("XIOS").resume(); 
     248    axisgroup_hdl->dim_name.setValue(dim_name_str); 
     249    CTimer::get("XIOS").suspend(); 
     250  } 
     251 
     252  void cxios_get_axisgroup_dim_name(axisgroup_Ptr axisgroup_hdl, char * dim_name, int dim_name_size) 
     253  { 
     254    CTimer::get("XIOS").resume(); 
     255    if (!string_copy(axisgroup_hdl->dim_name.getInheritedValue(), dim_name, dim_name_size)) 
     256      ERROR("void cxios_get_axisgroup_dim_name(axisgroup_Ptr axisgroup_hdl, char * dim_name, int dim_name_size)", << "Input string is too short"); 
     257    CTimer::get("XIOS").suspend(); 
     258  } 
     259 
     260  bool cxios_is_defined_axisgroup_dim_name(axisgroup_Ptr axisgroup_hdl) 
     261  { 
     262     CTimer::get("XIOS").resume(); 
     263     bool isDefined = axisgroup_hdl->dim_name.hasInheritedValue(); 
     264     CTimer::get("XIOS").suspend(); 
     265     return isDefined; 
     266  } 
     267 
     268 
     269  void cxios_set_axisgroup_formula(axisgroup_Ptr axisgroup_hdl, const char * formula, int formula_size) 
     270  { 
     271    std::string formula_str; 
     272    if (!cstr2string(formula, formula_size, formula_str)) return; 
     273    CTimer::get("XIOS").resume(); 
     274    axisgroup_hdl->formula.setValue(formula_str); 
     275    CTimer::get("XIOS").suspend(); 
     276  } 
     277 
     278  void cxios_get_axisgroup_formula(axisgroup_Ptr axisgroup_hdl, char * formula, int formula_size) 
     279  { 
     280    CTimer::get("XIOS").resume(); 
     281    if (!string_copy(axisgroup_hdl->formula.getInheritedValue(), formula, formula_size)) 
     282      ERROR("void cxios_get_axisgroup_formula(axisgroup_Ptr axisgroup_hdl, char * formula, int formula_size)", << "Input string is too short"); 
     283    CTimer::get("XIOS").suspend(); 
     284  } 
     285 
     286  bool cxios_is_defined_axisgroup_formula(axisgroup_Ptr axisgroup_hdl) 
     287  { 
     288     CTimer::get("XIOS").resume(); 
     289     bool isDefined = axisgroup_hdl->formula.hasInheritedValue(); 
     290     CTimer::get("XIOS").suspend(); 
     291     return isDefined; 
     292  } 
     293 
     294 
     295  void cxios_set_axisgroup_formula_bounds(axisgroup_Ptr axisgroup_hdl, const char * formula_bounds, int formula_bounds_size) 
     296  { 
     297    std::string formula_bounds_str; 
     298    if (!cstr2string(formula_bounds, formula_bounds_size, formula_bounds_str)) return; 
     299    CTimer::get("XIOS").resume(); 
     300    axisgroup_hdl->formula_bounds.setValue(formula_bounds_str); 
     301    CTimer::get("XIOS").suspend(); 
     302  } 
     303 
     304  void cxios_get_axisgroup_formula_bounds(axisgroup_Ptr axisgroup_hdl, char * formula_bounds, int formula_bounds_size) 
     305  { 
     306    CTimer::get("XIOS").resume(); 
     307    if (!string_copy(axisgroup_hdl->formula_bounds.getInheritedValue(), formula_bounds, formula_bounds_size)) 
     308      ERROR("void cxios_get_axisgroup_formula_bounds(axisgroup_Ptr axisgroup_hdl, char * formula_bounds, int formula_bounds_size)", << "Input string is too short"); 
     309    CTimer::get("XIOS").suspend(); 
     310  } 
     311 
     312  bool cxios_is_defined_axisgroup_formula_bounds(axisgroup_Ptr axisgroup_hdl) 
     313  { 
     314     CTimer::get("XIOS").resume(); 
     315     bool isDefined = axisgroup_hdl->formula_bounds.hasInheritedValue(); 
     316     CTimer::get("XIOS").suspend(); 
     317     return isDefined; 
     318  } 
     319 
     320 
     321  void cxios_set_axisgroup_formula_term(axisgroup_Ptr axisgroup_hdl, const char * formula_term, int formula_term_size) 
     322  { 
     323    std::string formula_term_str; 
     324    if (!cstr2string(formula_term, formula_term_size, formula_term_str)) return; 
     325    CTimer::get("XIOS").resume(); 
     326    axisgroup_hdl->formula_term.setValue(formula_term_str); 
     327    CTimer::get("XIOS").suspend(); 
     328  } 
     329 
     330  void cxios_get_axisgroup_formula_term(axisgroup_Ptr axisgroup_hdl, char * formula_term, int formula_term_size) 
     331  { 
     332    CTimer::get("XIOS").resume(); 
     333    if (!string_copy(axisgroup_hdl->formula_term.getInheritedValue(), formula_term, formula_term_size)) 
     334      ERROR("void cxios_get_axisgroup_formula_term(axisgroup_Ptr axisgroup_hdl, char * formula_term, int formula_term_size)", << "Input string is too short"); 
     335    CTimer::get("XIOS").suspend(); 
     336  } 
     337 
     338  bool cxios_is_defined_axisgroup_formula_term(axisgroup_Ptr axisgroup_hdl) 
     339  { 
     340     CTimer::get("XIOS").resume(); 
     341     bool isDefined = axisgroup_hdl->formula_term.hasInheritedValue(); 
     342     CTimer::get("XIOS").suspend(); 
     343     return isDefined; 
     344  } 
     345 
     346 
     347  void cxios_set_axisgroup_formula_term_bounds(axisgroup_Ptr axisgroup_hdl, const char * formula_term_bounds, int formula_term_bounds_size) 
     348  { 
     349    std::string formula_term_bounds_str; 
     350    if (!cstr2string(formula_term_bounds, formula_term_bounds_size, formula_term_bounds_str)) return; 
     351    CTimer::get("XIOS").resume(); 
     352    axisgroup_hdl->formula_term_bounds.setValue(formula_term_bounds_str); 
     353    CTimer::get("XIOS").suspend(); 
     354  } 
     355 
     356  void cxios_get_axisgroup_formula_term_bounds(axisgroup_Ptr axisgroup_hdl, char * formula_term_bounds, int formula_term_bounds_size) 
     357  { 
     358    CTimer::get("XIOS").resume(); 
     359    if (!string_copy(axisgroup_hdl->formula_term_bounds.getInheritedValue(), formula_term_bounds, formula_term_bounds_size)) 
     360      ERROR("void cxios_get_axisgroup_formula_term_bounds(axisgroup_Ptr axisgroup_hdl, char * formula_term_bounds, int formula_term_bounds_size)", << "Input string is too short"); 
     361    CTimer::get("XIOS").suspend(); 
     362  } 
     363 
     364  bool cxios_is_defined_axisgroup_formula_term_bounds(axisgroup_Ptr axisgroup_hdl) 
     365  { 
     366     CTimer::get("XIOS").resume(); 
     367     bool isDefined = axisgroup_hdl->formula_term_bounds.hasInheritedValue(); 
    160368     CTimer::get("XIOS").suspend(); 
    161369     return isDefined; 
  • XIOS/dev/branch_openmp/src/interface/c_attr/iccalendar_wrapper_attr.cpp

    r674 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    1717{ 
    1818  typedef xios::CCalendarWrapper* calendar_wrapper_Ptr; 
     19 
     20  void cxios_set_calendar_wrapper_comment(calendar_wrapper_Ptr calendar_wrapper_hdl, const char * comment, int comment_size) 
     21  { 
     22    std::string comment_str; 
     23    if (!cstr2string(comment, comment_size, comment_str)) return; 
     24    CTimer::get("XIOS").resume(); 
     25    calendar_wrapper_hdl->comment.setValue(comment_str); 
     26    CTimer::get("XIOS").suspend(); 
     27  } 
     28 
     29  void cxios_get_calendar_wrapper_comment(calendar_wrapper_Ptr calendar_wrapper_hdl, char * comment, int comment_size) 
     30  { 
     31    CTimer::get("XIOS").resume(); 
     32    if (!string_copy(calendar_wrapper_hdl->comment.getInheritedValue(), comment, comment_size)) 
     33      ERROR("void cxios_get_calendar_wrapper_comment(calendar_wrapper_Ptr calendar_wrapper_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     34    CTimer::get("XIOS").suspend(); 
     35  } 
     36 
     37  bool cxios_is_defined_calendar_wrapper_comment(calendar_wrapper_Ptr calendar_wrapper_hdl) 
     38  { 
     39     CTimer::get("XIOS").resume(); 
     40     bool isDefined = calendar_wrapper_hdl->comment.hasInheritedValue(); 
     41     CTimer::get("XIOS").suspend(); 
     42     return isDefined; 
     43  } 
     44 
    1945 
    2046  void cxios_set_calendar_wrapper_day_length(calendar_wrapper_Ptr calendar_wrapper_hdl, int day_length) 
  • XIOS/dev/branch_openmp/src/interface/c_attr/iccompute_connectivity_domain_attr.cpp

    r934 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/iccontext_attr.cpp

    r591 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icdomain_attr.cpp

    r1052 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    9393 
    9494 
     95  void cxios_set_domain_bounds_lat_name(domain_Ptr domain_hdl, const char * bounds_lat_name, int bounds_lat_name_size) 
     96  { 
     97    std::string bounds_lat_name_str; 
     98    if (!cstr2string(bounds_lat_name, bounds_lat_name_size, bounds_lat_name_str)) return; 
     99    CTimer::get("XIOS").resume(); 
     100    domain_hdl->bounds_lat_name.setValue(bounds_lat_name_str); 
     101    CTimer::get("XIOS").suspend(); 
     102  } 
     103 
     104  void cxios_get_domain_bounds_lat_name(domain_Ptr domain_hdl, char * bounds_lat_name, int bounds_lat_name_size) 
     105  { 
     106    CTimer::get("XIOS").resume(); 
     107    if (!string_copy(domain_hdl->bounds_lat_name.getInheritedValue(), bounds_lat_name, bounds_lat_name_size)) 
     108      ERROR("void cxios_get_domain_bounds_lat_name(domain_Ptr domain_hdl, char * bounds_lat_name, int bounds_lat_name_size)", << "Input string is too short"); 
     109    CTimer::get("XIOS").suspend(); 
     110  } 
     111 
     112  bool cxios_is_defined_domain_bounds_lat_name(domain_Ptr domain_hdl) 
     113  { 
     114     CTimer::get("XIOS").resume(); 
     115     bool isDefined = domain_hdl->bounds_lat_name.hasInheritedValue(); 
     116     CTimer::get("XIOS").suspend(); 
     117     return isDefined; 
     118  } 
     119 
     120 
    95121  void cxios_set_domain_bounds_lon_1d(domain_Ptr domain_hdl, double* bounds_lon_1d, int* extent) 
    96122  { 
     
    143169 
    144170 
     171  void cxios_set_domain_bounds_lon_name(domain_Ptr domain_hdl, const char * bounds_lon_name, int bounds_lon_name_size) 
     172  { 
     173    std::string bounds_lon_name_str; 
     174    if (!cstr2string(bounds_lon_name, bounds_lon_name_size, bounds_lon_name_str)) return; 
     175    CTimer::get("XIOS").resume(); 
     176    domain_hdl->bounds_lon_name.setValue(bounds_lon_name_str); 
     177    CTimer::get("XIOS").suspend(); 
     178  } 
     179 
     180  void cxios_get_domain_bounds_lon_name(domain_Ptr domain_hdl, char * bounds_lon_name, int bounds_lon_name_size) 
     181  { 
     182    CTimer::get("XIOS").resume(); 
     183    if (!string_copy(domain_hdl->bounds_lon_name.getInheritedValue(), bounds_lon_name, bounds_lon_name_size)) 
     184      ERROR("void cxios_get_domain_bounds_lon_name(domain_Ptr domain_hdl, char * bounds_lon_name, int bounds_lon_name_size)", << "Input string is too short"); 
     185    CTimer::get("XIOS").suspend(); 
     186  } 
     187 
     188  bool cxios_is_defined_domain_bounds_lon_name(domain_Ptr domain_hdl) 
     189  { 
     190     CTimer::get("XIOS").resume(); 
     191     bool isDefined = domain_hdl->bounds_lon_name.hasInheritedValue(); 
     192     CTimer::get("XIOS").suspend(); 
     193     return isDefined; 
     194  } 
     195 
     196 
     197  void cxios_set_domain_comment(domain_Ptr domain_hdl, const char * comment, int comment_size) 
     198  { 
     199    std::string comment_str; 
     200    if (!cstr2string(comment, comment_size, comment_str)) return; 
     201    CTimer::get("XIOS").resume(); 
     202    domain_hdl->comment.setValue(comment_str); 
     203    CTimer::get("XIOS").suspend(); 
     204  } 
     205 
     206  void cxios_get_domain_comment(domain_Ptr domain_hdl, char * comment, int comment_size) 
     207  { 
     208    CTimer::get("XIOS").resume(); 
     209    if (!string_copy(domain_hdl->comment.getInheritedValue(), comment, comment_size)) 
     210      ERROR("void cxios_get_domain_comment(domain_Ptr domain_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     211    CTimer::get("XIOS").suspend(); 
     212  } 
     213 
     214  bool cxios_is_defined_domain_comment(domain_Ptr domain_hdl) 
     215  { 
     216     CTimer::get("XIOS").resume(); 
     217     bool isDefined = domain_hdl->comment.hasInheritedValue(); 
     218     CTimer::get("XIOS").suspend(); 
     219     return isDefined; 
     220  } 
     221 
     222 
    145223  void cxios_set_domain_data_dim(domain_Ptr domain_hdl, int data_dim) 
    146224  { 
     
    308386 
    309387 
     388  void cxios_set_domain_dim_i_name(domain_Ptr domain_hdl, const char * dim_i_name, int dim_i_name_size) 
     389  { 
     390    std::string dim_i_name_str; 
     391    if (!cstr2string(dim_i_name, dim_i_name_size, dim_i_name_str)) return; 
     392    CTimer::get("XIOS").resume(); 
     393    domain_hdl->dim_i_name.setValue(dim_i_name_str); 
     394    CTimer::get("XIOS").suspend(); 
     395  } 
     396 
     397  void cxios_get_domain_dim_i_name(domain_Ptr domain_hdl, char * dim_i_name, int dim_i_name_size) 
     398  { 
     399    CTimer::get("XIOS").resume(); 
     400    if (!string_copy(domain_hdl->dim_i_name.getInheritedValue(), dim_i_name, dim_i_name_size)) 
     401      ERROR("void cxios_get_domain_dim_i_name(domain_Ptr domain_hdl, char * dim_i_name, int dim_i_name_size)", << "Input string is too short"); 
     402    CTimer::get("XIOS").suspend(); 
     403  } 
     404 
     405  bool cxios_is_defined_domain_dim_i_name(domain_Ptr domain_hdl) 
     406  { 
     407     CTimer::get("XIOS").resume(); 
     408     bool isDefined = domain_hdl->dim_i_name.hasInheritedValue(); 
     409     CTimer::get("XIOS").suspend(); 
     410     return isDefined; 
     411  } 
     412 
     413 
     414  void cxios_set_domain_dim_j_name(domain_Ptr domain_hdl, const char * dim_j_name, int dim_j_name_size) 
     415  { 
     416    std::string dim_j_name_str; 
     417    if (!cstr2string(dim_j_name, dim_j_name_size, dim_j_name_str)) return; 
     418    CTimer::get("XIOS").resume(); 
     419    domain_hdl->dim_j_name.setValue(dim_j_name_str); 
     420    CTimer::get("XIOS").suspend(); 
     421  } 
     422 
     423  void cxios_get_domain_dim_j_name(domain_Ptr domain_hdl, char * dim_j_name, int dim_j_name_size) 
     424  { 
     425    CTimer::get("XIOS").resume(); 
     426    if (!string_copy(domain_hdl->dim_j_name.getInheritedValue(), dim_j_name, dim_j_name_size)) 
     427      ERROR("void cxios_get_domain_dim_j_name(domain_Ptr domain_hdl, char * dim_j_name, int dim_j_name_size)", << "Input string is too short"); 
     428    CTimer::get("XIOS").suspend(); 
     429  } 
     430 
     431  bool cxios_is_defined_domain_dim_j_name(domain_Ptr domain_hdl) 
     432  { 
     433     CTimer::get("XIOS").resume(); 
     434     bool isDefined = domain_hdl->dim_j_name.hasInheritedValue(); 
     435     CTimer::get("XIOS").suspend(); 
     436     return isDefined; 
     437  } 
     438 
     439 
    310440  void cxios_set_domain_domain_ref(domain_Ptr domain_hdl, const char * domain_ref, int domain_ref_size) 
    311441  { 
     
    430560 
    431561 
     562  void cxios_set_domain_lat_name(domain_Ptr domain_hdl, const char * lat_name, int lat_name_size) 
     563  { 
     564    std::string lat_name_str; 
     565    if (!cstr2string(lat_name, lat_name_size, lat_name_str)) return; 
     566    CTimer::get("XIOS").resume(); 
     567    domain_hdl->lat_name.setValue(lat_name_str); 
     568    CTimer::get("XIOS").suspend(); 
     569  } 
     570 
     571  void cxios_get_domain_lat_name(domain_Ptr domain_hdl, char * lat_name, int lat_name_size) 
     572  { 
     573    CTimer::get("XIOS").resume(); 
     574    if (!string_copy(domain_hdl->lat_name.getInheritedValue(), lat_name, lat_name_size)) 
     575      ERROR("void cxios_get_domain_lat_name(domain_Ptr domain_hdl, char * lat_name, int lat_name_size)", << "Input string is too short"); 
     576    CTimer::get("XIOS").suspend(); 
     577  } 
     578 
     579  bool cxios_is_defined_domain_lat_name(domain_Ptr domain_hdl) 
     580  { 
     581     CTimer::get("XIOS").resume(); 
     582     bool isDefined = domain_hdl->lat_name.hasInheritedValue(); 
     583     CTimer::get("XIOS").suspend(); 
     584     return isDefined; 
     585  } 
     586 
     587 
    432588  void cxios_set_domain_latvalue_1d(domain_Ptr domain_hdl, double* latvalue_1d, int* extent) 
    433589  { 
     
    480636 
    481637 
     638  void cxios_set_domain_lon_name(domain_Ptr domain_hdl, const char * lon_name, int lon_name_size) 
     639  { 
     640    std::string lon_name_str; 
     641    if (!cstr2string(lon_name, lon_name_size, lon_name_str)) return; 
     642    CTimer::get("XIOS").resume(); 
     643    domain_hdl->lon_name.setValue(lon_name_str); 
     644    CTimer::get("XIOS").suspend(); 
     645  } 
     646 
     647  void cxios_get_domain_lon_name(domain_Ptr domain_hdl, char * lon_name, int lon_name_size) 
     648  { 
     649    CTimer::get("XIOS").resume(); 
     650    if (!string_copy(domain_hdl->lon_name.getInheritedValue(), lon_name, lon_name_size)) 
     651      ERROR("void cxios_get_domain_lon_name(domain_Ptr domain_hdl, char * lon_name, int lon_name_size)", << "Input string is too short"); 
     652    CTimer::get("XIOS").suspend(); 
     653  } 
     654 
     655  bool cxios_is_defined_domain_lon_name(domain_Ptr domain_hdl) 
     656  { 
     657     CTimer::get("XIOS").resume(); 
     658     bool isDefined = domain_hdl->lon_name.hasInheritedValue(); 
     659     CTimer::get("XIOS").suspend(); 
     660     return isDefined; 
     661  } 
     662 
     663 
    482664  void cxios_set_domain_long_name(domain_Ptr domain_hdl, const char * long_name, int long_name_size) 
    483665  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icdomaingroup_attr.cpp

    r1052 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    9393 
    9494 
     95  void cxios_set_domaingroup_bounds_lat_name(domaingroup_Ptr domaingroup_hdl, const char * bounds_lat_name, int bounds_lat_name_size) 
     96  { 
     97    std::string bounds_lat_name_str; 
     98    if (!cstr2string(bounds_lat_name, bounds_lat_name_size, bounds_lat_name_str)) return; 
     99    CTimer::get("XIOS").resume(); 
     100    domaingroup_hdl->bounds_lat_name.setValue(bounds_lat_name_str); 
     101    CTimer::get("XIOS").suspend(); 
     102  } 
     103 
     104  void cxios_get_domaingroup_bounds_lat_name(domaingroup_Ptr domaingroup_hdl, char * bounds_lat_name, int bounds_lat_name_size) 
     105  { 
     106    CTimer::get("XIOS").resume(); 
     107    if (!string_copy(domaingroup_hdl->bounds_lat_name.getInheritedValue(), bounds_lat_name, bounds_lat_name_size)) 
     108      ERROR("void cxios_get_domaingroup_bounds_lat_name(domaingroup_Ptr domaingroup_hdl, char * bounds_lat_name, int bounds_lat_name_size)", << "Input string is too short"); 
     109    CTimer::get("XIOS").suspend(); 
     110  } 
     111 
     112  bool cxios_is_defined_domaingroup_bounds_lat_name(domaingroup_Ptr domaingroup_hdl) 
     113  { 
     114     CTimer::get("XIOS").resume(); 
     115     bool isDefined = domaingroup_hdl->bounds_lat_name.hasInheritedValue(); 
     116     CTimer::get("XIOS").suspend(); 
     117     return isDefined; 
     118  } 
     119 
     120 
    95121  void cxios_set_domaingroup_bounds_lon_1d(domaingroup_Ptr domaingroup_hdl, double* bounds_lon_1d, int* extent) 
    96122  { 
     
    143169 
    144170 
     171  void cxios_set_domaingroup_bounds_lon_name(domaingroup_Ptr domaingroup_hdl, const char * bounds_lon_name, int bounds_lon_name_size) 
     172  { 
     173    std::string bounds_lon_name_str; 
     174    if (!cstr2string(bounds_lon_name, bounds_lon_name_size, bounds_lon_name_str)) return; 
     175    CTimer::get("XIOS").resume(); 
     176    domaingroup_hdl->bounds_lon_name.setValue(bounds_lon_name_str); 
     177    CTimer::get("XIOS").suspend(); 
     178  } 
     179 
     180  void cxios_get_domaingroup_bounds_lon_name(domaingroup_Ptr domaingroup_hdl, char * bounds_lon_name, int bounds_lon_name_size) 
     181  { 
     182    CTimer::get("XIOS").resume(); 
     183    if (!string_copy(domaingroup_hdl->bounds_lon_name.getInheritedValue(), bounds_lon_name, bounds_lon_name_size)) 
     184      ERROR("void cxios_get_domaingroup_bounds_lon_name(domaingroup_Ptr domaingroup_hdl, char * bounds_lon_name, int bounds_lon_name_size)", << "Input string is too short"); 
     185    CTimer::get("XIOS").suspend(); 
     186  } 
     187 
     188  bool cxios_is_defined_domaingroup_bounds_lon_name(domaingroup_Ptr domaingroup_hdl) 
     189  { 
     190     CTimer::get("XIOS").resume(); 
     191     bool isDefined = domaingroup_hdl->bounds_lon_name.hasInheritedValue(); 
     192     CTimer::get("XIOS").suspend(); 
     193     return isDefined; 
     194  } 
     195 
     196 
     197  void cxios_set_domaingroup_comment(domaingroup_Ptr domaingroup_hdl, const char * comment, int comment_size) 
     198  { 
     199    std::string comment_str; 
     200    if (!cstr2string(comment, comment_size, comment_str)) return; 
     201    CTimer::get("XIOS").resume(); 
     202    domaingroup_hdl->comment.setValue(comment_str); 
     203    CTimer::get("XIOS").suspend(); 
     204  } 
     205 
     206  void cxios_get_domaingroup_comment(domaingroup_Ptr domaingroup_hdl, char * comment, int comment_size) 
     207  { 
     208    CTimer::get("XIOS").resume(); 
     209    if (!string_copy(domaingroup_hdl->comment.getInheritedValue(), comment, comment_size)) 
     210      ERROR("void cxios_get_domaingroup_comment(domaingroup_Ptr domaingroup_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     211    CTimer::get("XIOS").suspend(); 
     212  } 
     213 
     214  bool cxios_is_defined_domaingroup_comment(domaingroup_Ptr domaingroup_hdl) 
     215  { 
     216     CTimer::get("XIOS").resume(); 
     217     bool isDefined = domaingroup_hdl->comment.hasInheritedValue(); 
     218     CTimer::get("XIOS").suspend(); 
     219     return isDefined; 
     220  } 
     221 
     222 
    145223  void cxios_set_domaingroup_data_dim(domaingroup_Ptr domaingroup_hdl, int data_dim) 
    146224  { 
     
    308386 
    309387 
     388  void cxios_set_domaingroup_dim_i_name(domaingroup_Ptr domaingroup_hdl, const char * dim_i_name, int dim_i_name_size) 
     389  { 
     390    std::string dim_i_name_str; 
     391    if (!cstr2string(dim_i_name, dim_i_name_size, dim_i_name_str)) return; 
     392    CTimer::get("XIOS").resume(); 
     393    domaingroup_hdl->dim_i_name.setValue(dim_i_name_str); 
     394    CTimer::get("XIOS").suspend(); 
     395  } 
     396 
     397  void cxios_get_domaingroup_dim_i_name(domaingroup_Ptr domaingroup_hdl, char * dim_i_name, int dim_i_name_size) 
     398  { 
     399    CTimer::get("XIOS").resume(); 
     400    if (!string_copy(domaingroup_hdl->dim_i_name.getInheritedValue(), dim_i_name, dim_i_name_size)) 
     401      ERROR("void cxios_get_domaingroup_dim_i_name(domaingroup_Ptr domaingroup_hdl, char * dim_i_name, int dim_i_name_size)", << "Input string is too short"); 
     402    CTimer::get("XIOS").suspend(); 
     403  } 
     404 
     405  bool cxios_is_defined_domaingroup_dim_i_name(domaingroup_Ptr domaingroup_hdl) 
     406  { 
     407     CTimer::get("XIOS").resume(); 
     408     bool isDefined = domaingroup_hdl->dim_i_name.hasInheritedValue(); 
     409     CTimer::get("XIOS").suspend(); 
     410     return isDefined; 
     411  } 
     412 
     413 
     414  void cxios_set_domaingroup_dim_j_name(domaingroup_Ptr domaingroup_hdl, const char * dim_j_name, int dim_j_name_size) 
     415  { 
     416    std::string dim_j_name_str; 
     417    if (!cstr2string(dim_j_name, dim_j_name_size, dim_j_name_str)) return; 
     418    CTimer::get("XIOS").resume(); 
     419    domaingroup_hdl->dim_j_name.setValue(dim_j_name_str); 
     420    CTimer::get("XIOS").suspend(); 
     421  } 
     422 
     423  void cxios_get_domaingroup_dim_j_name(domaingroup_Ptr domaingroup_hdl, char * dim_j_name, int dim_j_name_size) 
     424  { 
     425    CTimer::get("XIOS").resume(); 
     426    if (!string_copy(domaingroup_hdl->dim_j_name.getInheritedValue(), dim_j_name, dim_j_name_size)) 
     427      ERROR("void cxios_get_domaingroup_dim_j_name(domaingroup_Ptr domaingroup_hdl, char * dim_j_name, int dim_j_name_size)", << "Input string is too short"); 
     428    CTimer::get("XIOS").suspend(); 
     429  } 
     430 
     431  bool cxios_is_defined_domaingroup_dim_j_name(domaingroup_Ptr domaingroup_hdl) 
     432  { 
     433     CTimer::get("XIOS").resume(); 
     434     bool isDefined = domaingroup_hdl->dim_j_name.hasInheritedValue(); 
     435     CTimer::get("XIOS").suspend(); 
     436     return isDefined; 
     437  } 
     438 
     439 
    310440  void cxios_set_domaingroup_domain_ref(domaingroup_Ptr domaingroup_hdl, const char * domain_ref, int domain_ref_size) 
    311441  { 
     
    456586 
    457587 
     588  void cxios_set_domaingroup_lat_name(domaingroup_Ptr domaingroup_hdl, const char * lat_name, int lat_name_size) 
     589  { 
     590    std::string lat_name_str; 
     591    if (!cstr2string(lat_name, lat_name_size, lat_name_str)) return; 
     592    CTimer::get("XIOS").resume(); 
     593    domaingroup_hdl->lat_name.setValue(lat_name_str); 
     594    CTimer::get("XIOS").suspend(); 
     595  } 
     596 
     597  void cxios_get_domaingroup_lat_name(domaingroup_Ptr domaingroup_hdl, char * lat_name, int lat_name_size) 
     598  { 
     599    CTimer::get("XIOS").resume(); 
     600    if (!string_copy(domaingroup_hdl->lat_name.getInheritedValue(), lat_name, lat_name_size)) 
     601      ERROR("void cxios_get_domaingroup_lat_name(domaingroup_Ptr domaingroup_hdl, char * lat_name, int lat_name_size)", << "Input string is too short"); 
     602    CTimer::get("XIOS").suspend(); 
     603  } 
     604 
     605  bool cxios_is_defined_domaingroup_lat_name(domaingroup_Ptr domaingroup_hdl) 
     606  { 
     607     CTimer::get("XIOS").resume(); 
     608     bool isDefined = domaingroup_hdl->lat_name.hasInheritedValue(); 
     609     CTimer::get("XIOS").suspend(); 
     610     return isDefined; 
     611  } 
     612 
     613 
    458614  void cxios_set_domaingroup_latvalue_1d(domaingroup_Ptr domaingroup_hdl, double* latvalue_1d, int* extent) 
    459615  { 
     
    506662 
    507663 
     664  void cxios_set_domaingroup_lon_name(domaingroup_Ptr domaingroup_hdl, const char * lon_name, int lon_name_size) 
     665  { 
     666    std::string lon_name_str; 
     667    if (!cstr2string(lon_name, lon_name_size, lon_name_str)) return; 
     668    CTimer::get("XIOS").resume(); 
     669    domaingroup_hdl->lon_name.setValue(lon_name_str); 
     670    CTimer::get("XIOS").suspend(); 
     671  } 
     672 
     673  void cxios_get_domaingroup_lon_name(domaingroup_Ptr domaingroup_hdl, char * lon_name, int lon_name_size) 
     674  { 
     675    CTimer::get("XIOS").resume(); 
     676    if (!string_copy(domaingroup_hdl->lon_name.getInheritedValue(), lon_name, lon_name_size)) 
     677      ERROR("void cxios_get_domaingroup_lon_name(domaingroup_Ptr domaingroup_hdl, char * lon_name, int lon_name_size)", << "Input string is too short"); 
     678    CTimer::get("XIOS").suspend(); 
     679  } 
     680 
     681  bool cxios_is_defined_domaingroup_lon_name(domaingroup_Ptr domaingroup_hdl) 
     682  { 
     683     CTimer::get("XIOS").resume(); 
     684     bool isDefined = domaingroup_hdl->lon_name.hasInheritedValue(); 
     685     CTimer::get("XIOS").suspend(); 
     686     return isDefined; 
     687  } 
     688 
     689 
    508690  void cxios_set_domaingroup_long_name(domaingroup_Ptr domaingroup_hdl, const char * long_name, int long_name_size) 
    509691  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icexpand_domain_attr.cpp

    r1078 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icextract_axis_to_scalar_attr.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icextract_domain_to_axis_attr.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icfield_attr.cpp

    r1205 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    137137     CTimer::get("XIOS").resume(); 
    138138     bool isDefined = field_hdl->check_if_active.hasInheritedValue(); 
     139     CTimer::get("XIOS").suspend(); 
     140     return isDefined; 
     141  } 
     142 
     143 
     144  void cxios_set_field_comment(field_Ptr field_hdl, const char * comment, int comment_size) 
     145  { 
     146    std::string comment_str; 
     147    if (!cstr2string(comment, comment_size, comment_str)) return; 
     148    CTimer::get("XIOS").resume(); 
     149    field_hdl->comment.setValue(comment_str); 
     150    CTimer::get("XIOS").suspend(); 
     151  } 
     152 
     153  void cxios_get_field_comment(field_Ptr field_hdl, char * comment, int comment_size) 
     154  { 
     155    CTimer::get("XIOS").resume(); 
     156    if (!string_copy(field_hdl->comment.getInheritedValue(), comment, comment_size)) 
     157      ERROR("void cxios_get_field_comment(field_Ptr field_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     158    CTimer::get("XIOS").suspend(); 
     159  } 
     160 
     161  bool cxios_is_defined_field_comment(field_Ptr field_hdl) 
     162  { 
     163     CTimer::get("XIOS").resume(); 
     164     bool isDefined = field_hdl->comment.hasInheritedValue(); 
    139165     CTimer::get("XIOS").suspend(); 
    140166     return isDefined; 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icfieldgroup_attr.cpp

    r1205 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    137137     CTimer::get("XIOS").resume(); 
    138138     bool isDefined = fieldgroup_hdl->check_if_active.hasInheritedValue(); 
     139     CTimer::get("XIOS").suspend(); 
     140     return isDefined; 
     141  } 
     142 
     143 
     144  void cxios_set_fieldgroup_comment(fieldgroup_Ptr fieldgroup_hdl, const char * comment, int comment_size) 
     145  { 
     146    std::string comment_str; 
     147    if (!cstr2string(comment, comment_size, comment_str)) return; 
     148    CTimer::get("XIOS").resume(); 
     149    fieldgroup_hdl->comment.setValue(comment_str); 
     150    CTimer::get("XIOS").suspend(); 
     151  } 
     152 
     153  void cxios_get_fieldgroup_comment(fieldgroup_Ptr fieldgroup_hdl, char * comment, int comment_size) 
     154  { 
     155    CTimer::get("XIOS").resume(); 
     156    if (!string_copy(fieldgroup_hdl->comment.getInheritedValue(), comment, comment_size)) 
     157      ERROR("void cxios_get_fieldgroup_comment(fieldgroup_Ptr fieldgroup_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     158    CTimer::get("XIOS").suspend(); 
     159  } 
     160 
     161  bool cxios_is_defined_fieldgroup_comment(fieldgroup_Ptr fieldgroup_hdl) 
     162  { 
     163     CTimer::get("XIOS").resume(); 
     164     bool isDefined = fieldgroup_hdl->comment.hasInheritedValue(); 
    139165     CTimer::get("XIOS").suspend(); 
    140166     return isDefined; 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icfile_attr.cpp

    r1205 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    3636     CTimer::get("XIOS").resume(); 
    3737     bool isDefined = file_hdl->append.hasInheritedValue(); 
     38     CTimer::get("XIOS").suspend(); 
     39     return isDefined; 
     40  } 
     41 
     42 
     43  void cxios_set_file_comment(file_Ptr file_hdl, const char * comment, int comment_size) 
     44  { 
     45    std::string comment_str; 
     46    if (!cstr2string(comment, comment_size, comment_str)) return; 
     47    CTimer::get("XIOS").resume(); 
     48    file_hdl->comment.setValue(comment_str); 
     49    CTimer::get("XIOS").suspend(); 
     50  } 
     51 
     52  void cxios_get_file_comment(file_Ptr file_hdl, char * comment, int comment_size) 
     53  { 
     54    CTimer::get("XIOS").resume(); 
     55    if (!string_copy(file_hdl->comment.getInheritedValue(), comment, comment_size)) 
     56      ERROR("void cxios_get_file_comment(file_Ptr file_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     57    CTimer::get("XIOS").suspend(); 
     58  } 
     59 
     60  bool cxios_is_defined_file_comment(file_Ptr file_hdl) 
     61  { 
     62     CTimer::get("XIOS").resume(); 
     63     bool isDefined = file_hdl->comment.hasInheritedValue(); 
    3864     CTimer::get("XIOS").suspend(); 
    3965     return isDefined; 
     
    402428 
    403429 
     430  void cxios_set_file_read_metadata_par(file_Ptr file_hdl, bool read_metadata_par) 
     431  { 
     432    CTimer::get("XIOS").resume(); 
     433    file_hdl->read_metadata_par.setValue(read_metadata_par); 
     434    CTimer::get("XIOS").suspend(); 
     435  } 
     436 
     437  void cxios_get_file_read_metadata_par(file_Ptr file_hdl, bool* read_metadata_par) 
     438  { 
     439    CTimer::get("XIOS").resume(); 
     440    *read_metadata_par = file_hdl->read_metadata_par.getInheritedValue(); 
     441    CTimer::get("XIOS").suspend(); 
     442  } 
     443 
     444  bool cxios_is_defined_file_read_metadata_par(file_Ptr file_hdl) 
     445  { 
     446     CTimer::get("XIOS").resume(); 
     447     bool isDefined = file_hdl->read_metadata_par.hasInheritedValue(); 
     448     CTimer::get("XIOS").suspend(); 
     449     return isDefined; 
     450  } 
     451 
     452 
    404453  void cxios_set_file_record_offset(file_Ptr file_hdl, int record_offset) 
    405454  { 
     
    420469     CTimer::get("XIOS").resume(); 
    421470     bool isDefined = file_hdl->record_offset.hasInheritedValue(); 
     471     CTimer::get("XIOS").suspend(); 
     472     return isDefined; 
     473  } 
     474 
     475 
     476  void cxios_set_file_split_end_offset(file_Ptr file_hdl, cxios_duration split_end_offset_c) 
     477  { 
     478    CTimer::get("XIOS").resume(); 
     479    file_hdl->split_end_offset.allocate(); 
     480    CDuration& split_end_offset = file_hdl->split_end_offset.get(); 
     481    split_end_offset.year = split_end_offset_c.year; 
     482    split_end_offset.month = split_end_offset_c.month; 
     483    split_end_offset.day = split_end_offset_c.day; 
     484    split_end_offset.hour = split_end_offset_c.hour; 
     485    split_end_offset.minute = split_end_offset_c.minute; 
     486    split_end_offset.second = split_end_offset_c.second; 
     487    split_end_offset.timestep = split_end_offset_c.timestep; 
     488    CTimer::get("XIOS").suspend(); 
     489  } 
     490 
     491  void cxios_get_file_split_end_offset(file_Ptr file_hdl, cxios_duration* split_end_offset_c) 
     492  { 
     493    CTimer::get("XIOS").resume(); 
     494    CDuration split_end_offset = file_hdl->split_end_offset.getInheritedValue(); 
     495    split_end_offset_c->year = split_end_offset.year; 
     496    split_end_offset_c->month = split_end_offset.month; 
     497    split_end_offset_c->day = split_end_offset.day; 
     498    split_end_offset_c->hour = split_end_offset.hour; 
     499    split_end_offset_c->minute = split_end_offset.minute; 
     500    split_end_offset_c->second = split_end_offset.second; 
     501    split_end_offset_c->timestep = split_end_offset.timestep; 
     502    CTimer::get("XIOS").suspend(); 
     503  } 
     504 
     505  bool cxios_is_defined_file_split_end_offset(file_Ptr file_hdl) 
     506  { 
     507     CTimer::get("XIOS").resume(); 
     508     bool isDefined = file_hdl->split_end_offset.hasInheritedValue(); 
    422509     CTimer::get("XIOS").suspend(); 
    423510     return isDefined; 
     
    489576 
    490577 
     578  void cxios_set_file_split_last_date(file_Ptr file_hdl, const char * split_last_date, int split_last_date_size) 
     579  { 
     580    std::string split_last_date_str; 
     581    if (!cstr2string(split_last_date, split_last_date_size, split_last_date_str)) return; 
     582    CTimer::get("XIOS").resume(); 
     583    file_hdl->split_last_date.setValue(split_last_date_str); 
     584    CTimer::get("XIOS").suspend(); 
     585  } 
     586 
     587  void cxios_get_file_split_last_date(file_Ptr file_hdl, char * split_last_date, int split_last_date_size) 
     588  { 
     589    CTimer::get("XIOS").resume(); 
     590    if (!string_copy(file_hdl->split_last_date.getInheritedValue(), split_last_date, split_last_date_size)) 
     591      ERROR("void cxios_get_file_split_last_date(file_Ptr file_hdl, char * split_last_date, int split_last_date_size)", << "Input string is too short"); 
     592    CTimer::get("XIOS").suspend(); 
     593  } 
     594 
     595  bool cxios_is_defined_file_split_last_date(file_Ptr file_hdl) 
     596  { 
     597     CTimer::get("XIOS").resume(); 
     598     bool isDefined = file_hdl->split_last_date.hasInheritedValue(); 
     599     CTimer::get("XIOS").suspend(); 
     600     return isDefined; 
     601  } 
     602 
     603 
     604  void cxios_set_file_split_start_offset(file_Ptr file_hdl, cxios_duration split_start_offset_c) 
     605  { 
     606    CTimer::get("XIOS").resume(); 
     607    file_hdl->split_start_offset.allocate(); 
     608    CDuration& split_start_offset = file_hdl->split_start_offset.get(); 
     609    split_start_offset.year = split_start_offset_c.year; 
     610    split_start_offset.month = split_start_offset_c.month; 
     611    split_start_offset.day = split_start_offset_c.day; 
     612    split_start_offset.hour = split_start_offset_c.hour; 
     613    split_start_offset.minute = split_start_offset_c.minute; 
     614    split_start_offset.second = split_start_offset_c.second; 
     615    split_start_offset.timestep = split_start_offset_c.timestep; 
     616    CTimer::get("XIOS").suspend(); 
     617  } 
     618 
     619  void cxios_get_file_split_start_offset(file_Ptr file_hdl, cxios_duration* split_start_offset_c) 
     620  { 
     621    CTimer::get("XIOS").resume(); 
     622    CDuration split_start_offset = file_hdl->split_start_offset.getInheritedValue(); 
     623    split_start_offset_c->year = split_start_offset.year; 
     624    split_start_offset_c->month = split_start_offset.month; 
     625    split_start_offset_c->day = split_start_offset.day; 
     626    split_start_offset_c->hour = split_start_offset.hour; 
     627    split_start_offset_c->minute = split_start_offset.minute; 
     628    split_start_offset_c->second = split_start_offset.second; 
     629    split_start_offset_c->timestep = split_start_offset.timestep; 
     630    CTimer::get("XIOS").suspend(); 
     631  } 
     632 
     633  bool cxios_is_defined_file_split_start_offset(file_Ptr file_hdl) 
     634  { 
     635     CTimer::get("XIOS").resume(); 
     636     bool isDefined = file_hdl->split_start_offset.hasInheritedValue(); 
     637     CTimer::get("XIOS").suspend(); 
     638     return isDefined; 
     639  } 
     640 
     641 
    491642  void cxios_set_file_sync_freq(file_Ptr file_hdl, cxios_duration sync_freq_c) 
    492643  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icfilegroup_attr.cpp

    r1205 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    3636     CTimer::get("XIOS").resume(); 
    3737     bool isDefined = filegroup_hdl->append.hasInheritedValue(); 
     38     CTimer::get("XIOS").suspend(); 
     39     return isDefined; 
     40  } 
     41 
     42 
     43  void cxios_set_filegroup_comment(filegroup_Ptr filegroup_hdl, const char * comment, int comment_size) 
     44  { 
     45    std::string comment_str; 
     46    if (!cstr2string(comment, comment_size, comment_str)) return; 
     47    CTimer::get("XIOS").resume(); 
     48    filegroup_hdl->comment.setValue(comment_str); 
     49    CTimer::get("XIOS").suspend(); 
     50  } 
     51 
     52  void cxios_get_filegroup_comment(filegroup_Ptr filegroup_hdl, char * comment, int comment_size) 
     53  { 
     54    CTimer::get("XIOS").resume(); 
     55    if (!string_copy(filegroup_hdl->comment.getInheritedValue(), comment, comment_size)) 
     56      ERROR("void cxios_get_filegroup_comment(filegroup_Ptr filegroup_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     57    CTimer::get("XIOS").suspend(); 
     58  } 
     59 
     60  bool cxios_is_defined_filegroup_comment(filegroup_Ptr filegroup_hdl) 
     61  { 
     62     CTimer::get("XIOS").resume(); 
     63     bool isDefined = filegroup_hdl->comment.hasInheritedValue(); 
    3864     CTimer::get("XIOS").suspend(); 
    3965     return isDefined; 
     
    428454 
    429455 
     456  void cxios_set_filegroup_read_metadata_par(filegroup_Ptr filegroup_hdl, bool read_metadata_par) 
     457  { 
     458    CTimer::get("XIOS").resume(); 
     459    filegroup_hdl->read_metadata_par.setValue(read_metadata_par); 
     460    CTimer::get("XIOS").suspend(); 
     461  } 
     462 
     463  void cxios_get_filegroup_read_metadata_par(filegroup_Ptr filegroup_hdl, bool* read_metadata_par) 
     464  { 
     465    CTimer::get("XIOS").resume(); 
     466    *read_metadata_par = filegroup_hdl->read_metadata_par.getInheritedValue(); 
     467    CTimer::get("XIOS").suspend(); 
     468  } 
     469 
     470  bool cxios_is_defined_filegroup_read_metadata_par(filegroup_Ptr filegroup_hdl) 
     471  { 
     472     CTimer::get("XIOS").resume(); 
     473     bool isDefined = filegroup_hdl->read_metadata_par.hasInheritedValue(); 
     474     CTimer::get("XIOS").suspend(); 
     475     return isDefined; 
     476  } 
     477 
     478 
    430479  void cxios_set_filegroup_record_offset(filegroup_Ptr filegroup_hdl, int record_offset) 
    431480  { 
     
    446495     CTimer::get("XIOS").resume(); 
    447496     bool isDefined = filegroup_hdl->record_offset.hasInheritedValue(); 
     497     CTimer::get("XIOS").suspend(); 
     498     return isDefined; 
     499  } 
     500 
     501 
     502  void cxios_set_filegroup_split_end_offset(filegroup_Ptr filegroup_hdl, cxios_duration split_end_offset_c) 
     503  { 
     504    CTimer::get("XIOS").resume(); 
     505    filegroup_hdl->split_end_offset.allocate(); 
     506    CDuration& split_end_offset = filegroup_hdl->split_end_offset.get(); 
     507    split_end_offset.year = split_end_offset_c.year; 
     508    split_end_offset.month = split_end_offset_c.month; 
     509    split_end_offset.day = split_end_offset_c.day; 
     510    split_end_offset.hour = split_end_offset_c.hour; 
     511    split_end_offset.minute = split_end_offset_c.minute; 
     512    split_end_offset.second = split_end_offset_c.second; 
     513    split_end_offset.timestep = split_end_offset_c.timestep; 
     514    CTimer::get("XIOS").suspend(); 
     515  } 
     516 
     517  void cxios_get_filegroup_split_end_offset(filegroup_Ptr filegroup_hdl, cxios_duration* split_end_offset_c) 
     518  { 
     519    CTimer::get("XIOS").resume(); 
     520    CDuration split_end_offset = filegroup_hdl->split_end_offset.getInheritedValue(); 
     521    split_end_offset_c->year = split_end_offset.year; 
     522    split_end_offset_c->month = split_end_offset.month; 
     523    split_end_offset_c->day = split_end_offset.day; 
     524    split_end_offset_c->hour = split_end_offset.hour; 
     525    split_end_offset_c->minute = split_end_offset.minute; 
     526    split_end_offset_c->second = split_end_offset.second; 
     527    split_end_offset_c->timestep = split_end_offset.timestep; 
     528    CTimer::get("XIOS").suspend(); 
     529  } 
     530 
     531  bool cxios_is_defined_filegroup_split_end_offset(filegroup_Ptr filegroup_hdl) 
     532  { 
     533     CTimer::get("XIOS").resume(); 
     534     bool isDefined = filegroup_hdl->split_end_offset.hasInheritedValue(); 
    448535     CTimer::get("XIOS").suspend(); 
    449536     return isDefined; 
     
    515602 
    516603 
     604  void cxios_set_filegroup_split_last_date(filegroup_Ptr filegroup_hdl, const char * split_last_date, int split_last_date_size) 
     605  { 
     606    std::string split_last_date_str; 
     607    if (!cstr2string(split_last_date, split_last_date_size, split_last_date_str)) return; 
     608    CTimer::get("XIOS").resume(); 
     609    filegroup_hdl->split_last_date.setValue(split_last_date_str); 
     610    CTimer::get("XIOS").suspend(); 
     611  } 
     612 
     613  void cxios_get_filegroup_split_last_date(filegroup_Ptr filegroup_hdl, char * split_last_date, int split_last_date_size) 
     614  { 
     615    CTimer::get("XIOS").resume(); 
     616    if (!string_copy(filegroup_hdl->split_last_date.getInheritedValue(), split_last_date, split_last_date_size)) 
     617      ERROR("void cxios_get_filegroup_split_last_date(filegroup_Ptr filegroup_hdl, char * split_last_date, int split_last_date_size)", << "Input string is too short"); 
     618    CTimer::get("XIOS").suspend(); 
     619  } 
     620 
     621  bool cxios_is_defined_filegroup_split_last_date(filegroup_Ptr filegroup_hdl) 
     622  { 
     623     CTimer::get("XIOS").resume(); 
     624     bool isDefined = filegroup_hdl->split_last_date.hasInheritedValue(); 
     625     CTimer::get("XIOS").suspend(); 
     626     return isDefined; 
     627  } 
     628 
     629 
     630  void cxios_set_filegroup_split_start_offset(filegroup_Ptr filegroup_hdl, cxios_duration split_start_offset_c) 
     631  { 
     632    CTimer::get("XIOS").resume(); 
     633    filegroup_hdl->split_start_offset.allocate(); 
     634    CDuration& split_start_offset = filegroup_hdl->split_start_offset.get(); 
     635    split_start_offset.year = split_start_offset_c.year; 
     636    split_start_offset.month = split_start_offset_c.month; 
     637    split_start_offset.day = split_start_offset_c.day; 
     638    split_start_offset.hour = split_start_offset_c.hour; 
     639    split_start_offset.minute = split_start_offset_c.minute; 
     640    split_start_offset.second = split_start_offset_c.second; 
     641    split_start_offset.timestep = split_start_offset_c.timestep; 
     642    CTimer::get("XIOS").suspend(); 
     643  } 
     644 
     645  void cxios_get_filegroup_split_start_offset(filegroup_Ptr filegroup_hdl, cxios_duration* split_start_offset_c) 
     646  { 
     647    CTimer::get("XIOS").resume(); 
     648    CDuration split_start_offset = filegroup_hdl->split_start_offset.getInheritedValue(); 
     649    split_start_offset_c->year = split_start_offset.year; 
     650    split_start_offset_c->month = split_start_offset.month; 
     651    split_start_offset_c->day = split_start_offset.day; 
     652    split_start_offset_c->hour = split_start_offset.hour; 
     653    split_start_offset_c->minute = split_start_offset.minute; 
     654    split_start_offset_c->second = split_start_offset.second; 
     655    split_start_offset_c->timestep = split_start_offset.timestep; 
     656    CTimer::get("XIOS").suspend(); 
     657  } 
     658 
     659  bool cxios_is_defined_filegroup_split_start_offset(filegroup_Ptr filegroup_hdl) 
     660  { 
     661     CTimer::get("XIOS").resume(); 
     662     bool isDefined = filegroup_hdl->split_start_offset.hasInheritedValue(); 
     663     CTimer::get("XIOS").suspend(); 
     664     return isDefined; 
     665  } 
     666 
     667 
    517668  void cxios_set_filegroup_sync_freq(filegroup_Ptr filegroup_hdl, cxios_duration sync_freq_c) 
    518669  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icgenerate_rectilinear_domain_attr.cpp

    r786 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icgrid_attr.cpp

    r932 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    1818  typedef xios::CGrid* grid_Ptr; 
    1919 
     20  void cxios_set_grid_comment(grid_Ptr grid_hdl, const char * comment, int comment_size) 
     21  { 
     22    std::string comment_str; 
     23    if (!cstr2string(comment, comment_size, comment_str)) return; 
     24    CTimer::get("XIOS").resume(); 
     25    grid_hdl->comment.setValue(comment_str); 
     26    CTimer::get("XIOS").suspend(); 
     27  } 
     28 
     29  void cxios_get_grid_comment(grid_Ptr grid_hdl, char * comment, int comment_size) 
     30  { 
     31    CTimer::get("XIOS").resume(); 
     32    if (!string_copy(grid_hdl->comment.getInheritedValue(), comment, comment_size)) 
     33      ERROR("void cxios_get_grid_comment(grid_Ptr grid_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     34    CTimer::get("XIOS").suspend(); 
     35  } 
     36 
     37  bool cxios_is_defined_grid_comment(grid_Ptr grid_hdl) 
     38  { 
     39     CTimer::get("XIOS").resume(); 
     40     bool isDefined = grid_hdl->comment.hasInheritedValue(); 
     41     CTimer::get("XIOS").suspend(); 
     42     return isDefined; 
     43  } 
     44 
     45 
    2046  void cxios_set_grid_description(grid_Ptr grid_hdl, const char * description, int description_size) 
    2147  { 
     
    4470 
    4571 
     72  void cxios_set_grid_mask_0d(grid_Ptr grid_hdl, bool* mask_0d, int* extent) 
     73  { 
     74    CTimer::get("XIOS").resume(); 
     75    CArray<bool,1> tmp(mask_0d, shape(extent[0]), neverDeleteData); 
     76    grid_hdl->mask_0d.reference(tmp.copy()); 
     77     CTimer::get("XIOS").suspend(); 
     78  } 
     79 
     80  void cxios_get_grid_mask_0d(grid_Ptr grid_hdl, bool* mask_0d, int* extent) 
     81  { 
     82    CTimer::get("XIOS").resume(); 
     83    CArray<bool,1> tmp(mask_0d, shape(extent[0]), neverDeleteData); 
     84    tmp=grid_hdl->mask_0d.getInheritedValue(); 
     85     CTimer::get("XIOS").suspend(); 
     86  } 
     87 
     88  bool cxios_is_defined_grid_mask_0d(grid_Ptr grid_hdl) 
     89  { 
     90     CTimer::get("XIOS").resume(); 
     91     bool isDefined = grid_hdl->mask_0d.hasInheritedValue(); 
     92     CTimer::get("XIOS").suspend(); 
     93     return isDefined; 
     94  } 
     95 
     96 
    4697  void cxios_set_grid_mask_1d(grid_Ptr grid_hdl, bool* mask_1d, int* extent) 
    4798  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icgridgroup_attr.cpp

    r932 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    1818  typedef xios::CGridGroup* gridgroup_Ptr; 
    1919 
     20  void cxios_set_gridgroup_comment(gridgroup_Ptr gridgroup_hdl, const char * comment, int comment_size) 
     21  { 
     22    std::string comment_str; 
     23    if (!cstr2string(comment, comment_size, comment_str)) return; 
     24    CTimer::get("XIOS").resume(); 
     25    gridgroup_hdl->comment.setValue(comment_str); 
     26    CTimer::get("XIOS").suspend(); 
     27  } 
     28 
     29  void cxios_get_gridgroup_comment(gridgroup_Ptr gridgroup_hdl, char * comment, int comment_size) 
     30  { 
     31    CTimer::get("XIOS").resume(); 
     32    if (!string_copy(gridgroup_hdl->comment.getInheritedValue(), comment, comment_size)) 
     33      ERROR("void cxios_get_gridgroup_comment(gridgroup_Ptr gridgroup_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     34    CTimer::get("XIOS").suspend(); 
     35  } 
     36 
     37  bool cxios_is_defined_gridgroup_comment(gridgroup_Ptr gridgroup_hdl) 
     38  { 
     39     CTimer::get("XIOS").resume(); 
     40     bool isDefined = gridgroup_hdl->comment.hasInheritedValue(); 
     41     CTimer::get("XIOS").suspend(); 
     42     return isDefined; 
     43  } 
     44 
     45 
    2046  void cxios_set_gridgroup_description(gridgroup_Ptr gridgroup_hdl, const char * description, int description_size) 
    2147  { 
     
    7096 
    7197 
     98  void cxios_set_gridgroup_mask_0d(gridgroup_Ptr gridgroup_hdl, bool* mask_0d, int* extent) 
     99  { 
     100    CTimer::get("XIOS").resume(); 
     101    CArray<bool,1> tmp(mask_0d, shape(extent[0]), neverDeleteData); 
     102    gridgroup_hdl->mask_0d.reference(tmp.copy()); 
     103     CTimer::get("XIOS").suspend(); 
     104  } 
     105 
     106  void cxios_get_gridgroup_mask_0d(gridgroup_Ptr gridgroup_hdl, bool* mask_0d, int* extent) 
     107  { 
     108    CTimer::get("XIOS").resume(); 
     109    CArray<bool,1> tmp(mask_0d, shape(extent[0]), neverDeleteData); 
     110    tmp=gridgroup_hdl->mask_0d.getInheritedValue(); 
     111     CTimer::get("XIOS").suspend(); 
     112  } 
     113 
     114  bool cxios_is_defined_gridgroup_mask_0d(gridgroup_Ptr gridgroup_hdl) 
     115  { 
     116     CTimer::get("XIOS").resume(); 
     117     bool isDefined = gridgroup_hdl->mask_0d.hasInheritedValue(); 
     118     CTimer::get("XIOS").suspend(); 
     119     return isDefined; 
     120  } 
     121 
     122 
    72123  void cxios_set_gridgroup_mask_1d(gridgroup_Ptr gridgroup_hdl, bool* mask_1d, int* extent) 
    73124  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icinterpolate_axis_attr.cpp

    r891 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icinterpolate_domain_attr.cpp

    r1205 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    1818  typedef xios::CInterpolateDomain* interpolate_domain_Ptr; 
    1919 
     20  void cxios_set_interpolate_domain_detect_missing_value(interpolate_domain_Ptr interpolate_domain_hdl, bool detect_missing_value) 
     21  { 
     22    CTimer::get("XIOS").resume(); 
     23    interpolate_domain_hdl->detect_missing_value.setValue(detect_missing_value); 
     24    CTimer::get("XIOS").suspend(); 
     25  } 
     26 
     27  void cxios_get_interpolate_domain_detect_missing_value(interpolate_domain_Ptr interpolate_domain_hdl, bool* detect_missing_value) 
     28  { 
     29    CTimer::get("XIOS").resume(); 
     30    *detect_missing_value = interpolate_domain_hdl->detect_missing_value.getInheritedValue(); 
     31    CTimer::get("XIOS").suspend(); 
     32  } 
     33 
     34  bool cxios_is_defined_interpolate_domain_detect_missing_value(interpolate_domain_Ptr interpolate_domain_hdl) 
     35  { 
     36     CTimer::get("XIOS").resume(); 
     37     bool isDefined = interpolate_domain_hdl->detect_missing_value.hasInheritedValue(); 
     38     CTimer::get("XIOS").suspend(); 
     39     return isDefined; 
     40  } 
     41 
     42 
    2043  void cxios_set_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, const char * mode, int mode_size) 
    2144  { 
     
    90113 
    91114 
     115  void cxios_set_interpolate_domain_read_write_convention(interpolate_domain_Ptr interpolate_domain_hdl, const char * read_write_convention, int read_write_convention_size) 
     116  { 
     117    std::string read_write_convention_str; 
     118    if (!cstr2string(read_write_convention, read_write_convention_size, read_write_convention_str)) return; 
     119    CTimer::get("XIOS").resume(); 
     120    interpolate_domain_hdl->read_write_convention.fromString(read_write_convention_str); 
     121    CTimer::get("XIOS").suspend(); 
     122  } 
     123 
     124  void cxios_get_interpolate_domain_read_write_convention(interpolate_domain_Ptr interpolate_domain_hdl, char * read_write_convention, int read_write_convention_size) 
     125  { 
     126    CTimer::get("XIOS").resume(); 
     127    if (!string_copy(interpolate_domain_hdl->read_write_convention.getInheritedStringValue(), read_write_convention, read_write_convention_size)) 
     128      ERROR("void cxios_get_interpolate_domain_read_write_convention(interpolate_domain_Ptr interpolate_domain_hdl, char * read_write_convention, int read_write_convention_size)", << "Input string is too short"); 
     129    CTimer::get("XIOS").suspend(); 
     130  } 
     131 
     132  bool cxios_is_defined_interpolate_domain_read_write_convention(interpolate_domain_Ptr interpolate_domain_hdl) 
     133  { 
     134     CTimer::get("XIOS").resume(); 
     135     bool isDefined = interpolate_domain_hdl->read_write_convention.hasInheritedValue(); 
     136     CTimer::get("XIOS").suspend(); 
     137     return isDefined; 
     138  } 
     139 
     140 
    92141  void cxios_set_interpolate_domain_renormalize(interpolate_domain_Ptr interpolate_domain_hdl, bool renormalize) 
    93142  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icinverse_axis_attr.cpp

    r786 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icreduce_axis_to_scalar_attr.cpp

    r980 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icreduce_domain_to_axis_attr.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    4444 
    4545 
     46  void cxios_set_reduce_domain_to_axis_local(reduce_domain_to_axis_Ptr reduce_domain_to_axis_hdl, bool local) 
     47  { 
     48    CTimer::get("XIOS").resume(); 
     49    reduce_domain_to_axis_hdl->local.setValue(local); 
     50    CTimer::get("XIOS").suspend(); 
     51  } 
     52 
     53  void cxios_get_reduce_domain_to_axis_local(reduce_domain_to_axis_Ptr reduce_domain_to_axis_hdl, bool* local) 
     54  { 
     55    CTimer::get("XIOS").resume(); 
     56    *local = reduce_domain_to_axis_hdl->local.getInheritedValue(); 
     57    CTimer::get("XIOS").suspend(); 
     58  } 
     59 
     60  bool cxios_is_defined_reduce_domain_to_axis_local(reduce_domain_to_axis_Ptr reduce_domain_to_axis_hdl) 
     61  { 
     62     CTimer::get("XIOS").resume(); 
     63     bool isDefined = reduce_domain_to_axis_hdl->local.hasInheritedValue(); 
     64     CTimer::get("XIOS").suspend(); 
     65     return isDefined; 
     66  } 
     67 
     68 
    4669  void cxios_set_reduce_domain_to_axis_operation(reduce_domain_to_axis_Ptr reduce_domain_to_axis_hdl, const char * operation, int operation_size) 
    4770  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icreduce_domain_to_scalar_attr.cpp

    r981 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    1717{ 
    1818  typedef xios::CReduceDomainToScalar* reduce_domain_to_scalar_Ptr; 
     19 
     20  void cxios_set_reduce_domain_to_scalar_local(reduce_domain_to_scalar_Ptr reduce_domain_to_scalar_hdl, bool local) 
     21  { 
     22    CTimer::get("XIOS").resume(); 
     23    reduce_domain_to_scalar_hdl->local.setValue(local); 
     24    CTimer::get("XIOS").suspend(); 
     25  } 
     26 
     27  void cxios_get_reduce_domain_to_scalar_local(reduce_domain_to_scalar_Ptr reduce_domain_to_scalar_hdl, bool* local) 
     28  { 
     29    CTimer::get("XIOS").resume(); 
     30    *local = reduce_domain_to_scalar_hdl->local.getInheritedValue(); 
     31    CTimer::get("XIOS").suspend(); 
     32  } 
     33 
     34  bool cxios_is_defined_reduce_domain_to_scalar_local(reduce_domain_to_scalar_Ptr reduce_domain_to_scalar_hdl) 
     35  { 
     36     CTimer::get("XIOS").resume(); 
     37     bool isDefined = reduce_domain_to_scalar_hdl->local.hasInheritedValue(); 
     38     CTimer::get("XIOS").suspend(); 
     39     return isDefined; 
     40  } 
     41 
    1942 
    2043  void cxios_set_reduce_domain_to_scalar_operation(reduce_domain_to_scalar_Ptr reduce_domain_to_scalar_hdl, const char * operation, int operation_size) 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icscalar_attr.cpp

    r1052 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    1818  typedef xios::CScalar* scalar_Ptr; 
    1919 
     20  void cxios_set_scalar_axis_type(scalar_Ptr scalar_hdl, const char * axis_type, int axis_type_size) 
     21  { 
     22    std::string axis_type_str; 
     23    if (!cstr2string(axis_type, axis_type_size, axis_type_str)) return; 
     24    CTimer::get("XIOS").resume(); 
     25    scalar_hdl->axis_type.fromString(axis_type_str); 
     26    CTimer::get("XIOS").suspend(); 
     27  } 
     28 
     29  void cxios_get_scalar_axis_type(scalar_Ptr scalar_hdl, char * axis_type, int axis_type_size) 
     30  { 
     31    CTimer::get("XIOS").resume(); 
     32    if (!string_copy(scalar_hdl->axis_type.getInheritedStringValue(), axis_type, axis_type_size)) 
     33      ERROR("void cxios_get_scalar_axis_type(scalar_Ptr scalar_hdl, char * axis_type, int axis_type_size)", << "Input string is too short"); 
     34    CTimer::get("XIOS").suspend(); 
     35  } 
     36 
     37  bool cxios_is_defined_scalar_axis_type(scalar_Ptr scalar_hdl) 
     38  { 
     39     CTimer::get("XIOS").resume(); 
     40     bool isDefined = scalar_hdl->axis_type.hasInheritedValue(); 
     41     CTimer::get("XIOS").suspend(); 
     42     return isDefined; 
     43  } 
     44 
     45 
     46  void cxios_set_scalar_bounds(scalar_Ptr scalar_hdl, double* bounds, int* extent) 
     47  { 
     48    CTimer::get("XIOS").resume(); 
     49    CArray<double,1> tmp(bounds, shape(extent[0]), neverDeleteData); 
     50    scalar_hdl->bounds.reference(tmp.copy()); 
     51     CTimer::get("XIOS").suspend(); 
     52  } 
     53 
     54  void cxios_get_scalar_bounds(scalar_Ptr scalar_hdl, double* bounds, int* extent) 
     55  { 
     56    CTimer::get("XIOS").resume(); 
     57    CArray<double,1> tmp(bounds, shape(extent[0]), neverDeleteData); 
     58    tmp=scalar_hdl->bounds.getInheritedValue(); 
     59     CTimer::get("XIOS").suspend(); 
     60  } 
     61 
     62  bool cxios_is_defined_scalar_bounds(scalar_Ptr scalar_hdl) 
     63  { 
     64     CTimer::get("XIOS").resume(); 
     65     bool isDefined = scalar_hdl->bounds.hasInheritedValue(); 
     66     CTimer::get("XIOS").suspend(); 
     67     return isDefined; 
     68  } 
     69 
     70 
     71  void cxios_set_scalar_bounds_name(scalar_Ptr scalar_hdl, const char * bounds_name, int bounds_name_size) 
     72  { 
     73    std::string bounds_name_str; 
     74    if (!cstr2string(bounds_name, bounds_name_size, bounds_name_str)) return; 
     75    CTimer::get("XIOS").resume(); 
     76    scalar_hdl->bounds_name.setValue(bounds_name_str); 
     77    CTimer::get("XIOS").suspend(); 
     78  } 
     79 
     80  void cxios_get_scalar_bounds_name(scalar_Ptr scalar_hdl, char * bounds_name, int bounds_name_size) 
     81  { 
     82    CTimer::get("XIOS").resume(); 
     83    if (!string_copy(scalar_hdl->bounds_name.getInheritedValue(), bounds_name, bounds_name_size)) 
     84      ERROR("void cxios_get_scalar_bounds_name(scalar_Ptr scalar_hdl, char * bounds_name, int bounds_name_size)", << "Input string is too short"); 
     85    CTimer::get("XIOS").suspend(); 
     86  } 
     87 
     88  bool cxios_is_defined_scalar_bounds_name(scalar_Ptr scalar_hdl) 
     89  { 
     90     CTimer::get("XIOS").resume(); 
     91     bool isDefined = scalar_hdl->bounds_name.hasInheritedValue(); 
     92     CTimer::get("XIOS").suspend(); 
     93     return isDefined; 
     94  } 
     95 
     96 
     97  void cxios_set_scalar_comment(scalar_Ptr scalar_hdl, const char * comment, int comment_size) 
     98  { 
     99    std::string comment_str; 
     100    if (!cstr2string(comment, comment_size, comment_str)) return; 
     101    CTimer::get("XIOS").resume(); 
     102    scalar_hdl->comment.setValue(comment_str); 
     103    CTimer::get("XIOS").suspend(); 
     104  } 
     105 
     106  void cxios_get_scalar_comment(scalar_Ptr scalar_hdl, char * comment, int comment_size) 
     107  { 
     108    CTimer::get("XIOS").resume(); 
     109    if (!string_copy(scalar_hdl->comment.getInheritedValue(), comment, comment_size)) 
     110      ERROR("void cxios_get_scalar_comment(scalar_Ptr scalar_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     111    CTimer::get("XIOS").suspend(); 
     112  } 
     113 
     114  bool cxios_is_defined_scalar_comment(scalar_Ptr scalar_hdl) 
     115  { 
     116     CTimer::get("XIOS").resume(); 
     117     bool isDefined = scalar_hdl->comment.hasInheritedValue(); 
     118     CTimer::get("XIOS").suspend(); 
     119     return isDefined; 
     120  } 
     121 
     122 
     123  void cxios_set_scalar_label(scalar_Ptr scalar_hdl, const char * label, int label_size) 
     124  { 
     125    std::string label_str; 
     126    if (!cstr2string(label, label_size, label_str)) return; 
     127    CTimer::get("XIOS").resume(); 
     128    scalar_hdl->label.setValue(label_str); 
     129    CTimer::get("XIOS").suspend(); 
     130  } 
     131 
     132  void cxios_get_scalar_label(scalar_Ptr scalar_hdl, char * label, int label_size) 
     133  { 
     134    CTimer::get("XIOS").resume(); 
     135    if (!string_copy(scalar_hdl->label.getInheritedValue(), label, label_size)) 
     136      ERROR("void cxios_get_scalar_label(scalar_Ptr scalar_hdl, char * label, int label_size)", << "Input string is too short"); 
     137    CTimer::get("XIOS").suspend(); 
     138  } 
     139 
     140  bool cxios_is_defined_scalar_label(scalar_Ptr scalar_hdl) 
     141  { 
     142     CTimer::get("XIOS").resume(); 
     143     bool isDefined = scalar_hdl->label.hasInheritedValue(); 
     144     CTimer::get("XIOS").suspend(); 
     145     return isDefined; 
     146  } 
     147 
     148 
    20149  void cxios_set_scalar_long_name(scalar_Ptr scalar_hdl, const char * long_name, int long_name_size) 
    21150  { 
     
    70199 
    71200 
     201  void cxios_set_scalar_positive(scalar_Ptr scalar_hdl, const char * positive, int positive_size) 
     202  { 
     203    std::string positive_str; 
     204    if (!cstr2string(positive, positive_size, positive_str)) return; 
     205    CTimer::get("XIOS").resume(); 
     206    scalar_hdl->positive.fromString(positive_str); 
     207    CTimer::get("XIOS").suspend(); 
     208  } 
     209 
     210  void cxios_get_scalar_positive(scalar_Ptr scalar_hdl, char * positive, int positive_size) 
     211  { 
     212    CTimer::get("XIOS").resume(); 
     213    if (!string_copy(scalar_hdl->positive.getInheritedStringValue(), positive, positive_size)) 
     214      ERROR("void cxios_get_scalar_positive(scalar_Ptr scalar_hdl, char * positive, int positive_size)", << "Input string is too short"); 
     215    CTimer::get("XIOS").suspend(); 
     216  } 
     217 
     218  bool cxios_is_defined_scalar_positive(scalar_Ptr scalar_hdl) 
     219  { 
     220     CTimer::get("XIOS").resume(); 
     221     bool isDefined = scalar_hdl->positive.hasInheritedValue(); 
     222     CTimer::get("XIOS").suspend(); 
     223     return isDefined; 
     224  } 
     225 
     226 
    72227  void cxios_set_scalar_prec(scalar_Ptr scalar_hdl, int prec) 
    73228  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icscalargroup_attr.cpp

    r1052 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
     
    1818  typedef xios::CScalarGroup* scalargroup_Ptr; 
    1919 
     20  void cxios_set_scalargroup_axis_type(scalargroup_Ptr scalargroup_hdl, const char * axis_type, int axis_type_size) 
     21  { 
     22    std::string axis_type_str; 
     23    if (!cstr2string(axis_type, axis_type_size, axis_type_str)) return; 
     24    CTimer::get("XIOS").resume(); 
     25    scalargroup_hdl->axis_type.fromString(axis_type_str); 
     26    CTimer::get("XIOS").suspend(); 
     27  } 
     28 
     29  void cxios_get_scalargroup_axis_type(scalargroup_Ptr scalargroup_hdl, char * axis_type, int axis_type_size) 
     30  { 
     31    CTimer::get("XIOS").resume(); 
     32    if (!string_copy(scalargroup_hdl->axis_type.getInheritedStringValue(), axis_type, axis_type_size)) 
     33      ERROR("void cxios_get_scalargroup_axis_type(scalargroup_Ptr scalargroup_hdl, char * axis_type, int axis_type_size)", << "Input string is too short"); 
     34    CTimer::get("XIOS").suspend(); 
     35  } 
     36 
     37  bool cxios_is_defined_scalargroup_axis_type(scalargroup_Ptr scalargroup_hdl) 
     38  { 
     39     CTimer::get("XIOS").resume(); 
     40     bool isDefined = scalargroup_hdl->axis_type.hasInheritedValue(); 
     41     CTimer::get("XIOS").suspend(); 
     42     return isDefined; 
     43  } 
     44 
     45 
     46  void cxios_set_scalargroup_bounds(scalargroup_Ptr scalargroup_hdl, double* bounds, int* extent) 
     47  { 
     48    CTimer::get("XIOS").resume(); 
     49    CArray<double,1> tmp(bounds, shape(extent[0]), neverDeleteData); 
     50    scalargroup_hdl->bounds.reference(tmp.copy()); 
     51     CTimer::get("XIOS").suspend(); 
     52  } 
     53 
     54  void cxios_get_scalargroup_bounds(scalargroup_Ptr scalargroup_hdl, double* bounds, int* extent) 
     55  { 
     56    CTimer::get("XIOS").resume(); 
     57    CArray<double,1> tmp(bounds, shape(extent[0]), neverDeleteData); 
     58    tmp=scalargroup_hdl->bounds.getInheritedValue(); 
     59     CTimer::get("XIOS").suspend(); 
     60  } 
     61 
     62  bool cxios_is_defined_scalargroup_bounds(scalargroup_Ptr scalargroup_hdl) 
     63  { 
     64     CTimer::get("XIOS").resume(); 
     65     bool isDefined = scalargroup_hdl->bounds.hasInheritedValue(); 
     66     CTimer::get("XIOS").suspend(); 
     67     return isDefined; 
     68  } 
     69 
     70 
     71  void cxios_set_scalargroup_bounds_name(scalargroup_Ptr scalargroup_hdl, const char * bounds_name, int bounds_name_size) 
     72  { 
     73    std::string bounds_name_str; 
     74    if (!cstr2string(bounds_name, bounds_name_size, bounds_name_str)) return; 
     75    CTimer::get("XIOS").resume(); 
     76    scalargroup_hdl->bounds_name.setValue(bounds_name_str); 
     77    CTimer::get("XIOS").suspend(); 
     78  } 
     79 
     80  void cxios_get_scalargroup_bounds_name(scalargroup_Ptr scalargroup_hdl, char * bounds_name, int bounds_name_size) 
     81  { 
     82    CTimer::get("XIOS").resume(); 
     83    if (!string_copy(scalargroup_hdl->bounds_name.getInheritedValue(), bounds_name, bounds_name_size)) 
     84      ERROR("void cxios_get_scalargroup_bounds_name(scalargroup_Ptr scalargroup_hdl, char * bounds_name, int bounds_name_size)", << "Input string is too short"); 
     85    CTimer::get("XIOS").suspend(); 
     86  } 
     87 
     88  bool cxios_is_defined_scalargroup_bounds_name(scalargroup_Ptr scalargroup_hdl) 
     89  { 
     90     CTimer::get("XIOS").resume(); 
     91     bool isDefined = scalargroup_hdl->bounds_name.hasInheritedValue(); 
     92     CTimer::get("XIOS").suspend(); 
     93     return isDefined; 
     94  } 
     95 
     96 
     97  void cxios_set_scalargroup_comment(scalargroup_Ptr scalargroup_hdl, const char * comment, int comment_size) 
     98  { 
     99    std::string comment_str; 
     100    if (!cstr2string(comment, comment_size, comment_str)) return; 
     101    CTimer::get("XIOS").resume(); 
     102    scalargroup_hdl->comment.setValue(comment_str); 
     103    CTimer::get("XIOS").suspend(); 
     104  } 
     105 
     106  void cxios_get_scalargroup_comment(scalargroup_Ptr scalargroup_hdl, char * comment, int comment_size) 
     107  { 
     108    CTimer::get("XIOS").resume(); 
     109    if (!string_copy(scalargroup_hdl->comment.getInheritedValue(), comment, comment_size)) 
     110      ERROR("void cxios_get_scalargroup_comment(scalargroup_Ptr scalargroup_hdl, char * comment, int comment_size)", << "Input string is too short"); 
     111    CTimer::get("XIOS").suspend(); 
     112  } 
     113 
     114  bool cxios_is_defined_scalargroup_comment(scalargroup_Ptr scalargroup_hdl) 
     115  { 
     116     CTimer::get("XIOS").resume(); 
     117     bool isDefined = scalargroup_hdl->comment.hasInheritedValue(); 
     118     CTimer::get("XIOS").suspend(); 
     119     return isDefined; 
     120  } 
     121 
     122 
    20123  void cxios_set_scalargroup_group_ref(scalargroup_Ptr scalargroup_hdl, const char * group_ref, int group_ref_size) 
    21124  { 
     
    44147 
    45148 
     149  void cxios_set_scalargroup_label(scalargroup_Ptr scalargroup_hdl, const char * label, int label_size) 
     150  { 
     151    std::string label_str; 
     152    if (!cstr2string(label, label_size, label_str)) return; 
     153    CTimer::get("XIOS").resume(); 
     154    scalargroup_hdl->label.setValue(label_str); 
     155    CTimer::get("XIOS").suspend(); 
     156  } 
     157 
     158  void cxios_get_scalargroup_label(scalargroup_Ptr scalargroup_hdl, char * label, int label_size) 
     159  { 
     160    CTimer::get("XIOS").resume(); 
     161    if (!string_copy(scalargroup_hdl->label.getInheritedValue(), label, label_size)) 
     162      ERROR("void cxios_get_scalargroup_label(scalargroup_Ptr scalargroup_hdl, char * label, int label_size)", << "Input string is too short"); 
     163    CTimer::get("XIOS").suspend(); 
     164  } 
     165 
     166  bool cxios_is_defined_scalargroup_label(scalargroup_Ptr scalargroup_hdl) 
     167  { 
     168     CTimer::get("XIOS").resume(); 
     169     bool isDefined = scalargroup_hdl->label.hasInheritedValue(); 
     170     CTimer::get("XIOS").suspend(); 
     171     return isDefined; 
     172  } 
     173 
     174 
    46175  void cxios_set_scalargroup_long_name(scalargroup_Ptr scalargroup_hdl, const char * long_name, int long_name_size) 
    47176  { 
     
    96225 
    97226 
     227  void cxios_set_scalargroup_positive(scalargroup_Ptr scalargroup_hdl, const char * positive, int positive_size) 
     228  { 
     229    std::string positive_str; 
     230    if (!cstr2string(positive, positive_size, positive_str)) return; 
     231    CTimer::get("XIOS").resume(); 
     232    scalargroup_hdl->positive.fromString(positive_str); 
     233    CTimer::get("XIOS").suspend(); 
     234  } 
     235 
     236  void cxios_get_scalargroup_positive(scalargroup_Ptr scalargroup_hdl, char * positive, int positive_size) 
     237  { 
     238    CTimer::get("XIOS").resume(); 
     239    if (!string_copy(scalargroup_hdl->positive.getInheritedStringValue(), positive, positive_size)) 
     240      ERROR("void cxios_get_scalargroup_positive(scalargroup_Ptr scalargroup_hdl, char * positive, int positive_size)", << "Input string is too short"); 
     241    CTimer::get("XIOS").suspend(); 
     242  } 
     243 
     244  bool cxios_is_defined_scalargroup_positive(scalargroup_Ptr scalargroup_hdl) 
     245  { 
     246     CTimer::get("XIOS").resume(); 
     247     bool isDefined = scalargroup_hdl->positive.hasInheritedValue(); 
     248     CTimer::get("XIOS").suspend(); 
     249     return isDefined; 
     250  } 
     251 
     252 
    98253  void cxios_set_scalargroup_prec(scalargroup_Ptr scalargroup_hdl, int prec) 
    99254  { 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icvariable_attr.cpp

    r1041 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/icvariablegroup_attr.cpp

    r1041 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/iczoom_axis_attr.cpp

    r1205 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/c_attr/iczoom_domain_attr.cpp

    r787 r1545  
    44 
    55#include <boost/multi_array.hpp> 
    6 #include <boost/shared_ptr.hpp> 
     6#include <memory> 
    77#include "xios.hpp" 
    88#include "attribute_template.hpp" 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/axis_interface_attr.F90

    r1052 r1545  
    3131 
    3232 
     33    SUBROUTINE cxios_set_axis_axis_type(axis_hdl, axis_type, axis_type_size) BIND(C) 
     34      USE ISO_C_BINDING 
     35      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     36      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     37      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     38    END SUBROUTINE cxios_set_axis_axis_type 
     39 
     40    SUBROUTINE cxios_get_axis_axis_type(axis_hdl, axis_type, axis_type_size) BIND(C) 
     41      USE ISO_C_BINDING 
     42      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     43      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     44      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     45    END SUBROUTINE cxios_get_axis_axis_type 
     46 
     47    FUNCTION cxios_is_defined_axis_axis_type(axis_hdl) BIND(C) 
     48      USE ISO_C_BINDING 
     49      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_axis_type 
     50      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     51    END FUNCTION cxios_is_defined_axis_axis_type 
     52 
     53 
    3354    SUBROUTINE cxios_set_axis_begin(axis_hdl, begin) BIND(C) 
    3455      USE ISO_C_BINDING 
     
    7192 
    7293 
     94    SUBROUTINE cxios_set_axis_bounds_name(axis_hdl, bounds_name, bounds_name_size) BIND(C) 
     95      USE ISO_C_BINDING 
     96      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     97      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     98      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     99    END SUBROUTINE cxios_set_axis_bounds_name 
     100 
     101    SUBROUTINE cxios_get_axis_bounds_name(axis_hdl, bounds_name, bounds_name_size) BIND(C) 
     102      USE ISO_C_BINDING 
     103      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     104      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     105      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     106    END SUBROUTINE cxios_get_axis_bounds_name 
     107 
     108    FUNCTION cxios_is_defined_axis_bounds_name(axis_hdl) BIND(C) 
     109      USE ISO_C_BINDING 
     110      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_bounds_name 
     111      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     112    END FUNCTION cxios_is_defined_axis_bounds_name 
     113 
     114 
     115    SUBROUTINE cxios_set_axis_comment(axis_hdl, comment, comment_size) BIND(C) 
     116      USE ISO_C_BINDING 
     117      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     118      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     119      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     120    END SUBROUTINE cxios_set_axis_comment 
     121 
     122    SUBROUTINE cxios_get_axis_comment(axis_hdl, comment, comment_size) BIND(C) 
     123      USE ISO_C_BINDING 
     124      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     125      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     126      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     127    END SUBROUTINE cxios_get_axis_comment 
     128 
     129    FUNCTION cxios_is_defined_axis_comment(axis_hdl) BIND(C) 
     130      USE ISO_C_BINDING 
     131      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_comment 
     132      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     133    END FUNCTION cxios_is_defined_axis_comment 
     134 
     135 
    73136    SUBROUTINE cxios_set_axis_data_begin(axis_hdl, data_begin) BIND(C) 
    74137      USE ISO_C_BINDING 
     
    128191      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
    129192    END FUNCTION cxios_is_defined_axis_data_n 
     193 
     194 
     195    SUBROUTINE cxios_set_axis_dim_name(axis_hdl, dim_name, dim_name_size) BIND(C) 
     196      USE ISO_C_BINDING 
     197      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     198      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_name 
     199      INTEGER  (kind = C_INT)     , VALUE        :: dim_name_size 
     200    END SUBROUTINE cxios_set_axis_dim_name 
     201 
     202    SUBROUTINE cxios_get_axis_dim_name(axis_hdl, dim_name, dim_name_size) BIND(C) 
     203      USE ISO_C_BINDING 
     204      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     205      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_name 
     206      INTEGER  (kind = C_INT)     , VALUE        :: dim_name_size 
     207    END SUBROUTINE cxios_get_axis_dim_name 
     208 
     209    FUNCTION cxios_is_defined_axis_dim_name(axis_hdl) BIND(C) 
     210      USE ISO_C_BINDING 
     211      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_dim_name 
     212      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     213    END FUNCTION cxios_is_defined_axis_dim_name 
     214 
     215 
     216    SUBROUTINE cxios_set_axis_formula(axis_hdl, formula, formula_size) BIND(C) 
     217      USE ISO_C_BINDING 
     218      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     219      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula 
     220      INTEGER  (kind = C_INT)     , VALUE        :: formula_size 
     221    END SUBROUTINE cxios_set_axis_formula 
     222 
     223    SUBROUTINE cxios_get_axis_formula(axis_hdl, formula, formula_size) BIND(C) 
     224      USE ISO_C_BINDING 
     225      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     226      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula 
     227      INTEGER  (kind = C_INT)     , VALUE        :: formula_size 
     228    END SUBROUTINE cxios_get_axis_formula 
     229 
     230    FUNCTION cxios_is_defined_axis_formula(axis_hdl) BIND(C) 
     231      USE ISO_C_BINDING 
     232      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_formula 
     233      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     234    END FUNCTION cxios_is_defined_axis_formula 
     235 
     236 
     237    SUBROUTINE cxios_set_axis_formula_bounds(axis_hdl, formula_bounds, formula_bounds_size) BIND(C) 
     238      USE ISO_C_BINDING 
     239      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     240      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_bounds 
     241      INTEGER  (kind = C_INT)     , VALUE        :: formula_bounds_size 
     242    END SUBROUTINE cxios_set_axis_formula_bounds 
     243 
     244    SUBROUTINE cxios_get_axis_formula_bounds(axis_hdl, formula_bounds, formula_bounds_size) BIND(C) 
     245      USE ISO_C_BINDING 
     246      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     247      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_bounds 
     248      INTEGER  (kind = C_INT)     , VALUE        :: formula_bounds_size 
     249    END SUBROUTINE cxios_get_axis_formula_bounds 
     250 
     251    FUNCTION cxios_is_defined_axis_formula_bounds(axis_hdl) BIND(C) 
     252      USE ISO_C_BINDING 
     253      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_formula_bounds 
     254      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     255    END FUNCTION cxios_is_defined_axis_formula_bounds 
     256 
     257 
     258    SUBROUTINE cxios_set_axis_formula_term(axis_hdl, formula_term, formula_term_size) BIND(C) 
     259      USE ISO_C_BINDING 
     260      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     261      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term 
     262      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_size 
     263    END SUBROUTINE cxios_set_axis_formula_term 
     264 
     265    SUBROUTINE cxios_get_axis_formula_term(axis_hdl, formula_term, formula_term_size) BIND(C) 
     266      USE ISO_C_BINDING 
     267      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     268      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term 
     269      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_size 
     270    END SUBROUTINE cxios_get_axis_formula_term 
     271 
     272    FUNCTION cxios_is_defined_axis_formula_term(axis_hdl) BIND(C) 
     273      USE ISO_C_BINDING 
     274      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_formula_term 
     275      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     276    END FUNCTION cxios_is_defined_axis_formula_term 
     277 
     278 
     279    SUBROUTINE cxios_set_axis_formula_term_bounds(axis_hdl, formula_term_bounds, formula_term_bounds_size) BIND(C) 
     280      USE ISO_C_BINDING 
     281      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     282      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term_bounds 
     283      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_bounds_size 
     284    END SUBROUTINE cxios_set_axis_formula_term_bounds 
     285 
     286    SUBROUTINE cxios_get_axis_formula_term_bounds(axis_hdl, formula_term_bounds, formula_term_bounds_size) BIND(C) 
     287      USE ISO_C_BINDING 
     288      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     289      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term_bounds 
     290      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_bounds_size 
     291    END SUBROUTINE cxios_get_axis_formula_term_bounds 
     292 
     293    FUNCTION cxios_is_defined_axis_formula_term_bounds(axis_hdl) BIND(C) 
     294      USE ISO_C_BINDING 
     295      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axis_formula_term_bounds 
     296      INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 
     297    END FUNCTION cxios_is_defined_axis_formula_term_bounds 
    130298 
    131299 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/axisgroup_interface_attr.F90

    r1052 r1545  
    3131 
    3232 
     33    SUBROUTINE cxios_set_axisgroup_axis_type(axisgroup_hdl, axis_type, axis_type_size) BIND(C) 
     34      USE ISO_C_BINDING 
     35      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     36      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     37      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     38    END SUBROUTINE cxios_set_axisgroup_axis_type 
     39 
     40    SUBROUTINE cxios_get_axisgroup_axis_type(axisgroup_hdl, axis_type, axis_type_size) BIND(C) 
     41      USE ISO_C_BINDING 
     42      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     43      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     44      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     45    END SUBROUTINE cxios_get_axisgroup_axis_type 
     46 
     47    FUNCTION cxios_is_defined_axisgroup_axis_type(axisgroup_hdl) BIND(C) 
     48      USE ISO_C_BINDING 
     49      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_axis_type 
     50      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     51    END FUNCTION cxios_is_defined_axisgroup_axis_type 
     52 
     53 
    3354    SUBROUTINE cxios_set_axisgroup_begin(axisgroup_hdl, begin) BIND(C) 
    3455      USE ISO_C_BINDING 
     
    7192 
    7293 
     94    SUBROUTINE cxios_set_axisgroup_bounds_name(axisgroup_hdl, bounds_name, bounds_name_size) BIND(C) 
     95      USE ISO_C_BINDING 
     96      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     97      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     98      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     99    END SUBROUTINE cxios_set_axisgroup_bounds_name 
     100 
     101    SUBROUTINE cxios_get_axisgroup_bounds_name(axisgroup_hdl, bounds_name, bounds_name_size) BIND(C) 
     102      USE ISO_C_BINDING 
     103      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     104      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     105      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     106    END SUBROUTINE cxios_get_axisgroup_bounds_name 
     107 
     108    FUNCTION cxios_is_defined_axisgroup_bounds_name(axisgroup_hdl) BIND(C) 
     109      USE ISO_C_BINDING 
     110      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_bounds_name 
     111      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     112    END FUNCTION cxios_is_defined_axisgroup_bounds_name 
     113 
     114 
     115    SUBROUTINE cxios_set_axisgroup_comment(axisgroup_hdl, comment, comment_size) BIND(C) 
     116      USE ISO_C_BINDING 
     117      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     118      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     119      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     120    END SUBROUTINE cxios_set_axisgroup_comment 
     121 
     122    SUBROUTINE cxios_get_axisgroup_comment(axisgroup_hdl, comment, comment_size) BIND(C) 
     123      USE ISO_C_BINDING 
     124      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     125      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     126      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     127    END SUBROUTINE cxios_get_axisgroup_comment 
     128 
     129    FUNCTION cxios_is_defined_axisgroup_comment(axisgroup_hdl) BIND(C) 
     130      USE ISO_C_BINDING 
     131      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_comment 
     132      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     133    END FUNCTION cxios_is_defined_axisgroup_comment 
     134 
     135 
    73136    SUBROUTINE cxios_set_axisgroup_data_begin(axisgroup_hdl, data_begin) BIND(C) 
    74137      USE ISO_C_BINDING 
     
    128191      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
    129192    END FUNCTION cxios_is_defined_axisgroup_data_n 
     193 
     194 
     195    SUBROUTINE cxios_set_axisgroup_dim_name(axisgroup_hdl, dim_name, dim_name_size) BIND(C) 
     196      USE ISO_C_BINDING 
     197      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     198      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_name 
     199      INTEGER  (kind = C_INT)     , VALUE        :: dim_name_size 
     200    END SUBROUTINE cxios_set_axisgroup_dim_name 
     201 
     202    SUBROUTINE cxios_get_axisgroup_dim_name(axisgroup_hdl, dim_name, dim_name_size) BIND(C) 
     203      USE ISO_C_BINDING 
     204      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     205      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_name 
     206      INTEGER  (kind = C_INT)     , VALUE        :: dim_name_size 
     207    END SUBROUTINE cxios_get_axisgroup_dim_name 
     208 
     209    FUNCTION cxios_is_defined_axisgroup_dim_name(axisgroup_hdl) BIND(C) 
     210      USE ISO_C_BINDING 
     211      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_dim_name 
     212      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     213    END FUNCTION cxios_is_defined_axisgroup_dim_name 
     214 
     215 
     216    SUBROUTINE cxios_set_axisgroup_formula(axisgroup_hdl, formula, formula_size) BIND(C) 
     217      USE ISO_C_BINDING 
     218      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     219      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula 
     220      INTEGER  (kind = C_INT)     , VALUE        :: formula_size 
     221    END SUBROUTINE cxios_set_axisgroup_formula 
     222 
     223    SUBROUTINE cxios_get_axisgroup_formula(axisgroup_hdl, formula, formula_size) BIND(C) 
     224      USE ISO_C_BINDING 
     225      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     226      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula 
     227      INTEGER  (kind = C_INT)     , VALUE        :: formula_size 
     228    END SUBROUTINE cxios_get_axisgroup_formula 
     229 
     230    FUNCTION cxios_is_defined_axisgroup_formula(axisgroup_hdl) BIND(C) 
     231      USE ISO_C_BINDING 
     232      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_formula 
     233      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     234    END FUNCTION cxios_is_defined_axisgroup_formula 
     235 
     236 
     237    SUBROUTINE cxios_set_axisgroup_formula_bounds(axisgroup_hdl, formula_bounds, formula_bounds_size) BIND(C) 
     238      USE ISO_C_BINDING 
     239      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     240      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_bounds 
     241      INTEGER  (kind = C_INT)     , VALUE        :: formula_bounds_size 
     242    END SUBROUTINE cxios_set_axisgroup_formula_bounds 
     243 
     244    SUBROUTINE cxios_get_axisgroup_formula_bounds(axisgroup_hdl, formula_bounds, formula_bounds_size) BIND(C) 
     245      USE ISO_C_BINDING 
     246      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     247      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_bounds 
     248      INTEGER  (kind = C_INT)     , VALUE        :: formula_bounds_size 
     249    END SUBROUTINE cxios_get_axisgroup_formula_bounds 
     250 
     251    FUNCTION cxios_is_defined_axisgroup_formula_bounds(axisgroup_hdl) BIND(C) 
     252      USE ISO_C_BINDING 
     253      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_formula_bounds 
     254      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     255    END FUNCTION cxios_is_defined_axisgroup_formula_bounds 
     256 
     257 
     258    SUBROUTINE cxios_set_axisgroup_formula_term(axisgroup_hdl, formula_term, formula_term_size) BIND(C) 
     259      USE ISO_C_BINDING 
     260      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     261      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term 
     262      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_size 
     263    END SUBROUTINE cxios_set_axisgroup_formula_term 
     264 
     265    SUBROUTINE cxios_get_axisgroup_formula_term(axisgroup_hdl, formula_term, formula_term_size) BIND(C) 
     266      USE ISO_C_BINDING 
     267      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     268      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term 
     269      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_size 
     270    END SUBROUTINE cxios_get_axisgroup_formula_term 
     271 
     272    FUNCTION cxios_is_defined_axisgroup_formula_term(axisgroup_hdl) BIND(C) 
     273      USE ISO_C_BINDING 
     274      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_formula_term 
     275      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     276    END FUNCTION cxios_is_defined_axisgroup_formula_term 
     277 
     278 
     279    SUBROUTINE cxios_set_axisgroup_formula_term_bounds(axisgroup_hdl, formula_term_bounds, formula_term_bounds_size) BIND(C) 
     280      USE ISO_C_BINDING 
     281      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     282      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term_bounds 
     283      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_bounds_size 
     284    END SUBROUTINE cxios_set_axisgroup_formula_term_bounds 
     285 
     286    SUBROUTINE cxios_get_axisgroup_formula_term_bounds(axisgroup_hdl, formula_term_bounds, formula_term_bounds_size) BIND(C) 
     287      USE ISO_C_BINDING 
     288      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     289      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: formula_term_bounds 
     290      INTEGER  (kind = C_INT)     , VALUE        :: formula_term_bounds_size 
     291    END SUBROUTINE cxios_get_axisgroup_formula_term_bounds 
     292 
     293    FUNCTION cxios_is_defined_axisgroup_formula_term_bounds(axisgroup_hdl) BIND(C) 
     294      USE ISO_C_BINDING 
     295      LOGICAL(kind=C_BOOL) :: cxios_is_defined_axisgroup_formula_term_bounds 
     296      INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 
     297    END FUNCTION cxios_is_defined_axisgroup_formula_term_bounds 
    130298 
    131299 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/calendar_wrapper_interface_attr.F90

    r674 r1545  
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
    1111 
     12    SUBROUTINE cxios_set_calendar_wrapper_comment(calendar_wrapper_hdl, comment, comment_size) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 
     15      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     16      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     17    END SUBROUTINE cxios_set_calendar_wrapper_comment 
     18 
     19    SUBROUTINE cxios_get_calendar_wrapper_comment(calendar_wrapper_hdl, comment, comment_size) BIND(C) 
     20      USE ISO_C_BINDING 
     21      INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 
     22      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     23      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     24    END SUBROUTINE cxios_get_calendar_wrapper_comment 
     25 
     26    FUNCTION cxios_is_defined_calendar_wrapper_comment(calendar_wrapper_hdl) BIND(C) 
     27      USE ISO_C_BINDING 
     28      LOGICAL(kind=C_BOOL) :: cxios_is_defined_calendar_wrapper_comment 
     29      INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 
     30    END FUNCTION cxios_is_defined_calendar_wrapper_comment 
     31 
     32 
    1233    SUBROUTINE cxios_set_calendar_wrapper_day_length(calendar_wrapper_hdl, day_length) BIND(C) 
    1334      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/domain_interface_attr.F90

    r1052 r1545  
    7373 
    7474 
     75    SUBROUTINE cxios_set_domain_bounds_lat_name(domain_hdl, bounds_lat_name, bounds_lat_name_size) BIND(C) 
     76      USE ISO_C_BINDING 
     77      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     78      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lat_name 
     79      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lat_name_size 
     80    END SUBROUTINE cxios_set_domain_bounds_lat_name 
     81 
     82    SUBROUTINE cxios_get_domain_bounds_lat_name(domain_hdl, bounds_lat_name, bounds_lat_name_size) BIND(C) 
     83      USE ISO_C_BINDING 
     84      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     85      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lat_name 
     86      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lat_name_size 
     87    END SUBROUTINE cxios_get_domain_bounds_lat_name 
     88 
     89    FUNCTION cxios_is_defined_domain_bounds_lat_name(domain_hdl) BIND(C) 
     90      USE ISO_C_BINDING 
     91      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_bounds_lat_name 
     92      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     93    END FUNCTION cxios_is_defined_domain_bounds_lat_name 
     94 
     95 
    7596    SUBROUTINE cxios_set_domain_bounds_lon_1d(domain_hdl, bounds_lon_1d, extent) BIND(C) 
    7697      USE ISO_C_BINDING 
     
    113134      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    114135    END FUNCTION cxios_is_defined_domain_bounds_lon_2d 
     136 
     137 
     138    SUBROUTINE cxios_set_domain_bounds_lon_name(domain_hdl, bounds_lon_name, bounds_lon_name_size) BIND(C) 
     139      USE ISO_C_BINDING 
     140      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     141      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lon_name 
     142      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lon_name_size 
     143    END SUBROUTINE cxios_set_domain_bounds_lon_name 
     144 
     145    SUBROUTINE cxios_get_domain_bounds_lon_name(domain_hdl, bounds_lon_name, bounds_lon_name_size) BIND(C) 
     146      USE ISO_C_BINDING 
     147      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     148      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lon_name 
     149      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lon_name_size 
     150    END SUBROUTINE cxios_get_domain_bounds_lon_name 
     151 
     152    FUNCTION cxios_is_defined_domain_bounds_lon_name(domain_hdl) BIND(C) 
     153      USE ISO_C_BINDING 
     154      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_bounds_lon_name 
     155      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     156    END FUNCTION cxios_is_defined_domain_bounds_lon_name 
     157 
     158 
     159    SUBROUTINE cxios_set_domain_comment(domain_hdl, comment, comment_size) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     162      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     163      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     164    END SUBROUTINE cxios_set_domain_comment 
     165 
     166    SUBROUTINE cxios_get_domain_comment(domain_hdl, comment, comment_size) BIND(C) 
     167      USE ISO_C_BINDING 
     168      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     169      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     170      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     171    END SUBROUTINE cxios_get_domain_comment 
     172 
     173    FUNCTION cxios_is_defined_domain_comment(domain_hdl) BIND(C) 
     174      USE ISO_C_BINDING 
     175      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_comment 
     176      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     177    END FUNCTION cxios_is_defined_domain_comment 
    115178 
    116179 
     
    250313      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    251314    END FUNCTION cxios_is_defined_domain_data_nj 
     315 
     316 
     317    SUBROUTINE cxios_set_domain_dim_i_name(domain_hdl, dim_i_name, dim_i_name_size) BIND(C) 
     318      USE ISO_C_BINDING 
     319      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     320      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_i_name 
     321      INTEGER  (kind = C_INT)     , VALUE        :: dim_i_name_size 
     322    END SUBROUTINE cxios_set_domain_dim_i_name 
     323 
     324    SUBROUTINE cxios_get_domain_dim_i_name(domain_hdl, dim_i_name, dim_i_name_size) BIND(C) 
     325      USE ISO_C_BINDING 
     326      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     327      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_i_name 
     328      INTEGER  (kind = C_INT)     , VALUE        :: dim_i_name_size 
     329    END SUBROUTINE cxios_get_domain_dim_i_name 
     330 
     331    FUNCTION cxios_is_defined_domain_dim_i_name(domain_hdl) BIND(C) 
     332      USE ISO_C_BINDING 
     333      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_dim_i_name 
     334      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     335    END FUNCTION cxios_is_defined_domain_dim_i_name 
     336 
     337 
     338    SUBROUTINE cxios_set_domain_dim_j_name(domain_hdl, dim_j_name, dim_j_name_size) BIND(C) 
     339      USE ISO_C_BINDING 
     340      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     341      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_j_name 
     342      INTEGER  (kind = C_INT)     , VALUE        :: dim_j_name_size 
     343    END SUBROUTINE cxios_set_domain_dim_j_name 
     344 
     345    SUBROUTINE cxios_get_domain_dim_j_name(domain_hdl, dim_j_name, dim_j_name_size) BIND(C) 
     346      USE ISO_C_BINDING 
     347      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     348      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_j_name 
     349      INTEGER  (kind = C_INT)     , VALUE        :: dim_j_name_size 
     350    END SUBROUTINE cxios_get_domain_dim_j_name 
     351 
     352    FUNCTION cxios_is_defined_domain_dim_j_name(domain_hdl) BIND(C) 
     353      USE ISO_C_BINDING 
     354      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_dim_j_name 
     355      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     356    END FUNCTION cxios_is_defined_domain_dim_j_name 
    252357 
    253358 
     
    353458 
    354459 
     460    SUBROUTINE cxios_set_domain_lat_name(domain_hdl, lat_name, lat_name_size) BIND(C) 
     461      USE ISO_C_BINDING 
     462      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     463      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lat_name 
     464      INTEGER  (kind = C_INT)     , VALUE        :: lat_name_size 
     465    END SUBROUTINE cxios_set_domain_lat_name 
     466 
     467    SUBROUTINE cxios_get_domain_lat_name(domain_hdl, lat_name, lat_name_size) BIND(C) 
     468      USE ISO_C_BINDING 
     469      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     470      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lat_name 
     471      INTEGER  (kind = C_INT)     , VALUE        :: lat_name_size 
     472    END SUBROUTINE cxios_get_domain_lat_name 
     473 
     474    FUNCTION cxios_is_defined_domain_lat_name(domain_hdl) BIND(C) 
     475      USE ISO_C_BINDING 
     476      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_lat_name 
     477      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     478    END FUNCTION cxios_is_defined_domain_lat_name 
     479 
     480 
    355481    SUBROUTINE cxios_set_domain_latvalue_1d(domain_hdl, latvalue_1d, extent) BIND(C) 
    356482      USE ISO_C_BINDING 
     
    393519      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
    394520    END FUNCTION cxios_is_defined_domain_latvalue_2d 
     521 
     522 
     523    SUBROUTINE cxios_set_domain_lon_name(domain_hdl, lon_name, lon_name_size) BIND(C) 
     524      USE ISO_C_BINDING 
     525      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     526      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lon_name 
     527      INTEGER  (kind = C_INT)     , VALUE        :: lon_name_size 
     528    END SUBROUTINE cxios_set_domain_lon_name 
     529 
     530    SUBROUTINE cxios_get_domain_lon_name(domain_hdl, lon_name, lon_name_size) BIND(C) 
     531      USE ISO_C_BINDING 
     532      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     533      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lon_name 
     534      INTEGER  (kind = C_INT)     , VALUE        :: lon_name_size 
     535    END SUBROUTINE cxios_get_domain_lon_name 
     536 
     537    FUNCTION cxios_is_defined_domain_lon_name(domain_hdl) BIND(C) 
     538      USE ISO_C_BINDING 
     539      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domain_lon_name 
     540      INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 
     541    END FUNCTION cxios_is_defined_domain_lon_name 
    395542 
    396543 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/domaingroup_interface_attr.F90

    r1052 r1545  
    7373 
    7474 
     75    SUBROUTINE cxios_set_domaingroup_bounds_lat_name(domaingroup_hdl, bounds_lat_name, bounds_lat_name_size) BIND(C) 
     76      USE ISO_C_BINDING 
     77      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     78      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lat_name 
     79      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lat_name_size 
     80    END SUBROUTINE cxios_set_domaingroup_bounds_lat_name 
     81 
     82    SUBROUTINE cxios_get_domaingroup_bounds_lat_name(domaingroup_hdl, bounds_lat_name, bounds_lat_name_size) BIND(C) 
     83      USE ISO_C_BINDING 
     84      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     85      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lat_name 
     86      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lat_name_size 
     87    END SUBROUTINE cxios_get_domaingroup_bounds_lat_name 
     88 
     89    FUNCTION cxios_is_defined_domaingroup_bounds_lat_name(domaingroup_hdl) BIND(C) 
     90      USE ISO_C_BINDING 
     91      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_bounds_lat_name 
     92      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     93    END FUNCTION cxios_is_defined_domaingroup_bounds_lat_name 
     94 
     95 
    7596    SUBROUTINE cxios_set_domaingroup_bounds_lon_1d(domaingroup_hdl, bounds_lon_1d, extent) BIND(C) 
    7697      USE ISO_C_BINDING 
     
    113134      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    114135    END FUNCTION cxios_is_defined_domaingroup_bounds_lon_2d 
     136 
     137 
     138    SUBROUTINE cxios_set_domaingroup_bounds_lon_name(domaingroup_hdl, bounds_lon_name, bounds_lon_name_size) BIND(C) 
     139      USE ISO_C_BINDING 
     140      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     141      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lon_name 
     142      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lon_name_size 
     143    END SUBROUTINE cxios_set_domaingroup_bounds_lon_name 
     144 
     145    SUBROUTINE cxios_get_domaingroup_bounds_lon_name(domaingroup_hdl, bounds_lon_name, bounds_lon_name_size) BIND(C) 
     146      USE ISO_C_BINDING 
     147      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     148      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_lon_name 
     149      INTEGER  (kind = C_INT)     , VALUE        :: bounds_lon_name_size 
     150    END SUBROUTINE cxios_get_domaingroup_bounds_lon_name 
     151 
     152    FUNCTION cxios_is_defined_domaingroup_bounds_lon_name(domaingroup_hdl) BIND(C) 
     153      USE ISO_C_BINDING 
     154      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_bounds_lon_name 
     155      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     156    END FUNCTION cxios_is_defined_domaingroup_bounds_lon_name 
     157 
     158 
     159    SUBROUTINE cxios_set_domaingroup_comment(domaingroup_hdl, comment, comment_size) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     162      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     163      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     164    END SUBROUTINE cxios_set_domaingroup_comment 
     165 
     166    SUBROUTINE cxios_get_domaingroup_comment(domaingroup_hdl, comment, comment_size) BIND(C) 
     167      USE ISO_C_BINDING 
     168      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     169      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     170      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     171    END SUBROUTINE cxios_get_domaingroup_comment 
     172 
     173    FUNCTION cxios_is_defined_domaingroup_comment(domaingroup_hdl) BIND(C) 
     174      USE ISO_C_BINDING 
     175      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_comment 
     176      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     177    END FUNCTION cxios_is_defined_domaingroup_comment 
    115178 
    116179 
     
    250313      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    251314    END FUNCTION cxios_is_defined_domaingroup_data_nj 
     315 
     316 
     317    SUBROUTINE cxios_set_domaingroup_dim_i_name(domaingroup_hdl, dim_i_name, dim_i_name_size) BIND(C) 
     318      USE ISO_C_BINDING 
     319      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     320      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_i_name 
     321      INTEGER  (kind = C_INT)     , VALUE        :: dim_i_name_size 
     322    END SUBROUTINE cxios_set_domaingroup_dim_i_name 
     323 
     324    SUBROUTINE cxios_get_domaingroup_dim_i_name(domaingroup_hdl, dim_i_name, dim_i_name_size) BIND(C) 
     325      USE ISO_C_BINDING 
     326      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     327      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_i_name 
     328      INTEGER  (kind = C_INT)     , VALUE        :: dim_i_name_size 
     329    END SUBROUTINE cxios_get_domaingroup_dim_i_name 
     330 
     331    FUNCTION cxios_is_defined_domaingroup_dim_i_name(domaingroup_hdl) BIND(C) 
     332      USE ISO_C_BINDING 
     333      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_dim_i_name 
     334      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     335    END FUNCTION cxios_is_defined_domaingroup_dim_i_name 
     336 
     337 
     338    SUBROUTINE cxios_set_domaingroup_dim_j_name(domaingroup_hdl, dim_j_name, dim_j_name_size) BIND(C) 
     339      USE ISO_C_BINDING 
     340      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     341      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_j_name 
     342      INTEGER  (kind = C_INT)     , VALUE        :: dim_j_name_size 
     343    END SUBROUTINE cxios_set_domaingroup_dim_j_name 
     344 
     345    SUBROUTINE cxios_get_domaingroup_dim_j_name(domaingroup_hdl, dim_j_name, dim_j_name_size) BIND(C) 
     346      USE ISO_C_BINDING 
     347      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     348      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: dim_j_name 
     349      INTEGER  (kind = C_INT)     , VALUE        :: dim_j_name_size 
     350    END SUBROUTINE cxios_get_domaingroup_dim_j_name 
     351 
     352    FUNCTION cxios_is_defined_domaingroup_dim_j_name(domaingroup_hdl) BIND(C) 
     353      USE ISO_C_BINDING 
     354      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_dim_j_name 
     355      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     356    END FUNCTION cxios_is_defined_domaingroup_dim_j_name 
    252357 
    253358 
     
    374479 
    375480 
     481    SUBROUTINE cxios_set_domaingroup_lat_name(domaingroup_hdl, lat_name, lat_name_size) BIND(C) 
     482      USE ISO_C_BINDING 
     483      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     484      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lat_name 
     485      INTEGER  (kind = C_INT)     , VALUE        :: lat_name_size 
     486    END SUBROUTINE cxios_set_domaingroup_lat_name 
     487 
     488    SUBROUTINE cxios_get_domaingroup_lat_name(domaingroup_hdl, lat_name, lat_name_size) BIND(C) 
     489      USE ISO_C_BINDING 
     490      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     491      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lat_name 
     492      INTEGER  (kind = C_INT)     , VALUE        :: lat_name_size 
     493    END SUBROUTINE cxios_get_domaingroup_lat_name 
     494 
     495    FUNCTION cxios_is_defined_domaingroup_lat_name(domaingroup_hdl) BIND(C) 
     496      USE ISO_C_BINDING 
     497      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_lat_name 
     498      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     499    END FUNCTION cxios_is_defined_domaingroup_lat_name 
     500 
     501 
    376502    SUBROUTINE cxios_set_domaingroup_latvalue_1d(domaingroup_hdl, latvalue_1d, extent) BIND(C) 
    377503      USE ISO_C_BINDING 
     
    414540      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
    415541    END FUNCTION cxios_is_defined_domaingroup_latvalue_2d 
     542 
     543 
     544    SUBROUTINE cxios_set_domaingroup_lon_name(domaingroup_hdl, lon_name, lon_name_size) BIND(C) 
     545      USE ISO_C_BINDING 
     546      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     547      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lon_name 
     548      INTEGER  (kind = C_INT)     , VALUE        :: lon_name_size 
     549    END SUBROUTINE cxios_set_domaingroup_lon_name 
     550 
     551    SUBROUTINE cxios_get_domaingroup_lon_name(domaingroup_hdl, lon_name, lon_name_size) BIND(C) 
     552      USE ISO_C_BINDING 
     553      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     554      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: lon_name 
     555      INTEGER  (kind = C_INT)     , VALUE        :: lon_name_size 
     556    END SUBROUTINE cxios_get_domaingroup_lon_name 
     557 
     558    FUNCTION cxios_is_defined_domaingroup_lon_name(domaingroup_hdl) BIND(C) 
     559      USE ISO_C_BINDING 
     560      LOGICAL(kind=C_BOOL) :: cxios_is_defined_domaingroup_lon_name 
     561      INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 
     562    END FUNCTION cxios_is_defined_domaingroup_lon_name 
    416563 
    417564 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/field_interface_attr.F90

    r1205 r1545  
    111111 
    112112 
     113    SUBROUTINE cxios_set_field_comment(field_hdl, comment, comment_size) BIND(C) 
     114      USE ISO_C_BINDING 
     115      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     116      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     117      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     118    END SUBROUTINE cxios_set_field_comment 
     119 
     120    SUBROUTINE cxios_get_field_comment(field_hdl, comment, comment_size) BIND(C) 
     121      USE ISO_C_BINDING 
     122      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     123      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     124      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     125    END SUBROUTINE cxios_get_field_comment 
     126 
     127    FUNCTION cxios_is_defined_field_comment(field_hdl) BIND(C) 
     128      USE ISO_C_BINDING 
     129      LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_comment 
     130      INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 
     131    END FUNCTION cxios_is_defined_field_comment 
     132 
     133 
    113134    SUBROUTINE cxios_set_field_compression_level(field_hdl, compression_level) BIND(C) 
    114135      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/fieldgroup_interface_attr.F90

    r1205 r1545  
    111111 
    112112 
     113    SUBROUTINE cxios_set_fieldgroup_comment(fieldgroup_hdl, comment, comment_size) BIND(C) 
     114      USE ISO_C_BINDING 
     115      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     116      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     117      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     118    END SUBROUTINE cxios_set_fieldgroup_comment 
     119 
     120    SUBROUTINE cxios_get_fieldgroup_comment(fieldgroup_hdl, comment, comment_size) BIND(C) 
     121      USE ISO_C_BINDING 
     122      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     123      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     124      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     125    END SUBROUTINE cxios_get_fieldgroup_comment 
     126 
     127    FUNCTION cxios_is_defined_fieldgroup_comment(fieldgroup_hdl) BIND(C) 
     128      USE ISO_C_BINDING 
     129      LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_comment 
     130      INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 
     131    END FUNCTION cxios_is_defined_fieldgroup_comment 
     132 
     133 
    113134    SUBROUTINE cxios_set_fieldgroup_compression_level(fieldgroup_hdl, compression_level) BIND(C) 
    114135      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/file_interface_attr.F90

    r1205 r1545  
    2929 
    3030 
     31    SUBROUTINE cxios_set_file_comment(file_hdl, comment, comment_size) BIND(C) 
     32      USE ISO_C_BINDING 
     33      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     34      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     35      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     36    END SUBROUTINE cxios_set_file_comment 
     37 
     38    SUBROUTINE cxios_get_file_comment(file_hdl, comment, comment_size) BIND(C) 
     39      USE ISO_C_BINDING 
     40      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     41      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     42      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     43    END SUBROUTINE cxios_get_file_comment 
     44 
     45    FUNCTION cxios_is_defined_file_comment(file_hdl) BIND(C) 
     46      USE ISO_C_BINDING 
     47      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_comment 
     48      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     49    END FUNCTION cxios_is_defined_file_comment 
     50 
     51 
    3152    SUBROUTINE cxios_set_file_compression_level(file_hdl, compression_level) BIND(C) 
    3253      USE ISO_C_BINDING 
     
    313334 
    314335 
     336    SUBROUTINE cxios_set_file_read_metadata_par(file_hdl, read_metadata_par) BIND(C) 
     337      USE ISO_C_BINDING 
     338      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     339      LOGICAL (KIND=C_BOOL)      , VALUE :: read_metadata_par 
     340    END SUBROUTINE cxios_set_file_read_metadata_par 
     341 
     342    SUBROUTINE cxios_get_file_read_metadata_par(file_hdl, read_metadata_par) BIND(C) 
     343      USE ISO_C_BINDING 
     344      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     345      LOGICAL (KIND=C_BOOL)             :: read_metadata_par 
     346    END SUBROUTINE cxios_get_file_read_metadata_par 
     347 
     348    FUNCTION cxios_is_defined_file_read_metadata_par(file_hdl) BIND(C) 
     349      USE ISO_C_BINDING 
     350      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_read_metadata_par 
     351      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     352    END FUNCTION cxios_is_defined_file_read_metadata_par 
     353 
     354 
    315355    SUBROUTINE cxios_set_file_record_offset(file_hdl, record_offset) BIND(C) 
    316356      USE ISO_C_BINDING 
     
    330370      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
    331371    END FUNCTION cxios_is_defined_file_record_offset 
     372 
     373 
     374    SUBROUTINE cxios_set_file_split_end_offset(file_hdl, split_end_offset) BIND(C) 
     375      USE ISO_C_BINDING 
     376      USE IDURATION 
     377      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     378      TYPE(txios(duration)), VALUE :: split_end_offset 
     379    END SUBROUTINE cxios_set_file_split_end_offset 
     380 
     381    SUBROUTINE cxios_get_file_split_end_offset(file_hdl, split_end_offset) BIND(C) 
     382      USE ISO_C_BINDING 
     383      USE IDURATION 
     384      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     385      TYPE(txios(duration)) :: split_end_offset 
     386    END SUBROUTINE cxios_get_file_split_end_offset 
     387 
     388    FUNCTION cxios_is_defined_file_split_end_offset(file_hdl) BIND(C) 
     389      USE ISO_C_BINDING 
     390      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_split_end_offset 
     391      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     392    END FUNCTION cxios_is_defined_file_split_end_offset 
    332393 
    333394 
     
    374435 
    375436 
     437    SUBROUTINE cxios_set_file_split_last_date(file_hdl, split_last_date, split_last_date_size) BIND(C) 
     438      USE ISO_C_BINDING 
     439      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     440      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_last_date 
     441      INTEGER  (kind = C_INT)     , VALUE        :: split_last_date_size 
     442    END SUBROUTINE cxios_set_file_split_last_date 
     443 
     444    SUBROUTINE cxios_get_file_split_last_date(file_hdl, split_last_date, split_last_date_size) BIND(C) 
     445      USE ISO_C_BINDING 
     446      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     447      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_last_date 
     448      INTEGER  (kind = C_INT)     , VALUE        :: split_last_date_size 
     449    END SUBROUTINE cxios_get_file_split_last_date 
     450 
     451    FUNCTION cxios_is_defined_file_split_last_date(file_hdl) BIND(C) 
     452      USE ISO_C_BINDING 
     453      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_split_last_date 
     454      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     455    END FUNCTION cxios_is_defined_file_split_last_date 
     456 
     457 
     458    SUBROUTINE cxios_set_file_split_start_offset(file_hdl, split_start_offset) BIND(C) 
     459      USE ISO_C_BINDING 
     460      USE IDURATION 
     461      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     462      TYPE(txios(duration)), VALUE :: split_start_offset 
     463    END SUBROUTINE cxios_set_file_split_start_offset 
     464 
     465    SUBROUTINE cxios_get_file_split_start_offset(file_hdl, split_start_offset) BIND(C) 
     466      USE ISO_C_BINDING 
     467      USE IDURATION 
     468      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     469      TYPE(txios(duration)) :: split_start_offset 
     470    END SUBROUTINE cxios_get_file_split_start_offset 
     471 
     472    FUNCTION cxios_is_defined_file_split_start_offset(file_hdl) BIND(C) 
     473      USE ISO_C_BINDING 
     474      LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_split_start_offset 
     475      INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 
     476    END FUNCTION cxios_is_defined_file_split_start_offset 
     477 
     478 
    376479    SUBROUTINE cxios_set_file_sync_freq(file_hdl, sync_freq) BIND(C) 
    377480      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/filegroup_interface_attr.F90

    r1205 r1545  
    2929 
    3030 
     31    SUBROUTINE cxios_set_filegroup_comment(filegroup_hdl, comment, comment_size) BIND(C) 
     32      USE ISO_C_BINDING 
     33      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     34      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     35      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     36    END SUBROUTINE cxios_set_filegroup_comment 
     37 
     38    SUBROUTINE cxios_get_filegroup_comment(filegroup_hdl, comment, comment_size) BIND(C) 
     39      USE ISO_C_BINDING 
     40      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     41      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     42      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     43    END SUBROUTINE cxios_get_filegroup_comment 
     44 
     45    FUNCTION cxios_is_defined_filegroup_comment(filegroup_hdl) BIND(C) 
     46      USE ISO_C_BINDING 
     47      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_comment 
     48      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     49    END FUNCTION cxios_is_defined_filegroup_comment 
     50 
     51 
    3152    SUBROUTINE cxios_set_filegroup_compression_level(filegroup_hdl, compression_level) BIND(C) 
    3253      USE ISO_C_BINDING 
     
    334355 
    335356 
     357    SUBROUTINE cxios_set_filegroup_read_metadata_par(filegroup_hdl, read_metadata_par) BIND(C) 
     358      USE ISO_C_BINDING 
     359      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     360      LOGICAL (KIND=C_BOOL)      , VALUE :: read_metadata_par 
     361    END SUBROUTINE cxios_set_filegroup_read_metadata_par 
     362 
     363    SUBROUTINE cxios_get_filegroup_read_metadata_par(filegroup_hdl, read_metadata_par) BIND(C) 
     364      USE ISO_C_BINDING 
     365      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     366      LOGICAL (KIND=C_BOOL)             :: read_metadata_par 
     367    END SUBROUTINE cxios_get_filegroup_read_metadata_par 
     368 
     369    FUNCTION cxios_is_defined_filegroup_read_metadata_par(filegroup_hdl) BIND(C) 
     370      USE ISO_C_BINDING 
     371      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_read_metadata_par 
     372      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     373    END FUNCTION cxios_is_defined_filegroup_read_metadata_par 
     374 
     375 
    336376    SUBROUTINE cxios_set_filegroup_record_offset(filegroup_hdl, record_offset) BIND(C) 
    337377      USE ISO_C_BINDING 
     
    351391      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
    352392    END FUNCTION cxios_is_defined_filegroup_record_offset 
     393 
     394 
     395    SUBROUTINE cxios_set_filegroup_split_end_offset(filegroup_hdl, split_end_offset) BIND(C) 
     396      USE ISO_C_BINDING 
     397      USE IDURATION 
     398      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     399      TYPE(txios(duration)), VALUE :: split_end_offset 
     400    END SUBROUTINE cxios_set_filegroup_split_end_offset 
     401 
     402    SUBROUTINE cxios_get_filegroup_split_end_offset(filegroup_hdl, split_end_offset) BIND(C) 
     403      USE ISO_C_BINDING 
     404      USE IDURATION 
     405      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     406      TYPE(txios(duration)) :: split_end_offset 
     407    END SUBROUTINE cxios_get_filegroup_split_end_offset 
     408 
     409    FUNCTION cxios_is_defined_filegroup_split_end_offset(filegroup_hdl) BIND(C) 
     410      USE ISO_C_BINDING 
     411      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_split_end_offset 
     412      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     413    END FUNCTION cxios_is_defined_filegroup_split_end_offset 
    353414 
    354415 
     
    395456 
    396457 
     458    SUBROUTINE cxios_set_filegroup_split_last_date(filegroup_hdl, split_last_date, split_last_date_size) BIND(C) 
     459      USE ISO_C_BINDING 
     460      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     461      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_last_date 
     462      INTEGER  (kind = C_INT)     , VALUE        :: split_last_date_size 
     463    END SUBROUTINE cxios_set_filegroup_split_last_date 
     464 
     465    SUBROUTINE cxios_get_filegroup_split_last_date(filegroup_hdl, split_last_date, split_last_date_size) BIND(C) 
     466      USE ISO_C_BINDING 
     467      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     468      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: split_last_date 
     469      INTEGER  (kind = C_INT)     , VALUE        :: split_last_date_size 
     470    END SUBROUTINE cxios_get_filegroup_split_last_date 
     471 
     472    FUNCTION cxios_is_defined_filegroup_split_last_date(filegroup_hdl) BIND(C) 
     473      USE ISO_C_BINDING 
     474      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_split_last_date 
     475      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     476    END FUNCTION cxios_is_defined_filegroup_split_last_date 
     477 
     478 
     479    SUBROUTINE cxios_set_filegroup_split_start_offset(filegroup_hdl, split_start_offset) BIND(C) 
     480      USE ISO_C_BINDING 
     481      USE IDURATION 
     482      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     483      TYPE(txios(duration)), VALUE :: split_start_offset 
     484    END SUBROUTINE cxios_set_filegroup_split_start_offset 
     485 
     486    SUBROUTINE cxios_get_filegroup_split_start_offset(filegroup_hdl, split_start_offset) BIND(C) 
     487      USE ISO_C_BINDING 
     488      USE IDURATION 
     489      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     490      TYPE(txios(duration)) :: split_start_offset 
     491    END SUBROUTINE cxios_get_filegroup_split_start_offset 
     492 
     493    FUNCTION cxios_is_defined_filegroup_split_start_offset(filegroup_hdl) BIND(C) 
     494      USE ISO_C_BINDING 
     495      LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_split_start_offset 
     496      INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 
     497    END FUNCTION cxios_is_defined_filegroup_split_start_offset 
     498 
     499 
    397500    SUBROUTINE cxios_set_filegroup_sync_freq(filegroup_hdl, sync_freq) BIND(C) 
    398501      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/grid_interface_attr.F90

    r932 r1545  
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
    1111 
     12    SUBROUTINE cxios_set_grid_comment(grid_hdl, comment, comment_size) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     15      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     16      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     17    END SUBROUTINE cxios_set_grid_comment 
     18 
     19    SUBROUTINE cxios_get_grid_comment(grid_hdl, comment, comment_size) BIND(C) 
     20      USE ISO_C_BINDING 
     21      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     22      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     23      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     24    END SUBROUTINE cxios_get_grid_comment 
     25 
     26    FUNCTION cxios_is_defined_grid_comment(grid_hdl) BIND(C) 
     27      USE ISO_C_BINDING 
     28      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_comment 
     29      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     30    END FUNCTION cxios_is_defined_grid_comment 
     31 
     32 
    1233    SUBROUTINE cxios_set_grid_description(grid_hdl, description, description_size) BIND(C) 
    1334      USE ISO_C_BINDING 
     
    3152 
    3253 
     54    SUBROUTINE cxios_set_grid_mask_0d(grid_hdl, mask_0d, extent) BIND(C) 
     55      USE ISO_C_BINDING 
     56      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     57      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_0d 
     58      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     59    END SUBROUTINE cxios_set_grid_mask_0d 
     60 
     61    SUBROUTINE cxios_get_grid_mask_0d(grid_hdl, mask_0d, extent) BIND(C) 
     62      USE ISO_C_BINDING 
     63      INTEGER (kind = C_INTPTR_T), VALUE       :: grid_hdl 
     64      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_0d 
     65      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     66    END SUBROUTINE cxios_get_grid_mask_0d 
     67 
     68    FUNCTION cxios_is_defined_grid_mask_0d(grid_hdl) BIND(C) 
     69      USE ISO_C_BINDING 
     70      LOGICAL(kind=C_BOOL) :: cxios_is_defined_grid_mask_0d 
     71      INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl 
     72    END FUNCTION cxios_is_defined_grid_mask_0d 
     73 
     74 
    3375    SUBROUTINE cxios_set_grid_mask_1d(grid_hdl, mask_1d, extent) BIND(C) 
    3476      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/gridgroup_interface_attr.F90

    r932 r1545  
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
    1111 
     12    SUBROUTINE cxios_set_gridgroup_comment(gridgroup_hdl, comment, comment_size) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     15      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     16      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     17    END SUBROUTINE cxios_set_gridgroup_comment 
     18 
     19    SUBROUTINE cxios_get_gridgroup_comment(gridgroup_hdl, comment, comment_size) BIND(C) 
     20      USE ISO_C_BINDING 
     21      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     22      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     23      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     24    END SUBROUTINE cxios_get_gridgroup_comment 
     25 
     26    FUNCTION cxios_is_defined_gridgroup_comment(gridgroup_hdl) BIND(C) 
     27      USE ISO_C_BINDING 
     28      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_comment 
     29      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     30    END FUNCTION cxios_is_defined_gridgroup_comment 
     31 
     32 
    1233    SUBROUTINE cxios_set_gridgroup_description(gridgroup_hdl, description, description_size) BIND(C) 
    1334      USE ISO_C_BINDING 
     
    5273 
    5374 
     75    SUBROUTINE cxios_set_gridgroup_mask_0d(gridgroup_hdl, mask_0d, extent) BIND(C) 
     76      USE ISO_C_BINDING 
     77      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     78      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_0d 
     79      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     80    END SUBROUTINE cxios_set_gridgroup_mask_0d 
     81 
     82    SUBROUTINE cxios_get_gridgroup_mask_0d(gridgroup_hdl, mask_0d, extent) BIND(C) 
     83      USE ISO_C_BINDING 
     84      INTEGER (kind = C_INTPTR_T), VALUE       :: gridgroup_hdl 
     85      LOGICAL (KIND=C_BOOL)     , DIMENSION(*) :: mask_0d 
     86      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     87    END SUBROUTINE cxios_get_gridgroup_mask_0d 
     88 
     89    FUNCTION cxios_is_defined_gridgroup_mask_0d(gridgroup_hdl) BIND(C) 
     90      USE ISO_C_BINDING 
     91      LOGICAL(kind=C_BOOL) :: cxios_is_defined_gridgroup_mask_0d 
     92      INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl 
     93    END FUNCTION cxios_is_defined_gridgroup_mask_0d 
     94 
     95 
    5496    SUBROUTINE cxios_set_gridgroup_mask_1d(gridgroup_hdl, mask_1d, extent) BIND(C) 
    5597      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/iaxis_attr.F90

    r1052 r1545  
    1212 
    1313  SUBROUTINE xios(set_axis_attr)  & 
    14     ( axis_id, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    15     , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    16      ) 
     14    ( axis_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     15    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     16    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     17    , value ) 
    1718 
    1819    IMPLICIT NONE 
     
    2021      CHARACTER(LEN=*), INTENT(IN) ::axis_id 
    2122      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
     23      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
    2224      INTEGER  , OPTIONAL, INTENT(IN) :: begin 
    2325      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
     26      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     27      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2428      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin 
    2529      INTEGER  , OPTIONAL, INTENT(IN) :: data_index(:) 
    2630      INTEGER  , OPTIONAL, INTENT(IN) :: data_n 
     31      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name 
     32      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula 
     33      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds 
     34      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term 
     35      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds 
    2736      INTEGER  , OPTIONAL, INTENT(IN) :: index(:) 
    2837      CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label(:) 
     
    4352      (axis_id,axis_hdl) 
    4453      CALL xios(set_axis_attr_hdl_)   & 
    45       ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    46       , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    47        ) 
     54      ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     55      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     56      , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     57      , value ) 
    4858 
    4959  END SUBROUTINE xios(set_axis_attr) 
    5060 
    5161  SUBROUTINE xios(set_axis_attr_hdl)  & 
    52     ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    53     , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    54      ) 
     62    ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     63    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     64    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     65    , value ) 
    5566 
    5667    IMPLICIT NONE 
    5768      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
    5869      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
     70      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
    5971      INTEGER  , OPTIONAL, INTENT(IN) :: begin 
    6072      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
     73      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     74      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    6175      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin 
    6276      INTEGER  , OPTIONAL, INTENT(IN) :: data_index(:) 
    6377      INTEGER  , OPTIONAL, INTENT(IN) :: data_n 
     78      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name 
     79      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula 
     80      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds 
     81      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term 
     82      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds 
    6483      INTEGER  , OPTIONAL, INTENT(IN) :: index(:) 
    6584      CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label(:) 
     
    7897 
    7998      CALL xios(set_axis_attr_hdl_)  & 
    80       ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    81       , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    82        ) 
     99      ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     100      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     101      , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     102      , value ) 
    83103 
    84104  END SUBROUTINE xios(set_axis_attr_hdl) 
    85105 
    86106  SUBROUTINE xios(set_axis_attr_hdl_)   & 
    87     ( axis_hdl, axis_ref_, begin_, bounds_, data_begin_, data_index_, data_n_, index_, label_, long_name_  & 
    88     , mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_, unit_  & 
    89     , value_ ) 
     107    ( axis_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_, data_index_  & 
     108    , data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_, index_  & 
     109    , label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_  & 
     110    , unit_, value_ ) 
    90111 
    91112    IMPLICIT NONE 
    92113      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
    93114      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 
     115      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type_ 
    94116      INTEGER  , OPTIONAL, INTENT(IN) :: begin_ 
    95117      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:,:) 
     118      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name_ 
     119      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    96120      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin_ 
    97121      INTEGER  , OPTIONAL, INTENT(IN) :: data_index_(:) 
    98122      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_ 
     123      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name_ 
     124      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_ 
     125      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds_ 
     126      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_ 
     127      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds_ 
    99128      INTEGER  , OPTIONAL, INTENT(IN) :: index_(:) 
    100129      CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label_(:) 
     
    117146      ENDIF 
    118147 
     148      IF (PRESENT(axis_type_)) THEN 
     149        CALL cxios_set_axis_axis_type & 
     150      (axis_hdl%daddr, axis_type_, len(axis_type_)) 
     151      ENDIF 
     152 
    119153      IF (PRESENT(begin_)) THEN 
    120154        CALL cxios_set_axis_begin & 
     
    127161      ENDIF 
    128162 
     163      IF (PRESENT(bounds_name_)) THEN 
     164        CALL cxios_set_axis_bounds_name & 
     165      (axis_hdl%daddr, bounds_name_, len(bounds_name_)) 
     166      ENDIF 
     167 
     168      IF (PRESENT(comment_)) THEN 
     169        CALL cxios_set_axis_comment & 
     170      (axis_hdl%daddr, comment_, len(comment_)) 
     171      ENDIF 
     172 
    129173      IF (PRESENT(data_begin_)) THEN 
    130174        CALL cxios_set_axis_data_begin & 
     
    140184        CALL cxios_set_axis_data_n & 
    141185      (axis_hdl%daddr, data_n_) 
     186      ENDIF 
     187 
     188      IF (PRESENT(dim_name_)) THEN 
     189        CALL cxios_set_axis_dim_name & 
     190      (axis_hdl%daddr, dim_name_, len(dim_name_)) 
     191      ENDIF 
     192 
     193      IF (PRESENT(formula_)) THEN 
     194        CALL cxios_set_axis_formula & 
     195      (axis_hdl%daddr, formula_, len(formula_)) 
     196      ENDIF 
     197 
     198      IF (PRESENT(formula_bounds_)) THEN 
     199        CALL cxios_set_axis_formula_bounds & 
     200      (axis_hdl%daddr, formula_bounds_, len(formula_bounds_)) 
     201      ENDIF 
     202 
     203      IF (PRESENT(formula_term_)) THEN 
     204        CALL cxios_set_axis_formula_term & 
     205      (axis_hdl%daddr, formula_term_, len(formula_term_)) 
     206      ENDIF 
     207 
     208      IF (PRESENT(formula_term_bounds_)) THEN 
     209        CALL cxios_set_axis_formula_term_bounds & 
     210      (axis_hdl%daddr, formula_term_bounds_, len(formula_term_bounds_)) 
    142211      ENDIF 
    143212 
     
    212281 
    213282  SUBROUTINE xios(get_axis_attr)  & 
    214     ( axis_id, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    215     , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    216      ) 
     283    ( axis_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     284    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     285    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     286    , value ) 
    217287 
    218288    IMPLICIT NONE 
     
    220290      CHARACTER(LEN=*), INTENT(IN) ::axis_id 
    221291      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
     292      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
    222293      INTEGER  , OPTIONAL, INTENT(OUT) :: begin 
    223294      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
     295      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     296      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    224297      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin 
    225298      INTEGER  , OPTIONAL, INTENT(OUT) :: data_index(:) 
    226299      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n 
     300      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_name 
     301      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula 
     302      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_bounds 
     303      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term 
     304      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_bounds 
    227305      INTEGER  , OPTIONAL, INTENT(OUT) :: index(:) 
    228306      CHARACTER(len=*) , OPTIONAL, INTENT(OUT) :: label(:) 
     
    243321      (axis_id,axis_hdl) 
    244322      CALL xios(get_axis_attr_hdl_)   & 
    245       ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    246       , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    247        ) 
     323      ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     324      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     325      , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     326      , value ) 
    248327 
    249328  END SUBROUTINE xios(get_axis_attr) 
    250329 
    251330  SUBROUTINE xios(get_axis_attr_hdl)  & 
    252     ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    253     , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    254      ) 
     331    ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     332    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     333    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     334    , value ) 
    255335 
    256336    IMPLICIT NONE 
    257337      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
    258338      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
     339      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
    259340      INTEGER  , OPTIONAL, INTENT(OUT) :: begin 
    260341      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
     342      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     343      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    261344      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin 
    262345      INTEGER  , OPTIONAL, INTENT(OUT) :: data_index(:) 
    263346      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n 
     347      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_name 
     348      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula 
     349      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_bounds 
     350      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term 
     351      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_bounds 
    264352      INTEGER  , OPTIONAL, INTENT(OUT) :: index(:) 
    265353      CHARACTER(len=*) , OPTIONAL, INTENT(OUT) :: label(:) 
     
    278366 
    279367      CALL xios(get_axis_attr_hdl_)  & 
    280       ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    281       , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    282        ) 
     368      ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     369      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     370      , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     371      , value ) 
    283372 
    284373  END SUBROUTINE xios(get_axis_attr_hdl) 
    285374 
    286375  SUBROUTINE xios(get_axis_attr_hdl_)   & 
    287     ( axis_hdl, axis_ref_, begin_, bounds_, data_begin_, data_index_, data_n_, index_, label_, long_name_  & 
    288     , mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_, unit_  & 
    289     , value_ ) 
     376    ( axis_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_, data_index_  & 
     377    , data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_, index_  & 
     378    , label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_  & 
     379    , unit_, value_ ) 
    290380 
    291381    IMPLICIT NONE 
    292382      TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 
    293383      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 
     384      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type_ 
    294385      INTEGER  , OPTIONAL, INTENT(OUT) :: begin_ 
    295386      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:,:) 
     387      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name_ 
     388      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    296389      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin_ 
    297390      INTEGER  , OPTIONAL, INTENT(OUT) :: data_index_(:) 
    298391      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_ 
     392      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_name_ 
     393      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_ 
     394      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_bounds_ 
     395      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_ 
     396      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_bounds_ 
    299397      INTEGER  , OPTIONAL, INTENT(OUT) :: index_(:) 
    300398      CHARACTER(len=*) , OPTIONAL, INTENT(OUT) :: label_(:) 
     
    317415      ENDIF 
    318416 
     417      IF (PRESENT(axis_type_)) THEN 
     418        CALL cxios_get_axis_axis_type & 
     419      (axis_hdl%daddr, axis_type_, len(axis_type_)) 
     420      ENDIF 
     421 
    319422      IF (PRESENT(begin_)) THEN 
    320423        CALL cxios_get_axis_begin & 
     
    327430      ENDIF 
    328431 
     432      IF (PRESENT(bounds_name_)) THEN 
     433        CALL cxios_get_axis_bounds_name & 
     434      (axis_hdl%daddr, bounds_name_, len(bounds_name_)) 
     435      ENDIF 
     436 
     437      IF (PRESENT(comment_)) THEN 
     438        CALL cxios_get_axis_comment & 
     439      (axis_hdl%daddr, comment_, len(comment_)) 
     440      ENDIF 
     441 
    329442      IF (PRESENT(data_begin_)) THEN 
    330443        CALL cxios_get_axis_data_begin & 
     
    340453        CALL cxios_get_axis_data_n & 
    341454      (axis_hdl%daddr, data_n_) 
     455      ENDIF 
     456 
     457      IF (PRESENT(dim_name_)) THEN 
     458        CALL cxios_get_axis_dim_name & 
     459      (axis_hdl%daddr, dim_name_, len(dim_name_)) 
     460      ENDIF 
     461 
     462      IF (PRESENT(formula_)) THEN 
     463        CALL cxios_get_axis_formula & 
     464      (axis_hdl%daddr, formula_, len(formula_)) 
     465      ENDIF 
     466 
     467      IF (PRESENT(formula_bounds_)) THEN 
     468        CALL cxios_get_axis_formula_bounds & 
     469      (axis_hdl%daddr, formula_bounds_, len(formula_bounds_)) 
     470      ENDIF 
     471 
     472      IF (PRESENT(formula_term_)) THEN 
     473        CALL cxios_get_axis_formula_term & 
     474      (axis_hdl%daddr, formula_term_, len(formula_term_)) 
     475      ENDIF 
     476 
     477      IF (PRESENT(formula_term_bounds_)) THEN 
     478        CALL cxios_get_axis_formula_term_bounds & 
     479      (axis_hdl%daddr, formula_term_bounds_, len(formula_term_bounds_)) 
    342480      ENDIF 
    343481 
     
    412550 
    413551  SUBROUTINE xios(is_defined_axis_attr)  & 
    414     ( axis_id, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    415     , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    416      ) 
     552    ( axis_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     553    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     554    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     555    , value ) 
    417556 
    418557    IMPLICIT NONE 
     
    421560      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 
    422561      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 
     562      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     563      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
    423564      LOGICAL, OPTIONAL, INTENT(OUT) :: begin 
    424565      LOGICAL(KIND=C_BOOL) :: begin_tmp 
    425566      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
    426567      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     568      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     569      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     570      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     571      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    427572      LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 
    428573      LOGICAL(KIND=C_BOOL) :: data_begin_tmp 
     
    431576      LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 
    432577      LOGICAL(KIND=C_BOOL) :: data_n_tmp 
     578      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_name 
     579      LOGICAL(KIND=C_BOOL) :: dim_name_tmp 
     580      LOGICAL, OPTIONAL, INTENT(OUT) :: formula 
     581      LOGICAL(KIND=C_BOOL) :: formula_tmp 
     582      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_bounds 
     583      LOGICAL(KIND=C_BOOL) :: formula_bounds_tmp 
     584      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term 
     585      LOGICAL(KIND=C_BOOL) :: formula_term_tmp 
     586      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_bounds 
     587      LOGICAL(KIND=C_BOOL) :: formula_term_bounds_tmp 
    433588      LOGICAL, OPTIONAL, INTENT(OUT) :: index 
    434589      LOGICAL(KIND=C_BOOL) :: index_tmp 
     
    461616      (axis_id,axis_hdl) 
    462617      CALL xios(is_defined_axis_attr_hdl_)   & 
    463       ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    464       , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    465        ) 
     618      ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     619      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     620      , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     621      , value ) 
    466622 
    467623  END SUBROUTINE xios(is_defined_axis_attr) 
    468624 
    469625  SUBROUTINE xios(is_defined_axis_attr_hdl)  & 
    470     ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    471     , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    472      ) 
     626    ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     627    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     628    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     629    , value ) 
    473630 
    474631    IMPLICIT NONE 
     
    476633      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 
    477634      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 
     635      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     636      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
    478637      LOGICAL, OPTIONAL, INTENT(OUT) :: begin 
    479638      LOGICAL(KIND=C_BOOL) :: begin_tmp 
    480639      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
    481640      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     641      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     642      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     643      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     644      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    482645      LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 
    483646      LOGICAL(KIND=C_BOOL) :: data_begin_tmp 
     
    486649      LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 
    487650      LOGICAL(KIND=C_BOOL) :: data_n_tmp 
     651      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_name 
     652      LOGICAL(KIND=C_BOOL) :: dim_name_tmp 
     653      LOGICAL, OPTIONAL, INTENT(OUT) :: formula 
     654      LOGICAL(KIND=C_BOOL) :: formula_tmp 
     655      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_bounds 
     656      LOGICAL(KIND=C_BOOL) :: formula_bounds_tmp 
     657      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term 
     658      LOGICAL(KIND=C_BOOL) :: formula_term_tmp 
     659      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_bounds 
     660      LOGICAL(KIND=C_BOOL) :: formula_term_bounds_tmp 
    488661      LOGICAL, OPTIONAL, INTENT(OUT) :: index 
    489662      LOGICAL(KIND=C_BOOL) :: index_tmp 
     
    514687 
    515688      CALL xios(is_defined_axis_attr_hdl_)  & 
    516       ( axis_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, index, label, long_name  & 
    517       , mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit, value  & 
    518        ) 
     689      ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     690      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  & 
     691      , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
     692      , value ) 
    519693 
    520694  END SUBROUTINE xios(is_defined_axis_attr_hdl) 
    521695 
    522696  SUBROUTINE xios(is_defined_axis_attr_hdl_)   & 
    523     ( axis_hdl, axis_ref_, begin_, bounds_, data_begin_, data_index_, data_n_, index_, label_, long_name_  & 
    524     , mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_, unit_  & 
    525     , value_ ) 
     697    ( axis_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_, data_index_  & 
     698    , data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_, index_  & 
     699    , label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_  & 
     700    , unit_, value_ ) 
    526701 
    527702    IMPLICIT NONE 
     
    529704      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_ 
    530705      LOGICAL(KIND=C_BOOL) :: axis_ref__tmp 
     706      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type_ 
     707      LOGICAL(KIND=C_BOOL) :: axis_type__tmp 
    531708      LOGICAL, OPTIONAL, INTENT(OUT) :: begin_ 
    532709      LOGICAL(KIND=C_BOOL) :: begin__tmp 
    533710      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 
    534711      LOGICAL(KIND=C_BOOL) :: bounds__tmp 
     712      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name_ 
     713      LOGICAL(KIND=C_BOOL) :: bounds_name__tmp 
     714      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     715      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    535716      LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin_ 
    536717      LOGICAL(KIND=C_BOOL) :: data_begin__tmp 
     
    539720      LOGICAL, OPTIONAL, INTENT(OUT) :: data_n_ 
    540721      LOGICAL(KIND=C_BOOL) :: data_n__tmp 
     722      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_name_ 
     723      LOGICAL(KIND=C_BOOL) :: dim_name__tmp 
     724      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_ 
     725      LOGICAL(KIND=C_BOOL) :: formula__tmp 
     726      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_bounds_ 
     727      LOGICAL(KIND=C_BOOL) :: formula_bounds__tmp 
     728      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_ 
     729      LOGICAL(KIND=C_BOOL) :: formula_term__tmp 
     730      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_bounds_ 
     731      LOGICAL(KIND=C_BOOL) :: formula_term_bounds__tmp 
    541732      LOGICAL, OPTIONAL, INTENT(OUT) :: index_ 
    542733      LOGICAL(KIND=C_BOOL) :: index__tmp 
     
    572763      ENDIF 
    573764 
     765      IF (PRESENT(axis_type_)) THEN 
     766        axis_type__tmp = cxios_is_defined_axis_axis_type & 
     767      (axis_hdl%daddr) 
     768        axis_type_ = axis_type__tmp 
     769      ENDIF 
     770 
    574771      IF (PRESENT(begin_)) THEN 
    575772        begin__tmp = cxios_is_defined_axis_begin & 
     
    584781      ENDIF 
    585782 
     783      IF (PRESENT(bounds_name_)) THEN 
     784        bounds_name__tmp = cxios_is_defined_axis_bounds_name & 
     785      (axis_hdl%daddr) 
     786        bounds_name_ = bounds_name__tmp 
     787      ENDIF 
     788 
     789      IF (PRESENT(comment_)) THEN 
     790        comment__tmp = cxios_is_defined_axis_comment & 
     791      (axis_hdl%daddr) 
     792        comment_ = comment__tmp 
     793      ENDIF 
     794 
    586795      IF (PRESENT(data_begin_)) THEN 
    587796        data_begin__tmp = cxios_is_defined_axis_data_begin & 
     
    602811      ENDIF 
    603812 
     813      IF (PRESENT(dim_name_)) THEN 
     814        dim_name__tmp = cxios_is_defined_axis_dim_name & 
     815      (axis_hdl%daddr) 
     816        dim_name_ = dim_name__tmp 
     817      ENDIF 
     818 
     819      IF (PRESENT(formula_)) THEN 
     820        formula__tmp = cxios_is_defined_axis_formula & 
     821      (axis_hdl%daddr) 
     822        formula_ = formula__tmp 
     823      ENDIF 
     824 
     825      IF (PRESENT(formula_bounds_)) THEN 
     826        formula_bounds__tmp = cxios_is_defined_axis_formula_bounds & 
     827      (axis_hdl%daddr) 
     828        formula_bounds_ = formula_bounds__tmp 
     829      ENDIF 
     830 
     831      IF (PRESENT(formula_term_)) THEN 
     832        formula_term__tmp = cxios_is_defined_axis_formula_term & 
     833      (axis_hdl%daddr) 
     834        formula_term_ = formula_term__tmp 
     835      ENDIF 
     836 
     837      IF (PRESENT(formula_term_bounds_)) THEN 
     838        formula_term_bounds__tmp = cxios_is_defined_axis_formula_term_bounds & 
     839      (axis_hdl%daddr) 
     840        formula_term_bounds_ = formula_term_bounds__tmp 
     841      ENDIF 
     842 
    604843      IF (PRESENT(index_)) THEN 
    605844        index__tmp = cxios_is_defined_axis_index & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/iaxisgroup_attr.F90

    r1052 r1545  
    1212 
    1313  SUBROUTINE xios(set_axisgroup_attr)  & 
    14     ( axisgroup_id, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    15     , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    16     , value ) 
     14    ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     15    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     16    , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     17    , unit, value ) 
    1718 
    1819    IMPLICIT NONE 
     
    2021      CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id 
    2122      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
     23      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
    2224      INTEGER  , OPTIONAL, INTENT(IN) :: begin 
    2325      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
     26      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     27      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2428      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin 
    2529      INTEGER  , OPTIONAL, INTENT(IN) :: data_index(:) 
    2630      INTEGER  , OPTIONAL, INTENT(IN) :: data_n 
     31      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name 
     32      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula 
     33      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds 
     34      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term 
     35      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds 
    2736      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    2837      INTEGER  , OPTIONAL, INTENT(IN) :: index(:) 
     
    4453      (axisgroup_id,axisgroup_hdl) 
    4554      CALL xios(set_axisgroup_attr_hdl_)   & 
    46       ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    47       , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    48       , value ) 
     55      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     56      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     57      , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     58      , unit, value ) 
    4959 
    5060  END SUBROUTINE xios(set_axisgroup_attr) 
    5161 
    5262  SUBROUTINE xios(set_axisgroup_attr_hdl)  & 
    53     ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    54     , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    55     , value ) 
     63    ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     64    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     65    , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     66    , unit, value ) 
    5667 
    5768    IMPLICIT NONE 
    5869      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
    5970      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 
     71      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
    6072      INTEGER  , OPTIONAL, INTENT(IN) :: begin 
    6173      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 
     74      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     75      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    6276      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin 
    6377      INTEGER  , OPTIONAL, INTENT(IN) :: data_index(:) 
    6478      INTEGER  , OPTIONAL, INTENT(IN) :: data_n 
     79      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name 
     80      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula 
     81      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds 
     82      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term 
     83      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds 
    6584      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
    6685      INTEGER  , OPTIONAL, INTENT(IN) :: index(:) 
     
    8099 
    81100      CALL xios(set_axisgroup_attr_hdl_)  & 
    82       ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    83       , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    84       , value ) 
     101      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     102      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     103      , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     104      , unit, value ) 
    85105 
    86106  END SUBROUTINE xios(set_axisgroup_attr_hdl) 
    87107 
    88108  SUBROUTINE xios(set_axisgroup_attr_hdl_)   & 
    89     ( axisgroup_hdl, axis_ref_, begin_, bounds_, data_begin_, data_index_, data_n_, group_ref_, index_  & 
    90     , label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_  & 
    91     , unit_, value_ ) 
     109    ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_  & 
     110    , data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
     111    , group_ref_, index_, label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_  & 
     112    , positive_, prec_, standard_name_, unit_, value_ ) 
    92113 
    93114    IMPLICIT NONE 
    94115      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
    95116      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 
     117      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type_ 
    96118      INTEGER  , OPTIONAL, INTENT(IN) :: begin_ 
    97119      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:,:) 
     120      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name_ 
     121      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    98122      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin_ 
    99123      INTEGER  , OPTIONAL, INTENT(IN) :: data_index_(:) 
    100124      INTEGER  , OPTIONAL, INTENT(IN) :: data_n_ 
     125      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name_ 
     126      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_ 
     127      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds_ 
     128      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_ 
     129      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds_ 
    101130      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
    102131      INTEGER  , OPTIONAL, INTENT(IN) :: index_(:) 
     
    120149      ENDIF 
    121150 
     151      IF (PRESENT(axis_type_)) THEN 
     152        CALL cxios_set_axisgroup_axis_type & 
     153      (axisgroup_hdl%daddr, axis_type_, len(axis_type_)) 
     154      ENDIF 
     155 
    122156      IF (PRESENT(begin_)) THEN 
    123157        CALL cxios_set_axisgroup_begin & 
     
    130164      ENDIF 
    131165 
     166      IF (PRESENT(bounds_name_)) THEN 
     167        CALL cxios_set_axisgroup_bounds_name & 
     168      (axisgroup_hdl%daddr, bounds_name_, len(bounds_name_)) 
     169      ENDIF 
     170 
     171      IF (PRESENT(comment_)) THEN 
     172        CALL cxios_set_axisgroup_comment & 
     173      (axisgroup_hdl%daddr, comment_, len(comment_)) 
     174      ENDIF 
     175 
    132176      IF (PRESENT(data_begin_)) THEN 
    133177        CALL cxios_set_axisgroup_data_begin & 
     
    143187        CALL cxios_set_axisgroup_data_n & 
    144188      (axisgroup_hdl%daddr, data_n_) 
     189      ENDIF 
     190 
     191      IF (PRESENT(dim_name_)) THEN 
     192        CALL cxios_set_axisgroup_dim_name & 
     193      (axisgroup_hdl%daddr, dim_name_, len(dim_name_)) 
     194      ENDIF 
     195 
     196      IF (PRESENT(formula_)) THEN 
     197        CALL cxios_set_axisgroup_formula & 
     198      (axisgroup_hdl%daddr, formula_, len(formula_)) 
     199      ENDIF 
     200 
     201      IF (PRESENT(formula_bounds_)) THEN 
     202        CALL cxios_set_axisgroup_formula_bounds & 
     203      (axisgroup_hdl%daddr, formula_bounds_, len(formula_bounds_)) 
     204      ENDIF 
     205 
     206      IF (PRESENT(formula_term_)) THEN 
     207        CALL cxios_set_axisgroup_formula_term & 
     208      (axisgroup_hdl%daddr, formula_term_, len(formula_term_)) 
     209      ENDIF 
     210 
     211      IF (PRESENT(formula_term_bounds_)) THEN 
     212        CALL cxios_set_axisgroup_formula_term_bounds & 
     213      (axisgroup_hdl%daddr, formula_term_bounds_, len(formula_term_bounds_)) 
    145214      ENDIF 
    146215 
     
    220289 
    221290  SUBROUTINE xios(get_axisgroup_attr)  & 
    222     ( axisgroup_id, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    223     , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    224     , value ) 
     291    ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     292    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     293    , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     294    , unit, value ) 
    225295 
    226296    IMPLICIT NONE 
     
    228298      CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id 
    229299      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
     300      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
    230301      INTEGER  , OPTIONAL, INTENT(OUT) :: begin 
    231302      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
     303      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     304      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    232305      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin 
    233306      INTEGER  , OPTIONAL, INTENT(OUT) :: data_index(:) 
    234307      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n 
     308      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_name 
     309      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula 
     310      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_bounds 
     311      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term 
     312      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_bounds 
    235313      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    236314      INTEGER  , OPTIONAL, INTENT(OUT) :: index(:) 
     
    252330      (axisgroup_id,axisgroup_hdl) 
    253331      CALL xios(get_axisgroup_attr_hdl_)   & 
    254       ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    255       , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    256       , value ) 
     332      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     333      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     334      , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     335      , unit, value ) 
    257336 
    258337  END SUBROUTINE xios(get_axisgroup_attr) 
    259338 
    260339  SUBROUTINE xios(get_axisgroup_attr_hdl)  & 
    261     ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    262     , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    263     , value ) 
     340    ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     341    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     342    , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     343    , unit, value ) 
    264344 
    265345    IMPLICIT NONE 
    266346      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
    267347      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 
     348      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
    268349      INTEGER  , OPTIONAL, INTENT(OUT) :: begin 
    269350      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 
     351      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     352      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    270353      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin 
    271354      INTEGER  , OPTIONAL, INTENT(OUT) :: data_index(:) 
    272355      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n 
     356      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_name 
     357      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula 
     358      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_bounds 
     359      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term 
     360      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_bounds 
    273361      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
    274362      INTEGER  , OPTIONAL, INTENT(OUT) :: index(:) 
     
    288376 
    289377      CALL xios(get_axisgroup_attr_hdl_)  & 
    290       ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    291       , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    292       , value ) 
     378      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     379      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     380      , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     381      , unit, value ) 
    293382 
    294383  END SUBROUTINE xios(get_axisgroup_attr_hdl) 
    295384 
    296385  SUBROUTINE xios(get_axisgroup_attr_hdl_)   & 
    297     ( axisgroup_hdl, axis_ref_, begin_, bounds_, data_begin_, data_index_, data_n_, group_ref_, index_  & 
    298     , label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_  & 
    299     , unit_, value_ ) 
     386    ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_  & 
     387    , data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
     388    , group_ref_, index_, label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_  & 
     389    , positive_, prec_, standard_name_, unit_, value_ ) 
    300390 
    301391    IMPLICIT NONE 
    302392      TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 
    303393      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 
     394      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type_ 
    304395      INTEGER  , OPTIONAL, INTENT(OUT) :: begin_ 
    305396      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:,:) 
     397      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name_ 
     398      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    306399      INTEGER  , OPTIONAL, INTENT(OUT) :: data_begin_ 
    307400      INTEGER  , OPTIONAL, INTENT(OUT) :: data_index_(:) 
    308401      INTEGER  , OPTIONAL, INTENT(OUT) :: data_n_ 
     402      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_name_ 
     403      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_ 
     404      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_bounds_ 
     405      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_ 
     406      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: formula_term_bounds_ 
    309407      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
    310408      INTEGER  , OPTIONAL, INTENT(OUT) :: index_(:) 
     
    328426      ENDIF 
    329427 
     428      IF (PRESENT(axis_type_)) THEN 
     429        CALL cxios_get_axisgroup_axis_type & 
     430      (axisgroup_hdl%daddr, axis_type_, len(axis_type_)) 
     431      ENDIF 
     432 
    330433      IF (PRESENT(begin_)) THEN 
    331434        CALL cxios_get_axisgroup_begin & 
     
    338441      ENDIF 
    339442 
     443      IF (PRESENT(bounds_name_)) THEN 
     444        CALL cxios_get_axisgroup_bounds_name & 
     445      (axisgroup_hdl%daddr, bounds_name_, len(bounds_name_)) 
     446      ENDIF 
     447 
     448      IF (PRESENT(comment_)) THEN 
     449        CALL cxios_get_axisgroup_comment & 
     450      (axisgroup_hdl%daddr, comment_, len(comment_)) 
     451      ENDIF 
     452 
    340453      IF (PRESENT(data_begin_)) THEN 
    341454        CALL cxios_get_axisgroup_data_begin & 
     
    351464        CALL cxios_get_axisgroup_data_n & 
    352465      (axisgroup_hdl%daddr, data_n_) 
     466      ENDIF 
     467 
     468      IF (PRESENT(dim_name_)) THEN 
     469        CALL cxios_get_axisgroup_dim_name & 
     470      (axisgroup_hdl%daddr, dim_name_, len(dim_name_)) 
     471      ENDIF 
     472 
     473      IF (PRESENT(formula_)) THEN 
     474        CALL cxios_get_axisgroup_formula & 
     475      (axisgroup_hdl%daddr, formula_, len(formula_)) 
     476      ENDIF 
     477 
     478      IF (PRESENT(formula_bounds_)) THEN 
     479        CALL cxios_get_axisgroup_formula_bounds & 
     480      (axisgroup_hdl%daddr, formula_bounds_, len(formula_bounds_)) 
     481      ENDIF 
     482 
     483      IF (PRESENT(formula_term_)) THEN 
     484        CALL cxios_get_axisgroup_formula_term & 
     485      (axisgroup_hdl%daddr, formula_term_, len(formula_term_)) 
     486      ENDIF 
     487 
     488      IF (PRESENT(formula_term_bounds_)) THEN 
     489        CALL cxios_get_axisgroup_formula_term_bounds & 
     490      (axisgroup_hdl%daddr, formula_term_bounds_, len(formula_term_bounds_)) 
    353491      ENDIF 
    354492 
     
    428566 
    429567  SUBROUTINE xios(is_defined_axisgroup_attr)  & 
    430     ( axisgroup_id, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    431     , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    432     , value ) 
     568    ( axisgroup_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     569    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     570    , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     571    , unit, value ) 
    433572 
    434573    IMPLICIT NONE 
     
    437576      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 
    438577      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 
     578      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     579      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
    439580      LOGICAL, OPTIONAL, INTENT(OUT) :: begin 
    440581      LOGICAL(KIND=C_BOOL) :: begin_tmp 
    441582      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
    442583      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     584      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     585      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     586      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     587      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    443588      LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 
    444589      LOGICAL(KIND=C_BOOL) :: data_begin_tmp 
     
    447592      LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 
    448593      LOGICAL(KIND=C_BOOL) :: data_n_tmp 
     594      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_name 
     595      LOGICAL(KIND=C_BOOL) :: dim_name_tmp 
     596      LOGICAL, OPTIONAL, INTENT(OUT) :: formula 
     597      LOGICAL(KIND=C_BOOL) :: formula_tmp 
     598      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_bounds 
     599      LOGICAL(KIND=C_BOOL) :: formula_bounds_tmp 
     600      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term 
     601      LOGICAL(KIND=C_BOOL) :: formula_term_tmp 
     602      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_bounds 
     603      LOGICAL(KIND=C_BOOL) :: formula_term_bounds_tmp 
    449604      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    450605      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     
    479634      (axisgroup_id,axisgroup_hdl) 
    480635      CALL xios(is_defined_axisgroup_attr_hdl_)   & 
    481       ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    482       , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    483       , value ) 
     636      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     637      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     638      , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     639      , unit, value ) 
    484640 
    485641  END SUBROUTINE xios(is_defined_axisgroup_attr) 
    486642 
    487643  SUBROUTINE xios(is_defined_axisgroup_attr_hdl)  & 
    488     ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    489     , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    490     , value ) 
     644    ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     645    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     646    , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     647    , unit, value ) 
    491648 
    492649    IMPLICIT NONE 
     
    494651      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 
    495652      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 
     653      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     654      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
    496655      LOGICAL, OPTIONAL, INTENT(OUT) :: begin 
    497656      LOGICAL(KIND=C_BOOL) :: begin_tmp 
    498657      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
    499658      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     659      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     660      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     661      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     662      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    500663      LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 
    501664      LOGICAL(KIND=C_BOOL) :: data_begin_tmp 
     
    504667      LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 
    505668      LOGICAL(KIND=C_BOOL) :: data_n_tmp 
     669      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_name 
     670      LOGICAL(KIND=C_BOOL) :: dim_name_tmp 
     671      LOGICAL, OPTIONAL, INTENT(OUT) :: formula 
     672      LOGICAL(KIND=C_BOOL) :: formula_tmp 
     673      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_bounds 
     674      LOGICAL(KIND=C_BOOL) :: formula_bounds_tmp 
     675      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term 
     676      LOGICAL(KIND=C_BOOL) :: formula_term_tmp 
     677      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_bounds 
     678      LOGICAL(KIND=C_BOOL) :: formula_term_bounds_tmp 
    506679      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    507680      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     
    534707 
    535708      CALL xios(is_defined_axisgroup_attr_hdl_)  & 
    536       ( axisgroup_hdl, axis_ref, begin, bounds, data_begin, data_index, data_n, group_ref, index, label  & 
    537       , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  & 
    538       , value ) 
     709      ( axisgroup_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  & 
     710      , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, group_ref, index  & 
     711      , label, long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name  & 
     712      , unit, value ) 
    539713 
    540714  END SUBROUTINE xios(is_defined_axisgroup_attr_hdl) 
    541715 
    542716  SUBROUTINE xios(is_defined_axisgroup_attr_hdl_)   & 
    543     ( axisgroup_hdl, axis_ref_, begin_, bounds_, data_begin_, data_index_, data_n_, group_ref_, index_  & 
    544     , label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_, positive_, prec_, standard_name_  & 
    545     , unit_, value_ ) 
     717    ( axisgroup_hdl, axis_ref_, axis_type_, begin_, bounds_, bounds_name_, comment_, data_begin_  & 
     718    , data_index_, data_n_, dim_name_, formula_, formula_bounds_, formula_term_, formula_term_bounds_  & 
     719    , group_ref_, index_, label_, long_name_, mask_, n_, n_distributed_partition_, n_glo_, name_  & 
     720    , positive_, prec_, standard_name_, unit_, value_ ) 
    546721 
    547722    IMPLICIT NONE 
     
    549724      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_ 
    550725      LOGICAL(KIND=C_BOOL) :: axis_ref__tmp 
     726      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type_ 
     727      LOGICAL(KIND=C_BOOL) :: axis_type__tmp 
    551728      LOGICAL, OPTIONAL, INTENT(OUT) :: begin_ 
    552729      LOGICAL(KIND=C_BOOL) :: begin__tmp 
    553730      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 
    554731      LOGICAL(KIND=C_BOOL) :: bounds__tmp 
     732      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name_ 
     733      LOGICAL(KIND=C_BOOL) :: bounds_name__tmp 
     734      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     735      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    555736      LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin_ 
    556737      LOGICAL(KIND=C_BOOL) :: data_begin__tmp 
     
    559740      LOGICAL, OPTIONAL, INTENT(OUT) :: data_n_ 
    560741      LOGICAL(KIND=C_BOOL) :: data_n__tmp 
     742      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_name_ 
     743      LOGICAL(KIND=C_BOOL) :: dim_name__tmp 
     744      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_ 
     745      LOGICAL(KIND=C_BOOL) :: formula__tmp 
     746      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_bounds_ 
     747      LOGICAL(KIND=C_BOOL) :: formula_bounds__tmp 
     748      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_ 
     749      LOGICAL(KIND=C_BOOL) :: formula_term__tmp 
     750      LOGICAL, OPTIONAL, INTENT(OUT) :: formula_term_bounds_ 
     751      LOGICAL(KIND=C_BOOL) :: formula_term_bounds__tmp 
    561752      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 
    562753      LOGICAL(KIND=C_BOOL) :: group_ref__tmp 
     
    594785      ENDIF 
    595786 
     787      IF (PRESENT(axis_type_)) THEN 
     788        axis_type__tmp = cxios_is_defined_axisgroup_axis_type & 
     789      (axisgroup_hdl%daddr) 
     790        axis_type_ = axis_type__tmp 
     791      ENDIF 
     792 
    596793      IF (PRESENT(begin_)) THEN 
    597794        begin__tmp = cxios_is_defined_axisgroup_begin & 
     
    606803      ENDIF 
    607804 
     805      IF (PRESENT(bounds_name_)) THEN 
     806        bounds_name__tmp = cxios_is_defined_axisgroup_bounds_name & 
     807      (axisgroup_hdl%daddr) 
     808        bounds_name_ = bounds_name__tmp 
     809      ENDIF 
     810 
     811      IF (PRESENT(comment_)) THEN 
     812        comment__tmp = cxios_is_defined_axisgroup_comment & 
     813      (axisgroup_hdl%daddr) 
     814        comment_ = comment__tmp 
     815      ENDIF 
     816 
    608817      IF (PRESENT(data_begin_)) THEN 
    609818        data_begin__tmp = cxios_is_defined_axisgroup_data_begin & 
     
    624833      ENDIF 
    625834 
     835      IF (PRESENT(dim_name_)) THEN 
     836        dim_name__tmp = cxios_is_defined_axisgroup_dim_name & 
     837      (axisgroup_hdl%daddr) 
     838        dim_name_ = dim_name__tmp 
     839      ENDIF 
     840 
     841      IF (PRESENT(formula_)) THEN 
     842        formula__tmp = cxios_is_defined_axisgroup_formula & 
     843      (axisgroup_hdl%daddr) 
     844        formula_ = formula__tmp 
     845      ENDIF 
     846 
     847      IF (PRESENT(formula_bounds_)) THEN 
     848        formula_bounds__tmp = cxios_is_defined_axisgroup_formula_bounds & 
     849      (axisgroup_hdl%daddr) 
     850        formula_bounds_ = formula_bounds__tmp 
     851      ENDIF 
     852 
     853      IF (PRESENT(formula_term_)) THEN 
     854        formula_term__tmp = cxios_is_defined_axisgroup_formula_term & 
     855      (axisgroup_hdl%daddr) 
     856        formula_term_ = formula_term__tmp 
     857      ENDIF 
     858 
     859      IF (PRESENT(formula_term_bounds_)) THEN 
     860        formula_term_bounds__tmp = cxios_is_defined_axisgroup_formula_term_bounds & 
     861      (axisgroup_hdl%daddr) 
     862        formula_term_bounds_ = formula_term_bounds__tmp 
     863      ENDIF 
     864 
    626865      IF (PRESENT(group_ref_)) THEN 
    627866        group_ref__tmp = cxios_is_defined_axisgroup_group_ref & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/icalendar_wrapper_attr.F90

    r966 r1545  
    1212 
    1313  SUBROUTINE xios(set_calendar_wrapper_attr)  & 
    14     ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     14    ( calendar_wrapper_id, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    1515    , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    1616 
     
    1818      TYPE(txios(calendar_wrapper))  :: calendar_wrapper_hdl 
    1919      CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 
     20      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2021      INTEGER  , OPTIONAL, INTENT(IN) :: day_length 
    2122      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift 
     
    3233      (calendar_wrapper_id,calendar_wrapper_hdl) 
    3334      CALL xios(set_calendar_wrapper_attr_hdl_)   & 
    34       ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     35      ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    3536      , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    3637 
     
    3839 
    3940  SUBROUTINE xios(set_calendar_wrapper_attr_hdl)  & 
    40     ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    41     , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    42  
    43     IMPLICIT NONE 
    44       TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     41    ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     42    , month_lengths, start_date, time_origin, timestep, type, year_length ) 
     43 
     44    IMPLICIT NONE 
     45      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     46      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    4547      INTEGER  , OPTIONAL, INTENT(IN) :: day_length 
    4648      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift 
     
    5557 
    5658      CALL xios(set_calendar_wrapper_attr_hdl_)  & 
    57       ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     59      ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    5860      , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    5961 
     
    6163 
    6264  SUBROUTINE xios(set_calendar_wrapper_attr_hdl_)   & 
    63     ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  & 
     65    ( calendar_wrapper_hdl, comment_, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  & 
    6466    , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 
    6567 
    6668    IMPLICIT NONE 
    6769      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     70      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    6871      INTEGER  , OPTIONAL, INTENT(IN) :: day_length_ 
    6972      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_ 
     
    7780      INTEGER  , OPTIONAL, INTENT(IN) :: year_length_ 
    7881 
     82      IF (PRESENT(comment_)) THEN 
     83        CALL cxios_set_calendar_wrapper_comment & 
     84      (calendar_wrapper_hdl%daddr, comment_, len(comment_)) 
     85      ENDIF 
     86 
    7987      IF (PRESENT(day_length_)) THEN 
    8088        CALL cxios_set_calendar_wrapper_day_length & 
     
    130138 
    131139  SUBROUTINE xios(get_calendar_wrapper_attr)  & 
    132     ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     140    ( calendar_wrapper_id, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    133141    , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    134142 
     
    136144      TYPE(txios(calendar_wrapper))  :: calendar_wrapper_hdl 
    137145      CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 
     146      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    138147      INTEGER  , OPTIONAL, INTENT(OUT) :: day_length 
    139148      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift 
     
    150159      (calendar_wrapper_id,calendar_wrapper_hdl) 
    151160      CALL xios(get_calendar_wrapper_attr_hdl_)   & 
    152       ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     161      ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    153162      , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    154163 
     
    156165 
    157166  SUBROUTINE xios(get_calendar_wrapper_attr_hdl)  & 
    158     ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    159     , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    160  
    161     IMPLICIT NONE 
    162       TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     167    ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     168    , month_lengths, start_date, time_origin, timestep, type, year_length ) 
     169 
     170    IMPLICIT NONE 
     171      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     172      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    163173      INTEGER  , OPTIONAL, INTENT(OUT) :: day_length 
    164174      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift 
     
    173183 
    174184      CALL xios(get_calendar_wrapper_attr_hdl_)  & 
    175       ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     185      ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    176186      , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    177187 
     
    179189 
    180190  SUBROUTINE xios(get_calendar_wrapper_attr_hdl_)   & 
    181     ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  & 
     191    ( calendar_wrapper_hdl, comment_, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  & 
    182192    , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 
    183193 
    184194    IMPLICIT NONE 
    185195      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     196      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    186197      INTEGER  , OPTIONAL, INTENT(OUT) :: day_length_ 
    187198      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_ 
     
    195206      INTEGER  , OPTIONAL, INTENT(OUT) :: year_length_ 
    196207 
     208      IF (PRESENT(comment_)) THEN 
     209        CALL cxios_get_calendar_wrapper_comment & 
     210      (calendar_wrapper_hdl%daddr, comment_, len(comment_)) 
     211      ENDIF 
     212 
    197213      IF (PRESENT(day_length_)) THEN 
    198214        CALL cxios_get_calendar_wrapper_day_length & 
     
    248264 
    249265  SUBROUTINE xios(is_defined_calendar_wrapper_attr)  & 
    250     ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     266    ( calendar_wrapper_id, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    251267    , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    252268 
     
    254270      TYPE(txios(calendar_wrapper))  :: calendar_wrapper_hdl 
    255271      CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 
     272      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     273      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    256274      LOGICAL, OPTIONAL, INTENT(OUT) :: day_length 
    257275      LOGICAL(KIND=C_BOOL) :: day_length_tmp 
     
    278296      (calendar_wrapper_id,calendar_wrapper_hdl) 
    279297      CALL xios(is_defined_calendar_wrapper_attr_hdl_)   & 
    280       ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     298      ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    281299      , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    282300 
     
    284302 
    285303  SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl)  & 
    286     ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    287     , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    288  
    289     IMPLICIT NONE 
    290       TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     304    ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     305    , month_lengths, start_date, time_origin, timestep, type, year_length ) 
     306 
     307    IMPLICIT NONE 
     308      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     309      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     310      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    291311      LOGICAL, OPTIONAL, INTENT(OUT) :: day_length 
    292312      LOGICAL(KIND=C_BOOL) :: day_length_tmp 
     
    311331 
    312332      CALL xios(is_defined_calendar_wrapper_attr_hdl_)  & 
    313       ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
     333      ( calendar_wrapper_hdl, comment, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month  & 
    314334      , month_lengths, start_date, time_origin, timestep, type, year_length ) 
    315335 
     
    317337 
    318338  SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl_)   & 
    319     ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  & 
     339    ( calendar_wrapper_hdl, comment_, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_  & 
    320340    , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 
    321341 
    322342    IMPLICIT NONE 
    323343      TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 
     344      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     345      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    324346      LOGICAL, OPTIONAL, INTENT(OUT) :: day_length_ 
    325347      LOGICAL(KIND=C_BOOL) :: day_length__tmp 
     
    343365      LOGICAL(KIND=C_BOOL) :: year_length__tmp 
    344366 
     367      IF (PRESENT(comment_)) THEN 
     368        comment__tmp = cxios_is_defined_calendar_wrapper_comment & 
     369      (calendar_wrapper_hdl%daddr) 
     370        comment_ = comment__tmp 
     371      ENDIF 
     372 
    345373      IF (PRESENT(day_length_)) THEN 
    346374        day_length__tmp = cxios_is_defined_calendar_wrapper_day_length & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/idomain_attr.F90

    r1052 r1545  
    1212 
    1313  SUBROUTINE xios(set_domain_attr)  & 
    14     ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    15     , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    16     , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    17     , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     14    ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     15    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     16    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     17    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     18    , nj, nj_glo, nvertex, prec, standard_name, type ) 
    1819 
    1920    IMPLICIT NONE 
     
    2324      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 
    2425      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 
     26      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 
    2527      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 
    2628      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:) 
     29      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name 
     30      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2731      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim 
    2832      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:) 
     
    3236      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni 
    3337      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj 
     38      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 
     39      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 
    3440      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    3541      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:) 
     
    3743      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    3844      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
     45      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 
    3946      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 
    4047      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 
     48      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 
    4149      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    4250      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) 
     
    5967      (domain_id,domain_hdl) 
    6068      CALL xios(set_domain_attr_hdl_)   & 
    61       ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    62       , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    63       , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    64       , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     69      ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     70      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     71      , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     72      , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     73      , nj, nj_glo, nvertex, prec, standard_name, type ) 
    6574 
    6675  END SUBROUTINE xios(set_domain_attr) 
    6776 
    6877  SUBROUTINE xios(set_domain_attr_hdl)  & 
    69     ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    70     , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    71     , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    72     , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     78    ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     79    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     80    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     81    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     82    , nj, nj_glo, nvertex, prec, standard_name, type ) 
    7383 
    7484    IMPLICIT NONE 
     
    7787      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 
    7888      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 
     89      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 
    7990      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 
    8091      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:) 
     92      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name 
     93      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    8194      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim 
    8295      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:) 
     
    8699      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni 
    87100      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj 
     101      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 
     102      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 
    88103      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    89104      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:) 
     
    91106      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    92107      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
     108      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 
    93109      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 
    94110      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 
     111      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 
    95112      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    96113      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) 
     
    111128 
    112129      CALL xios(set_domain_attr_hdl_)  & 
    113       ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    114       , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    115       , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    116       , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     130      ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     131      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     132      , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     133      , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     134      , nj, nj_glo, nvertex, prec, standard_name, type ) 
    117135 
    118136  END SUBROUTINE xios(set_domain_attr_hdl) 
    119137 
    120138  SUBROUTINE xios(set_domain_attr_hdl_)   & 
    121     ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  & 
    122     , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_ni_, data_nj_, domain_ref_  & 
    123     , i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_, latvalue_2d_, long_name_, lonvalue_1d_  & 
    124     , lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_  & 
    125     , type_ ) 
     139    ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lat_name_, bounds_lon_1d_, bounds_lon_2d_  & 
     140    , bounds_lon_name_, comment_, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_  & 
     141    , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_  & 
     142    , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_  & 
     143    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_, type_ ) 
    126144 
    127145    IMPLICIT NONE 
     
    130148      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d_(:,:) 
    131149      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d_(:,:,:) 
     150      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name_ 
    132151      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d_(:,:) 
    133152      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d_(:,:,:) 
     153      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name_ 
     154      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    134155      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim_ 
    135156      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index_(:) 
     
    139160      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni_ 
    140161      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj_ 
     162      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name_ 
     163      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name_ 
    141164      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 
    142165      INTEGER  , OPTIONAL, INTENT(IN) :: i_index_(:) 
     
    144167      INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:) 
    145168      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_ 
     169      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name_ 
    146170      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d_(:) 
    147171      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d_(:,:) 
     172      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name_ 
    148173      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
    149174      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d_(:) 
     
    178203      ENDIF 
    179204 
     205      IF (PRESENT(bounds_lat_name_)) THEN 
     206        CALL cxios_set_domain_bounds_lat_name & 
     207      (domain_hdl%daddr, bounds_lat_name_, len(bounds_lat_name_)) 
     208      ENDIF 
     209 
    180210      IF (PRESENT(bounds_lon_1d_)) THEN 
    181211        CALL cxios_set_domain_bounds_lon_1d & 
     
    188218      ENDIF 
    189219 
     220      IF (PRESENT(bounds_lon_name_)) THEN 
     221        CALL cxios_set_domain_bounds_lon_name & 
     222      (domain_hdl%daddr, bounds_lon_name_, len(bounds_lon_name_)) 
     223      ENDIF 
     224 
     225      IF (PRESENT(comment_)) THEN 
     226        CALL cxios_set_domain_comment & 
     227      (domain_hdl%daddr, comment_, len(comment_)) 
     228      ENDIF 
     229 
    190230      IF (PRESENT(data_dim_)) THEN 
    191231        CALL cxios_set_domain_data_dim & 
     
    223263      ENDIF 
    224264 
     265      IF (PRESENT(dim_i_name_)) THEN 
     266        CALL cxios_set_domain_dim_i_name & 
     267      (domain_hdl%daddr, dim_i_name_, len(dim_i_name_)) 
     268      ENDIF 
     269 
     270      IF (PRESENT(dim_j_name_)) THEN 
     271        CALL cxios_set_domain_dim_j_name & 
     272      (domain_hdl%daddr, dim_j_name_, len(dim_j_name_)) 
     273      ENDIF 
     274 
    225275      IF (PRESENT(domain_ref_)) THEN 
    226276        CALL cxios_set_domain_domain_ref & 
     
    248298      ENDIF 
    249299 
     300      IF (PRESENT(lat_name_)) THEN 
     301        CALL cxios_set_domain_lat_name & 
     302      (domain_hdl%daddr, lat_name_, len(lat_name_)) 
     303      ENDIF 
     304 
    250305      IF (PRESENT(latvalue_1d_)) THEN 
    251306        CALL cxios_set_domain_latvalue_1d & 
     
    256311        CALL cxios_set_domain_latvalue_2d & 
    257312      (domain_hdl%daddr, latvalue_2d_, SHAPE(latvalue_2d_)) 
     313      ENDIF 
     314 
     315      IF (PRESENT(lon_name_)) THEN 
     316        CALL cxios_set_domain_lon_name & 
     317      (domain_hdl%daddr, lon_name_, len(lon_name_)) 
    258318      ENDIF 
    259319 
     
    335395 
    336396  SUBROUTINE xios(get_domain_attr)  & 
    337     ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    338     , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    339     , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    340     , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     397    ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     398    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     399    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     400    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     401    , nj, nj_glo, nvertex, prec, standard_name, type ) 
    341402 
    342403    IMPLICIT NONE 
     
    346407      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 
    347408      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 
     409      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 
    348410      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 
    349411      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d(:,:,:) 
     412      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     413      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    350414      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim 
    351415      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:) 
     
    355419      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni 
    356420      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj 
     421      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 
     422      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 
    357423      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    358424      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:) 
     
    360426      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    361427      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
     428      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 
    362429      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 
    363430      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 
     431      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 
    364432      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    365433      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) 
     
    382450      (domain_id,domain_hdl) 
    383451      CALL xios(get_domain_attr_hdl_)   & 
    384       ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    385       , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    386       , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    387       , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     452      ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     453      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     454      , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     455      , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     456      , nj, nj_glo, nvertex, prec, standard_name, type ) 
    388457 
    389458  END SUBROUTINE xios(get_domain_attr) 
    390459 
    391460  SUBROUTINE xios(get_domain_attr_hdl)  & 
    392     ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    393     , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    394     , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    395     , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     461    ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     462    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     463    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     464    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     465    , nj, nj_glo, nvertex, prec, standard_name, type ) 
    396466 
    397467    IMPLICIT NONE 
     
    400470      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 
    401471      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 
     472      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 
    402473      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 
    403474      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d(:,:,:) 
     475      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     476      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    404477      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim 
    405478      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:) 
     
    409482      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni 
    410483      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj 
     484      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 
     485      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 
    411486      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    412487      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index(:) 
     
    414489      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    415490      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
     491      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 
    416492      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 
    417493      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 
     494      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 
    418495      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    419496      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) 
     
    434511 
    435512      CALL xios(get_domain_attr_hdl_)  & 
    436       ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    437       , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    438       , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    439       , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     513      ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     514      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     515      , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     516      , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     517      , nj, nj_glo, nvertex, prec, standard_name, type ) 
    440518 
    441519  END SUBROUTINE xios(get_domain_attr_hdl) 
    442520 
    443521  SUBROUTINE xios(get_domain_attr_hdl_)   & 
    444     ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  & 
    445     , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_ni_, data_nj_, domain_ref_  & 
    446     , i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_, latvalue_2d_, long_name_, lonvalue_1d_  & 
    447     , lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_  & 
    448     , type_ ) 
     522    ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lat_name_, bounds_lon_1d_, bounds_lon_2d_  & 
     523    , bounds_lon_name_, comment_, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_  & 
     524    , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_  & 
     525    , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_  & 
     526    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_, type_ ) 
    449527 
    450528    IMPLICIT NONE 
     
    453531      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d_(:,:) 
    454532      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d_(:,:,:) 
     533      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name_ 
    455534      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d_(:,:) 
    456535      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d_(:,:,:) 
     536      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lon_name_ 
     537      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    457538      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim_ 
    458539      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index_(:) 
     
    462543      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni_ 
    463544      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj_ 
     545      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name_ 
     546      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name_ 
    464547      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 
    465548      INTEGER  , OPTIONAL, INTENT(OUT) :: i_index_(:) 
     
    467550      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:) 
    468551      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_ 
     552      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name_ 
    469553      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d_(:) 
    470554      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d_(:,:) 
     555      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name_ 
    471556      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
    472557      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d_(:) 
     
    501586      ENDIF 
    502587 
     588      IF (PRESENT(bounds_lat_name_)) THEN 
     589        CALL cxios_get_domain_bounds_lat_name & 
     590      (domain_hdl%daddr, bounds_lat_name_, len(bounds_lat_name_)) 
     591      ENDIF 
     592 
    503593      IF (PRESENT(bounds_lon_1d_)) THEN 
    504594        CALL cxios_get_domain_bounds_lon_1d & 
     
    511601      ENDIF 
    512602 
     603      IF (PRESENT(bounds_lon_name_)) THEN 
     604        CALL cxios_get_domain_bounds_lon_name & 
     605      (domain_hdl%daddr, bounds_lon_name_, len(bounds_lon_name_)) 
     606      ENDIF 
     607 
     608      IF (PRESENT(comment_)) THEN 
     609        CALL cxios_get_domain_comment & 
     610      (domain_hdl%daddr, comment_, len(comment_)) 
     611      ENDIF 
     612 
    513613      IF (PRESENT(data_dim_)) THEN 
    514614        CALL cxios_get_domain_data_dim & 
     
    546646      ENDIF 
    547647 
     648      IF (PRESENT(dim_i_name_)) THEN 
     649        CALL cxios_get_domain_dim_i_name & 
     650      (domain_hdl%daddr, dim_i_name_, len(dim_i_name_)) 
     651      ENDIF 
     652 
     653      IF (PRESENT(dim_j_name_)) THEN 
     654        CALL cxios_get_domain_dim_j_name & 
     655      (domain_hdl%daddr, dim_j_name_, len(dim_j_name_)) 
     656      ENDIF 
     657 
    548658      IF (PRESENT(domain_ref_)) THEN 
    549659        CALL cxios_get_domain_domain_ref & 
     
    571681      ENDIF 
    572682 
     683      IF (PRESENT(lat_name_)) THEN 
     684        CALL cxios_get_domain_lat_name & 
     685      (domain_hdl%daddr, lat_name_, len(lat_name_)) 
     686      ENDIF 
     687 
    573688      IF (PRESENT(latvalue_1d_)) THEN 
    574689        CALL cxios_get_domain_latvalue_1d & 
     
    579694        CALL cxios_get_domain_latvalue_2d & 
    580695      (domain_hdl%daddr, latvalue_2d_, SHAPE(latvalue_2d_)) 
     696      ENDIF 
     697 
     698      IF (PRESENT(lon_name_)) THEN 
     699        CALL cxios_get_domain_lon_name & 
     700      (domain_hdl%daddr, lon_name_, len(lon_name_)) 
    581701      ENDIF 
    582702 
     
    658778 
    659779  SUBROUTINE xios(is_defined_domain_attr)  & 
    660     ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    661     , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    662     , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    663     , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     780    ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     781    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     782    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     783    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     784    , nj, nj_glo, nvertex, prec, standard_name, type ) 
    664785 
    665786    IMPLICIT NONE 
     
    672793      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 
    673794      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d_tmp 
     795      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name 
     796      LOGICAL(KIND=C_BOOL) :: bounds_lat_name_tmp 
    674797      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 
    675798      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 
    676799      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 
    677800      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d_tmp 
     801      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     802      LOGICAL(KIND=C_BOOL) :: bounds_lon_name_tmp 
     803      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     804      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    678805      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 
    679806      LOGICAL(KIND=C_BOOL) :: data_dim_tmp 
     
    690817      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 
    691818      LOGICAL(KIND=C_BOOL) :: data_nj_tmp 
     819      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name 
     820      LOGICAL(KIND=C_BOOL) :: dim_i_name_tmp 
     821      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name 
     822      LOGICAL(KIND=C_BOOL) :: dim_j_name_tmp 
    692823      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    693824      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    700831      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    701832      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     833      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 
     834      LOGICAL(KIND=C_BOOL) :: lat_name_tmp 
    702835      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 
    703836      LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 
    704837      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 
    705838      LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 
     839      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 
     840      LOGICAL(KIND=C_BOOL) :: lon_name_tmp 
    706841      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    707842      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     
    736871      (domain_id,domain_hdl) 
    737872      CALL xios(is_defined_domain_attr_hdl_)   & 
    738       ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    739       , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    740       , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    741       , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     873      ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     874      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     875      , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     876      , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     877      , nj, nj_glo, nvertex, prec, standard_name, type ) 
    742878 
    743879  END SUBROUTINE xios(is_defined_domain_attr) 
    744880 
    745881  SUBROUTINE xios(is_defined_domain_attr_hdl)  & 
    746     ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    747     , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    748     , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    749     , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     882    ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     883    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     884    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     885    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     886    , nj, nj_glo, nvertex, prec, standard_name, type ) 
    750887 
    751888    IMPLICIT NONE 
     
    757894      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 
    758895      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d_tmp 
     896      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name 
     897      LOGICAL(KIND=C_BOOL) :: bounds_lat_name_tmp 
    759898      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 
    760899      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 
    761900      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 
    762901      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d_tmp 
     902      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     903      LOGICAL(KIND=C_BOOL) :: bounds_lon_name_tmp 
     904      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     905      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    763906      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 
    764907      LOGICAL(KIND=C_BOOL) :: data_dim_tmp 
     
    775918      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 
    776919      LOGICAL(KIND=C_BOOL) :: data_nj_tmp 
     920      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name 
     921      LOGICAL(KIND=C_BOOL) :: dim_i_name_tmp 
     922      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name 
     923      LOGICAL(KIND=C_BOOL) :: dim_j_name_tmp 
    777924      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    778925      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    785932      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    786933      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     934      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 
     935      LOGICAL(KIND=C_BOOL) :: lat_name_tmp 
    787936      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 
    788937      LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 
    789938      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 
    790939      LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 
     940      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 
     941      LOGICAL(KIND=C_BOOL) :: lon_name_tmp 
    791942      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    792943      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     
    819970 
    820971      CALL xios(is_defined_domain_attr_hdl_)  & 
    821       ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim, data_i_index  & 
    822       , data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, i_index, ibegin, j_index  & 
    823       , jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name  & 
    824       , ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     972      ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     973      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     974      , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  & 
     975      , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  & 
     976      , nj, nj_glo, nvertex, prec, standard_name, type ) 
    825977 
    826978  END SUBROUTINE xios(is_defined_domain_attr_hdl) 
    827979 
    828980  SUBROUTINE xios(is_defined_domain_attr_hdl_)   & 
    829     ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  & 
    830     , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_ni_, data_nj_, domain_ref_  & 
    831     , i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_, latvalue_2d_, long_name_, lonvalue_1d_  & 
    832     , lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_  & 
    833     , type_ ) 
     981    ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lat_name_, bounds_lon_1d_, bounds_lon_2d_  & 
     982    , bounds_lon_name_, comment_, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_  & 
     983    , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, i_index_, ibegin_, j_index_, jbegin_  & 
     984    , lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_, mask_1d_  & 
     985    , mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_, type_ ) 
    834986 
    835987    IMPLICIT NONE 
     
    841993      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d_ 
    842994      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d__tmp 
     995      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name_ 
     996      LOGICAL(KIND=C_BOOL) :: bounds_lat_name__tmp 
    843997      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d_ 
    844998      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d__tmp 
    845999      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d_ 
    8461000      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d__tmp 
     1001      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name_ 
     1002      LOGICAL(KIND=C_BOOL) :: bounds_lon_name__tmp 
     1003      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     1004      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    8471005      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim_ 
    8481006      LOGICAL(KIND=C_BOOL) :: data_dim__tmp 
     
    8591017      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj_ 
    8601018      LOGICAL(KIND=C_BOOL) :: data_nj__tmp 
     1019      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name_ 
     1020      LOGICAL(KIND=C_BOOL) :: dim_i_name__tmp 
     1021      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name_ 
     1022      LOGICAL(KIND=C_BOOL) :: dim_j_name__tmp 
    8611023      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 
    8621024      LOGICAL(KIND=C_BOOL) :: domain_ref__tmp 
     
    8691031      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 
    8701032      LOGICAL(KIND=C_BOOL) :: jbegin__tmp 
     1033      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name_ 
     1034      LOGICAL(KIND=C_BOOL) :: lat_name__tmp 
    8711035      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d_ 
    8721036      LOGICAL(KIND=C_BOOL) :: latvalue_1d__tmp 
    8731037      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d_ 
    8741038      LOGICAL(KIND=C_BOOL) :: latvalue_2d__tmp 
     1039      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name_ 
     1040      LOGICAL(KIND=C_BOOL) :: lon_name__tmp 
    8751041      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
    8761042      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
     
    9201086      ENDIF 
    9211087 
     1088      IF (PRESENT(bounds_lat_name_)) THEN 
     1089        bounds_lat_name__tmp = cxios_is_defined_domain_bounds_lat_name & 
     1090      (domain_hdl%daddr) 
     1091        bounds_lat_name_ = bounds_lat_name__tmp 
     1092      ENDIF 
     1093 
    9221094      IF (PRESENT(bounds_lon_1d_)) THEN 
    9231095        bounds_lon_1d__tmp = cxios_is_defined_domain_bounds_lon_1d & 
     
    9321104      ENDIF 
    9331105 
     1106      IF (PRESENT(bounds_lon_name_)) THEN 
     1107        bounds_lon_name__tmp = cxios_is_defined_domain_bounds_lon_name & 
     1108      (domain_hdl%daddr) 
     1109        bounds_lon_name_ = bounds_lon_name__tmp 
     1110      ENDIF 
     1111 
     1112      IF (PRESENT(comment_)) THEN 
     1113        comment__tmp = cxios_is_defined_domain_comment & 
     1114      (domain_hdl%daddr) 
     1115        comment_ = comment__tmp 
     1116      ENDIF 
     1117 
    9341118      IF (PRESENT(data_dim_)) THEN 
    9351119        data_dim__tmp = cxios_is_defined_domain_data_dim & 
     
    9741158      ENDIF 
    9751159 
     1160      IF (PRESENT(dim_i_name_)) THEN 
     1161        dim_i_name__tmp = cxios_is_defined_domain_dim_i_name & 
     1162      (domain_hdl%daddr) 
     1163        dim_i_name_ = dim_i_name__tmp 
     1164      ENDIF 
     1165 
     1166      IF (PRESENT(dim_j_name_)) THEN 
     1167        dim_j_name__tmp = cxios_is_defined_domain_dim_j_name & 
     1168      (domain_hdl%daddr) 
     1169        dim_j_name_ = dim_j_name__tmp 
     1170      ENDIF 
     1171 
    9761172      IF (PRESENT(domain_ref_)) THEN 
    9771173        domain_ref__tmp = cxios_is_defined_domain_domain_ref & 
     
    10041200      ENDIF 
    10051201 
     1202      IF (PRESENT(lat_name_)) THEN 
     1203        lat_name__tmp = cxios_is_defined_domain_lat_name & 
     1204      (domain_hdl%daddr) 
     1205        lat_name_ = lat_name__tmp 
     1206      ENDIF 
     1207 
    10061208      IF (PRESENT(latvalue_1d_)) THEN 
    10071209        latvalue_1d__tmp = cxios_is_defined_domain_latvalue_1d & 
     
    10161218      ENDIF 
    10171219 
     1220      IF (PRESENT(lon_name_)) THEN 
     1221        lon_name__tmp = cxios_is_defined_domain_lon_name & 
     1222      (domain_hdl%daddr) 
     1223        lon_name_ = lon_name__tmp 
     1224      ENDIF 
     1225 
    10181226      IF (PRESENT(long_name_)) THEN 
    10191227        long_name__tmp = cxios_is_defined_domain_long_name & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/idomaingroup_attr.F90

    r1052 r1545  
    1212 
    1313  SUBROUTINE xios(set_domaingroup_attr)  & 
    14     ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    15     , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    16     , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    17     , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     14    ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     15    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     16    , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     17    , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     18    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    1819 
    1920    IMPLICIT NONE 
     
    2324      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 
    2425      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 
     26      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 
    2527      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 
    2628      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:) 
     29      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name 
     30      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2731      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim 
    2832      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:) 
     
    3236      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni 
    3337      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj 
     38      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 
     39      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 
    3440      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    3541      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     
    3844      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    3945      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
     46      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 
    4047      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 
    4148      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 
     49      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 
    4250      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    4351      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) 
     
    6068      (domaingroup_id,domaingroup_hdl) 
    6169      CALL xios(set_domaingroup_attr_hdl_)   & 
    62       ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    63       , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    64       , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    65       , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     70      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     71      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     72      , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     73      , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     74      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    6675 
    6776  END SUBROUTINE xios(set_domaingroup_attr) 
    6877 
    6978  SUBROUTINE xios(set_domaingroup_attr_hdl)  & 
    70     ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    71     , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    72     , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    73     , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     79    ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     80    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     81    , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     82    , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     83    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    7484 
    7585    IMPLICIT NONE 
     
    7888      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 
    7989      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 
     90      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 
    8091      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 
    8192      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:) 
     93      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name 
     94      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    8295      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim 
    8396      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:) 
     
    87100      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni 
    88101      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj 
     102      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 
     103      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 
    89104      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 
    90105      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     
    93108      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:) 
    94109      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin 
     110      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 
    95111      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 
    96112      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 
     113      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 
    97114      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    98115      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) 
     
    113130 
    114131      CALL xios(set_domaingroup_attr_hdl_)  & 
    115       ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    116       , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    117       , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    118       , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     132      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     133      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     134      , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     135      , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     136      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    119137 
    120138  END SUBROUTINE xios(set_domaingroup_attr_hdl) 
    121139 
    122140  SUBROUTINE xios(set_domaingroup_attr_hdl_)   & 
    123     ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  & 
    124     , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_ni_, data_nj_, domain_ref_  & 
    125     , group_ref_, i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_, latvalue_2d_, long_name_, lonvalue_1d_  & 
    126     , lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_  & 
    127     , type_ ) 
     141    ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lat_name_, bounds_lon_1d_, bounds_lon_2d_  & 
     142    , bounds_lon_name_, comment_, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_  & 
     143    , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_  & 
     144    , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_  & 
     145    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_, type_  & 
     146     ) 
    128147 
    129148    IMPLICIT NONE 
     
    132151      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d_(:,:) 
    133152      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d_(:,:,:) 
     153      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name_ 
    134154      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d_(:,:) 
    135155      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d_(:,:,:) 
     156      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name_ 
     157      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    136158      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim_ 
    137159      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index_(:) 
     
    141163      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni_ 
    142164      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj_ 
     165      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name_ 
     166      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name_ 
    143167      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 
    144168      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
     
    147171      INTEGER  , OPTIONAL, INTENT(IN) :: j_index_(:) 
    148172      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin_ 
     173      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name_ 
    149174      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d_(:) 
    150175      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d_(:,:) 
     176      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name_ 
    151177      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
    152178      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d_(:) 
     
    181207      ENDIF 
    182208 
     209      IF (PRESENT(bounds_lat_name_)) THEN 
     210        CALL cxios_set_domaingroup_bounds_lat_name & 
     211      (domaingroup_hdl%daddr, bounds_lat_name_, len(bounds_lat_name_)) 
     212      ENDIF 
     213 
    183214      IF (PRESENT(bounds_lon_1d_)) THEN 
    184215        CALL cxios_set_domaingroup_bounds_lon_1d & 
     
    191222      ENDIF 
    192223 
     224      IF (PRESENT(bounds_lon_name_)) THEN 
     225        CALL cxios_set_domaingroup_bounds_lon_name & 
     226      (domaingroup_hdl%daddr, bounds_lon_name_, len(bounds_lon_name_)) 
     227      ENDIF 
     228 
     229      IF (PRESENT(comment_)) THEN 
     230        CALL cxios_set_domaingroup_comment & 
     231      (domaingroup_hdl%daddr, comment_, len(comment_)) 
     232      ENDIF 
     233 
    193234      IF (PRESENT(data_dim_)) THEN 
    194235        CALL cxios_set_domaingroup_data_dim & 
     
    226267      ENDIF 
    227268 
     269      IF (PRESENT(dim_i_name_)) THEN 
     270        CALL cxios_set_domaingroup_dim_i_name & 
     271      (domaingroup_hdl%daddr, dim_i_name_, len(dim_i_name_)) 
     272      ENDIF 
     273 
     274      IF (PRESENT(dim_j_name_)) THEN 
     275        CALL cxios_set_domaingroup_dim_j_name & 
     276      (domaingroup_hdl%daddr, dim_j_name_, len(dim_j_name_)) 
     277      ENDIF 
     278 
    228279      IF (PRESENT(domain_ref_)) THEN 
    229280        CALL cxios_set_domaingroup_domain_ref & 
     
    256307      ENDIF 
    257308 
     309      IF (PRESENT(lat_name_)) THEN 
     310        CALL cxios_set_domaingroup_lat_name & 
     311      (domaingroup_hdl%daddr, lat_name_, len(lat_name_)) 
     312      ENDIF 
     313 
    258314      IF (PRESENT(latvalue_1d_)) THEN 
    259315        CALL cxios_set_domaingroup_latvalue_1d & 
     
    264320        CALL cxios_set_domaingroup_latvalue_2d & 
    265321      (domaingroup_hdl%daddr, latvalue_2d_, SHAPE(latvalue_2d_)) 
     322      ENDIF 
     323 
     324      IF (PRESENT(lon_name_)) THEN 
     325        CALL cxios_set_domaingroup_lon_name & 
     326      (domaingroup_hdl%daddr, lon_name_, len(lon_name_)) 
    266327      ENDIF 
    267328 
     
    343404 
    344405  SUBROUTINE xios(get_domaingroup_attr)  & 
    345     ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    346     , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    347     , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    348     , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     406    ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     407    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     408    , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     409    , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     410    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    349411 
    350412    IMPLICIT NONE 
     
    354416      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 
    355417      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 
     418      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 
    356419      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 
    357420      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d(:,:,:) 
     421      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     422      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    358423      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim 
    359424      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:) 
     
    363428      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni 
    364429      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj 
     430      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 
     431      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 
    365432      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    366433      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     
    369436      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    370437      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
     438      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 
    371439      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 
    372440      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 
     441      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 
    373442      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    374443      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) 
     
    391460      (domaingroup_id,domaingroup_hdl) 
    392461      CALL xios(get_domaingroup_attr_hdl_)   & 
    393       ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    394       , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    395       , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    396       , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     462      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     463      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     464      , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     465      , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     466      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    397467 
    398468  END SUBROUTINE xios(get_domaingroup_attr) 
    399469 
    400470  SUBROUTINE xios(get_domaingroup_attr_hdl)  & 
    401     ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    402     , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    403     , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    404     , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     471    ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     472    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     473    , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     474    , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     475    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    405476 
    406477    IMPLICIT NONE 
     
    409480      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 
    410481      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 
     482      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 
    411483      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 
    412484      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d(:,:,:) 
     485      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     486      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    413487      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim 
    414488      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index(:) 
     
    418492      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni 
    419493      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj 
     494      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 
     495      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 
    420496      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 
    421497      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     
    424500      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index(:) 
    425501      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin 
     502      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 
    426503      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 
    427504      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 
     505      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 
    428506      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    429507      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) 
     
    444522 
    445523      CALL xios(get_domaingroup_attr_hdl_)  & 
    446       ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    447       , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    448       , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    449       , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     524      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     525      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     526      , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     527      , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     528      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    450529 
    451530  END SUBROUTINE xios(get_domaingroup_attr_hdl) 
    452531 
    453532  SUBROUTINE xios(get_domaingroup_attr_hdl_)   & 
    454     ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  & 
    455     , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_ni_, data_nj_, domain_ref_  & 
    456     , group_ref_, i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_, latvalue_2d_, long_name_, lonvalue_1d_  & 
    457     , lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_  & 
    458     , type_ ) 
     533    ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lat_name_, bounds_lon_1d_, bounds_lon_2d_  & 
     534    , bounds_lon_name_, comment_, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_  & 
     535    , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_  & 
     536    , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_  & 
     537    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_, type_  & 
     538     ) 
    459539 
    460540    IMPLICIT NONE 
     
    463543      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d_(:,:) 
    464544      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d_(:,:,:) 
     545      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name_ 
    465546      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d_(:,:) 
    466547      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_2d_(:,:,:) 
     548      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lon_name_ 
     549      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    467550      INTEGER  , OPTIONAL, INTENT(OUT) :: data_dim_ 
    468551      INTEGER  , OPTIONAL, INTENT(OUT) :: data_i_index_(:) 
     
    472555      INTEGER  , OPTIONAL, INTENT(OUT) :: data_ni_ 
    473556      INTEGER  , OPTIONAL, INTENT(OUT) :: data_nj_ 
     557      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name_ 
     558      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name_ 
    474559      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 
    475560      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
     
    478563      INTEGER  , OPTIONAL, INTENT(OUT) :: j_index_(:) 
    479564      INTEGER  , OPTIONAL, INTENT(OUT) :: jbegin_ 
     565      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name_ 
    480566      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d_(:) 
    481567      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d_(:,:) 
     568      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name_ 
    482569      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
    483570      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d_(:) 
     
    512599      ENDIF 
    513600 
     601      IF (PRESENT(bounds_lat_name_)) THEN 
     602        CALL cxios_get_domaingroup_bounds_lat_name & 
     603      (domaingroup_hdl%daddr, bounds_lat_name_, len(bounds_lat_name_)) 
     604      ENDIF 
     605 
    514606      IF (PRESENT(bounds_lon_1d_)) THEN 
    515607        CALL cxios_get_domaingroup_bounds_lon_1d & 
     
    522614      ENDIF 
    523615 
     616      IF (PRESENT(bounds_lon_name_)) THEN 
     617        CALL cxios_get_domaingroup_bounds_lon_name & 
     618      (domaingroup_hdl%daddr, bounds_lon_name_, len(bounds_lon_name_)) 
     619      ENDIF 
     620 
     621      IF (PRESENT(comment_)) THEN 
     622        CALL cxios_get_domaingroup_comment & 
     623      (domaingroup_hdl%daddr, comment_, len(comment_)) 
     624      ENDIF 
     625 
    524626      IF (PRESENT(data_dim_)) THEN 
    525627        CALL cxios_get_domaingroup_data_dim & 
     
    557659      ENDIF 
    558660 
     661      IF (PRESENT(dim_i_name_)) THEN 
     662        CALL cxios_get_domaingroup_dim_i_name & 
     663      (domaingroup_hdl%daddr, dim_i_name_, len(dim_i_name_)) 
     664      ENDIF 
     665 
     666      IF (PRESENT(dim_j_name_)) THEN 
     667        CALL cxios_get_domaingroup_dim_j_name & 
     668      (domaingroup_hdl%daddr, dim_j_name_, len(dim_j_name_)) 
     669      ENDIF 
     670 
    559671      IF (PRESENT(domain_ref_)) THEN 
    560672        CALL cxios_get_domaingroup_domain_ref & 
     
    587699      ENDIF 
    588700 
     701      IF (PRESENT(lat_name_)) THEN 
     702        CALL cxios_get_domaingroup_lat_name & 
     703      (domaingroup_hdl%daddr, lat_name_, len(lat_name_)) 
     704      ENDIF 
     705 
    589706      IF (PRESENT(latvalue_1d_)) THEN 
    590707        CALL cxios_get_domaingroup_latvalue_1d & 
     
    595712        CALL cxios_get_domaingroup_latvalue_2d & 
    596713      (domaingroup_hdl%daddr, latvalue_2d_, SHAPE(latvalue_2d_)) 
     714      ENDIF 
     715 
     716      IF (PRESENT(lon_name_)) THEN 
     717        CALL cxios_get_domaingroup_lon_name & 
     718      (domaingroup_hdl%daddr, lon_name_, len(lon_name_)) 
    597719      ENDIF 
    598720 
     
    674796 
    675797  SUBROUTINE xios(is_defined_domaingroup_attr)  & 
    676     ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    677     , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    678     , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    679     , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     798    ( domaingroup_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     799    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     800    , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     801    , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     802    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    680803 
    681804    IMPLICIT NONE 
     
    688811      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 
    689812      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d_tmp 
     813      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name 
     814      LOGICAL(KIND=C_BOOL) :: bounds_lat_name_tmp 
    690815      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 
    691816      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 
    692817      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 
    693818      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d_tmp 
     819      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     820      LOGICAL(KIND=C_BOOL) :: bounds_lon_name_tmp 
     821      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     822      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    694823      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 
    695824      LOGICAL(KIND=C_BOOL) :: data_dim_tmp 
     
    706835      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 
    707836      LOGICAL(KIND=C_BOOL) :: data_nj_tmp 
     837      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name 
     838      LOGICAL(KIND=C_BOOL) :: dim_i_name_tmp 
     839      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name 
     840      LOGICAL(KIND=C_BOOL) :: dim_j_name_tmp 
    708841      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    709842      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    718851      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    719852      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     853      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 
     854      LOGICAL(KIND=C_BOOL) :: lat_name_tmp 
    720855      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 
    721856      LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 
    722857      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 
    723858      LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 
     859      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 
     860      LOGICAL(KIND=C_BOOL) :: lon_name_tmp 
    724861      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    725862      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     
    754891      (domaingroup_id,domaingroup_hdl) 
    755892      CALL xios(is_defined_domaingroup_attr_hdl_)   & 
    756       ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    757       , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    758       , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    759       , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     893      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     894      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     895      , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     896      , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     897      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    760898 
    761899  END SUBROUTINE xios(is_defined_domaingroup_attr) 
    762900 
    763901  SUBROUTINE xios(is_defined_domaingroup_attr_hdl)  & 
    764     ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    765     , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    766     , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    767     , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     902    ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     903    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     904    , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     905    , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     906    , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    768907 
    769908    IMPLICIT NONE 
     
    775914      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 
    776915      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d_tmp 
     916      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name 
     917      LOGICAL(KIND=C_BOOL) :: bounds_lat_name_tmp 
    777918      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 
    778919      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 
    779920      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 
    780921      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d_tmp 
     922      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name 
     923      LOGICAL(KIND=C_BOOL) :: bounds_lon_name_tmp 
     924      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     925      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    781926      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 
    782927      LOGICAL(KIND=C_BOOL) :: data_dim_tmp 
     
    793938      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 
    794939      LOGICAL(KIND=C_BOOL) :: data_nj_tmp 
     940      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name 
     941      LOGICAL(KIND=C_BOOL) :: dim_i_name_tmp 
     942      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name 
     943      LOGICAL(KIND=C_BOOL) :: dim_j_name_tmp 
    795944      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 
    796945      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp 
     
    805954      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 
    806955      LOGICAL(KIND=C_BOOL) :: jbegin_tmp 
     956      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 
     957      LOGICAL(KIND=C_BOOL) :: lat_name_tmp 
    807958      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 
    808959      LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 
    809960      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 
    810961      LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 
     962      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 
     963      LOGICAL(KIND=C_BOOL) :: lon_name_tmp 
    811964      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    812965      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
     
    839992 
    840993      CALL xios(is_defined_domaingroup_attr_hdl_)  & 
    841       ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lon_1d, bounds_lon_2d, data_dim  & 
    842       , data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni, data_nj, domain_ref, group_ref  & 
    843       , i_index, ibegin, j_index, jbegin, latvalue_1d, latvalue_2d, long_name, lonvalue_1d, lonvalue_2d  & 
    844       , mask_1d, mask_2d, name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
     994      ( domaingroup_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  & 
     995      , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  & 
     996      , data_nj, dim_i_name, dim_j_name, domain_ref, group_ref, i_index, ibegin, j_index, jbegin, lat_name  & 
     997      , latvalue_1d, latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d  & 
     998      , name, ni, ni_glo, nj, nj_glo, nvertex, prec, standard_name, type ) 
    845999 
    8461000  END SUBROUTINE xios(is_defined_domaingroup_attr_hdl) 
    8471001 
    8481002  SUBROUTINE xios(is_defined_domaingroup_attr_hdl_)   & 
    849     ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lon_1d_, bounds_lon_2d_, data_dim_  & 
    850     , data_i_index_, data_ibegin_, data_j_index_, data_jbegin_, data_ni_, data_nj_, domain_ref_  & 
    851     , group_ref_, i_index_, ibegin_, j_index_, jbegin_, latvalue_1d_, latvalue_2d_, long_name_, lonvalue_1d_  & 
    852     , lonvalue_2d_, mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_  & 
    853     , type_ ) 
     1003    ( domaingroup_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_lat_name_, bounds_lon_1d_, bounds_lon_2d_  & 
     1004    , bounds_lon_name_, comment_, data_dim_, data_i_index_, data_ibegin_, data_j_index_, data_jbegin_  & 
     1005    , data_ni_, data_nj_, dim_i_name_, dim_j_name_, domain_ref_, group_ref_, i_index_, ibegin_, j_index_  & 
     1006    , jbegin_, lat_name_, latvalue_1d_, latvalue_2d_, lon_name_, long_name_, lonvalue_1d_, lonvalue_2d_  & 
     1007    , mask_1d_, mask_2d_, name_, ni_, ni_glo_, nj_, nj_glo_, nvertex_, prec_, standard_name_, type_  & 
     1008     ) 
    8541009 
    8551010    IMPLICIT NONE 
     
    8611016      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d_ 
    8621017      LOGICAL(KIND=C_BOOL) :: bounds_lat_2d__tmp 
     1018      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name_ 
     1019      LOGICAL(KIND=C_BOOL) :: bounds_lat_name__tmp 
    8631020      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d_ 
    8641021      LOGICAL(KIND=C_BOOL) :: bounds_lon_1d__tmp 
    8651022      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d_ 
    8661023      LOGICAL(KIND=C_BOOL) :: bounds_lon_2d__tmp 
     1024      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name_ 
     1025      LOGICAL(KIND=C_BOOL) :: bounds_lon_name__tmp 
     1026      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     1027      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    8671028      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim_ 
    8681029      LOGICAL(KIND=C_BOOL) :: data_dim__tmp 
     
    8791040      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj_ 
    8801041      LOGICAL(KIND=C_BOOL) :: data_nj__tmp 
     1042      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name_ 
     1043      LOGICAL(KIND=C_BOOL) :: dim_i_name__tmp 
     1044      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name_ 
     1045      LOGICAL(KIND=C_BOOL) :: dim_j_name__tmp 
    8811046      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 
    8821047      LOGICAL(KIND=C_BOOL) :: domain_ref__tmp 
     
    8911056      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 
    8921057      LOGICAL(KIND=C_BOOL) :: jbegin__tmp 
     1058      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name_ 
     1059      LOGICAL(KIND=C_BOOL) :: lat_name__tmp 
    8931060      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d_ 
    8941061      LOGICAL(KIND=C_BOOL) :: latvalue_1d__tmp 
    8951062      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d_ 
    8961063      LOGICAL(KIND=C_BOOL) :: latvalue_2d__tmp 
     1064      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name_ 
     1065      LOGICAL(KIND=C_BOOL) :: lon_name__tmp 
    8971066      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
    8981067      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
     
    9421111      ENDIF 
    9431112 
     1113      IF (PRESENT(bounds_lat_name_)) THEN 
     1114        bounds_lat_name__tmp = cxios_is_defined_domaingroup_bounds_lat_name & 
     1115      (domaingroup_hdl%daddr) 
     1116        bounds_lat_name_ = bounds_lat_name__tmp 
     1117      ENDIF 
     1118 
    9441119      IF (PRESENT(bounds_lon_1d_)) THEN 
    9451120        bounds_lon_1d__tmp = cxios_is_defined_domaingroup_bounds_lon_1d & 
     
    9541129      ENDIF 
    9551130 
     1131      IF (PRESENT(bounds_lon_name_)) THEN 
     1132        bounds_lon_name__tmp = cxios_is_defined_domaingroup_bounds_lon_name & 
     1133      (domaingroup_hdl%daddr) 
     1134        bounds_lon_name_ = bounds_lon_name__tmp 
     1135      ENDIF 
     1136 
     1137      IF (PRESENT(comment_)) THEN 
     1138        comment__tmp = cxios_is_defined_domaingroup_comment & 
     1139      (domaingroup_hdl%daddr) 
     1140        comment_ = comment__tmp 
     1141      ENDIF 
     1142 
    9561143      IF (PRESENT(data_dim_)) THEN 
    9571144        data_dim__tmp = cxios_is_defined_domaingroup_data_dim & 
     
    9961183      ENDIF 
    9971184 
     1185      IF (PRESENT(dim_i_name_)) THEN 
     1186        dim_i_name__tmp = cxios_is_defined_domaingroup_dim_i_name & 
     1187      (domaingroup_hdl%daddr) 
     1188        dim_i_name_ = dim_i_name__tmp 
     1189      ENDIF 
     1190 
     1191      IF (PRESENT(dim_j_name_)) THEN 
     1192        dim_j_name__tmp = cxios_is_defined_domaingroup_dim_j_name & 
     1193      (domaingroup_hdl%daddr) 
     1194        dim_j_name_ = dim_j_name__tmp 
     1195      ENDIF 
     1196 
    9981197      IF (PRESENT(domain_ref_)) THEN 
    9991198        domain_ref__tmp = cxios_is_defined_domaingroup_domain_ref & 
     
    10321231      ENDIF 
    10331232 
     1233      IF (PRESENT(lat_name_)) THEN 
     1234        lat_name__tmp = cxios_is_defined_domaingroup_lat_name & 
     1235      (domaingroup_hdl%daddr) 
     1236        lat_name_ = lat_name__tmp 
     1237      ENDIF 
     1238 
    10341239      IF (PRESENT(latvalue_1d_)) THEN 
    10351240        latvalue_1d__tmp = cxios_is_defined_domaingroup_latvalue_1d & 
     
    10441249      ENDIF 
    10451250 
     1251      IF (PRESENT(lon_name_)) THEN 
     1252        lon_name__tmp = cxios_is_defined_domaingroup_lon_name & 
     1253      (domaingroup_hdl%daddr) 
     1254        lon_name_ = lon_name__tmp 
     1255      ENDIF 
     1256 
    10461257      IF (PRESENT(long_name_)) THEN 
    10471258        long_name__tmp = cxios_is_defined_domaingroup_long_name & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/ifield_attr.F90

    r1205 r1545  
    1212 
    1313  SUBROUTINE xios(set_field_attr)  & 
    14     ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    15     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    16     , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    17     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    18     ) 
     14    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     15    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     16    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     17    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     18    , valid_max, valid_min ) 
    1919 
    2020    IMPLICIT NONE 
     
    2727      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active 
    2828      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     29      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2930      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    3031      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     
    6263      (field_id,field_hdl) 
    6364      CALL xios(set_field_attr_hdl_)   & 
    64       ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    65       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    66       , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    67       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    68       ) 
     65      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     66      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     67      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     68      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     69      , valid_max, valid_min ) 
    6970 
    7071  END SUBROUTINE xios(set_field_attr) 
    7172 
    7273  SUBROUTINE xios(set_field_attr_hdl)  & 
    73     ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    74     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    75     , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    76     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    77     ) 
     74    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     75    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     76    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     77    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     78    , valid_max, valid_min ) 
    7879 
    7980    IMPLICIT NONE 
     
    8586      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active 
    8687      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     88      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    8789      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    8890      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     
    118120 
    119121      CALL xios(set_field_attr_hdl_)  & 
    120       ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    121       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    122       , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    123       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    124       ) 
     122      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     123      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     124      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     125      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     126      , valid_max, valid_min ) 
    125127 
    126128  END SUBROUTINE xios(set_field_attr_hdl) 
    127129 
    128130  SUBROUTINE xios(set_field_attr_hdl_)   & 
    129     ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, compression_level_  & 
    130     , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  & 
    131     , freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_  & 
    132     , read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_  & 
    133     , valid_max_, valid_min_ ) 
     131    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, comment_  & 
     132    , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  & 
     133    , freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_  & 
     134    , operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  & 
     135    , unit_, valid_max_, valid_min_ ) 
    134136 
    135137    IMPLICIT NONE 
     
    141143      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active_ 
    142144      LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 
     145      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    143146      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
    144147      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ 
     
    199202      ENDIF 
    200203 
     204      IF (PRESENT(comment_)) THEN 
     205        CALL cxios_set_field_comment & 
     206      (field_hdl%daddr, comment_, len(comment_)) 
     207      ENDIF 
     208 
    201209      IF (PRESENT(compression_level_)) THEN 
    202210        CALL cxios_set_field_compression_level & 
     
    337345 
    338346  SUBROUTINE xios(get_field_attr)  & 
    339     ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    340     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    341     , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    342     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    343     ) 
     347    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     348    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     349    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     350    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     351    , valid_max, valid_min ) 
    344352 
    345353    IMPLICIT NONE 
     
    352360      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active 
    353361      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     362      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    354363      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    355364      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     
    387396      (field_id,field_hdl) 
    388397      CALL xios(get_field_attr_hdl_)   & 
    389       ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    390       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    391       , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    392       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    393       ) 
     398      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     399      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     400      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     401      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     402      , valid_max, valid_min ) 
    394403 
    395404  END SUBROUTINE xios(get_field_attr) 
    396405 
    397406  SUBROUTINE xios(get_field_attr_hdl)  & 
    398     ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    399     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    400     , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    401     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    402     ) 
     407    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     408    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     409    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     410    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     411    , valid_max, valid_min ) 
    403412 
    404413    IMPLICIT NONE 
     
    410419      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active 
    411420      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     421      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    412422      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    413423      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     
    443453 
    444454      CALL xios(get_field_attr_hdl_)  & 
    445       ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    446       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    447       , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    448       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    449       ) 
     455      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     456      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     457      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     458      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     459      , valid_max, valid_min ) 
    450460 
    451461  END SUBROUTINE xios(get_field_attr_hdl) 
    452462 
    453463  SUBROUTINE xios(get_field_attr_hdl_)   & 
    454     ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, compression_level_  & 
    455     , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  & 
    456     , freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_  & 
    457     , read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_  & 
    458     , valid_max_, valid_min_ ) 
     464    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, comment_  & 
     465    , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  & 
     466    , freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_  & 
     467    , operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  & 
     468    , unit_, valid_max_, valid_min_ ) 
    459469 
    460470    IMPLICIT NONE 
     
    466476      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active_ 
    467477      LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 
     478      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    468479      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
    469480      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ 
     
    524535      ENDIF 
    525536 
     537      IF (PRESENT(comment_)) THEN 
     538        CALL cxios_get_field_comment & 
     539      (field_hdl%daddr, comment_, len(comment_)) 
     540      ENDIF 
     541 
    526542      IF (PRESENT(compression_level_)) THEN 
    527543        CALL cxios_get_field_compression_level & 
     
    662678 
    663679  SUBROUTINE xios(is_defined_field_attr)  & 
    664     ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    665     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    666     , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    667     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    668     ) 
     680    ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     681    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     682    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     683    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     684    , valid_max, valid_min ) 
    669685 
    670686    IMPLICIT NONE 
     
    681697      LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 
    682698      LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 
     699      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     700      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    683701      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    684702      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    737755      (field_id,field_hdl) 
    738756      CALL xios(is_defined_field_attr_hdl_)   & 
    739       ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    740       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    741       , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    742       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    743       ) 
     757      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     758      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     759      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     760      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     761      , valid_max, valid_min ) 
    744762 
    745763  END SUBROUTINE xios(is_defined_field_attr) 
    746764 
    747765  SUBROUTINE xios(is_defined_field_attr_hdl)  & 
    748     ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    749     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    750     , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    751     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    752     ) 
     766    ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     767    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     768    , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     769    , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     770    , valid_max, valid_min ) 
    753771 
    754772    IMPLICIT NONE 
     
    764782      LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 
    765783      LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 
     784      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     785      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    766786      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    767787      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    818838 
    819839      CALL xios(is_defined_field_attr_hdl_)  & 
    820       ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    821       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    822       , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    823       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    824       ) 
     840      ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     841      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     842      , freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name, operation  & 
     843      , prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit  & 
     844      , valid_max, valid_min ) 
    825845 
    826846  END SUBROUTINE xios(is_defined_field_attr_hdl) 
    827847 
    828848  SUBROUTINE xios(is_defined_field_attr_hdl_)   & 
    829     ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, compression_level_  & 
    830     , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_  & 
    831     , freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_  & 
    832     , read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_  & 
    833     , valid_max_, valid_min_ ) 
     849    ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, comment_  & 
     850    , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  & 
     851    , freq_offset_, freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_  & 
     852    , operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_  & 
     853    , unit_, valid_max_, valid_min_ ) 
    834854 
    835855    IMPLICIT NONE 
     
    845865      LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active_ 
    846866      LOGICAL(KIND=C_BOOL) :: check_if_active__tmp 
     867      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     868      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    847869      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    848870      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     
    928950      ENDIF 
    929951 
     952      IF (PRESENT(comment_)) THEN 
     953        comment__tmp = cxios_is_defined_field_comment & 
     954      (field_hdl%daddr) 
     955        comment_ = comment__tmp 
     956      ENDIF 
     957 
    930958      IF (PRESENT(compression_level_)) THEN 
    931959        compression_level__tmp = cxios_is_defined_field_compression_level & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/ifieldgroup_attr.F90

    r1205 r1545  
    1212 
    1313  SUBROUTINE xios(set_fieldgroup_attr)  & 
    14     ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    15     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    16     , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    17     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    18     ) 
     14    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     15    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     16    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     17    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     18    , unit, valid_max, valid_min ) 
    1919 
    2020    IMPLICIT NONE 
     
    2727      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active 
    2828      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     29      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2930      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    3031      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     
    6364      (fieldgroup_id,fieldgroup_hdl) 
    6465      CALL xios(set_fieldgroup_attr_hdl_)   & 
    65       ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    66       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    67       , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    68       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    69       ) 
     66      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     67      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     68      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     69      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     70      , unit, valid_max, valid_min ) 
    7071 
    7172  END SUBROUTINE xios(set_fieldgroup_attr) 
    7273 
    7374  SUBROUTINE xios(set_fieldgroup_attr_hdl)  & 
    74     ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    75     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    76     , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    77     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    78     ) 
     75    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     76    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     77    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     78    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     79    , unit, valid_max, valid_min ) 
    7980 
    8081    IMPLICIT NONE 
     
    8687      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active 
    8788      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     89      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    8890      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    8991      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value 
     
    120122 
    121123      CALL xios(set_fieldgroup_attr_hdl_)  & 
    122       ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    123       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    124       , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    125       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    126       ) 
     124      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     125      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     126      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     127      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     128      , unit, valid_max, valid_min ) 
    127129 
    128130  END SUBROUTINE xios(set_fieldgroup_attr_hdl) 
     
    130132  SUBROUTINE xios(set_fieldgroup_attr_hdl_)   & 
    131133    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_  & 
    132     , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  & 
    133     , freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_  & 
    134     , name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_  & 
    135     , ts_split_freq_, unit_, valid_max_, valid_min_ ) 
     134    , comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
     135    , expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  & 
     136    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  & 
     137    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ ) 
    136138 
    137139    IMPLICIT NONE 
     
    143145      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active_ 
    144146      LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 
     147      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    145148      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
    146149      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ 
     
    202205      ENDIF 
    203206 
     207      IF (PRESENT(comment_)) THEN 
     208        CALL cxios_set_fieldgroup_comment & 
     209      (fieldgroup_hdl%daddr, comment_, len(comment_)) 
     210      ENDIF 
     211 
    204212      IF (PRESENT(compression_level_)) THEN 
    205213        CALL cxios_set_fieldgroup_compression_level & 
     
    345353 
    346354  SUBROUTINE xios(get_fieldgroup_attr)  & 
    347     ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    348     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    349     , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    350     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    351     ) 
     355    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     356    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     357    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     358    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     359    , unit, valid_max, valid_min ) 
    352360 
    353361    IMPLICIT NONE 
     
    360368      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active 
    361369      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     370      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    362371      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    363372      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     
    396405      (fieldgroup_id,fieldgroup_hdl) 
    397406      CALL xios(get_fieldgroup_attr_hdl_)   & 
    398       ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    399       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    400       , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    401       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    402       ) 
     407      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     408      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     409      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     410      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     411      , unit, valid_max, valid_min ) 
    403412 
    404413  END SUBROUTINE xios(get_fieldgroup_attr) 
    405414 
    406415  SUBROUTINE xios(get_fieldgroup_attr_hdl)  & 
    407     ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    408     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    409     , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    410     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    411     ) 
     416    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     417    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     418    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     419    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     420    , unit, valid_max, valid_min ) 
    412421 
    413422    IMPLICIT NONE 
     
    419428      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active 
    420429      LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 
     430      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    421431      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    422432      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value 
     
    453463 
    454464      CALL xios(get_fieldgroup_attr_hdl_)  & 
    455       ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    456       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    457       , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    458       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    459       ) 
     465      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     466      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     467      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     468      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     469      , unit, valid_max, valid_min ) 
    460470 
    461471  END SUBROUTINE xios(get_fieldgroup_attr_hdl) 
     
    463473  SUBROUTINE xios(get_fieldgroup_attr_hdl_)   & 
    464474    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_  & 
    465     , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  & 
    466     , freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_  & 
    467     , name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_  & 
    468     , ts_split_freq_, unit_, valid_max_, valid_min_ ) 
     475    , comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
     476    , expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  & 
     477    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  & 
     478    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ ) 
    469479 
    470480    IMPLICIT NONE 
     
    476486      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active_ 
    477487      LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 
     488      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    478489      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
    479490      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ 
     
    535546      ENDIF 
    536547 
     548      IF (PRESENT(comment_)) THEN 
     549        CALL cxios_get_fieldgroup_comment & 
     550      (fieldgroup_hdl%daddr, comment_, len(comment_)) 
     551      ENDIF 
     552 
    537553      IF (PRESENT(compression_level_)) THEN 
    538554        CALL cxios_get_fieldgroup_compression_level & 
     
    678694 
    679695  SUBROUTINE xios(is_defined_fieldgroup_attr)  & 
    680     ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    681     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    682     , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    683     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    684     ) 
     696    ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     697    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     698    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     699    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     700    , unit, valid_max, valid_min ) 
    685701 
    686702    IMPLICIT NONE 
     
    697713      LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 
    698714      LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 
     715      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     716      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    699717      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    700718      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    755773      (fieldgroup_id,fieldgroup_hdl) 
    756774      CALL xios(is_defined_fieldgroup_attr_hdl_)   & 
    757       ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    758       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    759       , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    760       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    761       ) 
     775      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     776      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     777      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     778      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     779      , unit, valid_max, valid_min ) 
    762780 
    763781  END SUBROUTINE xios(is_defined_fieldgroup_attr) 
    764782 
    765783  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl)  & 
    766     ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    767     , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    768     , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    769     , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    770     ) 
     784    ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     785    , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     786    , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     787    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     788    , unit, valid_max, valid_min ) 
    771789 
    772790    IMPLICIT NONE 
     
    782800      LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 
    783801      LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 
     802      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     803      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    784804      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    785805      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    838858 
    839859      CALL xios(is_defined_fieldgroup_attr_hdl_)  & 
    840       ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level  & 
    841       , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op  & 
    842       , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access  & 
    843       , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min  & 
    844       ) 
     860      ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, comment  & 
     861      , compression_level, default_value, detect_missing_value, domain_ref, enabled, expr, field_ref  & 
     862      , freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output, level, long_name, name  & 
     863      , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  & 
     864      , unit, valid_max, valid_min ) 
    845865 
    846866  END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) 
     
    848868  SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_)   & 
    849869    ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_  & 
    850     , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_  & 
    851     , freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_  & 
    852     , name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_  & 
    853     , ts_split_freq_, unit_, valid_max_, valid_min_ ) 
     870    , comment_, compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_  & 
     871    , expr_, field_ref_, freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_  & 
     872    , level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_  & 
     873    , ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ ) 
    854874 
    855875    IMPLICIT NONE 
     
    865885      LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active_ 
    866886      LOGICAL(KIND=C_BOOL) :: check_if_active__tmp 
     887      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     888      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    867889      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    868890      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     
    950972      ENDIF 
    951973 
     974      IF (PRESENT(comment_)) THEN 
     975        comment__tmp = cxios_is_defined_fieldgroup_comment & 
     976      (fieldgroup_hdl%daddr) 
     977        comment_ = comment__tmp 
     978      ENDIF 
     979 
    952980      IF (PRESENT(compression_level_)) THEN 
    953981        compression_level__tmp = cxios_is_defined_fieldgroup_compression_level & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/ifile_attr.F90

    r1205 r1545  
    1212 
    1313  SUBROUTINE xios(set_file_attr)  & 
    14     ( file_id, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    15     , format, 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, time_stamp_format  & 
    17     , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     14    ( file_id, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     15    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     16    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     17    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     18    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    1819 
    1920    IMPLICIT NONE 
     
    2223      LOGICAL  , OPTIONAL, INTENT(IN) :: append 
    2324      LOGICAL (KIND=C_BOOL) :: append_tmp 
     25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2426      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    2527      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
     
    3840      INTEGER  , OPTIONAL, INTENT(IN) :: output_level 
    3941      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
     42      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par 
     43      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    4044      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset 
     45      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_end_offset 
    4146      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_freq 
    4247      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format 
     48      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date 
     49      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_start_offset 
    4350      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: sync_freq 
    4451      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter 
     
    5663      (file_id,file_hdl) 
    5764      CALL xios(set_file_attr_hdl_)   & 
    58       ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    59       , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    60       , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    61       , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     65      ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     66      , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     67      , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     68      , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     69      , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    6270 
    6371  END SUBROUTINE xios(set_file_attr) 
    6472 
    6573  SUBROUTINE xios(set_file_attr_hdl)  & 
    66     ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    67     , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    68     , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    69     , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     74    ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     75    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     76    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     77    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     78    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    7079 
    7180    IMPLICIT NONE 
     
    7382      LOGICAL  , OPTIONAL, INTENT(IN) :: append 
    7483      LOGICAL (KIND=C_BOOL) :: append_tmp 
     84      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    7585      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    7686      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
     
    8999      INTEGER  , OPTIONAL, INTENT(IN) :: output_level 
    90100      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
     101      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par 
     102      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    91103      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset 
     104      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_end_offset 
    92105      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_freq 
    93106      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format 
     107      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date 
     108      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_start_offset 
    94109      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: sync_freq 
    95110      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter 
     
    105120 
    106121      CALL xios(set_file_attr_hdl_)  & 
    107       ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    108       , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    109       , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    110       , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     122      ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     123      , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     124      , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     125      , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     126      , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    111127 
    112128  END SUBROUTINE xios(set_file_attr_hdl) 
    113129 
    114130  SUBROUTINE xios(set_file_attr_hdl_)   & 
    115     ( file_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
     131    ( file_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
    116132    , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
    117     , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
    118     , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_  & 
    119     , uuid_name_ ) 
     133    , read_metadata_par_, record_offset_, split_end_offset_, split_freq_, split_freq_format_, split_last_date_  & 
     134    , split_start_offset_, sync_freq_, time_counter_, time_counter_name_, time_stamp_format_, time_stamp_name_  & 
     135    , time_units_, timeseries_, ts_prefix_, type_, uuid_format_, uuid_name_ ) 
    120136 
    121137    IMPLICIT NONE 
     
    123139      LOGICAL  , OPTIONAL, INTENT(IN) :: append_ 
    124140      LOGICAL (KIND=C_BOOL) :: append__tmp 
     141      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    125142      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
    126143      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 
     
    139156      INTEGER  , OPTIONAL, INTENT(IN) :: output_level_ 
    140157      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access_ 
     158      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par_ 
     159      LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 
    141160      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset_ 
     161      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_end_offset_ 
    142162      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_freq_ 
    143163      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format_ 
     164      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date_ 
     165      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_start_offset_ 
    144166      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: sync_freq_ 
    145167      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter_ 
     
    160182      ENDIF 
    161183 
     184      IF (PRESENT(comment_)) THEN 
     185        CALL cxios_set_file_comment & 
     186      (file_hdl%daddr, comment_, len(comment_)) 
     187      ENDIF 
     188 
    162189      IF (PRESENT(compression_level_)) THEN 
    163190        CALL cxios_set_file_compression_level & 
     
    232259      ENDIF 
    233260 
     261      IF (PRESENT(read_metadata_par_)) THEN 
     262        read_metadata_par__tmp = read_metadata_par_ 
     263        CALL cxios_set_file_read_metadata_par & 
     264      (file_hdl%daddr, read_metadata_par__tmp) 
     265      ENDIF 
     266 
    234267      IF (PRESENT(record_offset_)) THEN 
    235268        CALL cxios_set_file_record_offset & 
     
    237270      ENDIF 
    238271 
     272      IF (PRESENT(split_end_offset_)) THEN 
     273        CALL cxios_set_file_split_end_offset & 
     274      (file_hdl%daddr, split_end_offset_) 
     275      ENDIF 
     276 
    239277      IF (PRESENT(split_freq_)) THEN 
    240278        CALL cxios_set_file_split_freq & 
     
    247285      ENDIF 
    248286 
     287      IF (PRESENT(split_last_date_)) THEN 
     288        CALL cxios_set_file_split_last_date & 
     289      (file_hdl%daddr, split_last_date_, len(split_last_date_)) 
     290      ENDIF 
     291 
     292      IF (PRESENT(split_start_offset_)) THEN 
     293        CALL cxios_set_file_split_start_offset & 
     294      (file_hdl%daddr, split_start_offset_) 
     295      ENDIF 
     296 
    249297      IF (PRESENT(sync_freq_)) THEN 
    250298        CALL cxios_set_file_sync_freq & 
     
    305353 
    306354  SUBROUTINE xios(get_file_attr)  & 
    307     ( file_id, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    308     , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    309     , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    310     , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     355    ( file_id, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     356    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     357    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     358    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     359    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    311360 
    312361    IMPLICIT NONE 
     
    315364      LOGICAL  , OPTIONAL, INTENT(OUT) :: append 
    316365      LOGICAL (KIND=C_BOOL) :: append_tmp 
     366      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    317367      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    318368      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
     
    331381      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level 
    332382      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
     383      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_metadata_par 
     384      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    333385      INTEGER  , OPTIONAL, INTENT(OUT) :: record_offset 
     386      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_end_offset 
    334387      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_freq 
    335388      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format 
     389      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_last_date 
     390      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_start_offset 
    336391      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: sync_freq 
    337392      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter 
     
    349404      (file_id,file_hdl) 
    350405      CALL xios(get_file_attr_hdl_)   & 
    351       ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    352       , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    353       , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    354       , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     406      ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     407      , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     408      , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     409      , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     410      , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    355411 
    356412  END SUBROUTINE xios(get_file_attr) 
    357413 
    358414  SUBROUTINE xios(get_file_attr_hdl)  & 
    359     ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    360     , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    361     , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    362     , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     415    ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     416    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     417    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     418    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     419    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    363420 
    364421    IMPLICIT NONE 
     
    366423      LOGICAL  , OPTIONAL, INTENT(OUT) :: append 
    367424      LOGICAL (KIND=C_BOOL) :: append_tmp 
     425      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    368426      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    369427      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
     
    382440      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level 
    383441      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
     442      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_metadata_par 
     443      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    384444      INTEGER  , OPTIONAL, INTENT(OUT) :: record_offset 
     445      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_end_offset 
    385446      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_freq 
    386447      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format 
     448      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_last_date 
     449      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_start_offset 
    387450      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: sync_freq 
    388451      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter 
     
    398461 
    399462      CALL xios(get_file_attr_hdl_)  & 
    400       ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    401       , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    402       , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    403       , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     463      ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     464      , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     465      , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     466      , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     467      , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    404468 
    405469  END SUBROUTINE xios(get_file_attr_hdl) 
    406470 
    407471  SUBROUTINE xios(get_file_attr_hdl_)   & 
    408     ( file_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
     472    ( file_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
    409473    , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
    410     , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
    411     , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_  & 
    412     , uuid_name_ ) 
     474    , read_metadata_par_, record_offset_, split_end_offset_, split_freq_, split_freq_format_, split_last_date_  & 
     475    , split_start_offset_, sync_freq_, time_counter_, time_counter_name_, time_stamp_format_, time_stamp_name_  & 
     476    , time_units_, timeseries_, ts_prefix_, type_, uuid_format_, uuid_name_ ) 
    413477 
    414478    IMPLICIT NONE 
     
    416480      LOGICAL  , OPTIONAL, INTENT(OUT) :: append_ 
    417481      LOGICAL (KIND=C_BOOL) :: append__tmp 
     482      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    418483      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
    419484      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 
     
    432497      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level_ 
    433498      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access_ 
     499      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_metadata_par_ 
     500      LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 
    434501      INTEGER  , OPTIONAL, INTENT(OUT) :: record_offset_ 
     502      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_end_offset_ 
    435503      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_freq_ 
    436504      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format_ 
     505      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_last_date_ 
     506      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_start_offset_ 
    437507      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: sync_freq_ 
    438508      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter_ 
     
    453523      ENDIF 
    454524 
     525      IF (PRESENT(comment_)) THEN 
     526        CALL cxios_get_file_comment & 
     527      (file_hdl%daddr, comment_, len(comment_)) 
     528      ENDIF 
     529 
    455530      IF (PRESENT(compression_level_)) THEN 
    456531        CALL cxios_get_file_compression_level & 
     
    525600      ENDIF 
    526601 
     602      IF (PRESENT(read_metadata_par_)) THEN 
     603        CALL cxios_get_file_read_metadata_par & 
     604      (file_hdl%daddr, read_metadata_par__tmp) 
     605        read_metadata_par_ = read_metadata_par__tmp 
     606      ENDIF 
     607 
    527608      IF (PRESENT(record_offset_)) THEN 
    528609        CALL cxios_get_file_record_offset & 
     
    530611      ENDIF 
    531612 
     613      IF (PRESENT(split_end_offset_)) THEN 
     614        CALL cxios_get_file_split_end_offset & 
     615      (file_hdl%daddr, split_end_offset_) 
     616      ENDIF 
     617 
    532618      IF (PRESENT(split_freq_)) THEN 
    533619        CALL cxios_get_file_split_freq & 
     
    540626      ENDIF 
    541627 
     628      IF (PRESENT(split_last_date_)) THEN 
     629        CALL cxios_get_file_split_last_date & 
     630      (file_hdl%daddr, split_last_date_, len(split_last_date_)) 
     631      ENDIF 
     632 
     633      IF (PRESENT(split_start_offset_)) THEN 
     634        CALL cxios_get_file_split_start_offset & 
     635      (file_hdl%daddr, split_start_offset_) 
     636      ENDIF 
     637 
    542638      IF (PRESENT(sync_freq_)) THEN 
    543639        CALL cxios_get_file_sync_freq & 
     
    598694 
    599695  SUBROUTINE xios(is_defined_file_attr)  & 
    600     ( file_id, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    601     , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    602     , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    603     , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     696    ( file_id, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     697    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     698    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     699    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     700    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    604701 
    605702    IMPLICIT NONE 
     
    608705      LOGICAL, OPTIONAL, INTENT(OUT) :: append 
    609706      LOGICAL(KIND=C_BOOL) :: append_tmp 
     707      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     708      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    610709      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    611710      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    636735      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 
    637736      LOGICAL(KIND=C_BOOL) :: par_access_tmp 
     737      LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 
     738      LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 
    638739      LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 
    639740      LOGICAL(KIND=C_BOOL) :: record_offset_tmp 
     741      LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 
     742      LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 
    640743      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 
    641744      LOGICAL(KIND=C_BOOL) :: split_freq_tmp 
    642745      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 
    643746      LOGICAL(KIND=C_BOOL) :: split_freq_format_tmp 
     747      LOGICAL, OPTIONAL, INTENT(OUT) :: split_last_date 
     748      LOGICAL(KIND=C_BOOL) :: split_last_date_tmp 
     749      LOGICAL, OPTIONAL, INTENT(OUT) :: split_start_offset 
     750      LOGICAL(KIND=C_BOOL) :: split_start_offset_tmp 
    644751      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 
    645752      LOGICAL(KIND=C_BOOL) :: sync_freq_tmp 
     
    668775      (file_id,file_hdl) 
    669776      CALL xios(is_defined_file_attr_hdl_)   & 
    670       ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    671       , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    672       , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    673       , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     777      ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     778      , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     779      , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     780      , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     781      , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    674782 
    675783  END SUBROUTINE xios(is_defined_file_attr) 
    676784 
    677785  SUBROUTINE xios(is_defined_file_attr_hdl)  & 
    678     ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    679     , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    680     , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    681     , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     786    ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     787    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     788    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     789    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     790    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    682791 
    683792    IMPLICIT NONE 
     
    685794      LOGICAL, OPTIONAL, INTENT(OUT) :: append 
    686795      LOGICAL(KIND=C_BOOL) :: append_tmp 
     796      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     797      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    687798      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    688799      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    713824      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 
    714825      LOGICAL(KIND=C_BOOL) :: par_access_tmp 
     826      LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 
     827      LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 
    715828      LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 
    716829      LOGICAL(KIND=C_BOOL) :: record_offset_tmp 
     830      LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 
     831      LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 
    717832      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 
    718833      LOGICAL(KIND=C_BOOL) :: split_freq_tmp 
    719834      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 
    720835      LOGICAL(KIND=C_BOOL) :: split_freq_format_tmp 
     836      LOGICAL, OPTIONAL, INTENT(OUT) :: split_last_date 
     837      LOGICAL(KIND=C_BOOL) :: split_last_date_tmp 
     838      LOGICAL, OPTIONAL, INTENT(OUT) :: split_start_offset 
     839      LOGICAL(KIND=C_BOOL) :: split_start_offset_tmp 
    721840      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 
    722841      LOGICAL(KIND=C_BOOL) :: sync_freq_tmp 
     
    743862 
    744863      CALL xios(is_defined_file_attr_hdl_)  & 
    745       ( file_hdl, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    746       , format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset  & 
    747       , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    748       , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
     864      ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     865      , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
     866      , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  & 
     867      , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  & 
     868      , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    749869 
    750870  END SUBROUTINE xios(is_defined_file_attr_hdl) 
    751871 
    752872  SUBROUTINE xios(is_defined_file_attr_hdl_)   & 
    753     ( file_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
     873    ( file_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
    754874    , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_  & 
    755     , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
    756     , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_  & 
    757     , uuid_name_ ) 
     875    , read_metadata_par_, record_offset_, split_end_offset_, split_freq_, split_freq_format_, split_last_date_  & 
     876    , split_start_offset_, sync_freq_, time_counter_, time_counter_name_, time_stamp_format_, time_stamp_name_  & 
     877    , time_units_, timeseries_, ts_prefix_, type_, uuid_format_, uuid_name_ ) 
    758878 
    759879    IMPLICIT NONE 
     
    761881      LOGICAL, OPTIONAL, INTENT(OUT) :: append_ 
    762882      LOGICAL(KIND=C_BOOL) :: append__tmp 
     883      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     884      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    763885      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    764886      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     
    789911      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access_ 
    790912      LOGICAL(KIND=C_BOOL) :: par_access__tmp 
     913      LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par_ 
     914      LOGICAL(KIND=C_BOOL) :: read_metadata_par__tmp 
    791915      LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset_ 
    792916      LOGICAL(KIND=C_BOOL) :: record_offset__tmp 
     917      LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset_ 
     918      LOGICAL(KIND=C_BOOL) :: split_end_offset__tmp 
    793919      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_ 
    794920      LOGICAL(KIND=C_BOOL) :: split_freq__tmp 
    795921      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format_ 
    796922      LOGICAL(KIND=C_BOOL) :: split_freq_format__tmp 
     923      LOGICAL, OPTIONAL, INTENT(OUT) :: split_last_date_ 
     924      LOGICAL(KIND=C_BOOL) :: split_last_date__tmp 
     925      LOGICAL, OPTIONAL, INTENT(OUT) :: split_start_offset_ 
     926      LOGICAL(KIND=C_BOOL) :: split_start_offset__tmp 
    797927      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq_ 
    798928      LOGICAL(KIND=C_BOOL) :: sync_freq__tmp 
     
    824954      ENDIF 
    825955 
     956      IF (PRESENT(comment_)) THEN 
     957        comment__tmp = cxios_is_defined_file_comment & 
     958      (file_hdl%daddr) 
     959        comment_ = comment__tmp 
     960      ENDIF 
     961 
    826962      IF (PRESENT(compression_level_)) THEN 
    827963        compression_level__tmp = cxios_is_defined_file_compression_level & 
     
    9081044      ENDIF 
    9091045 
     1046      IF (PRESENT(read_metadata_par_)) THEN 
     1047        read_metadata_par__tmp = cxios_is_defined_file_read_metadata_par & 
     1048      (file_hdl%daddr) 
     1049        read_metadata_par_ = read_metadata_par__tmp 
     1050      ENDIF 
     1051 
    9101052      IF (PRESENT(record_offset_)) THEN 
    9111053        record_offset__tmp = cxios_is_defined_file_record_offset & 
     
    9141056      ENDIF 
    9151057 
     1058      IF (PRESENT(split_end_offset_)) THEN 
     1059        split_end_offset__tmp = cxios_is_defined_file_split_end_offset & 
     1060      (file_hdl%daddr) 
     1061        split_end_offset_ = split_end_offset__tmp 
     1062      ENDIF 
     1063 
    9161064      IF (PRESENT(split_freq_)) THEN 
    9171065        split_freq__tmp = cxios_is_defined_file_split_freq & 
     
    9261074      ENDIF 
    9271075 
     1076      IF (PRESENT(split_last_date_)) THEN 
     1077        split_last_date__tmp = cxios_is_defined_file_split_last_date & 
     1078      (file_hdl%daddr) 
     1079        split_last_date_ = split_last_date__tmp 
     1080      ENDIF 
     1081 
     1082      IF (PRESENT(split_start_offset_)) THEN 
     1083        split_start_offset__tmp = cxios_is_defined_file_split_start_offset & 
     1084      (file_hdl%daddr) 
     1085        split_start_offset_ = split_start_offset__tmp 
     1086      ENDIF 
     1087 
    9281088      IF (PRESENT(sync_freq_)) THEN 
    9291089        sync_freq__tmp = cxios_is_defined_file_sync_freq & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/ifilegroup_attr.F90

    r1205 r1545  
    1212 
    1313  SUBROUTINE xios(set_filegroup_attr)  & 
    14     ( filegroup_id, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    15     , format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
    16     , record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     14    ( filegroup_id, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     15    , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
     16    , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     17    , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    1718    , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    1819 
     
    2223      LOGICAL  , OPTIONAL, INTENT(IN) :: append 
    2324      LOGICAL (KIND=C_BOOL) :: append_tmp 
     25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2426      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    2527      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
     
    3941      INTEGER  , OPTIONAL, INTENT(IN) :: output_level 
    4042      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
     43      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par 
     44      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    4145      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset 
     46      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_end_offset 
    4247      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_freq 
    4348      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format 
     49      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date 
     50      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_start_offset 
    4451      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: sync_freq 
    4552      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter 
     
    5764      (filegroup_id,filegroup_hdl) 
    5865      CALL xios(set_filegroup_attr_hdl_)   & 
    59       ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     66      ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    6067      , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    61       , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    62       , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    63       ) 
     68      , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     69      , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     70      , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    6471 
    6572  END SUBROUTINE xios(set_filegroup_attr) 
    6673 
    6774  SUBROUTINE xios(set_filegroup_attr_hdl)  & 
    68     ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     75    ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    6976    , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    70     , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    71     , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    72     ) 
     77    , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     78    , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     79    , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    7380 
    7481    IMPLICIT NONE 
     
    7683      LOGICAL  , OPTIONAL, INTENT(IN) :: append 
    7784      LOGICAL (KIND=C_BOOL) :: append_tmp 
     85      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    7886      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level 
    7987      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 
     
    93101      INTEGER  , OPTIONAL, INTENT(IN) :: output_level 
    94102      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 
     103      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par 
     104      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    95105      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset 
     106      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_end_offset 
    96107      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_freq 
    97108      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format 
     109      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date 
     110      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_start_offset 
    98111      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: sync_freq 
    99112      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter 
     
    109122 
    110123      CALL xios(set_filegroup_attr_hdl_)  & 
    111       ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     124      ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    112125      , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    113       , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    114       , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    115       ) 
     126      , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     127      , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     128      , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    116129 
    117130  END SUBROUTINE xios(set_filegroup_attr_hdl) 
    118131 
    119132  SUBROUTINE xios(set_filegroup_attr_hdl_)   & 
    120     ( filegroup_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
    121     , enabled_, format_, group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_  & 
    122     , par_access_, record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     133    ( filegroup_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_  & 
     134    , description_, enabled_, format_, group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_  & 
     135    , output_level_, par_access_, read_metadata_par_, record_offset_, split_end_offset_, split_freq_  & 
     136    , split_freq_format_, split_last_date_, split_start_offset_, sync_freq_, time_counter_, time_counter_name_  & 
    123137    , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_  & 
    124138    , uuid_name_ ) 
     
    128142      LOGICAL  , OPTIONAL, INTENT(IN) :: append_ 
    129143      LOGICAL (KIND=C_BOOL) :: append__tmp 
     144      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    130145      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_ 
    131146      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 
     
    145160      INTEGER  , OPTIONAL, INTENT(IN) :: output_level_ 
    146161      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access_ 
     162      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par_ 
     163      LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 
    147164      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset_ 
     165      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_end_offset_ 
    148166      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_freq_ 
    149167      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format_ 
     168      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date_ 
     169      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: split_start_offset_ 
    150170      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: sync_freq_ 
    151171      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter_ 
     
    166186      ENDIF 
    167187 
     188      IF (PRESENT(comment_)) THEN 
     189        CALL cxios_set_filegroup_comment & 
     190      (filegroup_hdl%daddr, comment_, len(comment_)) 
     191      ENDIF 
     192 
    168193      IF (PRESENT(compression_level_)) THEN 
    169194        CALL cxios_set_filegroup_compression_level & 
     
    243268      ENDIF 
    244269 
     270      IF (PRESENT(read_metadata_par_)) THEN 
     271        read_metadata_par__tmp = read_metadata_par_ 
     272        CALL cxios_set_filegroup_read_metadata_par & 
     273      (filegroup_hdl%daddr, read_metadata_par__tmp) 
     274      ENDIF 
     275 
    245276      IF (PRESENT(record_offset_)) THEN 
    246277        CALL cxios_set_filegroup_record_offset & 
     
    248279      ENDIF 
    249280 
     281      IF (PRESENT(split_end_offset_)) THEN 
     282        CALL cxios_set_filegroup_split_end_offset & 
     283      (filegroup_hdl%daddr, split_end_offset_) 
     284      ENDIF 
     285 
    250286      IF (PRESENT(split_freq_)) THEN 
    251287        CALL cxios_set_filegroup_split_freq & 
     
    258294      ENDIF 
    259295 
     296      IF (PRESENT(split_last_date_)) THEN 
     297        CALL cxios_set_filegroup_split_last_date & 
     298      (filegroup_hdl%daddr, split_last_date_, len(split_last_date_)) 
     299      ENDIF 
     300 
     301      IF (PRESENT(split_start_offset_)) THEN 
     302        CALL cxios_set_filegroup_split_start_offset & 
     303      (filegroup_hdl%daddr, split_start_offset_) 
     304      ENDIF 
     305 
    260306      IF (PRESENT(sync_freq_)) THEN 
    261307        CALL cxios_set_filegroup_sync_freq & 
     
    316362 
    317363  SUBROUTINE xios(get_filegroup_attr)  & 
    318     ( filegroup_id, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    319     , format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
    320     , record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     364    ( filegroup_id, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     365    , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
     366    , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     367    , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    321368    , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    322369 
     
    326373      LOGICAL  , OPTIONAL, INTENT(OUT) :: append 
    327374      LOGICAL (KIND=C_BOOL) :: append_tmp 
     375      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    328376      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    329377      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
     
    343391      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level 
    344392      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
     393      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_metadata_par 
     394      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    345395      INTEGER  , OPTIONAL, INTENT(OUT) :: record_offset 
     396      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_end_offset 
    346397      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_freq 
    347398      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format 
     399      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_last_date 
     400      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_start_offset 
    348401      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: sync_freq 
    349402      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter 
     
    361414      (filegroup_id,filegroup_hdl) 
    362415      CALL xios(get_filegroup_attr_hdl_)   & 
    363       ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     416      ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    364417      , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    365       , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    366       , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    367       ) 
     418      , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     419      , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     420      , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    368421 
    369422  END SUBROUTINE xios(get_filegroup_attr) 
    370423 
    371424  SUBROUTINE xios(get_filegroup_attr_hdl)  & 
    372     ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     425    ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    373426    , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    374     , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    375     , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    376     ) 
     427    , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     428    , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     429    , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    377430 
    378431    IMPLICIT NONE 
     
    380433      LOGICAL  , OPTIONAL, INTENT(OUT) :: append 
    381434      LOGICAL (KIND=C_BOOL) :: append_tmp 
     435      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    382436      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level 
    383437      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 
     
    397451      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level 
    398452      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 
     453      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_metadata_par 
     454      LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 
    399455      INTEGER  , OPTIONAL, INTENT(OUT) :: record_offset 
     456      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_end_offset 
    400457      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_freq 
    401458      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format 
     459      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_last_date 
     460      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_start_offset 
    402461      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: sync_freq 
    403462      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter 
     
    413472 
    414473      CALL xios(get_filegroup_attr_hdl_)  & 
    415       ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     474      ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    416475      , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    417       , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    418       , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    419       ) 
     476      , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     477      , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     478      , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    420479 
    421480  END SUBROUTINE xios(get_filegroup_attr_hdl) 
    422481 
    423482  SUBROUTINE xios(get_filegroup_attr_hdl_)   & 
    424     ( filegroup_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
    425     , enabled_, format_, group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_  & 
    426     , par_access_, record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     483    ( filegroup_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_  & 
     484    , description_, enabled_, format_, group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_  & 
     485    , output_level_, par_access_, read_metadata_par_, record_offset_, split_end_offset_, split_freq_  & 
     486    , split_freq_format_, split_last_date_, split_start_offset_, sync_freq_, time_counter_, time_counter_name_  & 
    427487    , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_  & 
    428488    , uuid_name_ ) 
     
    432492      LOGICAL  , OPTIONAL, INTENT(OUT) :: append_ 
    433493      LOGICAL (KIND=C_BOOL) :: append__tmp 
     494      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    434495      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_ 
    435496      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 
     
    449510      INTEGER  , OPTIONAL, INTENT(OUT) :: output_level_ 
    450511      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access_ 
     512      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_metadata_par_ 
     513      LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 
    451514      INTEGER  , OPTIONAL, INTENT(OUT) :: record_offset_ 
     515      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_end_offset_ 
    452516      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_freq_ 
    453517      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_freq_format_ 
     518      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: split_last_date_ 
     519      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: split_start_offset_ 
    454520      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: sync_freq_ 
    455521      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter_ 
     
    470536      ENDIF 
    471537 
     538      IF (PRESENT(comment_)) THEN 
     539        CALL cxios_get_filegroup_comment & 
     540      (filegroup_hdl%daddr, comment_, len(comment_)) 
     541      ENDIF 
     542 
    472543      IF (PRESENT(compression_level_)) THEN 
    473544        CALL cxios_get_filegroup_compression_level & 
     
    547618      ENDIF 
    548619 
     620      IF (PRESENT(read_metadata_par_)) THEN 
     621        CALL cxios_get_filegroup_read_metadata_par & 
     622      (filegroup_hdl%daddr, read_metadata_par__tmp) 
     623        read_metadata_par_ = read_metadata_par__tmp 
     624      ENDIF 
     625 
    549626      IF (PRESENT(record_offset_)) THEN 
    550627        CALL cxios_get_filegroup_record_offset & 
     
    552629      ENDIF 
    553630 
     631      IF (PRESENT(split_end_offset_)) THEN 
     632        CALL cxios_get_filegroup_split_end_offset & 
     633      (filegroup_hdl%daddr, split_end_offset_) 
     634      ENDIF 
     635 
    554636      IF (PRESENT(split_freq_)) THEN 
    555637        CALL cxios_get_filegroup_split_freq & 
     
    562644      ENDIF 
    563645 
     646      IF (PRESENT(split_last_date_)) THEN 
     647        CALL cxios_get_filegroup_split_last_date & 
     648      (filegroup_hdl%daddr, split_last_date_, len(split_last_date_)) 
     649      ENDIF 
     650 
     651      IF (PRESENT(split_start_offset_)) THEN 
     652        CALL cxios_get_filegroup_split_start_offset & 
     653      (filegroup_hdl%daddr, split_start_offset_) 
     654      ENDIF 
     655 
    564656      IF (PRESENT(sync_freq_)) THEN 
    565657        CALL cxios_get_filegroup_sync_freq & 
     
    620712 
    621713  SUBROUTINE xios(is_defined_filegroup_attr)  & 
    622     ( filegroup_id, append, compression_level, convention, convention_str, cyclic, description, enabled  & 
    623     , format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  & 
    624     , record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     714    ( filegroup_id, append, comment, compression_level, convention, convention_str, cyclic, description  & 
     715    , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
     716    , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     717    , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
    625718    , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    626719 
     
    630723      LOGICAL, OPTIONAL, INTENT(OUT) :: append 
    631724      LOGICAL(KIND=C_BOOL) :: append_tmp 
     725      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     726      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    632727      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    633728      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    660755      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 
    661756      LOGICAL(KIND=C_BOOL) :: par_access_tmp 
     757      LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 
     758      LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 
    662759      LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 
    663760      LOGICAL(KIND=C_BOOL) :: record_offset_tmp 
     761      LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 
     762      LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 
    664763      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 
    665764      LOGICAL(KIND=C_BOOL) :: split_freq_tmp 
    666765      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 
    667766      LOGICAL(KIND=C_BOOL) :: split_freq_format_tmp 
     767      LOGICAL, OPTIONAL, INTENT(OUT) :: split_last_date 
     768      LOGICAL(KIND=C_BOOL) :: split_last_date_tmp 
     769      LOGICAL, OPTIONAL, INTENT(OUT) :: split_start_offset 
     770      LOGICAL(KIND=C_BOOL) :: split_start_offset_tmp 
    668771      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 
    669772      LOGICAL(KIND=C_BOOL) :: sync_freq_tmp 
     
    692795      (filegroup_id,filegroup_hdl) 
    693796      CALL xios(is_defined_filegroup_attr_hdl_)   & 
    694       ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     797      ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    695798      , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    696       , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    697       , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    698       ) 
     799      , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     800      , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     801      , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    699802 
    700803  END SUBROUTINE xios(is_defined_filegroup_attr) 
    701804 
    702805  SUBROUTINE xios(is_defined_filegroup_attr_hdl)  & 
    703     ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     806    ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    704807    , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    705     , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    706     , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    707     ) 
     808    , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     809    , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     810    , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    708811 
    709812    IMPLICIT NONE 
     
    711814      LOGICAL, OPTIONAL, INTENT(OUT) :: append 
    712815      LOGICAL(KIND=C_BOOL) :: append_tmp 
     816      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     817      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    713818      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 
    714819      LOGICAL(KIND=C_BOOL) :: compression_level_tmp 
     
    741846      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 
    742847      LOGICAL(KIND=C_BOOL) :: par_access_tmp 
     848      LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 
     849      LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 
    743850      LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 
    744851      LOGICAL(KIND=C_BOOL) :: record_offset_tmp 
     852      LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 
     853      LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 
    745854      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 
    746855      LOGICAL(KIND=C_BOOL) :: split_freq_tmp 
    747856      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 
    748857      LOGICAL(KIND=C_BOOL) :: split_freq_format_tmp 
     858      LOGICAL, OPTIONAL, INTENT(OUT) :: split_last_date 
     859      LOGICAL(KIND=C_BOOL) :: split_last_date_tmp 
     860      LOGICAL, OPTIONAL, INTENT(OUT) :: split_start_offset 
     861      LOGICAL(KIND=C_BOOL) :: split_start_offset_tmp 
    749862      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 
    750863      LOGICAL(KIND=C_BOOL) :: sync_freq_tmp 
     
    771884 
    772885      CALL xios(is_defined_filegroup_attr_hdl_)  & 
    773       ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description  & 
     886      ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  & 
    774887      , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level  & 
    775       , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name  & 
    776       , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name  & 
    777       ) 
     888      , par_access, read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format  & 
     889      , split_last_date, split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format  & 
     890      , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 
    778891 
    779892  END SUBROUTINE xios(is_defined_filegroup_attr_hdl) 
    780893 
    781894  SUBROUTINE xios(is_defined_filegroup_attr_hdl_)   & 
    782     ( filegroup_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_  & 
    783     , enabled_, format_, group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_  & 
    784     , par_access_, record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_  & 
     895    ( filegroup_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_  & 
     896    , description_, enabled_, format_, group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_  & 
     897    , output_level_, par_access_, read_metadata_par_, record_offset_, split_end_offset_, split_freq_  & 
     898    , split_freq_format_, split_last_date_, split_start_offset_, sync_freq_, time_counter_, time_counter_name_  & 
    785899    , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_  & 
    786900    , uuid_name_ ) 
     
    790904      LOGICAL, OPTIONAL, INTENT(OUT) :: append_ 
    791905      LOGICAL(KIND=C_BOOL) :: append__tmp 
     906      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     907      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    792908      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 
    793909      LOGICAL(KIND=C_BOOL) :: compression_level__tmp 
     
    820936      LOGICAL, OPTIONAL, INTENT(OUT) :: par_access_ 
    821937      LOGICAL(KIND=C_BOOL) :: par_access__tmp 
     938      LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par_ 
     939      LOGICAL(KIND=C_BOOL) :: read_metadata_par__tmp 
    822940      LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset_ 
    823941      LOGICAL(KIND=C_BOOL) :: record_offset__tmp 
     942      LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset_ 
     943      LOGICAL(KIND=C_BOOL) :: split_end_offset__tmp 
    824944      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_ 
    825945      LOGICAL(KIND=C_BOOL) :: split_freq__tmp 
    826946      LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format_ 
    827947      LOGICAL(KIND=C_BOOL) :: split_freq_format__tmp 
     948      LOGICAL, OPTIONAL, INTENT(OUT) :: split_last_date_ 
     949      LOGICAL(KIND=C_BOOL) :: split_last_date__tmp 
     950      LOGICAL, OPTIONAL, INTENT(OUT) :: split_start_offset_ 
     951      LOGICAL(KIND=C_BOOL) :: split_start_offset__tmp 
    828952      LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq_ 
    829953      LOGICAL(KIND=C_BOOL) :: sync_freq__tmp 
     
    855979      ENDIF 
    856980 
     981      IF (PRESENT(comment_)) THEN 
     982        comment__tmp = cxios_is_defined_filegroup_comment & 
     983      (filegroup_hdl%daddr) 
     984        comment_ = comment__tmp 
     985      ENDIF 
     986 
    857987      IF (PRESENT(compression_level_)) THEN 
    858988        compression_level__tmp = cxios_is_defined_filegroup_compression_level & 
     
    9451075      ENDIF 
    9461076 
     1077      IF (PRESENT(read_metadata_par_)) THEN 
     1078        read_metadata_par__tmp = cxios_is_defined_filegroup_read_metadata_par & 
     1079      (filegroup_hdl%daddr) 
     1080        read_metadata_par_ = read_metadata_par__tmp 
     1081      ENDIF 
     1082 
    9471083      IF (PRESENT(record_offset_)) THEN 
    9481084        record_offset__tmp = cxios_is_defined_filegroup_record_offset & 
     
    9511087      ENDIF 
    9521088 
     1089      IF (PRESENT(split_end_offset_)) THEN 
     1090        split_end_offset__tmp = cxios_is_defined_filegroup_split_end_offset & 
     1091      (filegroup_hdl%daddr) 
     1092        split_end_offset_ = split_end_offset__tmp 
     1093      ENDIF 
     1094 
    9531095      IF (PRESENT(split_freq_)) THEN 
    9541096        split_freq__tmp = cxios_is_defined_filegroup_split_freq & 
     
    9631105      ENDIF 
    9641106 
     1107      IF (PRESENT(split_last_date_)) THEN 
     1108        split_last_date__tmp = cxios_is_defined_filegroup_split_last_date & 
     1109      (filegroup_hdl%daddr) 
     1110        split_last_date_ = split_last_date__tmp 
     1111      ENDIF 
     1112 
     1113      IF (PRESENT(split_start_offset_)) THEN 
     1114        split_start_offset__tmp = cxios_is_defined_filegroup_split_start_offset & 
     1115      (filegroup_hdl%daddr) 
     1116        split_start_offset_ = split_start_offset__tmp 
     1117      ENDIF 
     1118 
    9651119      IF (PRESENT(sync_freq_)) THEN 
    9661120        sync_freq__tmp = cxios_is_defined_filegroup_sync_freq & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/igrid_attr.F90

    r966 r1545  
    1212 
    1313  SUBROUTINE xios(set_grid_attr)  & 
    14     ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    15     ) 
     14    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     15    , mask_7d, name ) 
    1616 
    1717    IMPLICIT NONE 
    1818      TYPE(txios(grid))  :: grid_hdl 
    1919      CHARACTER(LEN=*), INTENT(IN) ::grid_id 
     20      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2021      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 
     22      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:) 
     23      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    2124      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:) 
    2225      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    3841      (grid_id,grid_hdl) 
    3942      CALL xios(set_grid_attr_hdl_)   & 
    40       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    41       ) 
     43      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     44      , mask_7d, name ) 
    4245 
    4346  END SUBROUTINE xios(set_grid_attr) 
    4447 
    4548  SUBROUTINE xios(set_grid_attr_hdl)  & 
    46     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    47     ) 
     49    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     50    , mask_7d, name ) 
    4851 
    4952    IMPLICIT NONE 
    5053      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     54      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    5155      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 
     56      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:) 
     57      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    5258      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:) 
    5359      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    6773 
    6874      CALL xios(set_grid_attr_hdl_)  & 
    69       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    70       ) 
     75      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     76      , mask_7d, name ) 
    7177 
    7278  END SUBROUTINE xios(set_grid_attr_hdl) 
    7379 
    7480  SUBROUTINE xios(set_grid_attr_hdl_)   & 
    75     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
    76     , name_ ) 
     81    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     82    , mask_6d_, mask_7d_, name_ ) 
    7783 
    7884    IMPLICIT NONE 
    7985      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     86      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    8087      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 
     88      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d_(:) 
     89      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 
    8190      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d_(:) 
    8291      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) 
     
    95104      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    96105 
     106      IF (PRESENT(comment_)) THEN 
     107        CALL cxios_set_grid_comment & 
     108      (grid_hdl%daddr, comment_, len(comment_)) 
     109      ENDIF 
     110 
    97111      IF (PRESENT(description_)) THEN 
    98112        CALL cxios_set_grid_description & 
    99113      (grid_hdl%daddr, description_, len(description_)) 
     114      ENDIF 
     115 
     116      IF (PRESENT(mask_0d_)) THEN 
     117        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1))) 
     118        mask_0d__tmp = mask_0d_ 
     119        CALL cxios_set_grid_mask_0d & 
     120      (grid_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
    100121      ENDIF 
    101122 
     
    162183 
    163184  SUBROUTINE xios(get_grid_attr)  & 
    164     ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    165     ) 
     185    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     186    , mask_7d, name ) 
    166187 
    167188    IMPLICIT NONE 
    168189      TYPE(txios(grid))  :: grid_hdl 
    169190      CHARACTER(LEN=*), INTENT(IN) ::grid_id 
     191      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    170192      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 
     193      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:) 
     194      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    171195      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:) 
    172196      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    188212      (grid_id,grid_hdl) 
    189213      CALL xios(get_grid_attr_hdl_)   & 
    190       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    191       ) 
     214      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     215      , mask_7d, name ) 
    192216 
    193217  END SUBROUTINE xios(get_grid_attr) 
    194218 
    195219  SUBROUTINE xios(get_grid_attr_hdl)  & 
    196     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    197     ) 
     220    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     221    , mask_7d, name ) 
    198222 
    199223    IMPLICIT NONE 
    200224      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     225      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    201226      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 
     227      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:) 
     228      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    202229      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:) 
    203230      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    217244 
    218245      CALL xios(get_grid_attr_hdl_)  & 
    219       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    220       ) 
     246      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     247      , mask_7d, name ) 
    221248 
    222249  END SUBROUTINE xios(get_grid_attr_hdl) 
    223250 
    224251  SUBROUTINE xios(get_grid_attr_hdl_)   & 
    225     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
    226     , name_ ) 
     252    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     253    , mask_6d_, mask_7d_, name_ ) 
    227254 
    228255    IMPLICIT NONE 
    229256      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     257      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    230258      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 
     259      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d_(:) 
     260      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 
    231261      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d_(:) 
    232262      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) 
     
    245275      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    246276 
     277      IF (PRESENT(comment_)) THEN 
     278        CALL cxios_get_grid_comment & 
     279      (grid_hdl%daddr, comment_, len(comment_)) 
     280      ENDIF 
     281 
    247282      IF (PRESENT(description_)) THEN 
    248283        CALL cxios_get_grid_description & 
    249284      (grid_hdl%daddr, description_, len(description_)) 
     285      ENDIF 
     286 
     287      IF (PRESENT(mask_0d_)) THEN 
     288        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1))) 
     289        CALL cxios_get_grid_mask_0d & 
     290      (grid_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
     291        mask_0d_ = mask_0d__tmp 
    250292      ENDIF 
    251293 
     
    312354 
    313355  SUBROUTINE xios(is_defined_grid_attr)  & 
    314     ( grid_id, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    315     ) 
     356    ( grid_id, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     357    , mask_7d, name ) 
    316358 
    317359    IMPLICIT NONE 
    318360      TYPE(txios(grid))  :: grid_hdl 
    319361      CHARACTER(LEN=*), INTENT(IN) ::grid_id 
     362      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     363      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    320364      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
    321365      LOGICAL(KIND=C_BOOL) :: description_tmp 
     366      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 
     367      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 
    322368      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 
    323369      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp 
     
    340386      (grid_id,grid_hdl) 
    341387      CALL xios(is_defined_grid_attr_hdl_)   & 
    342       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    343       ) 
     388      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     389      , mask_7d, name ) 
    344390 
    345391  END SUBROUTINE xios(is_defined_grid_attr) 
    346392 
    347393  SUBROUTINE xios(is_defined_grid_attr_hdl)  & 
    348     ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    349     ) 
     394    ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     395    , mask_7d, name ) 
    350396 
    351397    IMPLICIT NONE 
    352398      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     399      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     400      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    353401      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
    354402      LOGICAL(KIND=C_BOOL) :: description_tmp 
     403      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 
     404      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 
    355405      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 
    356406      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp 
     
    371421 
    372422      CALL xios(is_defined_grid_attr_hdl_)  & 
    373       ( grid_hdl, description, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d, mask_7d, name  & 
    374       ) 
     423      ( grid_hdl, comment, description, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
     424      , mask_7d, name ) 
    375425 
    376426  END SUBROUTINE xios(is_defined_grid_attr_hdl) 
    377427 
    378428  SUBROUTINE xios(is_defined_grid_attr_hdl_)   & 
    379     ( grid_hdl, description_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_, mask_6d_, mask_7d_  & 
    380     , name_ ) 
     429    ( grid_hdl, comment_, description_, mask_0d_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
     430    , mask_6d_, mask_7d_, name_ ) 
    381431 
    382432    IMPLICIT NONE 
    383433      TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 
     434      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     435      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    384436      LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 
    385437      LOGICAL(KIND=C_BOOL) :: description__tmp 
     438      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d_ 
     439      LOGICAL(KIND=C_BOOL) :: mask_0d__tmp 
    386440      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d_ 
    387441      LOGICAL(KIND=C_BOOL) :: mask_1d__tmp 
     
    401455      LOGICAL(KIND=C_BOOL) :: name__tmp 
    402456 
     457      IF (PRESENT(comment_)) THEN 
     458        comment__tmp = cxios_is_defined_grid_comment & 
     459      (grid_hdl%daddr) 
     460        comment_ = comment__tmp 
     461      ENDIF 
     462 
    403463      IF (PRESENT(description_)) THEN 
    404464        description__tmp = cxios_is_defined_grid_description & 
     
    407467      ENDIF 
    408468 
     469      IF (PRESENT(mask_0d_)) THEN 
     470        mask_0d__tmp = cxios_is_defined_grid_mask_0d & 
     471      (grid_hdl%daddr) 
     472        mask_0d_ = mask_0d__tmp 
     473      ENDIF 
     474 
    409475      IF (PRESENT(mask_1d_)) THEN 
    410476        mask_1d__tmp = cxios_is_defined_grid_mask_1d & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/igridgroup_attr.F90

    r966 r1545  
    1212 
    1313  SUBROUTINE xios(set_gridgroup_attr)  & 
    14     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    15     , mask_7d, name ) 
     14    ( gridgroup_id, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     15    , mask_5d, mask_6d, mask_7d, name ) 
    1616 
    1717    IMPLICIT NONE 
    1818      TYPE(txios(gridgroup))  :: gridgroup_hdl 
    1919      CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 
     20      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    2021      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 
    2122      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     23      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:) 
     24      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    2225      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:) 
    2326      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    3942      (gridgroup_id,gridgroup_hdl) 
    4043      CALL xios(set_gridgroup_attr_hdl_)   & 
    41       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    42       , mask_7d, name ) 
     44      ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     45      , mask_5d, mask_6d, mask_7d, name ) 
    4346 
    4447  END SUBROUTINE xios(set_gridgroup_attr) 
    4548 
    4649  SUBROUTINE xios(set_gridgroup_attr_hdl)  & 
    47     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    48     , mask_7d, name ) 
     50    ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     51    , mask_5d, mask_6d, mask_7d, name ) 
    4952 
    5053    IMPLICIT NONE 
    5154      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 
     55      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    5256      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 
    5357      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     58      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d(:) 
     59      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    5460      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:) 
    5561      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    6975 
    7076      CALL xios(set_gridgroup_attr_hdl_)  & 
    71       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    72       , mask_7d, name ) 
     77      ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     78      , mask_5d, mask_6d, mask_7d, name ) 
    7379 
    7480  END SUBROUTINE xios(set_gridgroup_attr_hdl) 
    7581 
    7682  SUBROUTINE xios(set_gridgroup_attr_hdl_)   & 
    77     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
    78     , mask_6d_, mask_7d_, name_ ) 
     83    ( gridgroup_hdl, comment_, description_, group_ref_, mask_0d_, mask_1d_, mask_2d_, mask_3d_  & 
     84    , mask_4d_, mask_5d_, mask_6d_, mask_7d_, name_ ) 
    7985 
    8086    IMPLICIT NONE 
    8187      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 
     88      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    8289      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 
    8390      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
     91      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_0d_(:) 
     92      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 
    8493      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d_(:) 
    8594      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) 
     
    98107      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
    99108 
     109      IF (PRESENT(comment_)) THEN 
     110        CALL cxios_set_gridgroup_comment & 
     111      (gridgroup_hdl%daddr, comment_, len(comment_)) 
     112      ENDIF 
     113 
    100114      IF (PRESENT(description_)) THEN 
    101115        CALL cxios_set_gridgroup_description & 
     
    106120        CALL cxios_set_gridgroup_group_ref & 
    107121      (gridgroup_hdl%daddr, group_ref_, len(group_ref_)) 
     122      ENDIF 
     123 
     124      IF (PRESENT(mask_0d_)) THEN 
     125        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1))) 
     126        mask_0d__tmp = mask_0d_ 
     127        CALL cxios_set_gridgroup_mask_0d & 
     128      (gridgroup_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
    108129      ENDIF 
    109130 
     
    170191 
    171192  SUBROUTINE xios(get_gridgroup_attr)  & 
    172     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    173     , mask_7d, name ) 
     193    ( gridgroup_id, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     194    , mask_5d, mask_6d, mask_7d, name ) 
    174195 
    175196    IMPLICIT NONE 
    176197      TYPE(txios(gridgroup))  :: gridgroup_hdl 
    177198      CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 
     199      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    178200      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 
    179201      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     202      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:) 
     203      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    180204      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:) 
    181205      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    197221      (gridgroup_id,gridgroup_hdl) 
    198222      CALL xios(get_gridgroup_attr_hdl_)   & 
    199       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    200       , mask_7d, name ) 
     223      ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     224      , mask_5d, mask_6d, mask_7d, name ) 
    201225 
    202226  END SUBROUTINE xios(get_gridgroup_attr) 
    203227 
    204228  SUBROUTINE xios(get_gridgroup_attr_hdl)  & 
    205     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    206     , mask_7d, name ) 
     229    ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     230    , mask_5d, mask_6d, mask_7d, name ) 
    207231 
    208232    IMPLICIT NONE 
    209233      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 
     234      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    210235      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 
    211236      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     237      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d(:) 
     238      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 
    212239      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d(:) 
    213240      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) 
     
    227254 
    228255      CALL xios(get_gridgroup_attr_hdl_)  & 
    229       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    230       , mask_7d, name ) 
     256      ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     257      , mask_5d, mask_6d, mask_7d, name ) 
    231258 
    232259  END SUBROUTINE xios(get_gridgroup_attr_hdl) 
    233260 
    234261  SUBROUTINE xios(get_gridgroup_attr_hdl_)   & 
    235     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
    236     , mask_6d_, mask_7d_, name_ ) 
     262    ( gridgroup_hdl, comment_, description_, group_ref_, mask_0d_, mask_1d_, mask_2d_, mask_3d_  & 
     263    , mask_4d_, mask_5d_, mask_6d_, mask_7d_, name_ ) 
    237264 
    238265    IMPLICIT NONE 
    239266      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 
     267      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    240268      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 
    241269      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
     270      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_0d_(:) 
     271      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 
    242272      LOGICAL  , OPTIONAL, INTENT(OUT) :: mask_1d_(:) 
    243273      LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) 
     
    256286      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
    257287 
     288      IF (PRESENT(comment_)) THEN 
     289        CALL cxios_get_gridgroup_comment & 
     290      (gridgroup_hdl%daddr, comment_, len(comment_)) 
     291      ENDIF 
     292 
    258293      IF (PRESENT(description_)) THEN 
    259294        CALL cxios_get_gridgroup_description & 
     
    264299        CALL cxios_get_gridgroup_group_ref & 
    265300      (gridgroup_hdl%daddr, group_ref_, len(group_ref_)) 
     301      ENDIF 
     302 
     303      IF (PRESENT(mask_0d_)) THEN 
     304        ALLOCATE(mask_0d__tmp(SIZE(mask_0d_,1))) 
     305        CALL cxios_get_gridgroup_mask_0d & 
     306      (gridgroup_hdl%daddr, mask_0d__tmp, SHAPE(mask_0d_)) 
     307        mask_0d_ = mask_0d__tmp 
    266308      ENDIF 
    267309 
     
    328370 
    329371  SUBROUTINE xios(is_defined_gridgroup_attr)  & 
    330     ( gridgroup_id, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    331     , mask_7d, name ) 
     372    ( gridgroup_id, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     373    , mask_5d, mask_6d, mask_7d, name ) 
    332374 
    333375    IMPLICIT NONE 
    334376      TYPE(txios(gridgroup))  :: gridgroup_hdl 
    335377      CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 
     378      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     379      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    336380      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
    337381      LOGICAL(KIND=C_BOOL) :: description_tmp 
    338382      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    339383      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     384      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 
     385      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 
    340386      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 
    341387      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp 
     
    358404      (gridgroup_id,gridgroup_hdl) 
    359405      CALL xios(is_defined_gridgroup_attr_hdl_)   & 
    360       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    361       , mask_7d, name ) 
     406      ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     407      , mask_5d, mask_6d, mask_7d, name ) 
    362408 
    363409  END SUBROUTINE xios(is_defined_gridgroup_attr) 
    364410 
    365411  SUBROUTINE xios(is_defined_gridgroup_attr_hdl)  & 
    366     ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    367     , mask_7d, name ) 
     412    ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     413    , mask_5d, mask_6d, mask_7d, name ) 
    368414 
    369415    IMPLICIT NONE 
    370416      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 
     417      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     418      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    371419      LOGICAL, OPTIONAL, INTENT(OUT) :: description 
    372420      LOGICAL(KIND=C_BOOL) :: description_tmp 
    373421      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    374422      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     423      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 
     424      LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 
    375425      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 
    376426      LOGICAL(KIND=C_BOOL) :: mask_1d_tmp 
     
    391441 
    392442      CALL xios(is_defined_gridgroup_attr_hdl_)  & 
    393       ( gridgroup_hdl, description, group_ref, mask_1d, mask_2d, mask_3d, mask_4d, mask_5d, mask_6d  & 
    394       , mask_7d, name ) 
     443      ( gridgroup_hdl, comment, description, group_ref, mask_0d, mask_1d, mask_2d, mask_3d, mask_4d  & 
     444      , mask_5d, mask_6d, mask_7d, name ) 
    395445 
    396446  END SUBROUTINE xios(is_defined_gridgroup_attr_hdl) 
    397447 
    398448  SUBROUTINE xios(is_defined_gridgroup_attr_hdl_)   & 
    399     ( gridgroup_hdl, description_, group_ref_, mask_1d_, mask_2d_, mask_3d_, mask_4d_, mask_5d_  & 
    400     , mask_6d_, mask_7d_, name_ ) 
     449    ( gridgroup_hdl, comment_, description_, group_ref_, mask_0d_, mask_1d_, mask_2d_, mask_3d_  & 
     450    , mask_4d_, mask_5d_, mask_6d_, mask_7d_, name_ ) 
    401451 
    402452    IMPLICIT NONE 
    403453      TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 
     454      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     455      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    404456      LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 
    405457      LOGICAL(KIND=C_BOOL) :: description__tmp 
    406458      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 
    407459      LOGICAL(KIND=C_BOOL) :: group_ref__tmp 
     460      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d_ 
     461      LOGICAL(KIND=C_BOOL) :: mask_0d__tmp 
    408462      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d_ 
    409463      LOGICAL(KIND=C_BOOL) :: mask_1d__tmp 
     
    423477      LOGICAL(KIND=C_BOOL) :: name__tmp 
    424478 
     479      IF (PRESENT(comment_)) THEN 
     480        comment__tmp = cxios_is_defined_gridgroup_comment & 
     481      (gridgroup_hdl%daddr) 
     482        comment_ = comment__tmp 
     483      ENDIF 
     484 
    425485      IF (PRESENT(description_)) THEN 
    426486        description__tmp = cxios_is_defined_gridgroup_description & 
     
    435495      ENDIF 
    436496 
     497      IF (PRESENT(mask_0d_)) THEN 
     498        mask_0d__tmp = cxios_is_defined_gridgroup_mask_0d & 
     499      (gridgroup_hdl%daddr) 
     500        mask_0d_ = mask_0d__tmp 
     501      ENDIF 
     502 
    437503      IF (PRESENT(mask_1d_)) THEN 
    438504        mask_1d__tmp = cxios_is_defined_gridgroup_mask_1d & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/iinterpolate_domain_attr.F90

    r1205 r1545  
    1212 
    1313  SUBROUTINE xios(set_interpolate_domain_attr)  & 
    14     ( interpolate_domain_id, mode, order, quantity, renormalize, weight_filename, write_weight ) 
     14    ( interpolate_domain_id, detect_missing_value, mode, order, quantity, read_write_convention  & 
     15    , renormalize, weight_filename, write_weight ) 
    1516 
    1617    IMPLICIT NONE 
    1718      TYPE(txios(interpolate_domain))  :: interpolate_domain_hdl 
    1819      CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id 
     20      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     21      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    1922      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 
    2023      INTEGER  , OPTIONAL, INTENT(IN) :: order 
    2124      LOGICAL  , OPTIONAL, INTENT(IN) :: quantity 
    2225      LOGICAL (KIND=C_BOOL) :: quantity_tmp 
     26      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: read_write_convention 
    2327      LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize 
    2428      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     
    3034      (interpolate_domain_id,interpolate_domain_hdl) 
    3135      CALL xios(set_interpolate_domain_attr_hdl_)   & 
    32       ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    33       ) 
     36      ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     37      , renormalize, weight_filename, write_weight ) 
    3438 
    3539  END SUBROUTINE xios(set_interpolate_domain_attr) 
    3640 
    3741  SUBROUTINE xios(set_interpolate_domain_attr_hdl)  & 
    38     ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    39      ) 
    40  
    41     IMPLICIT NONE 
    42       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     42    ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     43    , renormalize, weight_filename, write_weight ) 
     44 
     45    IMPLICIT NONE 
     46      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     47      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value 
     48      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    4349      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 
    4450      INTEGER  , OPTIONAL, INTENT(IN) :: order 
    4551      LOGICAL  , OPTIONAL, INTENT(IN) :: quantity 
    4652      LOGICAL (KIND=C_BOOL) :: quantity_tmp 
     53      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: read_write_convention 
    4754      LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize 
    4855      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     
    5259 
    5360      CALL xios(set_interpolate_domain_attr_hdl_)  & 
    54       ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    55       ) 
     61      ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     62      , renormalize, weight_filename, write_weight ) 
    5663 
    5764  END SUBROUTINE xios(set_interpolate_domain_attr_hdl) 
    5865 
    5966  SUBROUTINE xios(set_interpolate_domain_attr_hdl_)   & 
    60     ( interpolate_domain_hdl, mode_, order_, quantity_, renormalize_, weight_filename_, write_weight_  & 
    61      ) 
    62  
    63     IMPLICIT NONE 
    64       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     67    ( interpolate_domain_hdl, detect_missing_value_, mode_, order_, quantity_, read_write_convention_  & 
     68    , renormalize_, weight_filename_, write_weight_ ) 
     69 
     70    IMPLICIT NONE 
     71      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     72      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value_ 
     73      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    6574      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode_ 
    6675      INTEGER  , OPTIONAL, INTENT(IN) :: order_ 
    6776      LOGICAL  , OPTIONAL, INTENT(IN) :: quantity_ 
    6877      LOGICAL (KIND=C_BOOL) :: quantity__tmp 
     78      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: read_write_convention_ 
    6979      LOGICAL  , OPTIONAL, INTENT(IN) :: renormalize_ 
    7080      LOGICAL (KIND=C_BOOL) :: renormalize__tmp 
     
    7383      LOGICAL (KIND=C_BOOL) :: write_weight__tmp 
    7484 
     85      IF (PRESENT(detect_missing_value_)) THEN 
     86        detect_missing_value__tmp = detect_missing_value_ 
     87        CALL cxios_set_interpolate_domain_detect_missing_value & 
     88      (interpolate_domain_hdl%daddr, detect_missing_value__tmp) 
     89      ENDIF 
     90 
    7591      IF (PRESENT(mode_)) THEN 
    7692        CALL cxios_set_interpolate_domain_mode & 
     
    89105      ENDIF 
    90106 
     107      IF (PRESENT(read_write_convention_)) THEN 
     108        CALL cxios_set_interpolate_domain_read_write_convention & 
     109      (interpolate_domain_hdl%daddr, read_write_convention_, len(read_write_convention_)) 
     110      ENDIF 
     111 
    91112      IF (PRESENT(renormalize_)) THEN 
    92113        renormalize__tmp = renormalize_ 
     
    109130 
    110131  SUBROUTINE xios(get_interpolate_domain_attr)  & 
    111     ( interpolate_domain_id, mode, order, quantity, renormalize, weight_filename, write_weight ) 
     132    ( interpolate_domain_id, detect_missing_value, mode, order, quantity, read_write_convention  & 
     133    , renormalize, weight_filename, write_weight ) 
    112134 
    113135    IMPLICIT NONE 
    114136      TYPE(txios(interpolate_domain))  :: interpolate_domain_hdl 
    115137      CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id 
     138      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     139      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    116140      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 
    117141      INTEGER  , OPTIONAL, INTENT(OUT) :: order 
    118142      LOGICAL  , OPTIONAL, INTENT(OUT) :: quantity 
    119143      LOGICAL (KIND=C_BOOL) :: quantity_tmp 
     144      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: read_write_convention 
    120145      LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize 
    121146      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     
    127152      (interpolate_domain_id,interpolate_domain_hdl) 
    128153      CALL xios(get_interpolate_domain_attr_hdl_)   & 
    129       ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    130       ) 
     154      ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     155      , renormalize, weight_filename, write_weight ) 
    131156 
    132157  END SUBROUTINE xios(get_interpolate_domain_attr) 
    133158 
    134159  SUBROUTINE xios(get_interpolate_domain_attr_hdl)  & 
    135     ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    136      ) 
    137  
    138     IMPLICIT NONE 
    139       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     160    ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     161    , renormalize, weight_filename, write_weight ) 
     162 
     163    IMPLICIT NONE 
     164      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     165      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value 
     166      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 
    140167      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 
    141168      INTEGER  , OPTIONAL, INTENT(OUT) :: order 
    142169      LOGICAL  , OPTIONAL, INTENT(OUT) :: quantity 
    143170      LOGICAL (KIND=C_BOOL) :: quantity_tmp 
     171      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: read_write_convention 
    144172      LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize 
    145173      LOGICAL (KIND=C_BOOL) :: renormalize_tmp 
     
    149177 
    150178      CALL xios(get_interpolate_domain_attr_hdl_)  & 
    151       ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    152       ) 
     179      ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     180      , renormalize, weight_filename, write_weight ) 
    153181 
    154182  END SUBROUTINE xios(get_interpolate_domain_attr_hdl) 
    155183 
    156184  SUBROUTINE xios(get_interpolate_domain_attr_hdl_)   & 
    157     ( interpolate_domain_hdl, mode_, order_, quantity_, renormalize_, weight_filename_, write_weight_  & 
    158      ) 
    159  
    160     IMPLICIT NONE 
    161       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     185    ( interpolate_domain_hdl, detect_missing_value_, mode_, order_, quantity_, read_write_convention_  & 
     186    , renormalize_, weight_filename_, write_weight_ ) 
     187 
     188    IMPLICIT NONE 
     189      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     190      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     191      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp 
    162192      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode_ 
    163193      INTEGER  , OPTIONAL, INTENT(OUT) :: order_ 
    164194      LOGICAL  , OPTIONAL, INTENT(OUT) :: quantity_ 
    165195      LOGICAL (KIND=C_BOOL) :: quantity__tmp 
     196      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: read_write_convention_ 
    166197      LOGICAL  , OPTIONAL, INTENT(OUT) :: renormalize_ 
    167198      LOGICAL (KIND=C_BOOL) :: renormalize__tmp 
     
    170201      LOGICAL (KIND=C_BOOL) :: write_weight__tmp 
    171202 
     203      IF (PRESENT(detect_missing_value_)) THEN 
     204        CALL cxios_get_interpolate_domain_detect_missing_value & 
     205      (interpolate_domain_hdl%daddr, detect_missing_value__tmp) 
     206        detect_missing_value_ = detect_missing_value__tmp 
     207      ENDIF 
     208 
    172209      IF (PRESENT(mode_)) THEN 
    173210        CALL cxios_get_interpolate_domain_mode & 
     
    186223      ENDIF 
    187224 
     225      IF (PRESENT(read_write_convention_)) THEN 
     226        CALL cxios_get_interpolate_domain_read_write_convention & 
     227      (interpolate_domain_hdl%daddr, read_write_convention_, len(read_write_convention_)) 
     228      ENDIF 
     229 
    188230      IF (PRESENT(renormalize_)) THEN 
    189231        CALL cxios_get_interpolate_domain_renormalize & 
     
    206248 
    207249  SUBROUTINE xios(is_defined_interpolate_domain_attr)  & 
    208     ( interpolate_domain_id, mode, order, quantity, renormalize, weight_filename, write_weight ) 
     250    ( interpolate_domain_id, detect_missing_value, mode, order, quantity, read_write_convention  & 
     251    , renormalize, weight_filename, write_weight ) 
    209252 
    210253    IMPLICIT NONE 
    211254      TYPE(txios(interpolate_domain))  :: interpolate_domain_hdl 
    212255      CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id 
     256      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     257      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    213258      LOGICAL, OPTIONAL, INTENT(OUT) :: mode 
    214259      LOGICAL(KIND=C_BOOL) :: mode_tmp 
     
    217262      LOGICAL, OPTIONAL, INTENT(OUT) :: quantity 
    218263      LOGICAL(KIND=C_BOOL) :: quantity_tmp 
     264      LOGICAL, OPTIONAL, INTENT(OUT) :: read_write_convention 
     265      LOGICAL(KIND=C_BOOL) :: read_write_convention_tmp 
    219266      LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 
    220267      LOGICAL(KIND=C_BOOL) :: renormalize_tmp 
     
    227274      (interpolate_domain_id,interpolate_domain_hdl) 
    228275      CALL xios(is_defined_interpolate_domain_attr_hdl_)   & 
    229       ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    230       ) 
     276      ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     277      , renormalize, weight_filename, write_weight ) 
    231278 
    232279  END SUBROUTINE xios(is_defined_interpolate_domain_attr) 
    233280 
    234281  SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl)  & 
    235     ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    236      ) 
    237  
    238     IMPLICIT NONE 
    239       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     282    ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     283    , renormalize, weight_filename, write_weight ) 
     284 
     285    IMPLICIT NONE 
     286      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     287      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 
     288      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 
    240289      LOGICAL, OPTIONAL, INTENT(OUT) :: mode 
    241290      LOGICAL(KIND=C_BOOL) :: mode_tmp 
     
    244293      LOGICAL, OPTIONAL, INTENT(OUT) :: quantity 
    245294      LOGICAL(KIND=C_BOOL) :: quantity_tmp 
     295      LOGICAL, OPTIONAL, INTENT(OUT) :: read_write_convention 
     296      LOGICAL(KIND=C_BOOL) :: read_write_convention_tmp 
    246297      LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 
    247298      LOGICAL(KIND=C_BOOL) :: renormalize_tmp 
     
    252303 
    253304      CALL xios(is_defined_interpolate_domain_attr_hdl_)  & 
    254       ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight  & 
    255       ) 
     305      ( interpolate_domain_hdl, detect_missing_value, mode, order, quantity, read_write_convention  & 
     306      , renormalize, weight_filename, write_weight ) 
    256307 
    257308  END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl) 
    258309 
    259310  SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_)   & 
    260     ( interpolate_domain_hdl, mode_, order_, quantity_, renormalize_, weight_filename_, write_weight_  & 
    261      ) 
    262  
    263     IMPLICIT NONE 
    264       TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     311    ( interpolate_domain_hdl, detect_missing_value_, mode_, order_, quantity_, read_write_convention_  & 
     312    , renormalize_, weight_filename_, write_weight_ ) 
     313 
     314    IMPLICIT NONE 
     315      TYPE(txios(interpolate_domain)) , INTENT(IN) :: interpolate_domain_hdl 
     316      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value_ 
     317      LOGICAL(KIND=C_BOOL) :: detect_missing_value__tmp 
    265318      LOGICAL, OPTIONAL, INTENT(OUT) :: mode_ 
    266319      LOGICAL(KIND=C_BOOL) :: mode__tmp 
     
    269322      LOGICAL, OPTIONAL, INTENT(OUT) :: quantity_ 
    270323      LOGICAL(KIND=C_BOOL) :: quantity__tmp 
     324      LOGICAL, OPTIONAL, INTENT(OUT) :: read_write_convention_ 
     325      LOGICAL(KIND=C_BOOL) :: read_write_convention__tmp 
    271326      LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize_ 
    272327      LOGICAL(KIND=C_BOOL) :: renormalize__tmp 
     
    276331      LOGICAL(KIND=C_BOOL) :: write_weight__tmp 
    277332 
     333      IF (PRESENT(detect_missing_value_)) THEN 
     334        detect_missing_value__tmp = cxios_is_defined_interpolate_domain_detect_missing_value & 
     335      (interpolate_domain_hdl%daddr) 
     336        detect_missing_value_ = detect_missing_value__tmp 
     337      ENDIF 
     338 
    278339      IF (PRESENT(mode_)) THEN 
    279340        mode__tmp = cxios_is_defined_interpolate_domain_mode & 
     
    294355      ENDIF 
    295356 
     357      IF (PRESENT(read_write_convention_)) THEN 
     358        read_write_convention__tmp = cxios_is_defined_interpolate_domain_read_write_convention & 
     359      (interpolate_domain_hdl%daddr) 
     360        read_write_convention_ = read_write_convention__tmp 
     361      ENDIF 
     362 
    296363      IF (PRESENT(renormalize_)) THEN 
    297364        renormalize__tmp = cxios_is_defined_interpolate_domain_renormalize & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/interpolate_domain_interface_attr.F90

    r1205 r1545  
    99  INTERFACE 
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
     11 
     12    SUBROUTINE cxios_set_interpolate_domain_detect_missing_value(interpolate_domain_hdl, detect_missing_value) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     15      LOGICAL (KIND=C_BOOL)      , VALUE :: detect_missing_value 
     16    END SUBROUTINE cxios_set_interpolate_domain_detect_missing_value 
     17 
     18    SUBROUTINE cxios_get_interpolate_domain_detect_missing_value(interpolate_domain_hdl, detect_missing_value) BIND(C) 
     19      USE ISO_C_BINDING 
     20      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     21      LOGICAL (KIND=C_BOOL)             :: detect_missing_value 
     22    END SUBROUTINE cxios_get_interpolate_domain_detect_missing_value 
     23 
     24    FUNCTION cxios_is_defined_interpolate_domain_detect_missing_value(interpolate_domain_hdl) BIND(C) 
     25      USE ISO_C_BINDING 
     26      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_detect_missing_value 
     27      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     28    END FUNCTION cxios_is_defined_interpolate_domain_detect_missing_value 
     29 
    1130 
    1231    SUBROUTINE cxios_set_interpolate_domain_mode(interpolate_domain_hdl, mode, mode_size) BIND(C) 
     
    6786      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
    6887    END FUNCTION cxios_is_defined_interpolate_domain_quantity 
     88 
     89 
     90    SUBROUTINE cxios_set_interpolate_domain_read_write_convention(interpolate_domain_hdl, read_write_convention, read_write_convention_size) BIND(C) 
     91      USE ISO_C_BINDING 
     92      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     93      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: read_write_convention 
     94      INTEGER  (kind = C_INT)     , VALUE        :: read_write_convention_size 
     95    END SUBROUTINE cxios_set_interpolate_domain_read_write_convention 
     96 
     97    SUBROUTINE cxios_get_interpolate_domain_read_write_convention(interpolate_domain_hdl, read_write_convention, read_write_convention_size) BIND(C) 
     98      USE ISO_C_BINDING 
     99      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     100      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: read_write_convention 
     101      INTEGER  (kind = C_INT)     , VALUE        :: read_write_convention_size 
     102    END SUBROUTINE cxios_get_interpolate_domain_read_write_convention 
     103 
     104    FUNCTION cxios_is_defined_interpolate_domain_read_write_convention(interpolate_domain_hdl) BIND(C) 
     105      USE ISO_C_BINDING 
     106      LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_read_write_convention 
     107      INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 
     108    END FUNCTION cxios_is_defined_interpolate_domain_read_write_convention 
    69109 
    70110 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/ireduce_domain_to_axis_attr.F90

    r981 r1545  
    1212 
    1313  SUBROUTINE xios(set_reduce_domain_to_axis_attr)  & 
    14     ( reduce_domain_to_axis_id, direction, operation ) 
     14    ( reduce_domain_to_axis_id, direction, local, operation ) 
    1515 
    1616    IMPLICIT NONE 
     
    1818      CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_axis_id 
    1919      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: direction 
     20      LOGICAL  , OPTIONAL, INTENT(IN) :: local 
     21      LOGICAL (KIND=C_BOOL) :: local_tmp 
    2022      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    2123 
     
    2325      (reduce_domain_to_axis_id,reduce_domain_to_axis_hdl) 
    2426      CALL xios(set_reduce_domain_to_axis_attr_hdl_)   & 
    25       ( reduce_domain_to_axis_hdl, direction, operation ) 
     27      ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    2628 
    2729  END SUBROUTINE xios(set_reduce_domain_to_axis_attr) 
    2830 
    2931  SUBROUTINE xios(set_reduce_domain_to_axis_attr_hdl)  & 
    30     ( reduce_domain_to_axis_hdl, direction, operation ) 
     32    ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    3133 
    3234    IMPLICIT NONE 
    3335      TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 
    3436      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: direction 
     37      LOGICAL  , OPTIONAL, INTENT(IN) :: local 
     38      LOGICAL (KIND=C_BOOL) :: local_tmp 
    3539      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    3640 
    3741      CALL xios(set_reduce_domain_to_axis_attr_hdl_)  & 
    38       ( reduce_domain_to_axis_hdl, direction, operation ) 
     42      ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    3943 
    4044  END SUBROUTINE xios(set_reduce_domain_to_axis_attr_hdl) 
    4145 
    4246  SUBROUTINE xios(set_reduce_domain_to_axis_attr_hdl_)   & 
    43     ( reduce_domain_to_axis_hdl, direction_, operation_ ) 
     47    ( reduce_domain_to_axis_hdl, direction_, local_, operation_ ) 
    4448 
    4549    IMPLICIT NONE 
    4650      TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 
    4751      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: direction_ 
     52      LOGICAL  , OPTIONAL, INTENT(IN) :: local_ 
     53      LOGICAL (KIND=C_BOOL) :: local__tmp 
    4854      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_ 
    4955 
     
    5359      ENDIF 
    5460 
     61      IF (PRESENT(local_)) THEN 
     62        local__tmp = local_ 
     63        CALL cxios_set_reduce_domain_to_axis_local & 
     64      (reduce_domain_to_axis_hdl%daddr, local__tmp) 
     65      ENDIF 
     66 
    5567      IF (PRESENT(operation_)) THEN 
    5668        CALL cxios_set_reduce_domain_to_axis_operation & 
     
    6173 
    6274  SUBROUTINE xios(get_reduce_domain_to_axis_attr)  & 
    63     ( reduce_domain_to_axis_id, direction, operation ) 
     75    ( reduce_domain_to_axis_id, direction, local, operation ) 
    6476 
    6577    IMPLICIT NONE 
     
    6779      CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_axis_id 
    6880      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: direction 
     81      LOGICAL  , OPTIONAL, INTENT(OUT) :: local 
     82      LOGICAL (KIND=C_BOOL) :: local_tmp 
    6983      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    7084 
     
    7286      (reduce_domain_to_axis_id,reduce_domain_to_axis_hdl) 
    7387      CALL xios(get_reduce_domain_to_axis_attr_hdl_)   & 
    74       ( reduce_domain_to_axis_hdl, direction, operation ) 
     88      ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    7589 
    7690  END SUBROUTINE xios(get_reduce_domain_to_axis_attr) 
    7791 
    7892  SUBROUTINE xios(get_reduce_domain_to_axis_attr_hdl)  & 
    79     ( reduce_domain_to_axis_hdl, direction, operation ) 
     93    ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    8094 
    8195    IMPLICIT NONE 
    8296      TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 
    8397      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: direction 
     98      LOGICAL  , OPTIONAL, INTENT(OUT) :: local 
     99      LOGICAL (KIND=C_BOOL) :: local_tmp 
    84100      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    85101 
    86102      CALL xios(get_reduce_domain_to_axis_attr_hdl_)  & 
    87       ( reduce_domain_to_axis_hdl, direction, operation ) 
     103      ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    88104 
    89105  END SUBROUTINE xios(get_reduce_domain_to_axis_attr_hdl) 
    90106 
    91107  SUBROUTINE xios(get_reduce_domain_to_axis_attr_hdl_)   & 
    92     ( reduce_domain_to_axis_hdl, direction_, operation_ ) 
     108    ( reduce_domain_to_axis_hdl, direction_, local_, operation_ ) 
    93109 
    94110    IMPLICIT NONE 
    95111      TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 
    96112      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: direction_ 
     113      LOGICAL  , OPTIONAL, INTENT(OUT) :: local_ 
     114      LOGICAL (KIND=C_BOOL) :: local__tmp 
    97115      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_ 
    98116 
     
    102120      ENDIF 
    103121 
     122      IF (PRESENT(local_)) THEN 
     123        CALL cxios_get_reduce_domain_to_axis_local & 
     124      (reduce_domain_to_axis_hdl%daddr, local__tmp) 
     125        local_ = local__tmp 
     126      ENDIF 
     127 
    104128      IF (PRESENT(operation_)) THEN 
    105129        CALL cxios_get_reduce_domain_to_axis_operation & 
     
    110134 
    111135  SUBROUTINE xios(is_defined_reduce_domain_to_axis_attr)  & 
    112     ( reduce_domain_to_axis_id, direction, operation ) 
     136    ( reduce_domain_to_axis_id, direction, local, operation ) 
    113137 
    114138    IMPLICIT NONE 
     
    117141      LOGICAL, OPTIONAL, INTENT(OUT) :: direction 
    118142      LOGICAL(KIND=C_BOOL) :: direction_tmp 
     143      LOGICAL, OPTIONAL, INTENT(OUT) :: local 
     144      LOGICAL(KIND=C_BOOL) :: local_tmp 
    119145      LOGICAL, OPTIONAL, INTENT(OUT) :: operation 
    120146      LOGICAL(KIND=C_BOOL) :: operation_tmp 
     
    123149      (reduce_domain_to_axis_id,reduce_domain_to_axis_hdl) 
    124150      CALL xios(is_defined_reduce_domain_to_axis_attr_hdl_)   & 
    125       ( reduce_domain_to_axis_hdl, direction, operation ) 
     151      ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    126152 
    127153  END SUBROUTINE xios(is_defined_reduce_domain_to_axis_attr) 
    128154 
    129155  SUBROUTINE xios(is_defined_reduce_domain_to_axis_attr_hdl)  & 
    130     ( reduce_domain_to_axis_hdl, direction, operation ) 
     156    ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    131157 
    132158    IMPLICIT NONE 
     
    134160      LOGICAL, OPTIONAL, INTENT(OUT) :: direction 
    135161      LOGICAL(KIND=C_BOOL) :: direction_tmp 
     162      LOGICAL, OPTIONAL, INTENT(OUT) :: local 
     163      LOGICAL(KIND=C_BOOL) :: local_tmp 
    136164      LOGICAL, OPTIONAL, INTENT(OUT) :: operation 
    137165      LOGICAL(KIND=C_BOOL) :: operation_tmp 
    138166 
    139167      CALL xios(is_defined_reduce_domain_to_axis_attr_hdl_)  & 
    140       ( reduce_domain_to_axis_hdl, direction, operation ) 
     168      ( reduce_domain_to_axis_hdl, direction, local, operation ) 
    141169 
    142170  END SUBROUTINE xios(is_defined_reduce_domain_to_axis_attr_hdl) 
    143171 
    144172  SUBROUTINE xios(is_defined_reduce_domain_to_axis_attr_hdl_)   & 
    145     ( reduce_domain_to_axis_hdl, direction_, operation_ ) 
     173    ( reduce_domain_to_axis_hdl, direction_, local_, operation_ ) 
    146174 
    147175    IMPLICIT NONE 
     
    149177      LOGICAL, OPTIONAL, INTENT(OUT) :: direction_ 
    150178      LOGICAL(KIND=C_BOOL) :: direction__tmp 
     179      LOGICAL, OPTIONAL, INTENT(OUT) :: local_ 
     180      LOGICAL(KIND=C_BOOL) :: local__tmp 
    151181      LOGICAL, OPTIONAL, INTENT(OUT) :: operation_ 
    152182      LOGICAL(KIND=C_BOOL) :: operation__tmp 
     
    158188      ENDIF 
    159189 
     190      IF (PRESENT(local_)) THEN 
     191        local__tmp = cxios_is_defined_reduce_domain_to_axis_local & 
     192      (reduce_domain_to_axis_hdl%daddr) 
     193        local_ = local__tmp 
     194      ENDIF 
     195 
    160196      IF (PRESENT(operation_)) THEN 
    161197        operation__tmp = cxios_is_defined_reduce_domain_to_axis_operation & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/ireduce_domain_to_scalar_attr.F90

    r981 r1545  
    1212 
    1313  SUBROUTINE xios(set_reduce_domain_to_scalar_attr)  & 
    14     ( reduce_domain_to_scalar_id, operation ) 
     14    ( reduce_domain_to_scalar_id, local, operation ) 
    1515 
    1616    IMPLICIT NONE 
    1717      TYPE(txios(reduce_domain_to_scalar))  :: reduce_domain_to_scalar_hdl 
    1818      CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_scalar_id 
     19      LOGICAL  , OPTIONAL, INTENT(IN) :: local 
     20      LOGICAL (KIND=C_BOOL) :: local_tmp 
    1921      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    2022 
     
    2224      (reduce_domain_to_scalar_id,reduce_domain_to_scalar_hdl) 
    2325      CALL xios(set_reduce_domain_to_scalar_attr_hdl_)   & 
    24       ( reduce_domain_to_scalar_hdl, operation ) 
     26      ( reduce_domain_to_scalar_hdl, local, operation ) 
    2527 
    2628  END SUBROUTINE xios(set_reduce_domain_to_scalar_attr) 
    2729 
    2830  SUBROUTINE xios(set_reduce_domain_to_scalar_attr_hdl)  & 
    29     ( reduce_domain_to_scalar_hdl, operation ) 
     31    ( reduce_domain_to_scalar_hdl, local, operation ) 
    3032 
    3133    IMPLICIT NONE 
    3234      TYPE(txios(reduce_domain_to_scalar)) , INTENT(IN) :: reduce_domain_to_scalar_hdl 
     35      LOGICAL  , OPTIONAL, INTENT(IN) :: local 
     36      LOGICAL (KIND=C_BOOL) :: local_tmp 
    3337      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 
    3438 
    3539      CALL xios(set_reduce_domain_to_scalar_attr_hdl_)  & 
    36       ( reduce_domain_to_scalar_hdl, operation ) 
     40      ( reduce_domain_to_scalar_hdl, local, operation ) 
    3741 
    3842  END SUBROUTINE xios(set_reduce_domain_to_scalar_attr_hdl) 
    3943 
    4044  SUBROUTINE xios(set_reduce_domain_to_scalar_attr_hdl_)   & 
    41     ( reduce_domain_to_scalar_hdl, operation_ ) 
     45    ( reduce_domain_to_scalar_hdl, local_, operation_ ) 
    4246 
    4347    IMPLICIT NONE 
    4448      TYPE(txios(reduce_domain_to_scalar)) , INTENT(IN) :: reduce_domain_to_scalar_hdl 
     49      LOGICAL  , OPTIONAL, INTENT(IN) :: local_ 
     50      LOGICAL (KIND=C_BOOL) :: local__tmp 
    4551      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_ 
     52 
     53      IF (PRESENT(local_)) THEN 
     54        local__tmp = local_ 
     55        CALL cxios_set_reduce_domain_to_scalar_local & 
     56      (reduce_domain_to_scalar_hdl%daddr, local__tmp) 
     57      ENDIF 
    4658 
    4759      IF (PRESENT(operation_)) THEN 
     
    5365 
    5466  SUBROUTINE xios(get_reduce_domain_to_scalar_attr)  & 
    55     ( reduce_domain_to_scalar_id, operation ) 
     67    ( reduce_domain_to_scalar_id, local, operation ) 
    5668 
    5769    IMPLICIT NONE 
    5870      TYPE(txios(reduce_domain_to_scalar))  :: reduce_domain_to_scalar_hdl 
    5971      CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_scalar_id 
     72      LOGICAL  , OPTIONAL, INTENT(OUT) :: local 
     73      LOGICAL (KIND=C_BOOL) :: local_tmp 
    6074      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    6175 
     
    6377      (reduce_domain_to_scalar_id,reduce_domain_to_scalar_hdl) 
    6478      CALL xios(get_reduce_domain_to_scalar_attr_hdl_)   & 
    65       ( reduce_domain_to_scalar_hdl, operation ) 
     79      ( reduce_domain_to_scalar_hdl, local, operation ) 
    6680 
    6781  END SUBROUTINE xios(get_reduce_domain_to_scalar_attr) 
    6882 
    6983  SUBROUTINE xios(get_reduce_domain_to_scalar_attr_hdl)  & 
    70     ( reduce_domain_to_scalar_hdl, operation ) 
     84    ( reduce_domain_to_scalar_hdl, local, operation ) 
    7185 
    7286    IMPLICIT NONE 
    7387      TYPE(txios(reduce_domain_to_scalar)) , INTENT(IN) :: reduce_domain_to_scalar_hdl 
     88      LOGICAL  , OPTIONAL, INTENT(OUT) :: local 
     89      LOGICAL (KIND=C_BOOL) :: local_tmp 
    7490      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 
    7591 
    7692      CALL xios(get_reduce_domain_to_scalar_attr_hdl_)  & 
    77       ( reduce_domain_to_scalar_hdl, operation ) 
     93      ( reduce_domain_to_scalar_hdl, local, operation ) 
    7894 
    7995  END SUBROUTINE xios(get_reduce_domain_to_scalar_attr_hdl) 
    8096 
    8197  SUBROUTINE xios(get_reduce_domain_to_scalar_attr_hdl_)   & 
    82     ( reduce_domain_to_scalar_hdl, operation_ ) 
     98    ( reduce_domain_to_scalar_hdl, local_, operation_ ) 
    8399 
    84100    IMPLICIT NONE 
    85101      TYPE(txios(reduce_domain_to_scalar)) , INTENT(IN) :: reduce_domain_to_scalar_hdl 
     102      LOGICAL  , OPTIONAL, INTENT(OUT) :: local_ 
     103      LOGICAL (KIND=C_BOOL) :: local__tmp 
    86104      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_ 
     105 
     106      IF (PRESENT(local_)) THEN 
     107        CALL cxios_get_reduce_domain_to_scalar_local & 
     108      (reduce_domain_to_scalar_hdl%daddr, local__tmp) 
     109        local_ = local__tmp 
     110      ENDIF 
    87111 
    88112      IF (PRESENT(operation_)) THEN 
     
    94118 
    95119  SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr)  & 
    96     ( reduce_domain_to_scalar_id, operation ) 
     120    ( reduce_domain_to_scalar_id, local, operation ) 
    97121 
    98122    IMPLICIT NONE 
    99123      TYPE(txios(reduce_domain_to_scalar))  :: reduce_domain_to_scalar_hdl 
    100124      CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_scalar_id 
     125      LOGICAL, OPTIONAL, INTENT(OUT) :: local 
     126      LOGICAL(KIND=C_BOOL) :: local_tmp 
    101127      LOGICAL, OPTIONAL, INTENT(OUT) :: operation 
    102128      LOGICAL(KIND=C_BOOL) :: operation_tmp 
     
    105131      (reduce_domain_to_scalar_id,reduce_domain_to_scalar_hdl) 
    106132      CALL xios(is_defined_reduce_domain_to_scalar_attr_hdl_)   & 
    107       ( reduce_domain_to_scalar_hdl, operation ) 
     133      ( reduce_domain_to_scalar_hdl, local, operation ) 
    108134 
    109135  END SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr) 
    110136 
    111137  SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr_hdl)  & 
    112     ( reduce_domain_to_scalar_hdl, operation ) 
     138    ( reduce_domain_to_scalar_hdl, local, operation ) 
    113139 
    114140    IMPLICIT NONE 
    115141      TYPE(txios(reduce_domain_to_scalar)) , INTENT(IN) :: reduce_domain_to_scalar_hdl 
     142      LOGICAL, OPTIONAL, INTENT(OUT) :: local 
     143      LOGICAL(KIND=C_BOOL) :: local_tmp 
    116144      LOGICAL, OPTIONAL, INTENT(OUT) :: operation 
    117145      LOGICAL(KIND=C_BOOL) :: operation_tmp 
    118146 
    119147      CALL xios(is_defined_reduce_domain_to_scalar_attr_hdl_)  & 
    120       ( reduce_domain_to_scalar_hdl, operation ) 
     148      ( reduce_domain_to_scalar_hdl, local, operation ) 
    121149 
    122150  END SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr_hdl) 
    123151 
    124152  SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr_hdl_)   & 
    125     ( reduce_domain_to_scalar_hdl, operation_ ) 
     153    ( reduce_domain_to_scalar_hdl, local_, operation_ ) 
    126154 
    127155    IMPLICIT NONE 
    128156      TYPE(txios(reduce_domain_to_scalar)) , INTENT(IN) :: reduce_domain_to_scalar_hdl 
     157      LOGICAL, OPTIONAL, INTENT(OUT) :: local_ 
     158      LOGICAL(KIND=C_BOOL) :: local__tmp 
    129159      LOGICAL, OPTIONAL, INTENT(OUT) :: operation_ 
    130160      LOGICAL(KIND=C_BOOL) :: operation__tmp 
     161 
     162      IF (PRESENT(local_)) THEN 
     163        local__tmp = cxios_is_defined_reduce_domain_to_scalar_local & 
     164      (reduce_domain_to_scalar_hdl%daddr) 
     165        local_ = local__tmp 
     166      ENDIF 
    131167 
    132168      IF (PRESENT(operation_)) THEN 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/iscalar_attr.F90

    r1052 r1545  
    1212 
    1313  SUBROUTINE xios(set_scalar_attr)  & 
    14     ( scalar_id, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     14    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     15    , scalar_ref, standard_name, unit, value ) 
    1516 
    1617    IMPLICIT NONE 
    1718      TYPE(txios(scalar))  :: scalar_hdl 
    1819      CHARACTER(LEN=*), INTENT(IN) ::scalar_id 
     20      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
     21      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:) 
     22      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     23      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
     24      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    1925      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    2026      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     27      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
    2128      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
    2229      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref 
     
    2835      (scalar_id,scalar_hdl) 
    2936      CALL xios(set_scalar_attr_hdl_)   & 
    30       ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     37      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     38      , scalar_ref, standard_name, unit, value ) 
    3139 
    3240  END SUBROUTINE xios(set_scalar_attr) 
    3341 
    3442  SUBROUTINE xios(set_scalar_attr_hdl)  & 
    35     ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
    36  
    37     IMPLICIT NONE 
    38       TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     43    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     44    , scalar_ref, standard_name, unit, value ) 
     45 
     46    IMPLICIT NONE 
     47      TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     48      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
     49      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:) 
     50      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     51      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
     52      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    3953      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    4054      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     55      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
    4156      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
    4257      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref 
     
    4661 
    4762      CALL xios(set_scalar_attr_hdl_)  & 
    48       ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     63      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     64      , scalar_ref, standard_name, unit, value ) 
    4965 
    5066  END SUBROUTINE xios(set_scalar_attr_hdl) 
    5167 
    5268  SUBROUTINE xios(set_scalar_attr_hdl_)   & 
    53     ( scalar_hdl, long_name_, name_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    54  
    55     IMPLICIT NONE 
    56       TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     69    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  & 
     70    , prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     71 
     72    IMPLICIT NONE 
     73      TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     74      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type_ 
     75      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:) 
     76      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name_ 
     77      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
     78      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label_ 
    5779      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
    5880      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
     81      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_ 
    5982      INTEGER  , OPTIONAL, INTENT(IN) :: prec_ 
    6083      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref_ 
     
    6386      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value_ 
    6487 
     88      IF (PRESENT(axis_type_)) THEN 
     89        CALL cxios_set_scalar_axis_type & 
     90      (scalar_hdl%daddr, axis_type_, len(axis_type_)) 
     91      ENDIF 
     92 
     93      IF (PRESENT(bounds_)) THEN 
     94        CALL cxios_set_scalar_bounds & 
     95      (scalar_hdl%daddr, bounds_, SHAPE(bounds_)) 
     96      ENDIF 
     97 
     98      IF (PRESENT(bounds_name_)) THEN 
     99        CALL cxios_set_scalar_bounds_name & 
     100      (scalar_hdl%daddr, bounds_name_, len(bounds_name_)) 
     101      ENDIF 
     102 
     103      IF (PRESENT(comment_)) THEN 
     104        CALL cxios_set_scalar_comment & 
     105      (scalar_hdl%daddr, comment_, len(comment_)) 
     106      ENDIF 
     107 
     108      IF (PRESENT(label_)) THEN 
     109        CALL cxios_set_scalar_label & 
     110      (scalar_hdl%daddr, label_, len(label_)) 
     111      ENDIF 
     112 
    65113      IF (PRESENT(long_name_)) THEN 
    66114        CALL cxios_set_scalar_long_name & 
     
    73121      ENDIF 
    74122 
     123      IF (PRESENT(positive_)) THEN 
     124        CALL cxios_set_scalar_positive & 
     125      (scalar_hdl%daddr, positive_, len(positive_)) 
     126      ENDIF 
     127 
    75128      IF (PRESENT(prec_)) THEN 
    76129        CALL cxios_set_scalar_prec & 
     
    101154 
    102155  SUBROUTINE xios(get_scalar_attr)  & 
    103     ( scalar_id, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     156    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     157    , scalar_ref, standard_name, unit, value ) 
    104158 
    105159    IMPLICIT NONE 
    106160      TYPE(txios(scalar))  :: scalar_hdl 
    107161      CHARACTER(LEN=*), INTENT(IN) ::scalar_id 
     162      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
     163      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:) 
     164      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     165      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
     166      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    108167      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    109168      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     169      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
    110170      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
    111171      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref 
     
    117177      (scalar_id,scalar_hdl) 
    118178      CALL xios(get_scalar_attr_hdl_)   & 
    119       ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     179      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     180      , scalar_ref, standard_name, unit, value ) 
    120181 
    121182  END SUBROUTINE xios(get_scalar_attr) 
    122183 
    123184  SUBROUTINE xios(get_scalar_attr_hdl)  & 
    124     ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
    125  
    126     IMPLICIT NONE 
    127       TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     185    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     186    , scalar_ref, standard_name, unit, value ) 
     187 
     188    IMPLICIT NONE 
     189      TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     190      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
     191      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:) 
     192      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     193      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
     194      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    128195      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    129196      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     197      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
    130198      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
    131199      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref 
     
    135203 
    136204      CALL xios(get_scalar_attr_hdl_)  & 
    137       ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     205      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     206      , scalar_ref, standard_name, unit, value ) 
    138207 
    139208  END SUBROUTINE xios(get_scalar_attr_hdl) 
    140209 
    141210  SUBROUTINE xios(get_scalar_attr_hdl_)   & 
    142     ( scalar_hdl, long_name_, name_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    143  
    144     IMPLICIT NONE 
    145       TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     211    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  & 
     212    , prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     213 
     214    IMPLICIT NONE 
     215      TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     216      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type_ 
     217      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:) 
     218      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name_ 
     219      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
     220      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label_ 
    146221      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
    147222      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
     223      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_ 
    148224      INTEGER  , OPTIONAL, INTENT(OUT) :: prec_ 
    149225      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref_ 
     
    152228      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value_ 
    153229 
     230      IF (PRESENT(axis_type_)) THEN 
     231        CALL cxios_get_scalar_axis_type & 
     232      (scalar_hdl%daddr, axis_type_, len(axis_type_)) 
     233      ENDIF 
     234 
     235      IF (PRESENT(bounds_)) THEN 
     236        CALL cxios_get_scalar_bounds & 
     237      (scalar_hdl%daddr, bounds_, SHAPE(bounds_)) 
     238      ENDIF 
     239 
     240      IF (PRESENT(bounds_name_)) THEN 
     241        CALL cxios_get_scalar_bounds_name & 
     242      (scalar_hdl%daddr, bounds_name_, len(bounds_name_)) 
     243      ENDIF 
     244 
     245      IF (PRESENT(comment_)) THEN 
     246        CALL cxios_get_scalar_comment & 
     247      (scalar_hdl%daddr, comment_, len(comment_)) 
     248      ENDIF 
     249 
     250      IF (PRESENT(label_)) THEN 
     251        CALL cxios_get_scalar_label & 
     252      (scalar_hdl%daddr, label_, len(label_)) 
     253      ENDIF 
     254 
    154255      IF (PRESENT(long_name_)) THEN 
    155256        CALL cxios_get_scalar_long_name & 
     
    162263      ENDIF 
    163264 
     265      IF (PRESENT(positive_)) THEN 
     266        CALL cxios_get_scalar_positive & 
     267      (scalar_hdl%daddr, positive_, len(positive_)) 
     268      ENDIF 
     269 
    164270      IF (PRESENT(prec_)) THEN 
    165271        CALL cxios_get_scalar_prec & 
     
    190296 
    191297  SUBROUTINE xios(is_defined_scalar_attr)  & 
    192     ( scalar_id, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     298    ( scalar_id, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     299    , scalar_ref, standard_name, unit, value ) 
    193300 
    194301    IMPLICIT NONE 
    195302      TYPE(txios(scalar))  :: scalar_hdl 
    196303      CHARACTER(LEN=*), INTENT(IN) ::scalar_id 
     304      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     305      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
     306      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     307      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     308      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     309      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     310      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     311      LOGICAL(KIND=C_BOOL) :: comment_tmp 
     312      LOGICAL, OPTIONAL, INTENT(OUT) :: label 
     313      LOGICAL(KIND=C_BOOL) :: label_tmp 
    197314      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    198315      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
    199316      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    200317      LOGICAL(KIND=C_BOOL) :: name_tmp 
     318      LOGICAL, OPTIONAL, INTENT(OUT) :: positive 
     319      LOGICAL(KIND=C_BOOL) :: positive_tmp 
    201320      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    202321      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     
    213332      (scalar_id,scalar_hdl) 
    214333      CALL xios(is_defined_scalar_attr_hdl_)   & 
    215       ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     334      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     335      , scalar_ref, standard_name, unit, value ) 
    216336 
    217337  END SUBROUTINE xios(is_defined_scalar_attr) 
    218338 
    219339  SUBROUTINE xios(is_defined_scalar_attr_hdl)  & 
    220     ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
    221  
    222     IMPLICIT NONE 
    223       TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     340    ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     341    , scalar_ref, standard_name, unit, value ) 
     342 
     343    IMPLICIT NONE 
     344      TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     345      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     346      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
     347      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     348      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     349      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     350      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     351      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     352      LOGICAL(KIND=C_BOOL) :: comment_tmp 
     353      LOGICAL, OPTIONAL, INTENT(OUT) :: label 
     354      LOGICAL(KIND=C_BOOL) :: label_tmp 
    224355      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    225356      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
    226357      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    227358      LOGICAL(KIND=C_BOOL) :: name_tmp 
     359      LOGICAL, OPTIONAL, INTENT(OUT) :: positive 
     360      LOGICAL(KIND=C_BOOL) :: positive_tmp 
    228361      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    229362      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     
    238371 
    239372      CALL xios(is_defined_scalar_attr_hdl_)  & 
    240       ( scalar_hdl, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     373      ( scalar_hdl, axis_type, bounds, bounds_name, comment, label, long_name, name, positive, prec  & 
     374      , scalar_ref, standard_name, unit, value ) 
    241375 
    242376  END SUBROUTINE xios(is_defined_scalar_attr_hdl) 
    243377 
    244378  SUBROUTINE xios(is_defined_scalar_attr_hdl_)   & 
    245     ( scalar_hdl, long_name_, name_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    246  
    247     IMPLICIT NONE 
    248       TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     379    ( scalar_hdl, axis_type_, bounds_, bounds_name_, comment_, label_, long_name_, name_, positive_  & 
     380    , prec_, scalar_ref_, standard_name_, unit_, value_ ) 
     381 
     382    IMPLICIT NONE 
     383      TYPE(txios(scalar)) , INTENT(IN) :: scalar_hdl 
     384      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type_ 
     385      LOGICAL(KIND=C_BOOL) :: axis_type__tmp 
     386      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 
     387      LOGICAL(KIND=C_BOOL) :: bounds__tmp 
     388      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name_ 
     389      LOGICAL(KIND=C_BOOL) :: bounds_name__tmp 
     390      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     391      LOGICAL(KIND=C_BOOL) :: comment__tmp 
     392      LOGICAL, OPTIONAL, INTENT(OUT) :: label_ 
     393      LOGICAL(KIND=C_BOOL) :: label__tmp 
    249394      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
    250395      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
    251396      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    252397      LOGICAL(KIND=C_BOOL) :: name__tmp 
     398      LOGICAL, OPTIONAL, INTENT(OUT) :: positive_ 
     399      LOGICAL(KIND=C_BOOL) :: positive__tmp 
    253400      LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 
    254401      LOGICAL(KIND=C_BOOL) :: prec__tmp 
     
    262409      LOGICAL(KIND=C_BOOL) :: value__tmp 
    263410 
     411      IF (PRESENT(axis_type_)) THEN 
     412        axis_type__tmp = cxios_is_defined_scalar_axis_type & 
     413      (scalar_hdl%daddr) 
     414        axis_type_ = axis_type__tmp 
     415      ENDIF 
     416 
     417      IF (PRESENT(bounds_)) THEN 
     418        bounds__tmp = cxios_is_defined_scalar_bounds & 
     419      (scalar_hdl%daddr) 
     420        bounds_ = bounds__tmp 
     421      ENDIF 
     422 
     423      IF (PRESENT(bounds_name_)) THEN 
     424        bounds_name__tmp = cxios_is_defined_scalar_bounds_name & 
     425      (scalar_hdl%daddr) 
     426        bounds_name_ = bounds_name__tmp 
     427      ENDIF 
     428 
     429      IF (PRESENT(comment_)) THEN 
     430        comment__tmp = cxios_is_defined_scalar_comment & 
     431      (scalar_hdl%daddr) 
     432        comment_ = comment__tmp 
     433      ENDIF 
     434 
     435      IF (PRESENT(label_)) THEN 
     436        label__tmp = cxios_is_defined_scalar_label & 
     437      (scalar_hdl%daddr) 
     438        label_ = label__tmp 
     439      ENDIF 
     440 
    264441      IF (PRESENT(long_name_)) THEN 
    265442        long_name__tmp = cxios_is_defined_scalar_long_name & 
     
    274451      ENDIF 
    275452 
     453      IF (PRESENT(positive_)) THEN 
     454        positive__tmp = cxios_is_defined_scalar_positive & 
     455      (scalar_hdl%daddr) 
     456        positive_ = positive__tmp 
     457      ENDIF 
     458 
    276459      IF (PRESENT(prec_)) THEN 
    277460        prec__tmp = cxios_is_defined_scalar_prec & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/iscalargroup_attr.F90

    r1052 r1545  
    1212 
    1313  SUBROUTINE xios(set_scalargroup_attr)  & 
    14     ( scalargroup_id, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     14    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     15    , positive, prec, scalar_ref, standard_name, unit, value ) 
    1516 
    1617    IMPLICIT NONE 
    1718      TYPE(txios(scalargroup))  :: scalargroup_hdl 
    1819      CHARACTER(LEN=*), INTENT(IN) ::scalargroup_id 
     20      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
     21      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:) 
     22      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     23      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    1924      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     25      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    2026      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    2127      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     28      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
    2229      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
    2330      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref 
     
    2936      (scalargroup_id,scalargroup_hdl) 
    3037      CALL xios(set_scalargroup_attr_hdl_)   & 
    31       ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    32       ) 
     38      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     39      , positive, prec, scalar_ref, standard_name, unit, value ) 
    3340 
    3441  END SUBROUTINE xios(set_scalargroup_attr) 
    3542 
    3643  SUBROUTINE xios(set_scalargroup_attr_hdl)  & 
    37     ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    38     ) 
     44    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     45    , positive, prec, scalar_ref, standard_name, unit, value ) 
    3946 
    4047    IMPLICIT NONE 
    4148      TYPE(txios(scalargroup)) , INTENT(IN) :: scalargroup_hdl 
     49      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 
     50      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:) 
     51      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 
     52      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 
    4253      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 
     54      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 
    4355      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 
    4456      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 
     57      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 
    4558      INTEGER  , OPTIONAL, INTENT(IN) :: prec 
    4659      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref 
     
    5063 
    5164      CALL xios(set_scalargroup_attr_hdl_)  & 
    52       ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    53       ) 
     65      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     66      , positive, prec, scalar_ref, standard_name, unit, value ) 
    5467 
    5568  END SUBROUTINE xios(set_scalargroup_attr_hdl) 
    5669 
    5770  SUBROUTINE xios(set_scalargroup_attr_hdl_)   & 
    58     ( scalargroup_hdl, group_ref_, long_name_, name_, prec_, scalar_ref_, standard_name_, unit_  & 
    59     , value_ ) 
     71    ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  & 
     72    , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    6073 
    6174    IMPLICIT NONE 
    6275      TYPE(txios(scalargroup)) , INTENT(IN) :: scalargroup_hdl 
     76      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type_ 
     77      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:) 
     78      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name_ 
     79      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 
    6380      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 
     81      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label_ 
    6482      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 
    6583      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 
     84      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_ 
    6685      INTEGER  , OPTIONAL, INTENT(IN) :: prec_ 
    6786      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref_ 
     
    7089      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value_ 
    7190 
     91      IF (PRESENT(axis_type_)) THEN 
     92        CALL cxios_set_scalargroup_axis_type & 
     93      (scalargroup_hdl%daddr, axis_type_, len(axis_type_)) 
     94      ENDIF 
     95 
     96      IF (PRESENT(bounds_)) THEN 
     97        CALL cxios_set_scalargroup_bounds & 
     98      (scalargroup_hdl%daddr, bounds_, SHAPE(bounds_)) 
     99      ENDIF 
     100 
     101      IF (PRESENT(bounds_name_)) THEN 
     102        CALL cxios_set_scalargroup_bounds_name & 
     103      (scalargroup_hdl%daddr, bounds_name_, len(bounds_name_)) 
     104      ENDIF 
     105 
     106      IF (PRESENT(comment_)) THEN 
     107        CALL cxios_set_scalargroup_comment & 
     108      (scalargroup_hdl%daddr, comment_, len(comment_)) 
     109      ENDIF 
     110 
    72111      IF (PRESENT(group_ref_)) THEN 
    73112        CALL cxios_set_scalargroup_group_ref & 
     
    75114      ENDIF 
    76115 
     116      IF (PRESENT(label_)) THEN 
     117        CALL cxios_set_scalargroup_label & 
     118      (scalargroup_hdl%daddr, label_, len(label_)) 
     119      ENDIF 
     120 
    77121      IF (PRESENT(long_name_)) THEN 
    78122        CALL cxios_set_scalargroup_long_name & 
     
    85129      ENDIF 
    86130 
     131      IF (PRESENT(positive_)) THEN 
     132        CALL cxios_set_scalargroup_positive & 
     133      (scalargroup_hdl%daddr, positive_, len(positive_)) 
     134      ENDIF 
     135 
    87136      IF (PRESENT(prec_)) THEN 
    88137        CALL cxios_set_scalargroup_prec & 
     
    113162 
    114163  SUBROUTINE xios(get_scalargroup_attr)  & 
    115     ( scalargroup_id, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     164    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     165    , positive, prec, scalar_ref, standard_name, unit, value ) 
    116166 
    117167    IMPLICIT NONE 
    118168      TYPE(txios(scalargroup))  :: scalargroup_hdl 
    119169      CHARACTER(LEN=*), INTENT(IN) ::scalargroup_id 
     170      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
     171      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:) 
     172      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     173      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    120174      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     175      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    121176      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    122177      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     178      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
    123179      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
    124180      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref 
     
    130186      (scalargroup_id,scalargroup_hdl) 
    131187      CALL xios(get_scalargroup_attr_hdl_)   & 
    132       ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    133       ) 
     188      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     189      , positive, prec, scalar_ref, standard_name, unit, value ) 
    134190 
    135191  END SUBROUTINE xios(get_scalargroup_attr) 
    136192 
    137193  SUBROUTINE xios(get_scalargroup_attr_hdl)  & 
    138     ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    139     ) 
     194    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     195    , positive, prec, scalar_ref, standard_name, unit, value ) 
    140196 
    141197    IMPLICIT NONE 
    142198      TYPE(txios(scalargroup)) , INTENT(IN) :: scalargroup_hdl 
     199      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 
     200      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:) 
     201      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 
     202      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 
    143203      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 
     204      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 
    144205      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 
    145206      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 
     207      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 
    146208      INTEGER  , OPTIONAL, INTENT(OUT) :: prec 
    147209      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref 
     
    151213 
    152214      CALL xios(get_scalargroup_attr_hdl_)  & 
    153       ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    154       ) 
     215      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     216      , positive, prec, scalar_ref, standard_name, unit, value ) 
    155217 
    156218  END SUBROUTINE xios(get_scalargroup_attr_hdl) 
    157219 
    158220  SUBROUTINE xios(get_scalargroup_attr_hdl_)   & 
    159     ( scalargroup_hdl, group_ref_, long_name_, name_, prec_, scalar_ref_, standard_name_, unit_  & 
    160     , value_ ) 
     221    ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  & 
     222    , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    161223 
    162224    IMPLICIT NONE 
    163225      TYPE(txios(scalargroup)) , INTENT(IN) :: scalargroup_hdl 
     226      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type_ 
     227      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:) 
     228      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name_ 
     229      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 
    164230      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 
     231      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label_ 
    165232      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 
    166233      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 
     234      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_ 
    167235      INTEGER  , OPTIONAL, INTENT(OUT) :: prec_ 
    168236      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref_ 
     
    171239      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value_ 
    172240 
     241      IF (PRESENT(axis_type_)) THEN 
     242        CALL cxios_get_scalargroup_axis_type & 
     243      (scalargroup_hdl%daddr, axis_type_, len(axis_type_)) 
     244      ENDIF 
     245 
     246      IF (PRESENT(bounds_)) THEN 
     247        CALL cxios_get_scalargroup_bounds & 
     248      (scalargroup_hdl%daddr, bounds_, SHAPE(bounds_)) 
     249      ENDIF 
     250 
     251      IF (PRESENT(bounds_name_)) THEN 
     252        CALL cxios_get_scalargroup_bounds_name & 
     253      (scalargroup_hdl%daddr, bounds_name_, len(bounds_name_)) 
     254      ENDIF 
     255 
     256      IF (PRESENT(comment_)) THEN 
     257        CALL cxios_get_scalargroup_comment & 
     258      (scalargroup_hdl%daddr, comment_, len(comment_)) 
     259      ENDIF 
     260 
    173261      IF (PRESENT(group_ref_)) THEN 
    174262        CALL cxios_get_scalargroup_group_ref & 
     
    176264      ENDIF 
    177265 
     266      IF (PRESENT(label_)) THEN 
     267        CALL cxios_get_scalargroup_label & 
     268      (scalargroup_hdl%daddr, label_, len(label_)) 
     269      ENDIF 
     270 
    178271      IF (PRESENT(long_name_)) THEN 
    179272        CALL cxios_get_scalargroup_long_name & 
     
    186279      ENDIF 
    187280 
     281      IF (PRESENT(positive_)) THEN 
     282        CALL cxios_get_scalargroup_positive & 
     283      (scalargroup_hdl%daddr, positive_, len(positive_)) 
     284      ENDIF 
     285 
    188286      IF (PRESENT(prec_)) THEN 
    189287        CALL cxios_get_scalargroup_prec & 
     
    214312 
    215313  SUBROUTINE xios(is_defined_scalargroup_attr)  & 
    216     ( scalargroup_id, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value ) 
     314    ( scalargroup_id, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     315    , positive, prec, scalar_ref, standard_name, unit, value ) 
    217316 
    218317    IMPLICIT NONE 
    219318      TYPE(txios(scalargroup))  :: scalargroup_hdl 
    220319      CHARACTER(LEN=*), INTENT(IN) ::scalargroup_id 
     320      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     321      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
     322      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     323      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     324      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     325      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     326      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     327      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    221328      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    222329      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     330      LOGICAL, OPTIONAL, INTENT(OUT) :: label 
     331      LOGICAL(KIND=C_BOOL) :: label_tmp 
    223332      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    224333      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
    225334      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    226335      LOGICAL(KIND=C_BOOL) :: name_tmp 
     336      LOGICAL, OPTIONAL, INTENT(OUT) :: positive 
     337      LOGICAL(KIND=C_BOOL) :: positive_tmp 
    227338      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    228339      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     
    239350      (scalargroup_id,scalargroup_hdl) 
    240351      CALL xios(is_defined_scalargroup_attr_hdl_)   & 
    241       ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    242       ) 
     352      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     353      , positive, prec, scalar_ref, standard_name, unit, value ) 
    243354 
    244355  END SUBROUTINE xios(is_defined_scalargroup_attr) 
    245356 
    246357  SUBROUTINE xios(is_defined_scalargroup_attr_hdl)  & 
    247     ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    248     ) 
     358    ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     359    , positive, prec, scalar_ref, standard_name, unit, value ) 
    249360 
    250361    IMPLICIT NONE 
    251362      TYPE(txios(scalargroup)) , INTENT(IN) :: scalargroup_hdl 
     363      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 
     364      LOGICAL(KIND=C_BOOL) :: axis_type_tmp 
     365      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 
     366      LOGICAL(KIND=C_BOOL) :: bounds_tmp 
     367      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name 
     368      LOGICAL(KIND=C_BOOL) :: bounds_name_tmp 
     369      LOGICAL, OPTIONAL, INTENT(OUT) :: comment 
     370      LOGICAL(KIND=C_BOOL) :: comment_tmp 
    252371      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 
    253372      LOGICAL(KIND=C_BOOL) :: group_ref_tmp 
     373      LOGICAL, OPTIONAL, INTENT(OUT) :: label 
     374      LOGICAL(KIND=C_BOOL) :: label_tmp 
    254375      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 
    255376      LOGICAL(KIND=C_BOOL) :: long_name_tmp 
    256377      LOGICAL, OPTIONAL, INTENT(OUT) :: name 
    257378      LOGICAL(KIND=C_BOOL) :: name_tmp 
     379      LOGICAL, OPTIONAL, INTENT(OUT) :: positive 
     380      LOGICAL(KIND=C_BOOL) :: positive_tmp 
    258381      LOGICAL, OPTIONAL, INTENT(OUT) :: prec 
    259382      LOGICAL(KIND=C_BOOL) :: prec_tmp 
     
    268391 
    269392      CALL xios(is_defined_scalargroup_attr_hdl_)  & 
    270       ( scalargroup_hdl, group_ref, long_name, name, prec, scalar_ref, standard_name, unit, value  & 
    271       ) 
     393      ( scalargroup_hdl, axis_type, bounds, bounds_name, comment, group_ref, label, long_name, name  & 
     394      , positive, prec, scalar_ref, standard_name, unit, value ) 
    272395 
    273396  END SUBROUTINE xios(is_defined_scalargroup_attr_hdl) 
    274397 
    275398  SUBROUTINE xios(is_defined_scalargroup_attr_hdl_)   & 
    276     ( scalargroup_hdl, group_ref_, long_name_, name_, prec_, scalar_ref_, standard_name_, unit_  & 
    277     , value_ ) 
     399    ( scalargroup_hdl, axis_type_, bounds_, bounds_name_, comment_, group_ref_, label_, long_name_  & 
     400    , name_, positive_, prec_, scalar_ref_, standard_name_, unit_, value_ ) 
    278401 
    279402    IMPLICIT NONE 
    280403      TYPE(txios(scalargroup)) , INTENT(IN) :: scalargroup_hdl 
     404      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type_ 
     405      LOGICAL(KIND=C_BOOL) :: axis_type__tmp 
     406      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 
     407      LOGICAL(KIND=C_BOOL) :: bounds__tmp 
     408      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_name_ 
     409      LOGICAL(KIND=C_BOOL) :: bounds_name__tmp 
     410      LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 
     411      LOGICAL(KIND=C_BOOL) :: comment__tmp 
    281412      LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 
    282413      LOGICAL(KIND=C_BOOL) :: group_ref__tmp 
     414      LOGICAL, OPTIONAL, INTENT(OUT) :: label_ 
     415      LOGICAL(KIND=C_BOOL) :: label__tmp 
    283416      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 
    284417      LOGICAL(KIND=C_BOOL) :: long_name__tmp 
    285418      LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 
    286419      LOGICAL(KIND=C_BOOL) :: name__tmp 
     420      LOGICAL, OPTIONAL, INTENT(OUT) :: positive_ 
     421      LOGICAL(KIND=C_BOOL) :: positive__tmp 
    287422      LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 
    288423      LOGICAL(KIND=C_BOOL) :: prec__tmp 
     
    296431      LOGICAL(KIND=C_BOOL) :: value__tmp 
    297432 
     433      IF (PRESENT(axis_type_)) THEN 
     434        axis_type__tmp = cxios_is_defined_scalargroup_axis_type & 
     435      (scalargroup_hdl%daddr) 
     436        axis_type_ = axis_type__tmp 
     437      ENDIF 
     438 
     439      IF (PRESENT(bounds_)) THEN 
     440        bounds__tmp = cxios_is_defined_scalargroup_bounds & 
     441      (scalargroup_hdl%daddr) 
     442        bounds_ = bounds__tmp 
     443      ENDIF 
     444 
     445      IF (PRESENT(bounds_name_)) THEN 
     446        bounds_name__tmp = cxios_is_defined_scalargroup_bounds_name & 
     447      (scalargroup_hdl%daddr) 
     448        bounds_name_ = bounds_name__tmp 
     449      ENDIF 
     450 
     451      IF (PRESENT(comment_)) THEN 
     452        comment__tmp = cxios_is_defined_scalargroup_comment & 
     453      (scalargroup_hdl%daddr) 
     454        comment_ = comment__tmp 
     455      ENDIF 
     456 
    298457      IF (PRESENT(group_ref_)) THEN 
    299458        group_ref__tmp = cxios_is_defined_scalargroup_group_ref & 
     
    302461      ENDIF 
    303462 
     463      IF (PRESENT(label_)) THEN 
     464        label__tmp = cxios_is_defined_scalargroup_label & 
     465      (scalargroup_hdl%daddr) 
     466        label_ = label__tmp 
     467      ENDIF 
     468 
    304469      IF (PRESENT(long_name_)) THEN 
    305470        long_name__tmp = cxios_is_defined_scalargroup_long_name & 
     
    314479      ENDIF 
    315480 
     481      IF (PRESENT(positive_)) THEN 
     482        positive__tmp = cxios_is_defined_scalargroup_positive & 
     483      (scalargroup_hdl%daddr) 
     484        positive_ = positive__tmp 
     485      ENDIF 
     486 
    316487      IF (PRESENT(prec_)) THEN 
    317488        prec__tmp = cxios_is_defined_scalargroup_prec & 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/reduce_domain_to_axis_interface_attr.F90

    r981 r1545  
    3131 
    3232 
     33    SUBROUTINE cxios_set_reduce_domain_to_axis_local(reduce_domain_to_axis_hdl, local) BIND(C) 
     34      USE ISO_C_BINDING 
     35      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_domain_to_axis_hdl 
     36      LOGICAL (KIND=C_BOOL)      , VALUE :: local 
     37    END SUBROUTINE cxios_set_reduce_domain_to_axis_local 
     38 
     39    SUBROUTINE cxios_get_reduce_domain_to_axis_local(reduce_domain_to_axis_hdl, local) BIND(C) 
     40      USE ISO_C_BINDING 
     41      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_domain_to_axis_hdl 
     42      LOGICAL (KIND=C_BOOL)             :: local 
     43    END SUBROUTINE cxios_get_reduce_domain_to_axis_local 
     44 
     45    FUNCTION cxios_is_defined_reduce_domain_to_axis_local(reduce_domain_to_axis_hdl) BIND(C) 
     46      USE ISO_C_BINDING 
     47      LOGICAL(kind=C_BOOL) :: cxios_is_defined_reduce_domain_to_axis_local 
     48      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_domain_to_axis_hdl 
     49    END FUNCTION cxios_is_defined_reduce_domain_to_axis_local 
     50 
     51 
    3352    SUBROUTINE cxios_set_reduce_domain_to_axis_operation(reduce_domain_to_axis_hdl, operation, operation_size) BIND(C) 
    3453      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/reduce_domain_to_scalar_interface_attr.F90

    r981 r1545  
    99  INTERFACE 
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
     11 
     12    SUBROUTINE cxios_set_reduce_domain_to_scalar_local(reduce_domain_to_scalar_hdl, local) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_domain_to_scalar_hdl 
     15      LOGICAL (KIND=C_BOOL)      , VALUE :: local 
     16    END SUBROUTINE cxios_set_reduce_domain_to_scalar_local 
     17 
     18    SUBROUTINE cxios_get_reduce_domain_to_scalar_local(reduce_domain_to_scalar_hdl, local) BIND(C) 
     19      USE ISO_C_BINDING 
     20      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_domain_to_scalar_hdl 
     21      LOGICAL (KIND=C_BOOL)             :: local 
     22    END SUBROUTINE cxios_get_reduce_domain_to_scalar_local 
     23 
     24    FUNCTION cxios_is_defined_reduce_domain_to_scalar_local(reduce_domain_to_scalar_hdl) BIND(C) 
     25      USE ISO_C_BINDING 
     26      LOGICAL(kind=C_BOOL) :: cxios_is_defined_reduce_domain_to_scalar_local 
     27      INTEGER (kind = C_INTPTR_T), VALUE :: reduce_domain_to_scalar_hdl 
     28    END FUNCTION cxios_is_defined_reduce_domain_to_scalar_local 
     29 
    1130 
    1231    SUBROUTINE cxios_set_reduce_domain_to_scalar_operation(reduce_domain_to_scalar_hdl, operation, operation_size) BIND(C) 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/scalar_interface_attr.F90

    r1052 r1545  
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
    1111 
     12    SUBROUTINE cxios_set_scalar_axis_type(scalar_hdl, axis_type, axis_type_size) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     15      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     16      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     17    END SUBROUTINE cxios_set_scalar_axis_type 
     18 
     19    SUBROUTINE cxios_get_scalar_axis_type(scalar_hdl, axis_type, axis_type_size) BIND(C) 
     20      USE ISO_C_BINDING 
     21      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     22      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     23      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     24    END SUBROUTINE cxios_get_scalar_axis_type 
     25 
     26    FUNCTION cxios_is_defined_scalar_axis_type(scalar_hdl) BIND(C) 
     27      USE ISO_C_BINDING 
     28      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_axis_type 
     29      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     30    END FUNCTION cxios_is_defined_scalar_axis_type 
     31 
     32 
     33    SUBROUTINE cxios_set_scalar_bounds(scalar_hdl, bounds, extent) BIND(C) 
     34      USE ISO_C_BINDING 
     35      INTEGER (kind = C_INTPTR_T), VALUE       :: scalar_hdl 
     36      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     37      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     38    END SUBROUTINE cxios_set_scalar_bounds 
     39 
     40    SUBROUTINE cxios_get_scalar_bounds(scalar_hdl, bounds, extent) BIND(C) 
     41      USE ISO_C_BINDING 
     42      INTEGER (kind = C_INTPTR_T), VALUE       :: scalar_hdl 
     43      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     44      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     45    END SUBROUTINE cxios_get_scalar_bounds 
     46 
     47    FUNCTION cxios_is_defined_scalar_bounds(scalar_hdl) BIND(C) 
     48      USE ISO_C_BINDING 
     49      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_bounds 
     50      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     51    END FUNCTION cxios_is_defined_scalar_bounds 
     52 
     53 
     54    SUBROUTINE cxios_set_scalar_bounds_name(scalar_hdl, bounds_name, bounds_name_size) BIND(C) 
     55      USE ISO_C_BINDING 
     56      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     57      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     58      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     59    END SUBROUTINE cxios_set_scalar_bounds_name 
     60 
     61    SUBROUTINE cxios_get_scalar_bounds_name(scalar_hdl, bounds_name, bounds_name_size) BIND(C) 
     62      USE ISO_C_BINDING 
     63      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     64      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     65      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     66    END SUBROUTINE cxios_get_scalar_bounds_name 
     67 
     68    FUNCTION cxios_is_defined_scalar_bounds_name(scalar_hdl) BIND(C) 
     69      USE ISO_C_BINDING 
     70      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_bounds_name 
     71      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     72    END FUNCTION cxios_is_defined_scalar_bounds_name 
     73 
     74 
     75    SUBROUTINE cxios_set_scalar_comment(scalar_hdl, comment, comment_size) BIND(C) 
     76      USE ISO_C_BINDING 
     77      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     78      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     79      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     80    END SUBROUTINE cxios_set_scalar_comment 
     81 
     82    SUBROUTINE cxios_get_scalar_comment(scalar_hdl, comment, comment_size) BIND(C) 
     83      USE ISO_C_BINDING 
     84      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     85      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     86      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     87    END SUBROUTINE cxios_get_scalar_comment 
     88 
     89    FUNCTION cxios_is_defined_scalar_comment(scalar_hdl) BIND(C) 
     90      USE ISO_C_BINDING 
     91      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_comment 
     92      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     93    END FUNCTION cxios_is_defined_scalar_comment 
     94 
     95 
     96    SUBROUTINE cxios_set_scalar_label(scalar_hdl, label, label_size) BIND(C) 
     97      USE ISO_C_BINDING 
     98      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     99      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: label 
     100      INTEGER  (kind = C_INT)     , VALUE        :: label_size 
     101    END SUBROUTINE cxios_set_scalar_label 
     102 
     103    SUBROUTINE cxios_get_scalar_label(scalar_hdl, label, label_size) BIND(C) 
     104      USE ISO_C_BINDING 
     105      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     106      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: label 
     107      INTEGER  (kind = C_INT)     , VALUE        :: label_size 
     108    END SUBROUTINE cxios_get_scalar_label 
     109 
     110    FUNCTION cxios_is_defined_scalar_label(scalar_hdl) BIND(C) 
     111      USE ISO_C_BINDING 
     112      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_label 
     113      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     114    END FUNCTION cxios_is_defined_scalar_label 
     115 
     116 
    12117    SUBROUTINE cxios_set_scalar_long_name(scalar_hdl, long_name, long_name_size) BIND(C) 
    13118      USE ISO_C_BINDING 
     
    52157 
    53158 
     159    SUBROUTINE cxios_set_scalar_positive(scalar_hdl, positive, positive_size) BIND(C) 
     160      USE ISO_C_BINDING 
     161      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     162      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: positive 
     163      INTEGER  (kind = C_INT)     , VALUE        :: positive_size 
     164    END SUBROUTINE cxios_set_scalar_positive 
     165 
     166    SUBROUTINE cxios_get_scalar_positive(scalar_hdl, positive, positive_size) BIND(C) 
     167      USE ISO_C_BINDING 
     168      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     169      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: positive 
     170      INTEGER  (kind = C_INT)     , VALUE        :: positive_size 
     171    END SUBROUTINE cxios_get_scalar_positive 
     172 
     173    FUNCTION cxios_is_defined_scalar_positive(scalar_hdl) BIND(C) 
     174      USE ISO_C_BINDING 
     175      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalar_positive 
     176      INTEGER (kind = C_INTPTR_T), VALUE :: scalar_hdl 
     177    END FUNCTION cxios_is_defined_scalar_positive 
     178 
     179 
    54180    SUBROUTINE cxios_set_scalar_prec(scalar_hdl, prec) BIND(C) 
    55181      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/interface/fortran_attr/scalargroup_interface_attr.F90

    r1052 r1545  
    1010    ! Do not call directly / interface FORTRAN 2003 <-> C99 
    1111 
     12    SUBROUTINE cxios_set_scalargroup_axis_type(scalargroup_hdl, axis_type, axis_type_size) BIND(C) 
     13      USE ISO_C_BINDING 
     14      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     15      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     16      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     17    END SUBROUTINE cxios_set_scalargroup_axis_type 
     18 
     19    SUBROUTINE cxios_get_scalargroup_axis_type(scalargroup_hdl, axis_type, axis_type_size) BIND(C) 
     20      USE ISO_C_BINDING 
     21      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     22      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: axis_type 
     23      INTEGER  (kind = C_INT)     , VALUE        :: axis_type_size 
     24    END SUBROUTINE cxios_get_scalargroup_axis_type 
     25 
     26    FUNCTION cxios_is_defined_scalargroup_axis_type(scalargroup_hdl) BIND(C) 
     27      USE ISO_C_BINDING 
     28      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_axis_type 
     29      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     30    END FUNCTION cxios_is_defined_scalargroup_axis_type 
     31 
     32 
     33    SUBROUTINE cxios_set_scalargroup_bounds(scalargroup_hdl, bounds, extent) BIND(C) 
     34      USE ISO_C_BINDING 
     35      INTEGER (kind = C_INTPTR_T), VALUE       :: scalargroup_hdl 
     36      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     37      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     38    END SUBROUTINE cxios_set_scalargroup_bounds 
     39 
     40    SUBROUTINE cxios_get_scalargroup_bounds(scalargroup_hdl, bounds, extent) BIND(C) 
     41      USE ISO_C_BINDING 
     42      INTEGER (kind = C_INTPTR_T), VALUE       :: scalargroup_hdl 
     43      REAL (KIND=C_DOUBLE)     , DIMENSION(*) :: bounds 
     44      INTEGER (kind = C_INT), DIMENSION(*)     :: extent 
     45    END SUBROUTINE cxios_get_scalargroup_bounds 
     46 
     47    FUNCTION cxios_is_defined_scalargroup_bounds(scalargroup_hdl) BIND(C) 
     48      USE ISO_C_BINDING 
     49      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_bounds 
     50      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     51    END FUNCTION cxios_is_defined_scalargroup_bounds 
     52 
     53 
     54    SUBROUTINE cxios_set_scalargroup_bounds_name(scalargroup_hdl, bounds_name, bounds_name_size) BIND(C) 
     55      USE ISO_C_BINDING 
     56      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     57      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     58      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     59    END SUBROUTINE cxios_set_scalargroup_bounds_name 
     60 
     61    SUBROUTINE cxios_get_scalargroup_bounds_name(scalargroup_hdl, bounds_name, bounds_name_size) BIND(C) 
     62      USE ISO_C_BINDING 
     63      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     64      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: bounds_name 
     65      INTEGER  (kind = C_INT)     , VALUE        :: bounds_name_size 
     66    END SUBROUTINE cxios_get_scalargroup_bounds_name 
     67 
     68    FUNCTION cxios_is_defined_scalargroup_bounds_name(scalargroup_hdl) BIND(C) 
     69      USE ISO_C_BINDING 
     70      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_bounds_name 
     71      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     72    END FUNCTION cxios_is_defined_scalargroup_bounds_name 
     73 
     74 
     75    SUBROUTINE cxios_set_scalargroup_comment(scalargroup_hdl, comment, comment_size) BIND(C) 
     76      USE ISO_C_BINDING 
     77      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     78      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     79      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     80    END SUBROUTINE cxios_set_scalargroup_comment 
     81 
     82    SUBROUTINE cxios_get_scalargroup_comment(scalargroup_hdl, comment, comment_size) BIND(C) 
     83      USE ISO_C_BINDING 
     84      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     85      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: comment 
     86      INTEGER  (kind = C_INT)     , VALUE        :: comment_size 
     87    END SUBROUTINE cxios_get_scalargroup_comment 
     88 
     89    FUNCTION cxios_is_defined_scalargroup_comment(scalargroup_hdl) BIND(C) 
     90      USE ISO_C_BINDING 
     91      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_comment 
     92      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     93    END FUNCTION cxios_is_defined_scalargroup_comment 
     94 
     95 
    1296    SUBROUTINE cxios_set_scalargroup_group_ref(scalargroup_hdl, group_ref, group_ref_size) BIND(C) 
    1397      USE ISO_C_BINDING 
     
    31115 
    32116 
     117    SUBROUTINE cxios_set_scalargroup_label(scalargroup_hdl, label, label_size) BIND(C) 
     118      USE ISO_C_BINDING 
     119      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     120      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: label 
     121      INTEGER  (kind = C_INT)     , VALUE        :: label_size 
     122    END SUBROUTINE cxios_set_scalargroup_label 
     123 
     124    SUBROUTINE cxios_get_scalargroup_label(scalargroup_hdl, label, label_size) BIND(C) 
     125      USE ISO_C_BINDING 
     126      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     127      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: label 
     128      INTEGER  (kind = C_INT)     , VALUE        :: label_size 
     129    END SUBROUTINE cxios_get_scalargroup_label 
     130 
     131    FUNCTION cxios_is_defined_scalargroup_label(scalargroup_hdl) BIND(C) 
     132      USE ISO_C_BINDING 
     133      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_label 
     134      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     135    END FUNCTION cxios_is_defined_scalargroup_label 
     136 
     137 
    33138    SUBROUTINE cxios_set_scalargroup_long_name(scalargroup_hdl, long_name, long_name_size) BIND(C) 
    34139      USE ISO_C_BINDING 
     
    73178 
    74179 
     180    SUBROUTINE cxios_set_scalargroup_positive(scalargroup_hdl, positive, positive_size) BIND(C) 
     181      USE ISO_C_BINDING 
     182      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     183      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: positive 
     184      INTEGER  (kind = C_INT)     , VALUE        :: positive_size 
     185    END SUBROUTINE cxios_set_scalargroup_positive 
     186 
     187    SUBROUTINE cxios_get_scalargroup_positive(scalargroup_hdl, positive, positive_size) BIND(C) 
     188      USE ISO_C_BINDING 
     189      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     190      CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: positive 
     191      INTEGER  (kind = C_INT)     , VALUE        :: positive_size 
     192    END SUBROUTINE cxios_get_scalargroup_positive 
     193 
     194    FUNCTION cxios_is_defined_scalargroup_positive(scalargroup_hdl) BIND(C) 
     195      USE ISO_C_BINDING 
     196      LOGICAL(kind=C_BOOL) :: cxios_is_defined_scalargroup_positive 
     197      INTEGER (kind = C_INTPTR_T), VALUE :: scalargroup_hdl 
     198    END FUNCTION cxios_is_defined_scalargroup_positive 
     199 
     200 
    75201    SUBROUTINE cxios_set_scalargroup_prec(scalargroup_hdl, prec) BIND(C) 
    76202      USE ISO_C_BINDING 
  • XIOS/dev/branch_openmp/src/io/inetcdf4.cpp

    r1538 r1545  
    77namespace xios 
    88{ 
    9   //CINetCDF4::CINetCDF4(const StdString& filename, const ep_lib::MPI_Comm* comm /*= NULL*/, bool multifile /*= true*/, const StdString& timeCounterName /*= "time_counter"*/) 
    109  CINetCDF4::CINetCDF4(const StdString& filename, const ep_lib::MPI_Comm* comm /*= NULL*/, bool multifile /*= true*/, 
    1110                       bool readMetaDataPar /*= false*/, const StdString& timeCounterName /*= "time_counter"*/) 
     
    1918        comm = NULL; 
    2019    } 
    21     //mpi = comm && !multifile; 
    2220    mpi = comm && !multifile && readMetaDataPar; 
    23     //ep_lib::MPI_Info info_null = MPI_INFO_NULL; 
    2421 
    2522    // The file format will be detected automatically by NetCDF, it is safe to always set NC_MPIIO 
     
    496493  } 
    497494 
    498 /* 
    499   bool CINetCDF4::isRectilinear(const StdString& name, const CVarPath* const path) 
    500   { 
    501     std::list<StdString> varCoords = this->getCoordinatesIdList(name, path); 
    502     std::list<StdString>::const_iterator it = varCoords.begin(), end = varCoords.end(); 
    503     for (; it != end; it++) 
    504     { 
    505       const StdString& coord = *it; 
    506       if (this->hasVariable(coord, path) && !this->isTemporal(coord, path)) 
    507       { 
    508         std::map<StdString, StdSize> dimvar = this->getDimensions(&coord, path); 
    509         if ((dimvar.size() == 1) && (dimvar.find(coord) != dimvar.end())) 
    510           continue; 
    511         else 
    512           return false; 
    513       } 
    514     } 
    515     return true; 
    516   } 
    517 */ 
    518  
    519495  bool CINetCDF4::isRectilinear(const StdString& name, const CVarPath* const path) 
    520496  { 
     
    559535    return (varDims1D.size() == 2); 
    560536  } 
    561  
    562537 
    563538  bool CINetCDF4::isCurvilinear(const StdString& name, const CVarPath* const path) 
     
    833808  bool CINetCDF4::isLonOrLat(const StdString& varname, const CVarPath* const path) 
    834809  { 
    835   if (this->hasAttribute(CCFKeywords::XIOS_CF_units, &varname, path)) 
    836   { 
    837     StdString unit = this->getAttributeValue(CCFKeywords::XIOS_CF_units, &varname, path); 
    838     return (CCFConvention::XIOS_CF_Latitude_units.end() != CCFConvention::XIOS_CF_Latitude_units.find(unit) 
    839             || CCFConvention::XIOS_CF_Longitude_units.end() != CCFConvention::XIOS_CF_Longitude_units.find(unit)); 
    840     } 
     810    if (this->hasAttribute(CCFKeywords::XIOS_CF_units, &varname, path)) 
     811    { 
     812      StdString unit = this->getAttributeValue(CCFKeywords::XIOS_CF_units, &varname, path); 
     813      return      (CCFConvention::XIOS_CF_Latitude_units.end() != CCFConvention::XIOS_CF_Latitude_units.find(unit) 
     814                || CCFConvention::XIOS_CF_Longitude_units.end() != CCFConvention::XIOS_CF_Longitude_units.find(unit)); 
     815    } 
     816    else return false ; 
    841817  } 
    842818 
  • XIOS/dev/branch_openmp/src/io/inetcdf4.hpp

    r1491 r1545  
    2424      CINetCDF4(const StdString& filename, const ep_lib::MPI_Comm* comm = NULL, bool multifile = true, 
    2525                bool readMetaDataPar = false, const StdString& timeCounterName = "time_counter"); 
    26                 //const StdString& timeCounterName = "time_counter"); 
     26 
    2727      CINetCDF4(const CINetCDF4& inetcdf4);       // Not implemented. 
    2828      CINetCDF4(const CINetCDF4* const inetcdf4); // Not implemented. 
  • XIOS/dev/branch_openmp/src/io/nc4_data_input.cpp

    r1544 r1545  
    1010namespace xios 
    1111{ 
    12   //CNc4DataInput::CNc4DataInput(const StdString& filename, ep_lib::MPI_Comm comm_file, bool multifile, bool isCollective /*= true*/, const StdString& timeCounterName /*= "time_counter"*/) 
    1312  CNc4DataInput::CNc4DataInput(const StdString& filename, ep_lib::MPI_Comm comm_file, bool multifile, bool isCollective /*= true*/, 
    1413                               bool readMetaDataPar /*= false*/, bool ugridConvention /*= false*/, const StdString& timeCounterName /*= "time_counter"*/) 
    1514    : SuperClass() 
    1615    , SuperClassWriter(filename, &comm_file, multifile, readMetaDataPar, timeCounterName) 
    17     //, SuperClassWriter(filename, &comm_file, multifile, timeCounterName) 
    1816    , comm_file(comm_file) 
    1917    , filename(filename) 
     
    410408//      int nbVertex = this->getNbVertex(fieldId); 
    411409      int nbVertex = (ugridConvention) ? domain->nvertex : this->getNbVertex(fieldId); 
    412        
    413410      if (!domain->nvertex.isEmpty() && (domain->nvertex != nbVertex)) 
    414411      { 
  • XIOS/dev/branch_openmp/src/io/nc4_data_input.hpp

    r1491 r1545  
    2626    CNc4DataInput(const StdString& filename, ep_lib::MPI_Comm comm_file, bool multifile, bool isCollective = true, 
    2727                  bool readMetaDataPar = false, bool ugridConvention = false, const StdString& timeCounterName = "time_counter"); 
    28                   //const StdString& timeCounterName = "time_counter"); 
    2928    CNc4DataInput(const CNc4DataInput& dataInput);       // Not implemented. 
    3029    CNc4DataInput(const CNc4DataInput* const dataInput); // Not implemented. 
  • XIOS/dev/branch_openmp/src/io/nc4_data_output.cpp

    r1460 r1545  
    557557 
    558558      if (domain->IsWritten(this->filename)) return; 
     559 
     560      StdString domid = domain->getDomainOutputName(); 
     561 
     562      // The first domain for the same mesh that will be written is that with the highest value of nvertex. 
     563      // Thus the entire mesh connectivity will be generated at once. 
     564      if (isWrittenDomain(domid)) return ; 
     565      else setWrittenDomain(domid); 
     566 
    559567      domain->checkAttributes(); 
    560568      if (domain->isEmpty()) 
     
    567575 
    568576      std::vector<StdString> dim0; 
    569       StdString domid = domain->getDomainOutputName(); 
    570577      StdString domainName = domain->name; 
    571578      domain->assignMesh(domainName, domain->nvertex); 
     
    593600 
    594601      if (!SuperClassWriter::dimExist(dimTwo)) SuperClassWriter::addDimension(dimTwo, 2); 
    595       if (!isWrittenDomain(domid)) 
    596       { 
    597         dim0.clear(); 
    598         SuperClassWriter::addVariable(domainName, NC_INT, dim0, compressionLevel); 
    599         SuperClassWriter::addAttribute("cf_role", StdString("mesh_topology"), &domainName); 
    600         SuperClassWriter::addAttribute("long_name", StdString("Topology data of 2D unstructured mesh"), &domainName); 
    601         SuperClassWriter::addAttribute("topology_dimension", 2, &domainName); 
    602         SuperClassWriter::addAttribute("node_coordinates", node_x + " " + node_y, &domainName); 
    603       } 
     602      dim0.clear(); 
     603      SuperClassWriter::addVariable(domainName, NC_INT, dim0, compressionLevel); 
     604      SuperClassWriter::addAttribute("cf_role", StdString("mesh_topology"), &domainName); 
     605      SuperClassWriter::addAttribute("long_name", StdString("Topology data of 2D unstructured mesh"), &domainName); 
     606      SuperClassWriter::addAttribute("topology_dimension", 2, &domainName); 
     607      SuperClassWriter::addAttribute("node_coordinates", node_x + " " + node_y, &domainName); 
    604608 
    605609      try 
     
    773777            std::vector<StdSize> countFaceConctv(2) ; 
    774778 
    775             if (!isWrittenDomain(domid)) 
     779            if (domain->nvertex == 1) 
    776780            { 
    777               if (domain->nvertex == 1) 
    778               { 
    779                 if (domain->isEmpty()) 
    780                  { 
    781                    startNodes[0]=0 ; 
    782                    countNodes[0]=0 ; 
    783                  } 
    784                  else 
    785                  { 
    786                    startNodes[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    787                    countNodes[0] = domain->zoom_ni ; 
    788                  } 
    789  
    790                 SuperClassWriter::writeData(domain->mesh->node_lat, node_y, isCollective, 0, &startNodes, &countNodes); 
    791                 SuperClassWriter::writeData(domain->mesh->node_lon, node_x, isCollective, 0, &startNodes, &countNodes); 
    792               } 
    793               else if (domain->nvertex == 2) 
    794               { 
    795                 if (domain->isEmpty()) 
    796                  { 
    797                   startEdges[0]=0 ; 
    798                   countEdges[0]=0 ; 
    799                   startNodes[0]=0 ; 
    800                   countNodes[0]=0 ; 
    801                   startEdgeNodes[0]=0; 
    802                   startEdgeNodes[1]=0; 
    803                   countEdgeNodes[0]=0; 
    804                   countEdgeNodes[1]=0; 
    805  
    806                  } 
    807                  else 
    808                  { 
    809                    startEdges[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    810                    countEdges[0] = domain->zoom_ni; 
    811                    startNodes[0] = domain->mesh->node_start; 
    812                    countNodes[0] = domain->mesh->node_count; 
    813                    startEdgeNodes[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    814                    startEdgeNodes[1] = 0; 
    815                    countEdgeNodes[0] = domain->zoom_ni; 
    816                    countEdgeNodes[1] = 2; 
    817                  } 
    818                 SuperClassWriter::writeData(domain->mesh->node_lat, node_y, isCollective, 0, &startNodes, &countNodes); 
    819                 SuperClassWriter::writeData(domain->mesh->node_lon, node_x, isCollective, 0, &startNodes, &countNodes); 
    820                 SuperClassWriter::writeData(domain->mesh->edge_lat, edge_y, isCollective, 0, &startEdges, &countEdges); 
    821                 SuperClassWriter::writeData(domain->mesh->edge_lon, edge_x, isCollective, 0, &startEdges, &countEdges); 
    822                 SuperClassWriter::writeData(domain->mesh->edge_nodes, edge_nodes, isCollective, 0, &startEdgeNodes, &countEdgeNodes); 
    823               } 
    824               else 
    825               { 
    826                 if (domain->isEmpty()) 
    827                  { 
    828                    startFaces[0] = 0 ; 
    829                    countFaces[0] = 0 ; 
    830                    startNodes[0] = 0; 
    831                    countNodes[0] = 0; 
    832                    startEdges[0] = 0; 
    833                    countEdges[0] = 0; 
    834                    startEdgeFaces[0] = 0; 
    835                    startEdgeFaces[1] = 0; 
    836                    countEdgeFaces[0] = 0; 
    837                    countEdgeFaces[1] = 0; 
    838                    startFaceConctv[0] = 0; 
    839                    startFaceConctv[1] = 0; 
    840                    countFaceConctv[0] = 0; 
    841                    countFaceConctv[1] = 0; 
    842                  } 
    843                  else 
    844                  { 
    845                    startFaces[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    846                    countFaces[0] = domain->zoom_ni ; 
    847                    startNodes[0] = domain->mesh->node_start; 
    848                    countNodes[0] = domain->mesh->node_count; 
    849                    startEdges[0] = domain->mesh->edge_start; 
    850                    countEdges[0] = domain->mesh->edge_count; 
    851                    startEdgeNodes[0] = domain->mesh->edge_start; 
    852                    startEdgeNodes[1] = 0; 
    853                    countEdgeNodes[0] = domain->mesh->edge_count; 
    854                    countEdgeNodes[1]= 2; 
    855                    startEdgeFaces[0] = domain->mesh->edge_start; 
    856                    startEdgeFaces[1]= 0; 
    857                    countEdgeFaces[0] = domain->mesh->edge_count; 
    858                    countEdgeFaces[1]= 2; 
    859                    startFaceConctv[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    860                    startFaceConctv[1] = 0;  
    861                    countFaceConctv[0] = domain->zoom_ni; 
    862                    countFaceConctv[1] = domain->nvertex; 
    863                  } 
    864                 SuperClassWriter::writeData(domain->mesh->node_lat, node_y, isCollective, 0, &startNodes, &countNodes); 
    865                 SuperClassWriter::writeData(domain->mesh->node_lon, node_x, isCollective, 0, &startNodes, &countNodes); 
    866                 SuperClassWriter::writeData(domain->mesh->edge_lat, edge_y, isCollective, 0, &startEdges, &countEdges); 
    867                 SuperClassWriter::writeData(domain->mesh->edge_lon, edge_x, isCollective, 0, &startEdges, &countEdges); 
    868                 SuperClassWriter::writeData(domain->mesh->edge_nodes, edge_nodes, isCollective, 0, &startEdgeNodes, &countEdgeNodes); 
    869                 SuperClassWriter::writeData(domain->mesh->face_lat, face_y, isCollective, 0, &startFaces, &countFaces); 
    870                 SuperClassWriter::writeData(domain->mesh->face_lon, face_x, isCollective, 0, &startFaces, &countFaces); 
    871                 SuperClassWriter::writeData(domain->mesh->face_nodes, face_nodes, isCollective, 0, &startFaceConctv, &countFaceConctv); 
    872                 SuperClassWriter::writeData(domain->mesh->face_edges, face_edges, isCollective, 0, &startFaceConctv, &countFaceConctv); 
    873                 SuperClassWriter::writeData(domain->mesh->edge_faces, edge_faces, isCollective, 0, &startEdgeFaces, &countEdgeFaces); 
    874                 SuperClassWriter::writeData(domain->mesh->face_faces, face_faces, isCollective, 0, &startFaceConctv, &countFaceConctv); 
    875               } 
    876               setWrittenDomain(domid); 
    877             } // !isWrittenDomain 
     781              if (domain->isEmpty()) 
     782               { 
     783                 startNodes[0]=0 ; 
     784                 countNodes[0]=0 ; 
     785               } 
     786               else 
     787               { 
     788                 startNodes[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
     789                 countNodes[0] = domain->zoom_ni ; 
     790               } 
     791 
     792              SuperClassWriter::writeData(domain->mesh->node_lat, node_y, isCollective, 0, &startNodes, &countNodes); 
     793              SuperClassWriter::writeData(domain->mesh->node_lon, node_x, isCollective, 0, &startNodes, &countNodes); 
     794            } 
     795            else if (domain->nvertex == 2) 
     796            { 
     797              if (domain->isEmpty()) 
     798               { 
     799                startEdges[0]=0 ; 
     800                countEdges[0]=0 ; 
     801                startNodes[0]=0 ; 
     802                countNodes[0]=0 ; 
     803                startEdgeNodes[0]=0; 
     804                startEdgeNodes[1]=0; 
     805                countEdgeNodes[0]=0; 
     806                countEdgeNodes[1]=0; 
     807 
     808               } 
     809               else 
     810               { 
     811                 startEdges[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
     812                 countEdges[0] = domain->zoom_ni; 
     813                 startNodes[0] = domain->mesh->node_start; 
     814                 countNodes[0] = domain->mesh->node_count; 
     815                 startEdgeNodes[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
     816                 startEdgeNodes[1] = 0; 
     817                 countEdgeNodes[0] = domain->zoom_ni; 
     818                 countEdgeNodes[1] = 2; 
     819               } 
     820              SuperClassWriter::writeData(domain->mesh->node_lat, node_y, isCollective, 0, &startNodes, &countNodes); 
     821              SuperClassWriter::writeData(domain->mesh->node_lon, node_x, isCollective, 0, &startNodes, &countNodes); 
     822              SuperClassWriter::writeData(domain->mesh->edge_lat, edge_y, isCollective, 0, &startEdges, &countEdges); 
     823              SuperClassWriter::writeData(domain->mesh->edge_lon, edge_x, isCollective, 0, &startEdges, &countEdges); 
     824              SuperClassWriter::writeData(domain->mesh->edge_nodes, edge_nodes, isCollective, 0, &startEdgeNodes, &countEdgeNodes); 
     825            } 
    878826            else 
    879827            { 
    880               if (domain->nvertex == 2) 
    881               { 
    882                 startEdges[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    883                 countEdges[0] = domain->zoom_ni; 
    884                 startEdgeNodes[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    885                 startEdgeNodes[1] = 0; 
    886                 countEdgeNodes[0] = domain->zoom_ni; 
    887                 countEdgeNodes[1]= 2; 
    888                 SuperClassWriter::writeData(domain->mesh->edge_lat, edge_y, isCollective, 0, &startEdges, &countEdges); 
    889                 SuperClassWriter::writeData(domain->mesh->edge_lon, edge_x, isCollective, 0, &startEdges, &countEdges); 
    890                 SuperClassWriter::writeData(domain->mesh->edge_nodes, edge_nodes, isCollective, 0, &startEdgeNodes, &countEdgeNodes); 
    891               }   
    892               if (domain->nvertex > 2) 
    893               { 
    894  
    895                 if (!domain->mesh->edgesAreWritten) 
    896                 { 
    897                   startEdges[0] = domain->mesh->edge_start; 
    898                   countEdges[0] = domain->mesh->edge_count; 
    899                   startEdgeNodes[0] = domain->mesh->edge_start; 
    900                   startEdgeNodes[1] = 0; 
    901                   countEdgeNodes[0] = domain->mesh->edge_count; 
    902                   countEdgeNodes[1]= 2; 
    903                   SuperClassWriter::writeData(domain->mesh->edge_lat, edge_y, isCollective, 0, &startEdges, &countEdges); 
    904                   SuperClassWriter::writeData(domain->mesh->edge_lon, edge_x, isCollective, 0, &startEdges, &countEdges); 
    905                   SuperClassWriter::writeData(domain->mesh->edge_nodes, edge_nodes, isCollective, 0, &startEdgeNodes, &countEdgeNodes); 
    906                 } 
    907                 startFaces[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    908                 countFaces[0] = domain->zoom_ni; 
    909                 startEdgeFaces[0] = domain->mesh->edge_start; 
    910                 startEdgeFaces[1]= 0; 
    911                 countEdgeFaces[0] = domain->mesh->edge_count; 
    912                 countEdgeFaces[1]= 2; 
    913                 startFaceConctv[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
    914                 startFaceConctv[1] = 0; 
    915                 countFaceConctv[0] = domain->zoom_ni; 
    916                 countFaceConctv[1] = domain->nvertex; 
    917                 SuperClassWriter::writeData(domain->mesh->face_lat, face_y, isCollective, 0, &startFaces, &countFaces); 
    918                 SuperClassWriter::writeData(domain->mesh->face_lon, face_x, isCollective, 0, &startFaces, &countFaces); 
    919                 SuperClassWriter::writeData(domain->mesh->face_nodes, face_nodes, isCollective, 0, &startFaceConctv, &countFaceConctv); 
    920                 SuperClassWriter::writeData(domain->mesh->face_edges, face_edges, isCollective, 0, &startFaceConctv, &countFaceConctv); 
    921                 SuperClassWriter::writeData(domain->mesh->edge_faces, edge_faces, isCollective, 0, &startEdgeFaces, &countEdgeFaces); 
    922                 SuperClassWriter::writeData(domain->mesh->face_faces, face_faces, isCollective, 0, &startFaceConctv, &countFaceConctv); 
    923               } 
    924             }// isWrittenDomain 
    925  
     828              if (domain->isEmpty()) 
     829               { 
     830                 startFaces[0] = 0 ; 
     831                 countFaces[0] = 0 ; 
     832                 startNodes[0] = 0; 
     833                 countNodes[0] = 0; 
     834                 startEdges[0] = 0; 
     835                 countEdges[0] = 0; 
     836                 startEdgeFaces[0] = 0; 
     837                 startEdgeFaces[1] = 0; 
     838                 countEdgeFaces[0] = 0; 
     839                 countEdgeFaces[1] = 0; 
     840                 startFaceConctv[0] = 0; 
     841                 startFaceConctv[1] = 0; 
     842                 countFaceConctv[0] = 0; 
     843                 countFaceConctv[1] = 0; 
     844               } 
     845               else 
     846               { 
     847                 startFaces[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
     848                 countFaces[0] = domain->zoom_ni ; 
     849                 startNodes[0] = domain->mesh->node_start; 
     850                 countNodes[0] = domain->mesh->node_count; 
     851                 startEdges[0] = domain->mesh->edge_start; 
     852                 countEdges[0] = domain->mesh->edge_count; 
     853                 startEdgeNodes[0] = domain->mesh->edge_start; 
     854                 startEdgeNodes[1] = 0; 
     855                 countEdgeNodes[0] = domain->mesh->edge_count; 
     856                 countEdgeNodes[1]= 2; 
     857                 startEdgeFaces[0] = domain->mesh->edge_start; 
     858                 startEdgeFaces[1]= 0; 
     859                 countEdgeFaces[0] = domain->mesh->edge_count; 
     860                 countEdgeFaces[1]= 2; 
     861                 startFaceConctv[0] = domain->zoom_ibegin-domain->global_zoom_ibegin; 
     862                 startFaceConctv[1] = 0; 
     863                 countFaceConctv[0] = domain->zoom_ni; 
     864                 countFaceConctv[1] = domain->nvertex; 
     865               } 
     866              SuperClassWriter::writeData(domain->mesh->node_lat, node_y, isCollective, 0, &startNodes, &countNodes); 
     867              SuperClassWriter::writeData(domain->mesh->node_lon, node_x, isCollective, 0, &startNodes, &countNodes); 
     868              SuperClassWriter::writeData(domain->mesh->edge_lat, edge_y, isCollective, 0, &startEdges, &countEdges); 
     869              SuperClassWriter::writeData(domain->mesh->edge_lon, edge_x, isCollective, 0, &startEdges, &countEdges); 
     870              SuperClassWriter::writeData(domain->mesh->edge_nodes, edge_nodes, isCollective, 0, &startEdgeNodes, &countEdgeNodes); 
     871              SuperClassWriter::writeData(domain->mesh->face_lat, face_y, isCollective, 0, &startFaces, &countFaces); 
     872              SuperClassWriter::writeData(domain->mesh->face_lon, face_x, isCollective, 0, &startFaces, &countFaces); 
     873              SuperClassWriter::writeData(domain->mesh->face_nodes, face_nodes, isCollective, 0, &startFaceConctv, &countFaceConctv); 
     874              SuperClassWriter::writeData(domain->mesh->face_edges, face_edges, isCollective, 0, &startFaceConctv, &countFaceConctv); 
     875              SuperClassWriter::writeData(domain->mesh->edge_faces, edge_faces, isCollective, 0, &startEdgeFaces, &countEdgeFaces); 
     876              SuperClassWriter::writeData(domain->mesh->face_faces, face_faces, isCollective, 0, &startFaceConctv, &countFaceConctv); 
     877            } 
    926878            SuperClassWriter::definition_start(); 
    927879 
     
    12311183        axis->computeWrittenCompressedIndex(comm_file); 
    12321184        
    1233         int zoom_size  = (MULTI_FILE == SuperClass::type) ? axis->zoom_n 
    1234                                                           : axis->global_zoom_n; 
     1185        int zoom_size  = (MULTI_FILE == SuperClass::type) ? axis->zoom_n.getValue() 
     1186                                                          : axis->global_zoom_n.getValue(); 
    12351187 
    12361188        int zoom_count = axis->zoom_n;                                                  
     
    27452697      void CNc4DataOutput::writeTimeAxis_ 
    27462698                  (CField*    field, 
    2747                    const boost::shared_ptr<CCalendar> cal) 
     2699                   const std::shared_ptr<CCalendar> cal) 
    27482700      { 
    27492701         StdOStringStream oss; 
     
    29682920           msg.append(e.what()); 
    29692921           ERROR("CNc4DataOutput::writeTimeAxis_ (CField*    field, \ 
    2970                   const boost::shared_ptr<CCalendar> cal)", << msg); 
     2922                  const std::shared_ptr<CCalendar> cal)", << msg); 
    29712923         } 
    29722924      } 
  • XIOS/dev/branch_openmp/src/io/nc4_data_output.hpp

    r1460 r1545  
    6262            virtual void syncFile_      (void); 
    6363            virtual void writeTimeAxis_ (CField* field, 
    64                                          const boost::shared_ptr<CCalendar> cal); 
     64                                         const std::shared_ptr<CCalendar> cal); 
    6565 
    6666         protected : 
  • XIOS/dev/branch_openmp/src/io/netCdfInterface.hpp

    r1460 r1545  
    1717#endif 
    1818 
    19 //#include "mpi.hpp" 
     19 
    2020#include "netcdf.hpp" 
    2121 
  • XIOS/dev/branch_openmp/src/io/netCdfInterface_impl.hpp

    r1544 r1545  
    8585  int CNetCdfInterface::getVaraType(int ncid, int varId, const StdSize* start, const StdSize* count, T* data) 
    8686  { 
    87     int status; 
    88     status = ncGetVaraType(ncid, varId, start, count, data); 
     87    int status = ncGetVaraType(ncid, varId, start, count, data); 
    8988    if (NC_NOERR != status) 
    9089    { 
  • XIOS/dev/branch_openmp/src/io/onetcdf4.cpp

    r1520 r1545  
    4949         } 
    5050         wmpi = comm && !multifile; 
    51          ep_lib::MPI_Info info_null; 
    5251 
    5352         if (wmpi) 
     
    5958            CTimer::get("Files : create").resume(); 
    6059            if (wmpi) 
    61                CNetCdfInterface::createPar(filename, mode, to_mpi_comm((*comm)->mpi_comm), to_mpi_info(info_null), this->ncidp); 
     60               CNetCdfInterface::createPar(filename, mode, to_mpi_comm((*comm)->mpi_comm), to_mpi_info(MPI_INFO_NULL), this->ncidp); 
    6261            else 
    6362               CNetCdfInterface::create(filename, mode, this->ncidp); 
     
    7170            CTimer::get("Files : open").resume(); 
    7271            if (wmpi) 
    73                CNetCdfInterface::openPar(filename, mode, to_mpi_comm((*comm)->mpi_comm), to_mpi_info(info_null), this->ncidp); 
     72               CNetCdfInterface::openPar(filename, mode, to_mpi_comm((*comm)->mpi_comm), to_mpi_info(MPI_INFO_NULL), this->ncidp); 
    7473            else 
    7574               CNetCdfInterface::open(filename, mode, this->ncidp); 
  • XIOS/dev/branch_openmp/src/io/onetcdf4.hpp

    r1460 r1545  
    88#include "data_output.hpp" 
    99#include "array_new.hpp" 
    10 //#include "mpi.hpp" 
    1110#include "netcdf.hpp" 
    1211 
  • XIOS/dev/branch_openmp/src/node/axis.cpp

    r1460 r1545  
    2222   CAxis::CAxis(void) 
    2323      : CObjectTemplate<CAxis>() 
    24       , CAxisAttributes(), isChecked(false), relFiles() 
    25       , areClientAttributesChecked_(false) 
     24      , CAxisAttributes(), isChecked(false), relFiles(), areClientAttributesChecked_(false) 
    2625      , isClientAfterTransformationChecked(false) 
    2726      , hasBounds(false), isCompressible_(false) 
    2827      , numberWrittenIndexes_(), totalNumberWrittenIndexes_(), offsetWrittenIndexes_() 
    29       , transformationMap_() 
    30       , hasValue(false), hasLabel(false) 
     28      , transformationMap_(), hasValue(false), hasLabel(false) 
    3129      , computedWrittenIndex_(false) 
    3230      , clients() 
     
    3634   CAxis::CAxis(const StdString & id) 
    3735      : CObjectTemplate<CAxis>(id) 
    38       , CAxisAttributes(), isChecked(false), relFiles() 
    39       , areClientAttributesChecked_(false) 
     36      , CAxisAttributes(), isChecked(false), relFiles(), areClientAttributesChecked_(false) 
    4037      , isClientAfterTransformationChecked(false) 
    4138      , hasBounds(false), isCompressible_(false) 
    4239      , numberWrittenIndexes_(), totalNumberWrittenIndexes_(), offsetWrittenIndexes_() 
    43       , transformationMap_() 
    44       , hasValue(false), hasLabel(false) 
     40      , transformationMap_(), hasValue(false), hasLabel(false) 
    4541      , computedWrittenIndex_(false) 
    4642      , clients() 
     
    166162     return compressedIndexToWriteOnServer[writtenSize]; 
    167163   } 
    168  
    169164   //---------------------------------------------------------------- 
    170165 
    171       /*! 
     166   /*! 
    172167    * Compute the minimum buffer size required to send the attributes to the server(s). 
    173168    * 
     
    182177//     bool isNonDistributed = (n_glo == n); 
    183178     bool isDistributed = (orderPositionInGrid == CServerDistributionDescription::defaultDistributedDimension(globalDim.size(), distType)) 
    184                          || (index.numElements() != n_glo); 
     179                                 || (index.numElements() != n_glo); 
    185180 
    186181     if (client->isServerLeader()) 
     
    221216     { 
    222217       // size estimation for sendDistributedValue 
    223        boost::unordered_map<int, vector<size_t> >::const_iterator it, ite = indSrv_[client->serverSize].end(); 
     218       std::unordered_map<int, vector<size_t> >::const_iterator it, ite = indSrv_[client->serverSize].end(); 
    224219       for (it = indSrv_[client->serverSize].begin(); it != ite; ++it) 
    225220       { 
     
    474469     } 
    475470  } 
    476    
    477   /*! 
     471 
     472   /*! 
    478473     Check attributes on client side (This name is still adequate???) 
    479474   */ 
     
    528523   } 
    529524 
    530    /*! 
     525  /*! 
    531526    Send attributes from one client to other clients 
    532527    \param[in] globalDim global dimension of grid which contains this axis 
     
    642637 
    643638        std::vector<int> serverZeroIndex; 
    644         serverZeroIndex = serverDescription.computeServerGlobalIndexInRange(std::make_pair<size_t,size_t>(indexBegin, indexEnd), 0);       
     639        serverZeroIndex = serverDescription.computeServerGlobalIndexInRange(std::make_pair<size_t&,size_t&>(indexBegin, indexEnd), 0); 
    645640 
    646641        std::list<int> serverZeroIndexLeader; 
    647642        std::list<int> serverZeroIndexNotLeader;  
    648643        CContextClient::computeLeader(client->clientRank, client->clientSize, serverZeroIndex.size(), serverZeroIndexLeader, serverZeroIndexNotLeader); 
    649  
    650644        for (std::list<int>::iterator it = serverZeroIndexLeader.begin(); it != serverZeroIndexLeader.end(); ++it) 
    651645          *it = serverZeroIndex[*it]; 
     
    713707    // we need to compute the local index on the server from its corresponding global index 
    714708    size_t nbWritten = 0, indGlo;       
    715     boost::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
     709    std::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
    716710                                                        ite = globalLocalIndexMap_.end(), it;           
    717711    CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), 
     
    745739    { 
    746740      nbWritten = 0; 
    747       boost::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
     741      std::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
    748742                                                          ite = globalLocalIndexMap_.end(), it; 
    749743      for (int i = 0; i < zoom_index.numElements(); ++i) 
     
    789783      CDistributionServer srvDist(server->intraCommSize, nBegin, nSize, nBeginGlobal, nGlob);  
    790784      const CArray<size_t,1>& writtenGlobalIndex  = srvDist.getGlobalIndex(); 
    791       boost::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
     785      std::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
    792786                                                          ite = globalLocalIndexMap_.end(), it;    
    793787 
    794788      CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), 
    795789                                       itSrve = writtenGlobalIndex.end(), itSrv; 
    796       boost::unordered_map<size_t,size_t> localGlobalIndexMap; 
     790      std::unordered_map<size_t,size_t> localGlobalIndexMap; 
    797791      for (itSrv = itSrvb; itSrv != itSrve; ++itSrv) 
    798792      { 
     
    968962    std::list<CContextClient*>::iterator it; 
    969963    for (it=clients.begin(); it!=clients.end(); ++it) 
    970   { 
    971     CContextClient* client = *it; 
     964    { 
     965      CContextClient* client = *it; 
    972966 
    973967      CEventClient event(getType(), EVENT_ID_NON_DISTRIBUTED_ATTRIBUTES); 
     
    10831077  } 
    10841078 
    1085 /* 
     1079  /* 
    10861080    Send attributes of axis from a group of client to other group of clients/servers  
    10871081    on supposing that these attributes are distributed among the clients of the sending group 
     
    11161110      } 
    11171111 
    1118       boost::unordered_map<int, std::vector<size_t> >::const_iterator it, iteMap; 
     1112      std::unordered_map<int, std::vector<size_t> >::const_iterator it, iteMap; 
    11191113      iteMap = indSrv_[nbServer].end(); 
    11201114      for (int k = 0; k < connectedServerRank_[nbServer].size(); ++k) 
  • XIOS/dev/branch_openmp/src/node/axis.hpp

    r1460 r1545  
    168168         bool isCompressible_; 
    169169         std::map<int, map<int,int> > nbSenders; // Mapping of number of communicating client to a server 
    170          std::map<int, boost::unordered_map<int, vector<size_t> > > indSrv_; // Global index of each client sent to server 
     170         std::map<int, std::unordered_map<int, vector<size_t> > > indSrv_; // Global index of each client sent to server 
    171171         // std::map<int, vector<int> > indWrittenSrv_; // Global written index of each client sent to server 
    172          boost::unordered_map<size_t,size_t> globalLocalIndexMap_; 
     172         std::unordered_map<size_t,size_t> globalLocalIndexMap_; 
    173173         std::vector<int> indexesToWrite; 
    174174         std::map<int,int> numberWrittenIndexes_, totalNumberWrittenIndexes_, offsetWrittenIndexes_; 
  • XIOS/dev/branch_openmp/src/node/calendar_wrapper.cpp

    r550 r1545  
    3232  \return the calendar 
    3333  */ 
    34   boost::shared_ptr<CCalendar> CCalendarWrapper::getCalendar(bool checkValid /*= false*/) const 
     34  std::shared_ptr<CCalendar> CCalendarWrapper::getCalendar(bool checkValid /*= false*/) const 
    3535  { 
    3636    if (checkValid && !this->calendar) 
     
    9292#define DECLARE_CALENDAR(MType, eType)                                     \ 
    9393      if (type.getValue() == type_attr::eType)                             \ 
    94         calendar = boost::shared_ptr<CCalendar>(new C##MType##Calendar()); 
     94        calendar = std::shared_ptr<CCalendar>(new C##MType##Calendar()); 
    9595#include "calendar_type.conf" 
    9696#undef DECLARE_CALENDAR 
     
    111111                << "Both leap_year_drift and leap_year_month attributes are mandatory if you wish to use leap_year_drift_offset attribute."); 
    112112 
    113         boost::shared_ptr<CUserDefinedCalendar> userDefinedCalendar; 
     113        std::shared_ptr<CUserDefinedCalendar> userDefinedCalendar; 
    114114        if (year_length.isEmpty()) 
    115115          userDefinedCalendar.reset(new CUserDefinedCalendar(day_length.getValue(), month_lengths.getValue())); 
  • XIOS/dev/branch_openmp/src/node/calendar_wrapper.hpp

    r591 r1545  
    6767    public : 
    6868      /// Accesseurs /// 
    69       boost::shared_ptr<CCalendar> getCalendar(bool checkValid = false) const; 
     69      std::shared_ptr<CCalendar> getCalendar(bool checkValid = false) const; 
    7070 
    7171      const CDate& getInitDate() const; 
     
    7878    private: 
    7979      // Calendar of context 
    80       boost::shared_ptr<CCalendar> calendar; 
     80      std::shared_ptr<CCalendar> calendar; 
    8181 
    8282  }; // class CCalendarWrapper 
  • XIOS/dev/branch_openmp/src/node/context.cpp

    r1538 r1545  
    2525namespace xios { 
    2626 
    27   boost::shared_ptr<CContextGroup> * CContext::root_ptr = 0; 
    28  
    29    /// ////////////////////// Dfinitions ////////////////////// /// 
     27  std::shared_ptr<CContextGroup> * CContext::root_ptr = 0; 
     28 
     29   /// ////////////////////// Définitions ////////////////////// /// 
    3030 
    3131   CContext::CContext(void) 
     
    6868   CContextGroup* CContext::getRoot(void) 
    6969   { 
    70       if(root_ptr == 0) root_ptr = new boost::shared_ptr<CContextGroup>(new CContextGroup(xml::CXMLNode::GetRootName())); 
     70      if(root_ptr == 0) root_ptr = new std::shared_ptr<CContextGroup>(new CContextGroup(xml::CXMLNode::GetRootName())); 
    7171      return root_ptr->get(); 
    7272   } 
     
    7878   \return Calendar 
    7979   */ 
    80    boost::shared_ptr<CCalendar> CContext::getCalendar(void) const 
     80   std::shared_ptr<CCalendar> CContext::getCalendar(void) const 
    8181   { 
    8282      return (this->calendar); 
     
    8989   \param[in] newCalendar new calendar 
    9090   */ 
    91    void CContext::setCalendar(boost::shared_ptr<CCalendar> newCalendar) 
     91   void CContext::setCalendar(std::shared_ptr<CCalendar> newCalendar) 
    9292   { 
    9393      this->calendar = newCalendar; 
     
    191191      if (!this->hasChild()) 
    192192      { 
    193          //oss << "<!-- No definition -->" << std::endl; // fait planter l'incrmentation 
     193         //oss << "<!-- No definition -->" << std::endl; // fait planter l'incrémentation 
    194194      } 
    195195      else 
     
    257257      
    258258 
    259       
    260       //if (CServer::serverLevel == 0) 
    261       if (CServer::serverLevel != 1) 
    262       // initClient is called by client 
    263       { 
     259     if (CServer::serverLevel != 1) // initClient is called by client 
     260     { 
    264261       client = new CContextClient(this, intraComm, interComm, cxtServer); 
    265262       if (cxtServer) // Attached mode 
     
    291288       server = new CContextServer(this, intraCommServer, interCommServer); 
    292289     } 
    293      //else if(CServer::serverLevel == 1) 
    294      else 
    295      // initClient is called by primary server 
     290 
     291     else // initClient is called by primary server 
    296292     { 
    297293       clientPrimServer.push_back(new CContextClient(this, intraComm, interComm)); 
     
    861857   void CContext::solveAllInheritance(bool apply) 
    862858   { 
    863      // Rsolution des hritages descendants (cd des hritages de groupes) 
     859     // Résolution des héritages descendants (càd des héritages de groupes) 
    864860     // pour chacun des contextes. 
    865861      solveDescInheritance(apply); 
    866862 
    867      // Rsolution des hritages par rfrence au niveau des fichiers. 
     863     // Résolution des héritages par référence au niveau des fichiers. 
    868864      const vector<CFile*> allFiles=CFile::getAll(); 
    869865      const vector<CGrid*> allGrids= CGrid::getAll(); 
     
    889885 
    890886      for (unsigned int i = 0; i < allFiles.size(); i++) 
    891          if (!allFiles[i]->enabled.isEmpty()) // Si l'attribut 'enabled' est dfini. 
     887         if (!allFiles[i]->enabled.isEmpty()) // Si l'attribut 'enabled' est défini. 
    892888         { 
    893             if (allFiles[i]->enabled.getValue()) // Si l'attribut 'enabled' est fix  vrai. 
     889            if (allFiles[i]->enabled.getValue()) // Si l'attribut 'enabled' est fixé à vrai. 
    894890            { 
    895891              if (allFiles[i]->output_freq.isEmpty()) 
     
    928924 
    929925      if (enabledFiles.size() == 0) 
    930          DEBUG(<<"Aucun fichier ne va tre sorti dans le contexte nomm \"" 
     926         DEBUG(<<"Aucun fichier ne va être sorti dans le contexte nommé \"" 
    931927               << getId() << "\" !"); 
    932928 
     
    14341430     idServer_ = this->getId(); 
    14351431     idServer_ += "_server_"; 
    1436      idServer_ += boost::lexical_cast<string>(i); 
     1432     idServer_ += std::to_string(static_cast<unsigned long long>(i)); 
    14371433     return idServer_; 
    14381434   } 
     
    14721468      if (hasClient && !hasServer) prepareTimeseries(); 
    14731469 
    1474       //Initialisation du vecteur 'enabledFiles' contenant la liste des fichiers sortir. 
     1470      //Initialisation du vecteur 'enabledFiles' contenant la liste des fichiers à sortir. 
    14751471      findEnabledFiles(); 
    14761472      findEnabledWriteModeFiles(); 
  • XIOS/dev/branch_openmp/src/node/context.hpp

    r1460 r1545  
    99 
    1010#include "declare_group.hpp" 
    11 //#include "context_client.hpp" 
    12 //#include "context_server.hpp" 
    1311#include "data_output.hpp" 
    1412#include "garbage_collector.hpp" 
    1513#include "registry.hpp" 
    16 //#include "mpi.hpp" 
    1714 
    1815 
     
    8481 
    8582         /// Mutateurs /// 
    86          void setCalendar(boost::shared_ptr<CCalendar> newCalendar); 
     83         void setCalendar(std::shared_ptr<CCalendar> newCalendar); 
    8784 
    8885         /// Accesseurs /// 
    89          boost::shared_ptr<CCalendar>      getCalendar(void) const; 
     86         std::shared_ptr<CCalendar>      getCalendar(void) const; 
    9087 
    9188      public : 
     
    228225      public : 
    229226         // Calendar of context 
    230          boost::shared_ptr<CCalendar>   calendar; 
     227         std::shared_ptr<CCalendar>   calendar; 
    231228 
    232229         // List of all enabled files (files on which fields are written or read) 
     
    242239 
    243240         // Context root 
    244          static boost::shared_ptr<CContextGroup> *root_ptr; 
     241         static std::shared_ptr<CContextGroup> *root_ptr; 
    245242         #pragma omp threadprivate(root_ptr) 
    246243 
  • XIOS/dev/branch_openmp/src/node/domain.cpp

    r1491 r1545  
    6868   } 
    6969 
    70  
    7170   std::map<StdString, ETranformationType> *CDomain::transformationMapList_ptr = 0; 
    7271 
     
    163162     } 
    164163 
    165      boost::unordered_map<int, vector<size_t> >::const_iterator itIndexEnd = indSrv_[client->serverSize].end(); 
     164     std::unordered_map<int, vector<size_t> >::const_iterator itIndexEnd = indSrv_[client->serverSize].end(); 
    166165     // std::map<int, std::vector<int> >::const_iterator itWrittenIndexEnd = indWrittenSrv_.end(); 
    167166     for (size_t k = 0; k < connectedServerRank_[client->serverSize].size(); ++k) 
    168167     { 
    169168       int rank = connectedServerRank_[client->serverSize][k]; 
    170        boost::unordered_map<int, std::vector<size_t> >::const_iterator it = indSrv_[client->serverSize].find(rank); 
     169       std::unordered_map<int, std::vector<size_t> >::const_iterator it = indSrv_[client->serverSize].find(rank); 
    171170       size_t idxCount = (it != itIndexEnd) ? it->second.size() : 0; 
    172171 
     
    15101509         ERROR("CDomain::checkBounds(void)", 
    15111510               << "Since 'bounds_lat_2d' is defined, 'latvalue_2d' must be defined too." << std::endl); 
    1512        
     1511 
    15131512       // In case of reading UGRID bounds values are not required 
    15141513       hasBounds = (!bounds_lat_1d.isEmpty() || !bounds_lat_2d.isEmpty() ); 
     
    18141813             int iend = ibegin + ni -1; 
    18151814             int jend = jbegin + nj -1; 
    1816              zoom_ibegin = global_zoom_ibegin > ibegin ? global_zoom_ibegin : ibegin; 
     1815             zoom_ibegin = global_zoom_ibegin > ibegin ? global_zoom_ibegin.getValue() : ibegin; 
    18171816             int zoom_iend  = global_zoom_iend < iend ? zoom_iend : iend ; 
    18181817             zoom_ni     = zoom_iend-zoom_ibegin+1 ; 
    18191818 
    1820              zoom_jbegin = global_zoom_jbegin > jbegin ? global_zoom_jbegin : jbegin ; 
     1819             zoom_jbegin = global_zoom_jbegin > jbegin ? global_zoom_jbegin.getValue() : jbegin ; 
    18211820             int zoom_jend   = global_zoom_jend < jend ? zoom_jend : jend; 
    18221821             zoom_nj     = zoom_jend-zoom_jbegin+1; 
     
    18511850           CServerDistributionDescription serverDescription(nGlobDomain, nbServer); 
    18521851           std::vector<int> serverZeroIndex; 
    1853            if (isUnstructed_) serverZeroIndex = serverDescription.computeServerGlobalIndexInRange(std::make_pair<size_t,size_t>(indexBegin, indexEnd), 0); 
    1854            else serverZeroIndex = serverDescription.computeServerGlobalIndexInRange(std::make_pair<size_t,size_t>(indexBegin, indexEnd), 1); 
     1852           if (isUnstructed_) serverZeroIndex = serverDescription.computeServerGlobalIndexInRange(std::make_pair<size_t&,size_t&>(indexBegin, indexEnd), 0); 
     1853           else serverZeroIndex = serverDescription.computeServerGlobalIndexInRange(std::make_pair<size_t&,size_t&>(indexBegin, indexEnd), 1); 
    18551854 
    18561855           std::list<int> serverZeroIndexLeader; 
     
    19091908 
    19101909      size_t nbWritten = 0, indGlo;       
    1911       boost::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
     1910      std::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
    19121911                                                          ite = globalLocalIndexMap_.end(), it;           
    19131912      CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), 
     
    19411940        } 
    19421941      } 
    1943        
    1944       // if (isCompressible()) 
    1945       // { 
    1946       //   nbWritten = 0; 
    1947       //   boost::unordered_map<size_t,size_t> localGlobalIndexMap; 
    1948       //   for (itSrv = itSrvb; itSrv != itSrve; ++itSrv) 
    1949       //   { 
    1950       //     indGlo = *itSrv; 
    1951       //     if (ite != globalLocalIndexMap_.find(indGlo)) 
    1952       //     { 
    1953       //       localGlobalIndexMap[localIndexToWriteOnServer(nbWritten)] = indGlo; 
    1954       //       ++nbWritten; 
    1955       //     }                  
    1956       //   } 
    1957  
    1958       //   nbWritten = 0; 
    1959       //   for (int idx = 0; idx < data_i_index.numElements(); ++idx) 
    1960       //   { 
    1961       //     if (localGlobalIndexMap.end() != localGlobalIndexMap.find(data_i_index(idx))) 
    1962       //     { 
    1963       //       ++nbWritten; 
    1964       //     } 
    1965       //   } 
    1966  
    1967       //   compressedIndexToWriteOnServer.resize(nbWritten); 
    1968       //   nbWritten = 0; 
    1969       //   for (int idx = 0; idx < data_i_index.numElements(); ++idx) 
    1970       //   { 
    1971       //     if (localGlobalIndexMap.end() != localGlobalIndexMap.find(data_i_index(idx))) 
    1972       //     { 
    1973       //       compressedIndexToWriteOnServer(nbWritten) = localGlobalIndexMap[data_i_index(idx)]; 
    1974       //       ++nbWritten; 
    1975       //     } 
    1976       //   } 
    1977  
    1978       //   numberWrittenIndexes_ = nbWritten; 
    1979       //   if (isDistributed()) 
    1980       //   {             
    1981       //     ep_lib::MPI_Allreduce(&numberWrittenIndexes_, &totalNumberWrittenIndexes_, 1, MPI_INT, MPI_SUM, server->intraComm); 
    1982       //     ep_lib::MPI_Scan(&numberWrittenIndexes_, &offsetWrittenIndexes_, 1, MPI_INT, MPI_SUM, server->intraComm); 
    1983       //     offsetWrittenIndexes_ -= numberWrittenIndexes_; 
    1984       //   } 
    1985       //   else 
    1986       //     totalNumberWrittenIndexes_ = numberWrittenIndexes_; 
    1987       // }       
    19881942   } 
    19891943 
     
    20091963      const CArray<size_t,1>& writtenGlobalIndex  = srvDist.getGlobalIndex(); 
    20101964 
    2011       boost::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
     1965      std::unordered_map<size_t,size_t>::const_iterator itb = globalLocalIndexMap_.begin(), 
    20121966                                                          ite = globalLocalIndexMap_.end(), it;    
    20131967      CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), 
    20141968                                       itSrve = writtenGlobalIndex.end(), itSrv; 
    2015       boost::unordered_map<size_t,size_t> localGlobalIndexMap; 
     1969      std::unordered_map<size_t,size_t> localGlobalIndexMap; 
    20161970      for (itSrv = itSrvb; itSrv != itSrve; ++itSrv) 
    20171971      { 
     
    20892043      list<CArray<int,1> > list_indZoom, list_writtenInd, list_indGlob; 
    20902044 
    2091       boost::unordered_map<int, vector<size_t> >::const_iterator itIndex, iteIndex; 
     2045      std::unordered_map<int, vector<size_t> >::const_iterator itIndex, iteIndex; 
    20922046      iteIndex = indSrv_[serverSize].end(); 
    20932047      for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) 
     
    21902144      list<CArray<bool,1> > list_mask; 
    21912145 
    2192       boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
     2146      std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
    21932147      iteMap = indSrv_[serverSize].end(); 
    21942148      for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) 
     
    22372191      list<CArray<double,1> > list_area; 
    22382192 
    2239       boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
     2193      std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
    22402194      iteMap = indSrv_[serverSize].end(); 
    22412195      for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) 
     
    22882242      list<CArray<double,2> > list_boundslon, list_boundslat; 
    22892243 
    2290       boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
     2244      std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
    22912245      iteMap = indSrv_[serverSize].end(); 
    22922246      for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) 
     
    24052359      } 
    24062360 
    2407       boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
     2361      std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 
    24082362      iteMap = indSrv_[serverSize].end(); 
    24092363      for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) 
     
    26072561    int zoom_jend_glob = global_zoom_jbegin + global_zoom_nj - 1; 
    26082562 
    2609     zoom_ibegin.setValue(global_zoom_ibegin > ibegin ? global_zoom_ibegin : ibegin); 
     2563    zoom_ibegin.setValue(global_zoom_ibegin > ibegin ? global_zoom_ibegin.getValue() : ibegin); 
    26102564    int zoom_iend = zoom_iend_glob < iend ? zoom_iend_glob : iend ; 
    26112565    zoom_ni.setValue(zoom_iend-zoom_ibegin+1); 
    26122566 
    2613     zoom_jbegin.setValue(global_zoom_jbegin > jbegin ? global_zoom_jbegin : jbegin); 
     2567    zoom_jbegin.setValue(global_zoom_jbegin > jbegin ? global_zoom_jbegin.getValue() : jbegin); 
    26142568    int zoom_jend = zoom_jend_glob < jend ? zoom_jend_glob : jend ; 
    26152569    zoom_nj.setValue(zoom_jend-zoom_jbegin+1); 
     
    26702624   
    26712625    if (nbMaskInd != globalLocalIndexMap_.size()) 
    2672       info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes." 
    2673                << "Something must be wrong with mask index "<< std::endl; 
     2626      info (0) << "If domain " << this->getDomainOutputName() <<" does not have overlapped regions between processes " 
     2627               << "something must be wrong with mask index "<< std::endl; 
    26742628 
    26752629    nbMaskInd = globalLocalIndexMap_.size(); 
     
    27462700     
    27472701      if (nbLonInd != globalLocalIndexMap_.size()) 
    2748         info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes." 
    2749                  << "Something must be wrong with longitude index "<< std::endl; 
     2702        info (0) << "If domain " << this->getDomainOutputName() <<" does not have overlapped regions between processes " 
     2703                 << "something must be wrong with longitude index "<< std::endl; 
    27502704 
    27512705      nbLonInd = globalLocalIndexMap_.size(); 
     
    28302784     
    28312785      if (nbLatInd != globalLocalIndexMap_.size()) 
    2832         info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes." 
    2833                 << "Something must be wrong with latitude index "<< std::endl; 
     2786        info (0) << "If domain " << this->getDomainOutputName() <<" does not have overlapped regions between processes " 
     2787                << "something must be wrong with latitude index "<< std::endl; 
    28342788 
    28352789      nbLatInd = globalLocalIndexMap_.size(); 
     
    29122866 
    29132867      if (nbAreaInd != globalLocalIndexMap_.size()) 
    2914         info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes." 
    2915                  << "Something must be wrong with area index "<< std::endl; 
     2868        info (0) << "If domain " << this->getDomainOutputName() <<" does not have overlapped regions between processes " 
     2869                 << "something must be wrong with area index "<< std::endl; 
    29162870 
    29172871      nbAreaInd = globalLocalIndexMap_.size(); 
  • XIOS/dev/branch_openmp/src/node/domain.hpp

    r1460 r1545  
    216216 
    217217/** Global index of each client sent to server: map<serverSize, map<serverRank, indexes>> */ 
    218          std::map<int, boost::unordered_map<int, vector<size_t> > > indSrv_; 
     218         std::map<int, std::unordered_map<int, vector<size_t> > > indSrv_; 
    219219         // std::map<CContextClient*, std::map<int, vector<int> > > indWrittenSrv_; // Global written index of each client sent to server 
    220220         std::vector<int> indexesToWrite; 
     
    230230         TransMapTypes transformationMap_;          
    231231         bool isUnstructed_; 
    232          boost::unordered_map<size_t,size_t> globalLocalIndexMap_; 
     232         std::unordered_map<size_t,size_t> globalLocalIndexMap_; 
    233233        
    234234       private: 
  • XIOS/dev/branch_openmp/src/node/field.cpp

    r1482 r1545  
    219219      // Gather all data from different clients       
    220220      recvDataSrv.resize(storeClient.numElements()); 
    221       recvFoperationSrv = boost::shared_ptr<func::CFunctor>(new func::CInstant(recvDataSrv)); 
     221      recvFoperationSrv = std::shared_ptr<func::CFunctor>(new func::CInstant(recvDataSrv)); 
    222222    } 
    223223 
     
    505505    if (!nstepMaxRead) 
    506506    { 
    507        //MPI_Allreduce(MPI_IN_PLACE, &nstepMax, 1, MPI_INT, MPI_MAX, context->server->intraComm); 
    508507       MPI_Allreduce(&nstepMax, &nstepMax, 1, MPI_INT, MPI_MAX, context->server->intraComm); 
    509508       nstepMaxRead = true; 
     
    720719   //---------------------------------------------------------------- 
    721720 
    722    boost::shared_ptr<COutputPin> CField::getInstantDataFilter() 
     721   std::shared_ptr<COutputPin> CField::getInstantDataFilter() 
    723722   { 
    724723     return instantDataFilter; 
     
    988987              << "An operation must be defined for field \"" << getId() << "\"."); 
    989988 
    990       boost::shared_ptr<func::CFunctor> functor; 
     989      std::shared_ptr<func::CFunctor> functor; 
    991990      CArray<double, 1> dummyData; 
    992991 
     
    10311030     { 
    10321031        if (!instantDataFilter) 
    1033           instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid,true)); 
     1032          instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid,true)); 
    10341033 
    10351034 
     
    10391038         if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 
    10401039         { 
    1041            fileServerWriterFilter = boost::shared_ptr<CFileServerWriterFilter>(new CFileServerWriterFilter(gc, this)); 
     1040           fileServerWriterFilter = std::shared_ptr<CFileServerWriterFilter>(new CFileServerWriterFilter(gc, this)); 
    10421041           instantDataFilter->connectOutput(fileServerWriterFilter, 0); 
    10431042         } 
     
    10471046     { 
    10481047       if (!instantDataFilter) 
    1049          instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true)); 
     1048         instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true)); 
    10501049 
    10511050             // If the field data is to be read by the client or/and written to a file 
     
    10541053         if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 
    10551054         { 
    1056            fileWriterFilter = boost::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 
     1055           fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 
    10571056           instantDataFilter->connectOutput(fileWriterFilter, 0); 
    10581057         } 
     
    10681067         { 
    10691068           boost::scoped_ptr<IFilterExprNode> expr(parseExpr(getExpression() + '\0')); 
    1070            boost::shared_ptr<COutputPin> filter = expr->reduce(gc, *this); 
     1069           std::shared_ptr<COutputPin> filter = expr->reduce(gc, *this); 
    10711070 
    10721071           // Check if a spatial transformation is needed 
     
    10771076             if (grid && grid != gridRef && grid->hasTransform()) 
    10781077             { 
    1079                  std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, detectMissingValues, defaultValue);  
     1078                 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, detectMissingValues, defaultValue);  
    10801079 
    10811080               filter->connectOutput(filters.first, 0); 
     
    10931092         { 
    10941093           checkTimeAttributes(); 
    1095            instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
     1094           instantDataFilter = serverSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
    10961095                                                                                                       detectMissingValues, defaultValue)); 
    10971096         } 
     
    10991098         { 
    11001099            if (check_if_active.isEmpty()) check_if_active = false;  
    1101             instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, false, NoneDu, false, 
     1100            instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, false, NoneDu, false, 
    11021101                                                                                                        detectMissingValues, defaultValue)); 
    11031102         } 
     
    11091108         if (!read_access.isEmpty() && read_access) 
    11101109         { 
    1111            storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid, 
     1110           storeFilter = std::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid, 
    11121111                                                                          detectMissingValues, defaultValue)); 
    11131112           instantDataFilter->connectOutput(storeFilter, 0); 
     
    11161115         if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 
    11171116         { 
    1118            fileWriterFilter = boost::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 
     1117           fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 
    11191118           getTemporalDataFilter(gc, file->output_freq)->connectOutput(fileWriterFilter, 0); 
    11201119         } 
     
    11301129    * \return the output pin corresponding to the field reference 
    11311130    */ 
    1132    boost::shared_ptr<COutputPin> CField::getFieldReference(CGarbageCollector& gc) 
     1131   std::shared_ptr<COutputPin> CField::getFieldReference(CGarbageCollector& gc) 
    11331132   { 
    11341133     if (instantDataFilter || field_ref.isEmpty()) 
     
    11391138     fieldRef->buildFilterGraph(gc, false); 
    11401139 
    1141      std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters; 
     1140     std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters; 
    11421141     // Check if a spatial transformation is needed 
    11431142     if (grid && grid != fieldRef->grid && grid->hasTransform()) 
     
    11481147     } 
    11491148     else 
    1150        filters.first = filters.second = boost::shared_ptr<CFilter>(new CPassThroughFilter(gc)); 
     1149       filters.first = filters.second = std::shared_ptr<CFilter>(new CPassThroughFilter(gc)); 
    11511150 
    11521151     fieldRef->getInstantDataFilter()->connectOutput(filters.first, 0); 
     
    11641163    * \return the output pin corresponding to a self reference 
    11651164    */ 
    1166    boost::shared_ptr<COutputPin> CField::getSelfReference(CGarbageCollector& gc) 
     1165   std::shared_ptr<COutputPin> CField::getSelfReference(CGarbageCollector& gc) 
    11671166   { 
    11681167     if (instantDataFilter || !hasExpression()) 
     
    11801179         { 
    11811180           checkTimeAttributes(); 
    1182            serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
     1181           serverSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, freq_offset, true, 
    11831182                                                                                   detectMissingValues, defaultValue)); 
    11841183         } 
     
    11971196         { 
    11981197           if (check_if_active.isEmpty()) check_if_active = false; 
    1199            clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, NoneDu, false, 
     1198           clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, NoneDu, false, 
    12001199                                                                                   detectMissingValues, defaultValue)); 
    12011200         } 
     
    12171216    * \return the output pin corresponding to the requested temporal filter 
    12181217    */ 
    1219    boost::shared_ptr<COutputPin> CField::getTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq) 
    1220    { 
    1221      std::map<CDuration, boost::shared_ptr<COutputPin> >::iterator it = temporalDataFilters.find(outFreq); 
     1218   std::shared_ptr<COutputPin> CField::getTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq) 
     1219   { 
     1220     std::map<CDuration, std::shared_ptr<COutputPin> >::iterator it = temporalDataFilters.find(outFreq); 
    12221221 
    12231222     if (it == temporalDataFilters.end()) 
     
    12301229 
    12311230       const bool detectMissingValues = (!detect_missing_value.isEmpty()  && detect_missing_value == true); 
    1232        boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 
     1231       std::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 
    12331232                                                                             CContext::getCurrent()->getCalendar()->getInitDate(), 
    12341233                                                                             freq_op, freq_offset, outFreq, detectMissingValues)); 
     
    12511250    */ 
    12521251    
    1253    boost::shared_ptr<COutputPin> CField::getSelfTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq) 
     1252   std::shared_ptr<COutputPin> CField::getSelfTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq) 
    12541253   { 
    12551254     if (instantDataFilter || !hasExpression()) 
     
    12681267 
    12691268       const bool detectMissingValues = (!detect_missing_value.isEmpty() && detect_missing_value == true); 
    1270        boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 
     1269       std::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 
    12711270                                                                             CContext::getCurrent()->getCalendar()->getInitDate(), 
    12721271                                                                             freq_op, freq_offset, outFreq, detectMissingValues)); 
     
    13191318        std::vector<CScalar*> vecScalar; 
    13201319        std::vector<int> axisDomainOrderTmp; 
     1320 
     1321        std::vector<CDomain*> vecDomRef; 
     1322        std::vector<CAxis*> vecAxisRef; 
     1323        std::vector<CScalar*> vecScalarRef; 
     1324 
    13211325         
    13221326        if (!domain_ref.isEmpty()) 
     
    13261330          { 
    13271331            vecDom.push_back(CDomain::get(domain_ref)); 
     1332            vecDomRef.push_back(CDomain::createDomain()); 
     1333            vecDomRef.back()->domain_ref=domain_ref; 
    13281334            axisDomainOrderTmp.push_back(2); 
    13291335          } 
    1330           else 
    1331             ERROR("CField::solveGridReference(void)", 
    1332                   << "Invalid reference to domain '" << domain_ref.getValue() << "'."); 
     1336          else  ERROR("CField::solveGridReference(void)", 
     1337                      << "Invalid reference to domain '" << domain_ref.getValue() << "'."); 
    13331338        } 
    13341339 
     
    13381343          { 
    13391344            vecAxis.push_back(CAxis::get(axis_ref)); 
     1345            vecAxisRef.push_back(CAxis::createAxis()); 
     1346            vecAxisRef.back()->axis_ref=axis_ref; 
    13401347            axisDomainOrderTmp.push_back(1); 
    13411348          } 
    1342           else 
    1343             ERROR("CField::solveGridReference(void)", 
    1344                   << "Invalid reference to axis '" << axis_ref.getValue() << "'."); 
     1349          else  ERROR("CField::solveGridReference(void)", 
     1350                      << "Invalid reference to axis '" << axis_ref.getValue() << "'."); 
    13451351        } 
    13461352 
     
    13501356          { 
    13511357            vecScalar.push_back(CScalar::get(scalar_ref)); 
     1358            vecScalarRef.push_back(CScalar::createScalar()); 
     1359            vecScalarRef.back()->scalar_ref=scalar_ref; 
    13521360            axisDomainOrderTmp.push_back(0); 
    13531361          } 
    1354           else 
    1355             ERROR("CField::solveGridReference(void)", 
    1356                   << "Invalid reference to scalar '" << scalar_ref.getValue() << "'."); 
     1362          else ERROR("CField::solveGridReference(void)", 
     1363                     << "Invalid reference to scalar '" << scalar_ref.getValue() << "'."); 
    13571364        } 
    13581365         
     
    13651372        // Warning: the gridId shouldn't be set as the grid_ref since it could be inherited 
    13661373        StdString gridId = CGrid::generateId(vecDom, vecAxis, vecScalar,axisDomainOrder); 
    1367         if (CGrid::has(gridId)) 
    1368           this->grid = CGrid::get(gridId); 
    1369         else 
    1370           this->grid = CGrid::createGrid(gridId, vecDom, vecAxis, vecScalar,axisDomainOrder); 
     1374        if (CGrid::has(gridId)) this->grid = CGrid::get(gridId); 
     1375        else  this->grid = CGrid::createGrid(gridId, vecDomRef, vecAxisRef, vecScalarRef,axisDomainOrder); 
    13711376      } 
    13721377      else 
    13731378      { 
    1374         if (CGrid::has(grid_ref)) 
    1375           this->grid = CGrid::get(grid_ref); 
    1376         else 
    1377           ERROR("CField::solveGridReference(void)", 
    1378                 << "Invalid reference to grid '" << grid_ref.getValue() << "'."); 
     1379        if (CGrid::has(grid_ref)) this->grid = CGrid::get(grid_ref); 
     1380        else  ERROR("CField::solveGridReference(void)", 
     1381                     << "Invalid reference to grid '" << grid_ref.getValue() << "'."); 
    13791382      } 
    13801383   } 
     
    16211624   } 
    16221625 
     1626 
     1627   /*! 
     1628    * Send all Attributes to server. This method is overloaded, since only grid_ref attribute 
     1629    * must be sent to server and not domain_ref/axis_ref/scalar_ref.  
     1630    */ 
     1631     
     1632   void CField::sendAllAttributesToServer(CContextClient* client) 
     1633   { 
     1634     if (grid_ref.isEmpty()) 
     1635     { 
     1636       grid_ref=grid->getId() ; 
     1637       SuperClass::sendAllAttributesToServer(client) ; 
     1638       grid_ref.reset(); 
     1639     } 
     1640     else SuperClass::sendAllAttributesToServer(client) ; 
     1641   } 
     1642     
    16231643   void CField::sendAddVariable(const string& id, CContextClient* client) 
    16241644   { 
     
    16701690     bool isFieldRead  = file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read; 
    16711691     bool isFieldWrite = file && ( file->mode.isEmpty() ||  file->mode == CFile::mode_attr::write); 
    1672      if (isFieldRead && operation.getValue() != "instant") 
     1692     if (isFieldRead && !(operation.getValue() == "instant" || operation.getValue() == "once") )      
    16731693       ERROR("void CField::checkTimeAttributes(void)", 
    16741694             << "Unsupported operation for field '" << getFieldOutputName() << "'." << std::endl 
  • XIOS/dev/branch_openmp/src/node/field.hpp

    r1460 r1545  
    9292         template <int N> void getData(CArray<double, N>& _data) const; 
    9393 
    94          boost::shared_ptr<COutputPin> getInstantDataFilter(); 
     94         std::shared_ptr<COutputPin> getInstantDataFilter(); 
    9595 
    9696         /// Mutateur /// 
     
    143143          
    144144          
    145          boost::shared_ptr<COutputPin> getFieldReference(CGarbageCollector& gc); 
    146          boost::shared_ptr<COutputPin> getSelfReference(CGarbageCollector& gc); 
    147          boost::shared_ptr<COutputPin> getTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq); 
    148          boost::shared_ptr<COutputPin> getSelfTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq); 
     145         std::shared_ptr<COutputPin> getFieldReference(CGarbageCollector& gc); 
     146         std::shared_ptr<COutputPin> getSelfReference(CGarbageCollector& gc); 
     147         std::shared_ptr<COutputPin> getTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq); 
     148         std::shared_ptr<COutputPin> getSelfTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq); 
    149149 
    150150//         virtual void fromBinary(StdIStream& is); 
     
    161161        template <int N> void setData(const CArray<double, N>& _data); 
    162162        static bool dispatchEvent(CEventServer& event); 
     163        void sendAllAttributesToServer(CContextClient* client) ;  
    163164        void sendUpdateData(const CArray<double,1>& data); 
    164165        void sendUpdateData(const CArray<double,1>& data, CContextClient* client); 
     
    225226         bool mustAutoTrigger; 
    226227 
    227          map<int,boost::shared_ptr<func::CFunctor> > foperation_srv; 
     228         map<int,std::shared_ptr<func::CFunctor> > foperation_srv; 
    228229 
    229230         // map<int, CArray<double,1> > data_srv; 
    230231         CArray<double,1> recvDataSrv; 
    231232          
    232          boost::shared_ptr<func::CFunctor> recvFoperationSrv; 
     233         std::shared_ptr<func::CFunctor> recvFoperationSrv; 
    233234         string content; 
    234235 
     
    257258 
    258259         //! The output pin of the filter providing the instant data for the field 
    259          boost::shared_ptr<COutputPin> instantDataFilter; 
     260         std::shared_ptr<COutputPin> instantDataFilter; 
    260261         //! The output pin of the filters providing the result of the field's temporal operation 
    261          std::map<CDuration, boost::shared_ptr<COutputPin>, DurationFakeLessComparator> temporalDataFilters; 
     262         std::map<CDuration, std::shared_ptr<COutputPin>, DurationFakeLessComparator> temporalDataFilters; 
    262263         //! The output pin of the filter providing the instant data for self references 
    263          boost::shared_ptr<COutputPin> selfReferenceFilter; 
     264         std::shared_ptr<COutputPin> selfReferenceFilter; 
    264265         //! The source filter for data provided by the client 
    265          boost::shared_ptr<CSourceFilter> clientSourceFilter; 
     266         std::shared_ptr<CSourceFilter> clientSourceFilter; 
    266267         //! The source filter for data provided by the server 
    267          boost::shared_ptr<CSourceFilter> serverSourceFilter; 
     268         std::shared_ptr<CSourceFilter> serverSourceFilter; 
    268269         //! The terminal filter which stores the instant data 
    269          boost::shared_ptr<CStoreFilter> storeFilter; 
     270         std::shared_ptr<CStoreFilter> storeFilter; 
    270271         //! The terminal filter which writes the data to file 
    271          boost::shared_ptr<CFileWriterFilter> fileWriterFilter; 
     272         std::shared_ptr<CFileWriterFilter> fileWriterFilter; 
    272273         //! The terminal filter which writes data to file 
    273          boost::shared_ptr<CFileServerWriterFilter> fileServerWriterFilter; 
     274         std::shared_ptr<CFileServerWriterFilter> fileServerWriterFilter; 
    274275   }; // class CField 
    275276 
  • XIOS/dev/branch_openmp/src/node/file.cpp

    r1491 r1545  
    2525   CFile::CFile(void) 
    2626      : CObjectTemplate<CFile>(), CFileAttributes() 
    27       , vFieldGroup(), data_out(), enabledFields() 
     27      , vFieldGroup(), data_out(), enabledFields(), fileComm(MPI_COMM_NULL) 
    2828      , isOpen(false), read_client(0), checkRead(false), allZoneEmpty(false) 
    2929   { 
     
    3434   CFile::CFile(const StdString & id) 
    3535      : CObjectTemplate<CFile>(id), CFileAttributes() 
    36       , vFieldGroup(), data_out(), enabledFields() 
     36      , vFieldGroup(), data_out(), enabledFields(), fileComm(MPI_COMM_NULL) 
    3737      , isOpen(false), read_client(0), checkRead(false), allZoneEmpty(false) 
    3838    { 
     
    6464   \return data writer object. 
    6565   */ 
    66    boost::shared_ptr<CDataOutput> CFile::getDataOutput(void) const 
     66   std::shared_ptr<CDataOutput> CFile::getDataOutput(void) const 
    6767   { 
    6868      return data_out; 
     
    7575   \return data reader object. 
    7676   */ 
    77    boost::shared_ptr<CDataInput> CFile::getDataInput(void) const 
     77   std::shared_ptr<CDataInput> CFile::getDataInput(void) const 
    7878   { 
    7979      return data_in; 
     
    479479           if (split_freq_format.isEmpty()) 
    480480           { 
    481              if (split_freq.getValue().second != 0) splitFormat = "%y%mo%d%h%mi%s"; 
    482              else if (split_freq.getValue().minute != 0) splitFormat = "%y%mo%d%h%mi"; 
    483              else if (split_freq.getValue().hour != 0) splitFormat = "%y%mo%d%h"; 
    484              else if (split_freq.getValue().day != 0) splitFormat = "%y%mo%d"; 
    485              else if (split_freq.getValue().month != 0) splitFormat = "%y%mo"; 
     481             CDuration splitFreq = split_freq.getValue(); 
     482             splitFreq.solveTimeStep(*CContext::getCurrent()->getCalendar()); 
     483             if (splitFreq.second != 0) splitFormat = "%y%mo%d%h%mi%s"; 
     484             else if (splitFreq.minute != 0) splitFormat = "%y%mo%d%h%mi"; 
     485             else if (splitFreq.hour != 0) splitFormat = "%y%mo%d%h"; 
     486             else if (splitFreq.day != 0) splitFormat = "%y%mo%d"; 
     487             else if (splitFreq.month != 0) splitFormat = "%y%mo"; 
    486488             else splitFormat = "%y"; 
    487489           } 
     
    543545         if (isOpen) data_out->closeFile(); 
    544546 
    545         data_out = boost::shared_ptr<CDataOutput>(new CNc4DataOutput(this, oss.str(), append, useClassicFormat, useCFConvention, 
     547        data_out = std::shared_ptr<CDataOutput>(new CNc4DataOutput(this, oss.str(), append, useClassicFormat, useCFConvention, 
    546548                                                              fileComm, multifile, isCollective, time_counter_name)); 
    547549        isOpen = true; 
    548550 
    549551        data_out->writeFile(CFile::get(this)); 
     552 
     553        if (!useCFConvention) sortEnabledFieldsForUgrid(); 
    550554 
    551555        // Do not recreate the file structure if opening an existing file 
     
    611615        if (split_freq_format.isEmpty()) 
    612616        { 
    613           if (split_freq.getValue().second != 0) splitFormat = "%y%mo%d%h%mi%s"; 
    614           else if (split_freq.getValue().minute != 0) splitFormat = "%y%mo%d%h%mi"; 
    615           else if (split_freq.getValue().hour != 0) splitFormat = "%y%mo%d%h"; 
    616           else if (split_freq.getValue().day != 0) splitFormat = "%y%mo%d"; 
    617           else if (split_freq.getValue().month != 0) splitFormat = "%y%mo"; 
     617          CDuration splitFreq = split_freq.getValue(); 
     618          splitFreq.solveTimeStep(*CContext::getCurrent()->getCalendar()); 
     619          if (splitFreq.second != 0) splitFormat = "%y%mo%d%h%mi%s"; 
     620          else if (splitFreq.minute != 0) splitFormat = "%y%mo%d%h%mi"; 
     621          else if (splitFreq.hour != 0) splitFormat = "%y%mo%d%h"; 
     622          else if (splitFreq.day != 0) splitFormat = "%y%mo%d"; 
     623          else if (splitFreq.month != 0) splitFormat = "%y%mo"; 
    618624          else splitFormat = "%y"; 
    619625        } 
     
    657663 
    658664      bool isCollective = par_access.isEmpty() || par_access == par_access_attr::collective; 
    659       bool  readMetaDataPar = true; 
     665      bool readMetaDataPar = true; 
    660666      if (!context->hasServer) readMetaDataPar = (read_metadata_par.isEmpty()) ? false : read_metadata_par; 
    661        
     667 
    662668      if (isOpen) data_out->closeFile(); 
    663       //if (time_counter_name.isEmpty()) data_in = boost::shared_ptr<CDataInput>(new CNc4DataInput(oss.str(), readComm, multifile, isCollective)); 
    664       //else data_in = boost::shared_ptr<CDataInput>(new CNc4DataInput(oss.str(), readComm, multifile, isCollective, time_counter_name)); 
    665669      bool ugridConvention = !convention.isEmpty() ? (convention == convention_attr::UGRID) : false; 
    666670      if (time_counter_name.isEmpty()) 
    667         data_in = boost::shared_ptr<CDataInput>(new CNc4DataInput(oss.str(), readComm, multifile, isCollective, readMetaDataPar, ugridConvention)); 
     671        data_in = std::shared_ptr<CDataInput>(new CNc4DataInput(oss.str(), readComm, multifile, isCollective, readMetaDataPar, ugridConvention)); 
    668672      else 
    669         data_in = boost::shared_ptr<CDataInput>(new CNc4DataInput(oss.str(), readComm, multifile, isCollective, readMetaDataPar, ugridConvention, time_counter_name)); 
    670  
     673        data_in = std::shared_ptr<CDataInput>(new CNc4DataInput(oss.str(), readComm, multifile, isCollective, readMetaDataPar, ugridConvention, time_counter_name)); 
    671674      isOpen = true; 
    672675    } 
     
    813816   } 
    814817 
     818   /*! 
     819   \brief Sorting domains with the same name (= describing the same mesh) in the decreasing order of nvertex for UGRID files. 
     820   This insures that the domain with the highest nvertex is written first and thus all known mesh connectivity is generated at once by this domain. 
     821   */ 
     822   void CFile::sortEnabledFieldsForUgrid() 
     823   { 
     824     int size = this->enabledFields.size(); 
     825     std::vector<int> domainNvertices; 
     826     std::vector<StdString> domainNames; 
     827 
     828     for (int i = 0; i < size; ++i) 
     829     { 
     830       std::vector<CDomain*> domain = this->enabledFields[i]->getRelGrid()->getDomains(); 
     831       if (domain.size() != 1) 
     832       { 
     833         ERROR("void CFile::sortEnabledFieldsForUgrid()", 
     834               "A domain, and only one, should be defined for grid "<< this->enabledFields[i]->getRelGrid()->getId() << "."); 
     835       } 
     836       StdString domainName = domain[0]->getDomainOutputName(); 
     837       int nvertex; 
     838       if (domain[0]->nvertex.isEmpty()) 
     839       { 
     840         ERROR("void CFile::sortEnabledFieldsForUgrid()", 
     841               "Attributes nvertex must be defined for domain "<< domain[0]->getDomainOutputName() << "."); 
     842       } 
     843       else 
     844         nvertex = domain[0]->nvertex; 
     845 
     846       for (int j = 0; j < i; ++j) 
     847       { 
     848         if (domainName == domainNames[j] && nvertex > domainNvertices[j]) 
     849         { 
     850           CField* tmpSwap = this->enabledFields[j]; 
     851           this->enabledFields[j] = this->enabledFields[i]; 
     852           this->enabledFields[i] = tmpSwap; 
     853           domainNames.push_back(domainNames[j]); 
     854           domainNames[j] = domainName; 
     855           domainNvertices.push_back(domainNvertices[j]); 
     856           domainNvertices[j] = nvertex; 
     857         } 
     858         else 
     859         { 
     860           domainNames.push_back(domainName); 
     861           domainNvertices.push_back(nvertex); 
     862         } 
     863       } 
     864       if (i==0) 
     865       { 
     866         domainNames.push_back(domainName); 
     867         domainNvertices.push_back(nvertex); 
     868       } 
     869     } 
     870   } 
     871 
    815872   void CFile::sendGridOfEnabledFields() 
    816873   {  
  • XIOS/dev/branch_openmp/src/node/file.hpp

    r1460 r1545  
    1313#include "attribute_enum_impl.hpp" 
    1414#include "context_client.hpp" 
    15 //#include "mpi.hpp" 
     15 
    1616 
    1717namespace xios { 
     
    7272         /// Accesseurs /// 
    7373         const StdString getFileOutputName(void) const; 
    74          boost::shared_ptr<CDataOutput> getDataOutput(void) const; 
    75          boost::shared_ptr<CDataInput> getDataInput(void) const; 
     74         std::shared_ptr<CDataOutput> getDataOutput(void) const; 
     75         std::shared_ptr<CDataInput> getDataInput(void) const; 
    7676         CFieldGroup* getVirtualFieldGroup(void) const; 
    7777         CVariableGroup* getVirtualVariableGroup(void) const; 
     
    119119         void checkGridOfEnabledFields(); 
    120120         void sendGridOfEnabledFields(); 
    121          void sendGridComponentOfEnabledFields();    
     121         void sendGridComponentOfEnabledFields(); 
     122 
     123         void sortEnabledFieldsForUgrid(); 
    122124 
    123125         // Add component into file 
     
    185187         CFieldGroup* vFieldGroup; 
    186188         CVariableGroup* vVariableGroup; 
    187          boost::shared_ptr<CDataOutput> data_out; 
    188          boost::shared_ptr<CDataInput> data_in; 
     189         std::shared_ptr<CDataOutput> data_out; 
     190         std::shared_ptr<CDataInput> data_in; 
    189191         std::vector<CField*> enabledFields; 
    190192 
  • XIOS/dev/branch_openmp/src/node/grid.cpp

    r1460 r1545  
    783783 
    784784         // Compute mapping between client and server 
    785          std::vector<boost::unordered_map<size_t,std::vector<int> > > indexServerOnElement; 
     785         std::vector<std::unordered_map<size_t,std::vector<int> > > indexServerOnElement; 
    786786         CServerDistributionDescription serverDistributionDescription(getGlobalDimension(), client->serverSize); 
    787787         std::vector<int> serverZeroIndex = serverDistributionDescription.computeServerGlobalByElement(indexServerOnElement, 
     
    889889      \param [out] globalIndexOnServer global index of grid and its corresponding rank of server. 
    890890   */ 
    891    void CGrid::computeIndexByElement(const std::vector<boost::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
     891   void CGrid::computeIndexByElement(const std::vector<std::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
    892892                                     const CContextClient* client, 
    893893                                     CClientServerMapping::GlobalIndexMap& globalIndexOnServer) 
     
    942942 
    943943     std::vector<std::vector<bool> > elementOnServer(nbElement, std::vector<bool>(serverSize, false)); 
    944      std::vector<boost::unordered_map<int,std::vector<size_t> > > globalElementIndexOnServer(nbElement); 
     944     std::vector<std::unordered_map<int,std::vector<size_t> > > globalElementIndexOnServer(nbElement); 
    945945     CArray<int,1> nbIndexOnServer(serverSize); // Number of distributed global index held by each client for each server 
    946946     // Number of temporary distributed global index held by each client for each server 
     
    950950     { 
    951951       nbIndexOnServer = 0; 
    952        const boost::unordered_map<size_t,std::vector<int> >& indexServerElement = indexServerOnElement[idx]; 
     952       const std::unordered_map<size_t,std::vector<int> >& indexServerElement = indexServerOnElement[idx]; 
    953953       const CArray<size_t,1>& globalIndexElementOnClient = globalIndexElement[idx]; 
    954954       CClientClientDHTInt clientClientDHT(indexServerElement, client->intraComm); 
  • XIOS/dev/branch_openmp/src/node/grid.hpp

    r1460 r1545  
    288288        void checkAttributesAfterTransformation(); 
    289289        void setTransformationAlgorithms(); 
    290         void computeIndexByElement(const std::vector<boost::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
     290        void computeIndexByElement(const std::vector<std::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
    291291                                   const CContextClient* client, 
    292292                                   CClientServerMapping::GlobalIndexMap& globalIndexOnServer); 
  • XIOS/dev/branch_openmp/src/node/mesh.cpp

    r1328 r1545  
    77#include "mesh.hpp" 
    88using namespace ep_lib; 
     9#include <boost/functional/hash.hpp> 
    910 
    1011namespace xios { 
     
    3233  } 
    3334 
    34   //std::map <StdString, CMesh> CMesh::meshList = std::map <StdString, CMesh>(); 
    35   //std::map <StdString, vector<int> > CMesh::domainList = std::map <StdString, vector<int> >(); 
    36  
    3735  std::map <StdString, CMesh> *CMesh::meshList_ptr = 0; 
    3836  std::map <StdString, vector<int> > *CMesh::domainList_ptr = 0; 
     
    5048    if(CMesh::meshList_ptr == NULL)   CMesh::meshList_ptr   = new std::map <StdString, CMesh>(); 
    5149 
    52     //CMesh::domainList[meshName].push_back(nvertex); 
    5350    CMesh::domainList_ptr->at(meshName).push_back(nvertex); 
    5451 
    55     //if ( CMesh::meshList.begin() != CMesh::meshList.end() ) 
    5652    if ( CMesh::meshList_ptr->begin() != CMesh::meshList_ptr->end() ) 
    5753    { 
    58       //for (std::map<StdString, CMesh>::iterator it=CMesh::meshList.begin(); it!=CMesh::meshList.end(); ++it) 
    5954      for (std::map<StdString, CMesh>::iterator it=CMesh::meshList_ptr->begin(); it!=CMesh::meshList_ptr->end(); ++it) 
    6055      { 
    6156        if (it->first == meshName) 
    62           //return &meshList[meshName]; 
    6357          return &meshList_ptr->at(meshName); 
    6458        else 
    6559        { 
    6660          CMesh newMesh; 
    67           //CMesh::meshList.insert( make_pair(meshName, newMesh) ); 
    6861          CMesh::meshList_ptr->insert( make_pair(meshName, newMesh) ); 
    69           //return &meshList[meshName]; 
    7062          return &meshList_ptr->at(meshName); 
    7163        } 
     
    7567    { 
    7668      CMesh newMesh; 
    77       //CMesh::meshList.insert( make_pair(meshName, newMesh) ); 
    7869      CMesh::meshList_ptr->insert( make_pair(meshName, newMesh) ); 
    79       //return &meshList[meshName]; 
    8070      return &meshList_ptr->at(meshName); 
    8171    } 
     
    151141    } 
    152142 
    153  
    154 ///---------------------------------------------------------------- 
    155 /*! 
    156  * \fn size_t CMesh::nodeIndex (double lon, double lat) 
    157  * Returns its index if a node exists; otherwise adds the node and returns -1. 
    158  * Precision check is implemented with two hash values for each dimension, longitude and latitude. 
    159  * \param [in] lon Node longitude in degrees. 
    160  * \param [in] lat Node latitude in degrees ranged from 0 to 360. 
    161  * \return node index if a node exists; -1 otherwise 
    162  */ 
    163   size_t CMesh::nodeIndex (double lon, double lat) 
    164   { 
    165     double minBoundLon = 0. ; 
    166     double maxBoundLon = 360. ; 
    167     double minBoundLat = -90 ; 
    168     double maxBoundLat = 90 ; 
    169     double prec=1e-11 ; 
    170     double precLon=prec ; 
    171     double precLat=prec ; 
    172  
    173     size_t maxsize_t=numeric_limits<size_t>::max() ; 
    174     if ( (maxBoundLon-minBoundLon)/maxsize_t > precLon) precLon=(maxBoundLon-minBoundLon)/maxsize_t ; 
    175     if ( (maxBoundLat-minBoundLat)/maxsize_t > precLat) precLat=(maxBoundLat-minBoundLat)/maxsize_t ; 
    176  
    177     size_t iMinLon=0 ; 
    178     size_t iMaxLon=(maxBoundLon-minBoundLon)/precLon ; 
    179     size_t iMinLat=0 ; 
    180     size_t iMaxLat=(maxBoundLat-minBoundLat)/precLat ; 
    181  
    182     size_t hash0,hash1,hash2,hash3 ; 
    183     size_t lon0,lon1,lat0,lat1 ; 
    184  
    185     lon0=(lon-minBoundLon)/precLon ; 
    186     if ( ((lon0+1)*precLon + lon0*precLon)/2 > lon-minBoundLon) 
    187     { 
    188       if (lon0==iMinLon) lon1=iMaxLon ; 
    189       else lon1=lon0-1 ; 
    190     } 
    191     else 
    192     { 
    193       if (lon0==iMaxLon) lon1=iMinLon ; 
    194       else lon1=lon0+1 ; 
    195     } 
    196  
    197     lat0=(lat-minBoundLat)/precLat ; 
    198     if ( ((lat0+1)*precLat + lat0*precLat)/2 > lat-minBoundLat) 
    199     { 
    200       if (lat0==iMinLat) lat1=lat0 ; 
    201       else lat1=lat0-1 ; 
    202     } 
    203     else 
    204     { 
    205       if (lat0==iMaxLat) lat1=lat0 ; 
    206       else lat1=lat0+1 ; 
    207     } 
    208  
    209     hash0=hashPair(lon0,lat0) ; 
    210     hash1=hashPair(lon0,lat1) ; 
    211     hash2=hashPair(lon1,lat0) ; 
    212     hash3=hashPair(lon1,lat1) ; 
    213  
    214     boost::unordered_map<size_t, size_t>::iterator end = hashed_map_nodes.end() ; 
    215     size_t mapSize = hashed_map_nodes.size(); 
    216     if (hashed_map_nodes.find(hash0)==end && hashed_map_nodes.find(hash1)==end && hashed_map_nodes.find(hash2)==end && hashed_map_nodes.find(hash3)==end) 
    217     { 
    218       hashed_map_nodes[hash0] = mapSize ; 
    219       hashed_map_nodes[hash1] = mapSize + 1; 
    220       hashed_map_nodes[hash2] = mapSize + 2; 
    221       hashed_map_nodes[hash3] = mapSize + 3; 
    222       return -1; 
    223     } 
    224     else 
    225       return ( (hashed_map_nodes[hash0]+1) / 4 ); 
    226  
    227   } // nodeIndex() 
    228  
    229143///---------------------------------------------------------------- 
    230144/*! 
     
    313227 * \param [in] bounds_lat Array of boundary latitudes. Its size depends on the element type. 
    314228 */ 
    315   void CMesh::createMesh(const CArray<double, 1>& lonvalue, const CArray<double, 1>& latvalue, 
    316             const CArray<double, 2>& bounds_lon, const CArray<double, 2>& bounds_lat) 
    317   { 
    318     int nvertex = (bounds_lon.numElements() == 0) ? 1 : bounds_lon.rows(); 
    319  
    320     if (nvertex == 1) 
    321     { 
    322       nbNodes_ = lonvalue.numElements(); 
    323       node_lon.resizeAndPreserve(nbNodes_); 
    324       node_lat.resizeAndPreserve(nbNodes_); 
    325       for (int nn = 0; nn < nbNodes_; ++nn) 
    326       { 
    327         if (map_nodes.find(make_pair (lonvalue(nn), latvalue(nn))) == map_nodes.end()) 
    328         { 
    329           map_nodes[make_pair (lonvalue(nn), latvalue(nn))] = nn ; 
    330           node_lon(nn) = lonvalue(nn); 
    331           node_lat(nn) = latvalue(nn); 
    332         } 
    333       } 
    334     } 
    335     else if (nvertex == 2) 
    336     { 
    337       nbEdges_ = bounds_lon.shape()[1]; 
    338  
    339       // Create nodes and edge_node connectivity 
    340       node_lon.resizeAndPreserve(nbEdges_*nvertex); // Max possible number of nodes 
    341       node_lat.resizeAndPreserve(nbEdges_*nvertex); 
    342       edge_nodes.resizeAndPreserve(nvertex, nbEdges_); 
    343  
    344       for (int ne = 0; ne < nbEdges_; ++ne) 
    345       { 
    346         for (int nv = 0; nv < nvertex; ++nv) 
    347         { 
    348           if (map_nodes.find(make_pair (bounds_lon(nv, ne), bounds_lat(nv ,ne))) == map_nodes.end()) 
    349           { 
    350             map_nodes[make_pair (bounds_lon(nv, ne), bounds_lat(nv, ne))] = nbNodes_ ; 
    351             edge_nodes(nv,ne) = nbNodes_ ; 
    352             node_lon(nbNodes_) = bounds_lon(nv, ne); 
    353             node_lat(nbNodes_) = bounds_lat(nv, ne); 
    354             ++nbNodes_ ; 
    355           } 
    356           else 
    357             edge_nodes(nv,ne) = map_nodes[make_pair (bounds_lon(nv, ne), bounds_lat(nv ,ne))]; 
    358         } 
    359       } 
    360       node_lon.resizeAndPreserve(nbNodes_); 
    361       node_lat.resizeAndPreserve(nbNodes_); 
    362  
    363       // Create edges 
    364       edge_lon.resizeAndPreserve(nbEdges_); 
    365       edge_lat.resizeAndPreserve(nbEdges_); 
    366  
    367       for (int ne = 0; ne < nbEdges_; ++ne) 
    368       { 
    369         if (map_edges.find(make_ordered_pair (edge_nodes(0,ne), edge_nodes(1,ne))) == map_edges.end()) 
    370         { 
    371           map_edges[make_ordered_pair ( edge_nodes(0,ne), edge_nodes(1,ne) )] = ne ; 
    372           edge_lon(ne) = lonvalue(ne); 
    373           edge_lat(ne) = latvalue(ne); 
    374         } 
    375  
    376       } 
    377       edgesAreWritten = true; 
    378     } 
    379     else 
    380     { 
    381       nbFaces_ = bounds_lon.shape()[1]; 
    382    
    383       // Create nodes and face_node connectivity 
    384       node_lon.resizeAndPreserve(nbFaces_*nvertex);  // Max possible number of nodes 
    385       node_lat.resizeAndPreserve(nbFaces_*nvertex); 
    386       face_nodes.resize(nvertex, nbFaces_); 
    387    
    388       for (int nf = 0; nf < nbFaces_; ++nf) 
    389       { 
    390         for (int nv = 0; nv < nvertex; ++nv) 
    391         { 
    392           if (map_nodes.find(make_pair (bounds_lon(nv, nf), bounds_lat(nv ,nf))) == map_nodes.end()) 
    393           { 
    394             map_nodes[make_pair (bounds_lon(nv, nf), bounds_lat(nv, nf))] = nbNodes_ ; 
    395             face_nodes(nv,nf) = nbNodes_ ; 
    396             node_lon(nbNodes_) = bounds_lon(nv, nf); 
    397             node_lat(nbNodes_) = bounds_lat(nv ,nf); 
    398             ++nbNodes_ ; 
    399           } 
    400           else 
    401           { 
    402             face_nodes(nv,nf) = map_nodes[make_pair (bounds_lon(nv, nf), bounds_lat(nv ,nf))]; 
    403           } 
    404         } 
    405       } 
    406       node_lon.resizeAndPreserve(nbNodes_); 
    407       node_lat.resizeAndPreserve(nbNodes_); 
    408    
    409       // Create edges and edge_nodes connectivity 
    410       edge_lon.resizeAndPreserve(nbFaces_*nvertex); // Max possible number of edges 
    411       edge_lat.resizeAndPreserve(nbFaces_*nvertex); 
    412       edge_nodes.resizeAndPreserve(2, nbFaces_*nvertex); 
    413       edge_faces.resize(2, nbFaces_*nvertex); 
    414       face_edges.resize(nvertex, nbFaces_); 
    415       face_faces.resize(nvertex, nbFaces_); 
    416  
    417       vector<int> countEdges(nbFaces_*nvertex);   // needed in case if edges have been already generated 
    418       vector<int> countFaces(nbFaces_); 
    419       countEdges.assign(nbFaces_*nvertex, 0); 
    420       countFaces.assign(nbFaces_, 0); 
    421       int edge; 
    422       for (int nf = 0; nf < nbFaces_; ++nf) 
    423       { 
    424         for (int nv1 = 0; nv1 < nvertex; ++nv1) 
    425         { 
    426           int nv = 0; 
    427           int nv2 = (nv1 < nvertex -1 ) ? (nv1 + 1) : (nv1 + 1 - nvertex); // cyclic rotation 
    428           if (map_edges.find(make_ordered_pair (face_nodes(nv1,nf), face_nodes(nv2,nf))) == map_edges.end()) 
    429           { 
    430             map_edges[make_ordered_pair (face_nodes(nv1,nf), face_nodes(nv2,nf))] = nbEdges_ ; 
    431             face_edges(nv1,nf) = map_edges[make_ordered_pair (face_nodes(nv1,nf), face_nodes(nv2,nf))]; 
    432             edge_faces(0,nbEdges_) = nf; 
    433             edge_faces(1,nbEdges_) = -999; 
    434             face_faces(nv1,nf) = 999999; 
    435             edge_nodes(Range::all(),nbEdges_) = face_nodes(nv1,nf), face_nodes(nv2,nf); 
    436             edge_lon(nbEdges_) = ( abs( node_lon(face_nodes(nv1,nf)) - node_lon(face_nodes(nv2,nf))) < 180.) ? 
    437                         (( node_lon(face_nodes(nv1,nf)) + node_lon(face_nodes(nv2,nf))) * 0.5) : 
    438                         (( node_lon(face_nodes(nv1,nf)) + node_lon(face_nodes(nv2,nf))) * 0.5 -180.); 
    439             edge_lat(nbEdges_) = ( node_lat(face_nodes(nv1,nf)) + node_lat(face_nodes(nv2,nf)) ) * 0.5; 
    440             ++nbEdges_; 
    441           } 
    442           else 
    443           { 
    444             edge = map_edges[make_ordered_pair (face_nodes(nv1,nf), face_nodes(nv2,nf))]; 
    445             face_edges(nv1,nf) = edge; 
    446             if (edgesAreWritten) 
    447             { 
    448               edge_faces(countEdges[edge], edge) = nf; 
    449               if (countEdges[edge]==0) 
    450               { 
    451                 face_faces(nv1,nf) = 999999; 
    452               } 
    453               else 
    454               { 
    455                 int face1 = nf; // = edge_faces(1,edge) 
    456                 int face2 = edge_faces(0,edge); 
    457                 face_faces(countFaces[face1], face1) =  face2; 
    458                 face_faces(countFaces[face2], face2) =  face1; 
    459                 ++(countFaces[face1]); 
    460                 ++(countFaces[face2]); 
    461               } 
    462             } 
    463             else 
    464             { 
    465               edge_faces(1,edge) = nf; 
    466               int face1 = nf; // = edge_faces(1,edge) 
    467               int face2 = edge_faces(0,edge); 
    468               face_faces(countFaces[face1], face1) =  face2; 
    469               face_faces(countFaces[face2], face2) =  face1; 
    470               ++(countFaces[face1]); 
    471               ++(countFaces[face2]); 
    472             } 
    473             ++(countEdges[edge]); 
    474           } 
    475         } 
    476       } 
    477       edge_nodes.resizeAndPreserve(2, nbEdges_); 
    478       edge_faces.resizeAndPreserve(2, nbEdges_); 
    479       edge_lon.resizeAndPreserve(nbEdges_); 
    480       edge_lat.resizeAndPreserve(nbEdges_); 
    481  
    482       // Create faces 
    483       face_lon.resize(nbFaces_); 
    484       face_lat.resize(nbFaces_); 
    485       face_lon = lonvalue; 
    486       face_lat = latvalue; 
    487       facesAreWritten = true; 
    488  
    489     } // nvertex > 2 
    490      
    491   } // createMesh() 
    492229 
    493230///---------------------------------------------------------------- 
     
    547284 
    548285      // For determining the global edge index 
    549       size_t nbEdgesOnProc = nbEdges_; 
    550       size_t nbEdgesAccum; 
     286      unsigned long nbEdgesOnProc = nbEdges_; 
     287      unsigned long nbEdgesAccum; 
    551288      MPI_Scan(&nbEdgesOnProc, &nbEdgesAccum, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 
    552289      nbEdgesAccum -= nbEdges_; 
     
    677414         // Maps modified in this step: 
    678415         // nodeIdx2Idx = <idx, idxGlo> 
    679          int nodeCount = nodeIdx2Idx.size(); 
    680          int nodeStart, nbNodes; 
     416         unsigned long nodeCount = nodeIdx2Idx.size(); 
     417         unsigned long nodeStart, nbNodes; 
    681418         MPI_Scan(&nodeCount, &nodeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 
    682419         int nNodes = nodeStart; 
     
    770507 
    771508      // For determining the global face index 
    772       size_t nbFacesOnProc = nbFaces_; 
    773       size_t nbFacesAccum; 
     509      unsigned long nbFacesOnProc = nbFaces_; 
     510      unsigned long nbFacesAccum; 
    774511      MPI_Scan(&nbFacesOnProc, &nbFacesAccum, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 
    775512      nbFacesAccum -= nbFaces_; 
     
    895632        } 
    896633 
    897         int edgeStart, nbEdges; 
     634        unsigned long edgeStart, nbEdges; 
    898635        MPI_Scan(&edgeCount, &edgeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 
    899636        int nEdges = edgeStart; 
     
    1115852        } 
    1116853 
    1117         int edgeCount = edgeIdx2Idx.size(); 
    1118         int edgeStart, nbEdges; 
     854        unsigned long edgeCount = edgeIdx2Idx.size(); 
     855        unsigned long edgeStart, nbEdges; 
    1119856        MPI_Scan(&edgeCount, &edgeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 
    1120857        int nEdges = edgeStart; 
     
    13851122        // Maps modified in this step: 
    13861123        // nodeIdx2Idx = <idx, idxGlo> 
    1387         int nodeCount = nodeIdx2Idx.size(); 
    1388         int nodeStart, nbNodes; 
     1124        unsigned long nodeCount = nodeIdx2Idx.size(); 
     1125        unsigned long nodeStart, nbNodes; 
    13891126        MPI_Scan(&nodeCount, &nodeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 
    13901127        int nNodes = nodeStart; 
     
    15051242        } 
    15061243 
    1507         int edgeCount = edgeIdx2Idx.size(); 
    1508         int edgeStart, nbEdges; 
     1244        unsigned long edgeCount = edgeIdx2Idx.size(); 
     1245        unsigned long edgeStart, nbEdges; 
    15091246        MPI_Scan(&edgeCount, &edgeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 
    15101247        int nEdges = edgeStart; 
     
    21031840 
    21041841    // faceToFaces connectivity 
    2105     boost::unordered_map <int, int> mapFaces;  // mapFaces = < hash(face1, face2), hash> (the mapped value is irrelevant) 
     1842    std::unordered_map <int, int> mapFaces;  // mapFaces = < hash(face1, face2), hash> (the mapped value is irrelevant) 
    21061843    int maxNb = 20;                            // some assumption on the max possible number of neighboring cells 
    21071844    faceToFaces.resize(maxNb, nbFaces); 
     
    21601897    CArray<double, 2> faceToNodes (nvertex, nbFaces); 
    21611898 
    2162     boost::unordered_map <pair<double,double>, int> mapNodes; 
     1899    std::unordered_map <pairDouble, int, boost::hash<pairDouble> > mapNodes; 
    21631900 
    21641901    for (int nf = 0; nf < nbFaces; ++nf) 
     
    21761913 
    21771914    // faceToFaces connectivity 
    2178     boost::unordered_map <pair<int,int>, int> mapEdges; 
     1915    std::unordered_map <pairInt, int, boost::hash<pairInt> > mapEdges; 
    21791916    faceToFaces.resize(nvertex, nbFaces); 
    21801917    CArray<int, 2> edgeToFaces(2, nbFaces*nvertex); // max possible 
  • XIOS/dev/branch_openmp/src/node/mesh.hpp

    r1331 r1545  
    7676    private: 
    7777 
     78      typedef std::pair<double, double> pairDouble; 
     79      typedef std::pair<int, int> pairInt; 
     80 
    7881      int nbNodes_; 
    7982      int nbEdges_; 
     
    9396      vector<size_t> createHashes (const double, const double); 
    9497 
    95       size_t nodeIndex (double, double);                           // redundant in parallel version with epsilon precision 
    96       boost::unordered_map <size_t, size_t> hashed_map_nodes;      // redundant in parallel version with epsilon precision 
    97       boost::unordered_map <pair<double,double>, int> map_nodes;   // redundant in parallel version with epsilon precision 
    98       boost::unordered_map <pair<int,int>, int> map_edges;         // redundant in parallel version with epsilon precision 
    99  
    10098  };  
    10199 
  • XIOS/dev/branch_openmp/src/node/scalar.cpp

    r1460 r1545  
    2727   { /* Ne rien faire de plus */ } 
    2828 
    29    //std::map<StdString, ETranformationType> CScalar::transformationMapList_ = std::map<StdString, ETranformationType>(); 
     29 
    3030   std::map<StdString, ETranformationType> *CScalar::transformationMapList_ptr = 0; 
    31    //bool CScalar::dummyTransformationMapList_ = CScalar::initializeTransformationMap(CScalar::transformationMapList_); 
     31 
    3232   bool CScalar::initializeTransformationMap(std::map<StdString, ETranformationType>& m) 
    3333   { 
     
    175175 
    176176        nodeElementName = node.getElementName(); 
    177         //std::map<StdString, ETranformationType>::const_iterator ite = transformationMapList_.end(), it; 
    178177        if(CScalar::transformationMapList_ptr == 0) initializeTransformationMap(); 
    179178        std::map<StdString, ETranformationType>::const_iterator ite = transformationMapList_ptr->end(), it; 
    180         //it = transformationMapList_.find(nodeElementName); 
    181179        it = transformationMapList_ptr->find(nodeElementName); 
    182180        if (ite != it) 
  • XIOS/dev/branch_openmp/src/node/transformation.hpp

    r1460 r1545  
    3535      typedef std::map<ETranformationType, CreateTransformationCallBack> CallBackMap; 
    3636      static CallBackMap* transformationCreationCallBacks_; 
    37       //#pragma omp threadprivate(transformationCreationCallBacks_) 
    3837 
    3938      static bool registerTransformation(ETranformationType transType, CreateTransformationCallBack createFn); 
  • XIOS/dev/branch_openmp/src/object_factory.hpp

    r1544 r1545  
    22#define __XIOS_CObjectFactory__ 
    33 
    4 /// boost headers /// 
    5 #include <boost/shared_ptr.hpp> 
     4#include <memory> 
    65 
    76/// XIOS headers /// 
     
    2423 
    2524         template <typename U> 
    26             static  boost::shared_ptr<U> GetObject(const StdString & id); 
     25            static  std::shared_ptr<U> GetObject(const StdString & id); 
    2726 
    2827         template <typename U> 
    29             static  boost::shared_ptr<U> GetObject(const StdString& context,const StdString & id); 
     28            static  std::shared_ptr<U> GetObject(const StdString& context,const StdString & id); 
    3029 
    3130         template <typename U> 
    32             static  boost::shared_ptr<U> GetObject(const U * const object); 
     31            static  std::shared_ptr<U> GetObject(const U * const object); 
    3332 
    3433         template <typename U> 
     
    3837 
    3938         template <typename U> 
    40             static  const std::vector<boost::shared_ptr<U> > & 
     39            static  const std::vector<std::shared_ptr<U> > & 
    4140               GetObjectVector(const StdString & context); 
    42                //GetObjectVector(const StdString & context = CObjectFactory::GetCurrentContextId()); 
    4341 
    4442         /// Tests /// 
     
    5149         /// Instanciateur /// 
    5250         template <typename U> 
    53             static  boost::shared_ptr<U> CreateObject(const StdString & id = StdString("")); 
     51            static  std::shared_ptr<U> CreateObject(const StdString & id = StdString("")); 
    5452 
    5553         template <typename U> static const StdString& GetUIdBase(void); 
  • XIOS/dev/branch_openmp/src/object_factory_decl.cpp

    r1460 r1545  
    55{ 
    66#define macro(U) \ 
    7   template boost::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& id);  \ 
    8   template boost::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& context,const StdString& id); \ 
    9   template boost::shared_ptr<U> CObjectFactory::GetObject<U>(const U* const object); \ 
     7  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& id);  \ 
     8  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const StdString& context,const StdString& id); \ 
     9  template std::shared_ptr<U> CObjectFactory::GetObject<U>(const U* const object); \ 
    1010  template int CObjectFactory::GetObjectNum<U>(void); \ 
    1111  template int CObjectFactory::GetObjectIdNum<U>(void); \ 
    12   template const std::vector<boost::shared_ptr<U> >& CObjectFactory::GetObjectVector<U>(const StdString& context ); \ 
     12  template const std::vector<std::shared_ptr<U> >& CObjectFactory::GetObjectVector<U>(const StdString& context ); \ 
    1313  template bool CObjectFactory::HasObject<U>(const StdString& id); \ 
    1414  template bool CObjectFactory::HasObject<U>(const StdString& context,const StdString& id); \ 
    15   template boost::shared_ptr<U> CObjectFactory::CreateObject<U>(const StdString& id ); \ 
     15  template std::shared_ptr<U> CObjectFactory::CreateObject<U>(const StdString& id ); \ 
    1616  template const StdString& CObjectFactory::GetUIdBase<U>(void); \ 
    1717  template StdString CObjectFactory::GenUId<U>(void); \ 
  • XIOS/dev/branch_openmp/src/object_factory_impl.hpp

    r1460 r1545  
    1313         ERROR("CObjectFactory::GetObjectNum(void)", 
    1414               << "please define current context id !"); 
    15       //return (U::AllVectObj[CObjectFactory::CurrContext].size()); 
    1615      if(U::AllVectObj_ptr == NULL) return 0; 
    1716      return (*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr].size(); 
     
    2423         ERROR("CObjectFactory::GetObjectIdNum(void)", 
    2524               << "please define current context id !"); 
    26       //return (U::AllMapObj[CObjectFactory::CurrContext].size()); 
    2725      if(U::AllMapObj_ptr == NULL) return 0; 
    2826      return (*U::AllMapObj_ptr)[*CObjectFactory::CurrContext_ptr].size(); 
     
    3533         ERROR("CObjectFactory::HasObject(const StdString & id)", 
    3634               << "[ id = " << id << " ] please define current context id !"); 
    37       //return (U::AllMapObj[CObjectFactory::CurrContext].find(id) != 
    38       //        U::AllMapObj[CObjectFactory::CurrContext].end()); 
    3935      if(U::AllMapObj_ptr  == NULL)  return false; 
    4036      return ((*U::AllMapObj_ptr)[*CObjectFactory::CurrContext_ptr].find(id) != 
     
    4642      bool CObjectFactory::HasObject(const StdString & context, const StdString & id) 
    4743   { 
    48  
    49       // if (U::AllMapObj.find(context) == U::AllMapObj.end()) return false ; 
    50       // else return (U::AllMapObj[context].find(id) !=  U::AllMapObj[context].end()); 
    5144      if(U::AllMapObj_ptr  == NULL) return false; 
    5245 
     
    5649 
    5750   template <typename U> 
    58       boost::shared_ptr<U> CObjectFactory::GetObject(const U * const object) 
     51      std::shared_ptr<U> CObjectFactory::GetObject(const U * const object) 
    5952   { 
    60       if(U::AllVectObj_ptr == NULL) return (boost::shared_ptr<U>()); 
     53      if(U::AllVectObj_ptr == NULL) return (std::shared_ptr<U>()); 
    6154      if (CurrContext_ptr->size() == 0) 
    6255         ERROR("CObjectFactory::GetObject(const U * const object)", 
    6356               << "please define current context id !"); 
    64       //std::vector<boost::shared_ptr<U> > & vect = U::AllVectObj[CObjectFactory::CurrContext]; 
    65       std::vector<boost::shared_ptr<U> > & vect = (*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr]; 
     57      std::vector<std::shared_ptr<U> > & vect = (*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr]; 
    6658 
    67       typename std::vector<boost::shared_ptr<U> >::const_iterator 
     59      typename std::vector<std::shared_ptr<U> >::const_iterator 
    6860         it = vect.begin(), end = vect.end(); 
    6961 
    7062      for (; it != end; it++) 
    7163      { 
    72          boost::shared_ptr<U> ptr = *it; 
     64         std::shared_ptr<U> ptr = *it; 
    7365         if (ptr.get() == object) 
    7466            return (ptr); 
     
    7870               << "[type = " << U::GetName() << ", adress = " << object << "] " 
    7971               << "object was not found."); 
    80       return (boost::shared_ptr<U>()); // jamais atteint 
     72      return (std::shared_ptr<U>()); // jamais atteint 
    8173   } 
    8274 
    8375   template <typename U> 
    84       boost::shared_ptr<U> CObjectFactory::GetObject(const StdString & id) 
     76      std::shared_ptr<U> CObjectFactory::GetObject(const StdString & id) 
    8577   { 
    86       if(U::AllMapObj_ptr  == NULL) return (boost::shared_ptr<U>()); 
     78      if(U::AllMapObj_ptr  == NULL) return (std::shared_ptr<U>()); 
    8779      if (CurrContext_ptr->size() == 0) 
    8880         ERROR("CObjectFactory::GetObject(const StdString & id)", 
     
    9284               << "[ id = " << id << ", U = " << U::GetName() << " ] " 
    9385               << "object was not found."); 
    94  
    95       //cout<<"CObjectFactory::GetObject(const StdString & id)[ id = " << id << ", U = " << U::GetName() << " ] "<<endl; 
    96       if(id == "src_domain_regular_read") 
    97       { 
    98          //cout<<"match"<<endl; 
    99       } 
    100  
    101       //return (U::AllMapObj[CObjectFactory::CurrContext][id]); 
    10286      return (*U::AllMapObj_ptr)[*CObjectFactory::CurrContext_ptr][id]; 
    10387   } 
    10488 
    10589   template <typename U> 
    106       boost::shared_ptr<U> CObjectFactory::GetObject(const StdString & context, const StdString & id) 
     90      std::shared_ptr<U> CObjectFactory::GetObject(const StdString & context, const StdString & id) 
    10791   { 
    108       if(U::AllMapObj_ptr  == NULL) return (boost::shared_ptr<U>()); 
     92      if(U::AllMapObj_ptr  == NULL) return (std::shared_ptr<U>()); 
    10993 
    11094      if (!CObjectFactory::HasObject<U>(context,id)) 
     
    11296               << "[ id = " << id << ", U = " << U::GetName() <<", context = "<<context<< " ] " 
    11397               << "object was not found."); 
    114  
    115       //cout<<"CObjectFactory::GetObject(const StdString & context, const StdString & id)[ id = " << id << ", U = " << U::GetName() << " ] "<<endl; 
    116       if(id == "src_domain_regular_read") 
    117       { 
    118          //cout<<"match"<<endl; 
    119          boost::shared_ptr<U> value; 
    120       } 
    121       //return (U::AllMapObj[context][id]); 
    12298      return (*U::AllMapObj_ptr)[context][id]; 
    12399   } 
    124100 
    125101   template <typename U> 
    126    boost::shared_ptr<U> CObjectFactory::CreateObject(const StdString& id) 
     102   std::shared_ptr<U> CObjectFactory::CreateObject(const StdString& id) 
    127103   { 
    128       if(U::AllVectObj_ptr == NULL) U::AllVectObj_ptr = new xios_map<StdString, std::vector<boost::shared_ptr<U> > >; 
    129       if(U::AllMapObj_ptr  == NULL) U::AllMapObj_ptr  = new xios_map<StdString, xios_map<StdString, boost::shared_ptr<U> > >; 
     104      if(U::AllVectObj_ptr == NULL) U::AllVectObj_ptr = new xios_map<StdString, std::vector<std::shared_ptr<U> > >; 
     105      if(U::AllMapObj_ptr  == NULL) U::AllMapObj_ptr  = new xios_map<StdString, xios_map<StdString, std::shared_ptr<U> > >; 
    130106 
    131107      if (CurrContext_ptr->empty()) 
     
    139115      else 
    140116      { 
    141          boost::shared_ptr<U> value(new U(id.empty() ? CObjectFactory::GenUId<U>() : id)); 
    142  
    143          //U::AllVectObj[CObjectFactory::CurrContext].insert(U::AllVectObj[CObjectFactory::CurrContext].end(), value); 
    144          //U::AllMapObj[CObjectFactory::CurrContext].insert(std::make_pair(value->getId(), value)); 
     117         std::shared_ptr<U> value(new U(id.empty() ? CObjectFactory::GenUId<U>() : id)); 
    145118 
    146119         (*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr].insert((*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr].end(), value); 
    147120         (*U::AllMapObj_ptr) [*CObjectFactory::CurrContext_ptr].insert(std::make_pair(value->getId(), value)); 
    148          //cout<<"CObjectFactory::CreateObject(const StdString& id) [ id = " << id << " ]" <<endl; 
    149121 
    150122         return value; 
     
    153125 
    154126   template <typename U> 
    155       const std::vector<boost::shared_ptr<U> > & 
     127      const std::vector<std::shared_ptr<U> > & 
    156128         CObjectFactory::GetObjectVector(const StdString & context) 
    157129   { 
    158       //return (U::AllVectObj[context]); 
    159130      return (*U::AllVectObj_ptr)[context]; 
    160131   } 
  • XIOS/dev/branch_openmp/src/object_template.hpp

    r1460 r1545  
    7171 
    7272         /// Accesseur statique /// 
    73          static std::vector<boost::shared_ptr<DerivedType> > & 
     73         static std::vector<std::shared_ptr<DerivedType> > & 
    7474            GetAllVectobject(const StdString & contextId); 
    7575 
     
    8383         static T* get(const string& contextId, const string& id) ; 
    8484         T* get(void) ; 
    85          boost::shared_ptr<T> getShared(void) ; 
    86          static boost::shared_ptr<T> getShared(const T* ptr) ; 
     85         std::shared_ptr<T> getShared(void) ; 
     86         static std::shared_ptr<T> getShared(const T* ptr) ; 
    8787 
    8888         static T* create(const string& id=string("")) ; 
     
    108108         static xios_map<StdString, 
    109109                xios_map<StdString, 
    110                 boost::shared_ptr<DerivedType> > > *AllMapObj_ptr; 
     110                std::shared_ptr<DerivedType> > > *AllMapObj_ptr; 
    111111         #pragma omp threadprivate(AllMapObj_ptr) 
    112112         static xios_map<StdString, 
    113                 std::vector<boost::shared_ptr<DerivedType> > > *AllVectObj_ptr; 
     113                std::vector<std::shared_ptr<DerivedType> > > *AllVectObj_ptr; 
    114114         #pragma omp threadprivate(AllVectObj_ptr) 
    115115 
  • XIOS/dev/branch_openmp/src/object_template_impl.hpp

    r1544 r1545  
    2424      xios_map<StdString, 
    2525      xios_map<StdString, 
    26       //boost::shared_ptr<T> > > CObjectTemplate<T>::AllMapObj; 
    27       boost::shared_ptr<T> > > *CObjectTemplate<T>::AllMapObj_ptr = 0; 
     26      std::shared_ptr<T> > > *CObjectTemplate<T>::AllMapObj_ptr = 0; 
    2827 
    2928   template <class T> 
    3029      xios_map<StdString, 
    31       //std::vector<boost::shared_ptr<T> > > CObjectTemplate<T>::AllVectObj; 
    32       std::vector<boost::shared_ptr<T> > > *CObjectTemplate<T>::AllVectObj_ptr = 0; 
    33  
    34    template <class T> 
    35       //xios_map<StdString,long int> CObjectTemplate<T>::GenId; 
     30      std::vector<std::shared_ptr<T> > > *CObjectTemplate<T>::AllVectObj_ptr = 0; 
     31 
     32   template <class T> 
    3633      xios_map<StdString,long int> *CObjectTemplate<T>::GenId_ptr = 0; 
    3734 
     
    6663 
    6764   template <class T> 
    68       std::vector<boost::shared_ptr<T> > & 
     65      std::vector<std::shared_ptr<T> > & 
    6966         CObjectTemplate<T>::GetAllVectobject(const StdString & contextId) 
    7067   { 
    71       //return (CObjectTemplate<T>::AllVectObj[contextId]); 
    72     return (CObjectTemplate<T>::AllVectObj_ptr->at(contextId)); 
     68     return (CObjectTemplate<T>::AllVectObj_ptr->at(contextId)); 
    7369   } 
    7470 
     
    416412 
    417413   template <typename T> 
    418    boost::shared_ptr<T> CObjectTemplate<T>::getShared(const T* ptr) 
     414   std::shared_ptr<T> CObjectTemplate<T>::getShared(const T* ptr) 
    419415   { 
    420416     return CObjectFactory::GetObject<T>(ptr); 
     
    422418 
    423419   template <typename T> 
    424    boost::shared_ptr<T> CObjectTemplate<T>::getShared(void) 
     420   std::shared_ptr<T> CObjectTemplate<T>::getShared(void) 
    425421   { 
    426422     return CObjectFactory::GetObject<T>((T*)this); 
     
    430426   const vector<T*> CObjectTemplate<T>::getAll() 
    431427   { 
    432      int tmp_rank; 
    433      MPI_Comm_rank(MPI_COMM_WORLD, &tmp_rank); 
    434      if(tmp_rank==7) printf("getCurrentContextid() = %s\n", CObjectFactory::GetCurrentContextId()); 
    435      const vector< boost::shared_ptr<T> >& shared_vect= CObjectFactory::GetObjectVector<T>(CObjectFactory::GetCurrentContextId()); 
     428     const vector< std::shared_ptr<T> >& shared_vect= CObjectFactory::GetObjectVector<T>(CObjectFactory::GetCurrentContextId()); 
    436429     vector<T*> vect; 
    437430 
    438      typename vector<boost::shared_ptr<T> >::const_iterator it; 
     431     typename vector<std::shared_ptr<T> >::const_iterator it; 
    439432     for(it=shared_vect.begin();it!=shared_vect.end();++it) vect.push_back(it->get()); 
    440433     return vect; 
     
    444437   const vector<T*> CObjectTemplate<T>::getAll(const string & id) 
    445438   { 
    446      const vector< boost::shared_ptr<T> >& shared_vect= CObjectFactory::GetObjectVector<T>(id); 
     439     const vector< std::shared_ptr<T> >& shared_vect= CObjectFactory::GetObjectVector<T>(id); 
    447440     vector<T*> vect; 
    448441 
    449      typename vector<boost::shared_ptr<T> >::const_iterator it; 
     442     typename vector<std::shared_ptr<T> >::const_iterator it; 
    450443     for(it=shared_vect.begin();it!=shared_vect.end();++it) vect.push_back(it->get()); 
    451444     return vect; 
     
    482475     oss << iendl; 
    483476     oss << "#include <boost/multi_array.hpp>" << iendl; 
    484      oss << "#include <boost/shared_ptr.hpp>" << iendl; 
     477     oss << "#include <boostXXX/shared_ptr.hpp>" << iendl; 
    485478     oss << "#include \"xios.hpp\"" << iendl; 
    486479     oss << "#include \"attribute_template.hpp\"" << iendl; 
  • XIOS/dev/branch_openmp/src/parse_expr/filter_expr_node.cpp

    r1038 r1545  
    1111  { /* Nothing to do */ } 
    1212 
    13   boost::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    14   { 
    15     boost::shared_ptr<COutputPin> outputPin; 
     13  std::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     14  { 
     15    std::shared_ptr<COutputPin> outputPin; 
    1616 
    1717    if (fieldId == "this") 
     
    2121      CField* field = CField::get(fieldId); 
    2222      if (field == &thisField) 
    23         ERROR("boost::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
     23        ERROR("std::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    2424              << "The field " << fieldId << " has an invalid reference to itself. " 
    2525              << "Use the keyword \"this\" if you want to reference the input data sent to this field."); 
     
    2929    } 
    3030    else 
    31       ERROR("boost::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
     31      ERROR("std::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    3232            << "The field " << fieldId << " does not exist."); 
    3333 
     
    3939  { /* Nothing to do */ } 
    4040 
    41   boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    42   { 
    43     boost::shared_ptr<COutputPin> outputPin; 
     41  std::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     42  { 
     43    std::shared_ptr<COutputPin> outputPin; 
    4444 
    4545    if (fieldId == "this") 
     
    4949      CField* field = CField::get(fieldId); 
    5050      if (field == &thisField) 
    51         ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
     51        ERROR("std::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    5252              << "The field " << fieldId << " has an invalid reference to itself. " 
    5353              << "Use the keyword \"this\" if you want to reference the input data sent to this field."); 
     
    5757    } 
    5858    else 
    59       ERROR("boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
     59      ERROR("std::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const", 
    6060            << "The field " << fieldId << " does not exist."); 
    6161 
     
    7272  } 
    7373 
    74   boost::shared_ptr<COutputPin> CFilterUnaryOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    75   { 
    76     boost::shared_ptr<CUnaryArithmeticFilter> filter(new CUnaryArithmeticFilter(gc, opId)); 
     74  std::shared_ptr<COutputPin> CFilterUnaryOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     75  { 
     76    std::shared_ptr<CUnaryArithmeticFilter> filter(new CUnaryArithmeticFilter(gc, opId)); 
    7777    child->reduce(gc, thisField)->connectOutput(filter, 0); 
    7878    return filter; 
     
    8989  } 
    9090 
    91   boost::shared_ptr<COutputPin> CFilterScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    92   { 
    93     boost::shared_ptr<CScalarFieldArithmeticFilter> filter(new CScalarFieldArithmeticFilter(gc, opId, child1->reduce())); 
     91  std::shared_ptr<COutputPin> CFilterScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     92  { 
     93    std::shared_ptr<CScalarFieldArithmeticFilter> filter(new CScalarFieldArithmeticFilter(gc, opId, child1->reduce())); 
    9494    child2->reduce(gc, thisField)->connectOutput(filter, 0); 
    9595    return filter; 
     
    106106  } 
    107107 
    108   boost::shared_ptr<COutputPin> CFilterFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    109   { 
    110     boost::shared_ptr<CFieldScalarArithmeticFilter> filter(new CFieldScalarArithmeticFilter(gc, opId, child2->reduce())); 
     108  std::shared_ptr<COutputPin> CFilterFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     109  { 
     110    std::shared_ptr<CFieldScalarArithmeticFilter> filter(new CFieldScalarArithmeticFilter(gc, opId, child2->reduce())); 
    111111    child1->reduce(gc, thisField)->connectOutput(filter, 0); 
    112112    return filter; 
     
    123123  } 
    124124 
    125   boost::shared_ptr<COutputPin> CFilterFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    126   { 
    127     boost::shared_ptr<CFieldFieldArithmeticFilter> filter(new CFieldFieldArithmeticFilter(gc, opId)); 
     125  std::shared_ptr<COutputPin> CFilterFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     126  { 
     127    std::shared_ptr<CFieldFieldArithmeticFilter> filter(new CFieldFieldArithmeticFilter(gc, opId)); 
    128128    child1->reduce(gc, thisField)->connectOutput(filter, 0); 
    129129    child2->reduce(gc, thisField)->connectOutput(filter, 1); 
     
    145145  } 
    146146 
    147   boost::shared_ptr<COutputPin> CFilterScalarScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    148   { 
    149     boost::shared_ptr<CScalarScalarFieldArithmeticFilter> filter(new CScalarScalarFieldArithmeticFilter(gc, opId, child1->reduce(),child2->reduce())); 
     147  std::shared_ptr<COutputPin> CFilterScalarScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     148  { 
     149    std::shared_ptr<CScalarScalarFieldArithmeticFilter> filter(new CScalarScalarFieldArithmeticFilter(gc, opId, child1->reduce(),child2->reduce())); 
    150150    child3->reduce(gc, thisField)->connectOutput(filter, 0); 
    151151    return filter; 
     
    164164  } 
    165165 
    166   boost::shared_ptr<COutputPin> CFilterScalarFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    167   { 
    168     boost::shared_ptr<CScalarFieldScalarArithmeticFilter> filter(new CScalarFieldScalarArithmeticFilter(gc, opId, child1->reduce(),child3->reduce())); 
     166  std::shared_ptr<COutputPin> CFilterScalarFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     167  { 
     168    std::shared_ptr<CScalarFieldScalarArithmeticFilter> filter(new CScalarFieldScalarArithmeticFilter(gc, opId, child1->reduce(),child3->reduce())); 
    169169    child2->reduce(gc, thisField)->connectOutput(filter, 0); 
    170170    return filter; 
     
    183183  } 
    184184 
    185   boost::shared_ptr<COutputPin> CFilterScalarFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    186   { 
    187     boost::shared_ptr<CScalarFieldFieldArithmeticFilter> filter(new CScalarFieldFieldArithmeticFilter(gc, opId, child1->reduce())); 
     185  std::shared_ptr<COutputPin> CFilterScalarFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     186  { 
     187    std::shared_ptr<CScalarFieldFieldArithmeticFilter> filter(new CScalarFieldFieldArithmeticFilter(gc, opId, child1->reduce())); 
    188188    child2->reduce(gc, thisField)->connectOutput(filter, 0); 
    189189    child3->reduce(gc, thisField)->connectOutput(filter, 1); 
     
    204204  } 
    205205 
    206   boost::shared_ptr<COutputPin> CFilterFieldScalarScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    207   { 
    208     boost::shared_ptr<CFieldScalarScalarArithmeticFilter> filter(new CFieldScalarScalarArithmeticFilter(gc, opId, child2->reduce(),child3->reduce())); 
     206  std::shared_ptr<COutputPin> CFilterFieldScalarScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     207  { 
     208    std::shared_ptr<CFieldScalarScalarArithmeticFilter> filter(new CFieldScalarScalarArithmeticFilter(gc, opId, child2->reduce(),child3->reduce())); 
    209209    child1->reduce(gc, thisField)->connectOutput(filter, 0); 
    210210    return filter; 
     
    224224  } 
    225225 
    226   boost::shared_ptr<COutputPin> CFilterFieldScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    227   { 
    228     boost::shared_ptr<CFieldScalarFieldArithmeticFilter> filter(new CFieldScalarFieldArithmeticFilter(gc, opId, child2->reduce())); 
     226  std::shared_ptr<COutputPin> CFilterFieldScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     227  { 
     228    std::shared_ptr<CFieldScalarFieldArithmeticFilter> filter(new CFieldScalarFieldArithmeticFilter(gc, opId, child2->reduce())); 
    229229    child1->reduce(gc, thisField)->connectOutput(filter, 0); 
    230230    child3->reduce(gc, thisField)->connectOutput(filter, 1); 
     
    245245  } 
    246246 
    247   boost::shared_ptr<COutputPin> CFilterFieldFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    248   { 
    249     boost::shared_ptr<CFieldFieldScalarArithmeticFilter> filter(new CFieldFieldScalarArithmeticFilter(gc, opId, child3->reduce())); 
     247  std::shared_ptr<COutputPin> CFilterFieldFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     248  { 
     249    std::shared_ptr<CFieldFieldScalarArithmeticFilter> filter(new CFieldFieldScalarArithmeticFilter(gc, opId, child3->reduce())); 
    250250    child1->reduce(gc, thisField)->connectOutput(filter, 0); 
    251251    child2->reduce(gc, thisField)->connectOutput(filter, 1); 
     
    265265  } 
    266266 
    267   boost::shared_ptr<COutputPin> CFilterFieldFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
    268   { 
    269     boost::shared_ptr<CFieldFieldFieldArithmeticFilter> filter(new CFieldFieldFieldArithmeticFilter(gc, opId)); 
     267  std::shared_ptr<COutputPin> CFilterFieldFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const 
     268  { 
     269    std::shared_ptr<CFieldFieldFieldArithmeticFilter> filter(new CFieldFieldFieldArithmeticFilter(gc, opId)); 
    270270    child1->reduce(gc, thisField)->connectOutput(filter, 0); 
    271271    child2->reduce(gc, thisField)->connectOutput(filter, 1); 
  • XIOS/dev/branch_openmp/src/parse_expr/filter_expr_node.hpp

    r1038 r1545  
    33 
    44#include <string> 
    5 #include <boost/shared_ptr.hpp> 
    65#include <boost/smart_ptr/scoped_ptr.hpp> 
    76#include "scalar_expr_node.hpp" 
     
    2625     * \return the output pin of the filter producing the result of the expression  
    2726     */ 
    28     virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const = 0; 
     27    virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const = 0; 
    2928  }; 
    3029 
     
    4342      CFilterFieldExprNode(const std::string& fieldId); 
    4443 
    45       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     44      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    4645 
    4746    private: 
     
    6463      CFilterTemporalFieldExprNode(const std::string& fieldId); 
    6564 
    66       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     65      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    6766 
    6867    private: 
     
    8786      CFilterUnaryOpExprNode(const std::string& opId, IFilterExprNode* child); 
    8887 
    89       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     88      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    9089 
    9190    private: 
     
    112111      CFilterScalarFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2); 
    113112 
    114       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     113      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    115114 
    116115    private: 
     
    138137      CFilterFieldScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2); 
    139138 
    140       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     139      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    141140 
    142141    private: 
     
    163162      CFilterFieldFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2); 
    164163 
    165       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     164      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    166165 
    167166    private: 
     
    191190      CFilterScalarScalarFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3); 
    192191 
    193       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     192      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    194193 
    195194    private: 
     
    220219      CFilterScalarFieldScalarOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3); 
    221220 
    222       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     221      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    223222 
    224223    private: 
     
    249248      CFilterScalarFieldFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3); 
    250249 
    251       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     250      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    252251 
    253252    private: 
     
    279278      CFilterFieldScalarScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3); 
    280279 
    281       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     280      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    282281 
    283282    private: 
     
    308307      CFilterFieldScalarFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3); 
    309308 
    310       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     309      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    311310 
    312311    private: 
     
    336335      CFilterFieldFieldScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3); 
    337336 
    338       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     337      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    339338 
    340339    private: 
     
    365364      CFilterFieldFieldFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3); 
    366365 
    367       virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
     366      virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 
    368367 
    369368    private: 
  • XIOS/dev/branch_openmp/src/parse_expr/operator_expr.hpp

    r1482 r1545  
    254254    static inline double div_ss(double x, double y)   { return x / y; } 
    255255    static inline double pow_ss(double x, double y)   { return std::pow(x,y); } 
     256 
    256257    static inline double eq_ss(double x, double y) // specific check for NaN 
    257258    { 
     
    350351      else return Array<double,1>(x == y);  
    351352    } 
    352  
    353353    static inline CArray<double,1> lt_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x < y); } 
    354354    static inline CArray<double,1> gt_sf(double x, const CArray<double,1>& y)    { return Array<double,1>(x > y); } 
     
    367367      else return Array<double,1>(x != y); 
    368368    } 
    369  
    370  
    371  
    372369    static inline double cond_sss(double x, double y, double z)   { return (x==0) ? z : y ; } 
    373370 
  • XIOS/dev/branch_openmp/src/server.cpp

    r1533 r1545  
    3939 * \fn void CServer::initialize(void) 
    4040 * Creates intraComm for each possible type of servers (classical, primary or secondary). 
    41  * (For now the assumption is that there is one proc per secondary server pool.) 
    4241 * Creates interComm and stores them into the following lists: 
    4342 *   classical server -- interCommLeft 
     
    111110          else 
    112111          { 
     112            if (CXios::nbPoolsServer2 == 0) CXios::nbPoolsServer2 = reqNbProc; 
    113113            int firstSndSrvRank = srvRanks.size()*(100.-CXios::ratioServer2)/100. ; 
    114114            int poolLeader = firstSndSrvRank; 
    115115//*********** (1) Comment out the line below to set one process per pool 
    116 //            sndServerGlobalRanks.push_back(srvRanks[poolLeader]); 
     116            sndServerGlobalRanks.push_back(srvRanks[poolLeader]); 
    117117            int nbPools = CXios::nbPoolsServer2; 
    118118            if ( nbPools > reqNbProc || nbPools < 1) 
     
    140140                } 
    141141//*********** (2) Comment out the two lines below to set one process per pool 
    142 //                if (poolLeader < srvRanks.size()) 
    143 //                  sndServerGlobalRanks.push_back(srvRanks[poolLeader]); 
     142                if (poolLeader < srvRanks.size()) 
     143                  sndServerGlobalRanks.push_back(srvRanks[poolLeader]); 
    144144//*********** (3) Uncomment the line below to set one process per pool 
    145                 sndServerGlobalRanks.push_back(srvRanks[i]); 
     145//                sndServerGlobalRanks.push_back(srvRanks[i]); 
    146146              } 
    147147              else 
     
    189189              MPI_Comm_size(intraComm,&intraCommSize) ; 
    190190              MPI_Comm_rank(intraComm,&intraCommRank) ; 
     191 
     192              MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ; 
    191193              #pragma omp critical (_output) 
    192194              { 
     
    195197              } 
    196198 
    197               MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ; 
     199               
    198200              interCommLeft.push_back(newComm) ; 
    199201            } 
     
    213215              MPI_Comm_size(intraComm, &intraCommSize) ; 
    214216              MPI_Comm_rank(intraComm, &intraCommRank) ; 
     217               
     218              MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ; 
    215219              #pragma omp critical (_output) 
    216220              { 
     
    218222                       <<" intraCommRank :"<<intraCommRank<<"  clientLeader "<< clientLeader<<endl ; 
    219223              } 
    220               MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ; 
     224 
    221225              interCommLeft.push_back(newComm) ; 
    222226            } 
     
    228232            MPI_Comm_size(intraComm, &intraCommSize) ; 
    229233            MPI_Comm_rank(intraComm, &intraCommRank) ; 
     234 
     235            MPI_Intercomm_create(intraComm, 0, CXios::globalComm, sndServerGlobalRanks[i], 1, &newComm) ; 
    230236            #pragma omp critical (_output) 
    231237            { 
     
    233239                <<" intraCommRank :"<<intraCommRank<<"  clientLeader "<< sndServerGlobalRanks[i]<<endl ; 
    234240            } 
    235             MPI_Intercomm_create(intraComm, 0, CXios::globalComm, sndServerGlobalRanks[i], 1, &newComm) ; 
     241 
    236242            interCommRight.push_back(newComm) ; 
    237243          } 
     
    244250          MPI_Comm_size(intraComm, &intraCommSize) ; 
    245251          MPI_Comm_rank(intraComm, &intraCommRank) ; 
     252 
     253          MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 1, &newComm) ; 
    246254          #pragma omp critical (_output) 
    247255          { 
     
    250258          } 
    251259 
    252           MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 1, &newComm) ; 
    253260          interCommLeft.push_back(newComm) ; 
    254261        } 
     
    654661       if (flag==true) 
    655662       { 
    656          int my_count; 
    657663         counts.push_back(0); 
    658664         MPI_Get_count(&status,MPI_CHAR,&(counts.back())) ; 
    659665         buffers.push_back(new char[counts.back()]) ; 
    660          //requests.push_back(request); 
    661          //MPI_Irecv((void*)(buffers.back()),counts.back(),MPI_CHAR,root,2,intraComm,&(requests.back())) ; 
    662666         MPI_Irecv((void*)(buffers.back()),counts.back(),MPI_CHAR,root,2,intraComm,&request) ; 
    663667         requests.push_back(request); 
     
    817821      if (!fb->is_open()) 
    818822        ERROR("void CServer::openStream(const StdString& fileName, const StdString& ext, std::filebuf* fb)", 
    819               << std::endl << "Can not open <" << fileNameClient << "> file to write the server log(s)."); 
     823              << std::endl << "Can not open <" << fileNameClient.str() << "> file to write the server log(s)."); 
    820824    } 
    821825 
  • XIOS/dev/branch_openmp/src/server_distribution_description.cpp

    r1460 r1545  
    196196  \param [in] positionDimensionDistributed dimension of server on which we make the cut. 
    197197*/ 
    198 std::vector<int> CServerDistributionDescription::computeServerGlobalByElement(std::vector<boost::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
     198std::vector<int> CServerDistributionDescription::computeServerGlobalByElement(std::vector<std::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
    199199                                                                              int clientRank, 
    200200                                                                              int clientSize, 
     
    510510  Get global index calculated by computeServerGlobalIndexInRange 
    511511*/ 
    512 const boost::unordered_map<size_t,int>& CServerDistributionDescription::getGlobalIndexRange() const 
     512const std::unordered_map<size_t,int>& CServerDistributionDescription::getGlobalIndexRange() const 
    513513{ 
    514514  return globalIndex_; 
  • XIOS/dev/branch_openmp/src/server_distribution_description.hpp

    r1460 r1545  
    1313#include "xios_spl.hpp" 
    1414#include "array_new.hpp" 
    15 #include <boost/unordered_map.hpp> 
     15#include <unordered_map> 
    1616 
    1717namespace xios 
     
    3939    void computeServerDistribution(bool doComputeGlobalIndex = false, int positionDimensionDistributed = 1); 
    4040    std::vector<int> computeServerGlobalIndexInRange(const std::pair<size_t, size_t>& indexBeginEnd, int positionDimensionDistributed = 1); 
    41     std::vector<int> computeServerGlobalByElement(std::vector<boost::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
     41    std::vector<int> computeServerGlobalByElement(std::vector<std::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 
    4242                                                  int rank, 
    4343                                                  int clientSize, 
     
    4848    std::vector<std::vector<int> > getServerDimensionSizes() const; 
    4949    const std::vector<CArray<size_t,1> >& getGlobalIndex() const; 
    50     const boost::unordered_map<size_t,int>& getGlobalIndexRange() const; 
     50    const std::unordered_map<size_t,int>& getGlobalIndexRange() const; 
    5151    int getDimensionDistributed(); 
    5252 
     
    7373 
    7474    //!< In case we need only global index of one server with specific rank 
    75     boost::unordered_map<size_t,int> globalIndex_; 
     75    std::unordered_map<size_t,int> globalIndex_; 
    7676 
    7777    //!< Type of distribution on server side 
  • XIOS/dev/branch_openmp/src/timer.cpp

    r1328 r1545  
    1010namespace xios 
    1111{ 
    12   //std::map<std::string,CTimer> CTimer::allTimer; 
    1312  std::map<std::string,CTimer> *CTimer::allTimer_ptr = 0; 
    1413   
     
    5857    if(allTimer_ptr == NULL) allTimer_ptr = new std::map<std::string,CTimer>; 
    5958 
    60     //std::map<std::string,CTimer>::iterator it = allTimer.find(name); 
    6159    std::map<std::string,CTimer>::iterator it = allTimer_ptr->find(name); 
    62     //if (it == allTimer.end()) 
     60 
    6361    if (it == allTimer_ptr->end()) 
    6462      it = allTimer_ptr->insert(std::make_pair(name, CTimer(name))).first; 
    6563 
    66       //it = allTimer.insert(std::make_pair(name, CTimer(name))).first; 
    6764    return it->second; 
    6865  } 
     
    7269    std::ostringstream strOut ; 
    7370    if(allTimer_ptr == 0) allTimer_ptr = new std::map<std::string,CTimer>; 
    74     //for(std::map<std::string,CTimer>::iterator it=allTimer.begin();it!=allTimer.end();++it) 
     71 
    7572    for(std::map<std::string,CTimer>::iterator it=allTimer_ptr->begin();it!=allTimer_ptr->end();++it) 
    7673      strOut<<"Timer : "<<it->first<<"    -->   cumulated time : "<<it->second.getCumulatedTime()<<std::endl ; 
  • XIOS/dev/branch_openmp/src/timer.hpp

    r1331 r1545  
    2020      void reset(void); 
    2121      double getCumulatedTime(void); 
    22       //static std::map<std::string,CTimer> allTimer; 
    2322      static std::map<std::string,CTimer> *allTimer_ptr; 
    2423      #pragma omp threadprivate(allTimer_ptr) 
  • XIOS/dev/branch_openmp/src/transformation/Functions/reduction.hpp

    r1460 r1545  
    2323{ 
    2424public: 
    25   //static std::map<StdString,EReductionType> ReductionOperations; 
    2625  static std::map<StdString,EReductionType> *ReductionOperations_ptr; 
    2726  #pragma omp threadprivate(ReductionOperations_ptr) 
  • XIOS/dev/branch_openmp/src/transformation/axis_algorithm_extract_domain.cpp

    r1460 r1545  
    1313#include "grid.hpp" 
    1414#include "grid_transformation_factory_impl.hpp" 
    15 //#include "reduction.hpp" 
    1615 
    1716namespace xios { 
  • XIOS/dev/branch_openmp/src/transformation/axis_algorithm_inverse.cpp

    r1328 r1545  
    109109  } 
    110110 
    111   typedef boost::unordered_map<size_t, std::vector<double> > GlobalIndexMapFromSrcToDest; 
     111  typedef std::unordered_map<size_t, std::vector<double> > GlobalIndexMapFromSrcToDest; 
    112112  GlobalIndexMapFromSrcToDest globalIndexMapFromSrcToDest; 
    113113  TransformationIndexMap& transMap = this->transformationMapping_[0]; 
     
    127127  dhtIndexProcRank.computeIndexInfoMapping(globalSrcIndex); 
    128128  CClientClientDHTInt::Index2VectorInfoTypeMap& computedGlobalIndexOnProc = dhtIndexProcRank.getInfoIndexMap(); 
    129   boost::unordered_map<int, std::vector<size_t> > globalSrcIndexSendToProc; 
     129  std::unordered_map<int, std::vector<size_t> > globalSrcIndexSendToProc; 
    130130  for (int idx = 0; idx < localIndex; ++idx) 
    131131  { 
     
    138138  } 
    139139 
    140   boost::unordered_map<int, std::vector<size_t> >::const_iterator itbIndex = globalSrcIndexSendToProc.begin(), itIndex, 
     140  std::unordered_map<int, std::vector<size_t> >::const_iterator itbIndex = globalSrcIndexSendToProc.begin(), itIndex, 
    141141                                                                  iteIndex = globalSrcIndexSendToProc.end(); 
    142142  std::map<int,int> sendRankSizeMap,recvRankSizeMap; 
     
    176176  std::vector<MPI_Request> requests; 
    177177  std::vector<MPI_Status> status; 
    178   boost::unordered_map<int, unsigned long* > recvGlobalIndexSrc; 
    179   boost::unordered_map<int, double* > sendValueToDest; 
     178  std::unordered_map<int, unsigned long* > recvGlobalIndexSrc; 
     179  std::unordered_map<int, double* > sendValueToDest; 
    180180  for (std::map<int,int>::const_iterator itRecv = recvRankSizeMap.begin(); itRecv != recvRankSizeMap.end(); ++itRecv) 
    181181  { 
     
    189189  } 
    190190 
    191   boost::unordered_map<int, unsigned long* > sendGlobalIndexSrc; 
    192   boost::unordered_map<int, double* > recvValueFromSrc; 
     191  std::unordered_map<int, unsigned long* > sendGlobalIndexSrc; 
     192  std::unordered_map<int, double* > recvValueFromSrc; 
    193193  for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 
    194194  { 
     
    272272  delete [] recvSizeBuff; 
    273273 
    274   boost::unordered_map<int, double* >::const_iterator itChar; 
     274  std::unordered_map<int, double* >::const_iterator itChar; 
    275275  for (itChar = sendValueToDest.begin(); itChar != sendValueToDest.end(); ++itChar) 
    276276    delete [] itChar->second; 
    277277  for (itChar = recvValueFromSrc.begin(); itChar != recvValueFromSrc.end(); ++itChar) 
    278278    delete [] itChar->second; 
    279   boost::unordered_map<int, unsigned long* >::const_iterator itLong; 
     279  std::unordered_map<int, unsigned long* >::const_iterator itLong; 
    280280  for (itLong = sendGlobalIndexSrc.begin(); itLong != sendGlobalIndexSrc.end(); ++itLong) 
    281281    delete [] itLong->second; 
  • XIOS/dev/branch_openmp/src/transformation/axis_algorithm_reduce_axis.cpp

    r1460 r1545  
    1212#include "grid.hpp" 
    1313#include "grid_transformation_factory_impl.hpp" 
    14 //#include "reduction.hpp" 
    1514 
    1615namespace xios { 
     
    7271    CReductionAlgorithm::initReductionOperation(); 
    7372  } 
    74   //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]); 
     73 
    7574  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    7675} 
  • XIOS/dev/branch_openmp/src/transformation/axis_algorithm_reduce_domain.cpp

    r1460 r1545  
    1313#include "grid.hpp" 
    1414#include "grid_transformation_factory_impl.hpp" 
    15 //#include "reduction.hpp" 
     15 
    1616 
    1717namespace xios { 
     
    7474    CReductionAlgorithm::initReductionOperation(); 
    7575  } 
    76   //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]); 
    7776  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    7877  local = algo->local ; 
  • XIOS/dev/branch_openmp/src/transformation/domain_algorithm_interpolate.cpp

    r1540 r1545  
    88 */ 
    99#include "domain_algorithm_interpolate.hpp" 
    10 #include <boost/unordered_map.hpp> 
     10#include <unordered_map> 
    1111#include "context.hpp" 
    1212#include "context_client.hpp" 
     
    406406  CContext* context = CContext::getCurrent(); 
    407407  CContextClient* client=context->client; 
    408   //int mykey; 
    409   //ep_lib::MPI_Comm_rank(client->intraComm, &mykey); 
    410408 
    411409  ep_lib::MPI_Comm poleComme = MPI_COMM_NULL; 
    412410  ep_lib::MPI_Comm_split(client->intraComm, interMapValuePole.empty() ? 0 : 1, 0, &poleComme); 
    413   //ep_lib::MPI_Comm_split(client->intraComm, interMapValuePole.empty() ? 0 : 1, mykey, &poleComme); 
    414   //if (!poleComme.is_null()) 
    415411  if (poleComme!=MPI_COMM_NULL) 
    416412  { 
     
    540536  TransformationWeightMap& transWeight = this->transformationWeight_[0]; 
    541537 
    542   boost::unordered_map<size_t,int> globalIndexOfDomainDest; 
     538  std::unordered_map<size_t,int> globalIndexOfDomainDest; 
    543539  int ni = domainDest_->ni.getValue(); 
    544540  int nj = domainDest_->nj.getValue(); 
     
    816812  WriteNetCdf *netCdfWriter; 
    817813 
    818 //  #pragma omp barrier 
    819 //  #pragma omp master 
     814 
    820815  MPI_Barrier_local(client->intraComm); 
    821816  if(my_rank_loc==0) 
     
    843838  } 
    844839   
    845 //  #pragma omp barrier 
     840 
    846841  MPI_Barrier_local(client->intraComm); 
    847842   
     
    863858  MPI_Barrier_local(client->intraComm); 
    864859   
    865 //  #pragma omp barrier 
    866   cout<<"end write weight info"<< endl; 
     860 
    867861} 
    868862 
     
    953947       renormalizationFactor=1 ; 
    954948     } 
    955       
     949 
    956950    if (firstPass) 
    957951    { 
     
    969963      else 
    970964      { 
    971         dataOut(localIndex[idx].first) += *(dataInput + idx) * localIndex[idx].second;    
     965        dataOut(localIndex[idx].first) += *(dataInput + idx) * localIndex[idx].second; 
     966        allMissing(localIndex[idx].first) = allMissing(localIndex[idx].first) && false; // Reset flag to indicate not all data source are nan 
    972967      } 
    973968    } 
     
    999994      if (renormalizationFactor.numElements()>0) dataOut/=renormalizationFactor ; // In some case, process doesn't received any data for interpolation (mask) 
    1000995                                                                                 // so renormalizationFactor is not initialized 
    1001     }     
    1002   } 
    1003 } 
    1004  
    1005 } 
     996    } 
     997  } 
     998} 
     999 
     1000} 
  • XIOS/dev/branch_openmp/src/transformation/generic_algorithm_transformation.cpp

    r1482 r1545  
    5151      } 
    5252    } 
     53 
    5354  } 
    5455  else 
     
    164165  int nbClient = client->clientSize; 
    165166 
    166   typedef boost::unordered_map<int, std::vector<std::pair<int,double> > > SrcToDstMap; 
     167  typedef std::unordered_map<int, std::vector<std::pair<int,double> > > SrcToDstMap; 
    167168  int idx; 
    168169 
     
    286287        if (idx != elementPositionInGrid) 
    287288        { 
    288           boost::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
     289          std::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
    289290                                                                   ite = globalElementIndexOnProc_[idx].end(); 
    290291          for (it = itb; it != ite; ++it) it->second.resize(1); 
     
    300301        if (idx != elementPositionInGrid) 
    301302        { 
    302           boost::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
     303          std::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
    303304                                                                   ite = globalElementIndexOnProc_[idx].end(); 
    304305          for (it = itb; it != ite; ++it) procOfNonTransformedElements_.insert(it->first); 
     
    358359          set<int> tmpSet ;  
    359360          procList.swap(tmpSet) ; 
    360           boost::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
     361          std::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
    361362                                                                   ite = globalElementIndexOnProc_[idx].end(); 
    362363          for (it = itb; it != ite; ++it) 
     
    394395 
    395396    // Build mapping between global source element index and global destination element index. 
    396     boost::unordered_map<int,std::vector<size_t> >().swap(globalElementIndexOnProc_[elementPositionInGrid]); 
     397    std::unordered_map<int,std::vector<size_t> >().swap(globalElementIndexOnProc_[elementPositionInGrid]); 
    397398    std::set<int> tmpCounter; 
    398399    itTransWeight = itbTransWeight; 
     
    425426        if (idx != elementPositionInGrid) 
    426427        { 
    427           boost::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
     428          std::unordered_map<int,std::vector<size_t> >::iterator itb = globalElementIndexOnProc_[idx].begin(), it, 
    428429                                                                   ite = globalElementIndexOnProc_[idx].end(); 
    429430          for (it = itb; it != ite; ++it) it->second[0] = transPos(idxTrans); 
     
    455456void CGenericAlgorithmTransformation::computeGlobalGridIndexMapping(int elementPositionInGrid, 
    456457                                                                   const std::vector<int>& srcRank, 
    457                                                                    boost::unordered_map<int, std::vector<std::pair<int,double> > >& src2DstMap, 
     458                                                                   std::unordered_map<int, std::vector<std::pair<int,double> > >& src2DstMap, 
    458459                                                                   CGrid* gridSrc, 
    459460                                                                   CGrid* gridDst, 
    460                                                                    std::vector<boost::unordered_map<int,std::vector<size_t> > >& globalElementIndexOnProc, 
     461                                                                   std::vector<std::unordered_map<int,std::vector<size_t> > >& globalElementIndexOnProc, 
    461462                                                                   SourceDestinationIndexMap& globaIndexWeightFromSrcToDst) 
    462463{ 
     
    614615  
    615616      SourceDestinationIndexMap::iterator rankIt,rankIte ; 
    616       boost::unordered_map<size_t, std::vector<std::pair<size_t,double> > >::iterator globalSrcIndexIt, globalSrcIndexIte ; 
     617      std::unordered_map<size_t, std::vector<std::pair<size_t,double> > >::iterator globalSrcIndexIt, globalSrcIndexIte ; 
    617618      std::vector<std::pair<size_t,double> >::iterator vectIt,vectIte ; 
    618619    
     
    652653                                                                 CScalar* scalarSrc, 
    653654                                                                 CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    654                                                                  boost::unordered_map<int,std::vector<size_t> >& globalScalarIndexOnProc) 
     655                                                                 std::unordered_map<int,std::vector<size_t> >& globalScalarIndexOnProc) 
    655656{ 
    656657  CContext* context = CContext::getCurrent(); 
     
    676677                                                               CAxis* axisSrc, 
    677678                                                               CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    678                                                                boost::unordered_map<int,std::vector<size_t> >& globalAxisIndexOnProc) 
     679                                                               std::unordered_map<int,std::vector<size_t> >& globalAxisIndexOnProc) 
    679680{ 
    680681  CContext* context = CContext::getCurrent(); 
     
    745746                                                                 CDomain* domainSrc, 
    746747                                                                 CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    747                                                                  boost::unordered_map<int,std::vector<size_t> >& globalDomainIndexOnProc) 
     748                                                                 std::unordered_map<int,std::vector<size_t> >& globalDomainIndexOnProc) 
    748749{ 
    749750  CContext* context = CContext::getCurrent(); 
  • XIOS/dev/branch_openmp/src/transformation/generic_algorithm_transformation.hpp

    r1460 r1545  
    3838public: 
    3939  // Mapping between global index map of DESTINATION and its local index with pair of global index of SOURCE and weights 
    40   typedef boost::unordered_map<int, boost::unordered_map<size_t, std::vector<std::pair<size_t,double> > > > SourceDestinationIndexMap; 
     40  typedef std::unordered_map<int, std::unordered_map<size_t, std::vector<std::pair<size_t,double> > > > SourceDestinationIndexMap; 
    4141 
    4242protected: 
    43   typedef boost::unordered_map<size_t,int> GlobalLocalMap; 
     43  typedef std::unordered_map<size_t,int> GlobalLocalMap; 
    4444protected: 
    45   typedef boost::unordered_map<int, std::vector<int> > TransformationIndexMap; 
    46   typedef boost::unordered_map<int, std::vector<double> > TransformationWeightMap; 
    47   typedef boost::unordered_map<int, std::vector<int> > TransformationPositionMap; 
     45  typedef std::unordered_map<int, std::vector<int> > TransformationIndexMap; 
     46  typedef std::unordered_map<int, std::vector<double> > TransformationWeightMap; 
     47  typedef std::unordered_map<int, std::vector<int> > TransformationPositionMap; 
    4848 
    4949public: 
     
    108108  void computeGlobalGridIndexMapping(int elementPositionInGrid, 
    109109                                     const std::vector<int>& srcRank, 
    110                                      boost::unordered_map<int, std::vector<std::pair<int,double> > >& src2DstMap, 
     110                                     std::unordered_map<int, std::vector<std::pair<int,double> > >& src2DstMap, 
    111111                                     CGrid* gridDst, 
    112112                                     CGrid* gridSrc, 
    113                                      std::vector<boost::unordered_map<int,std::vector<size_t> > >& globalElementIndexOnProc, 
     113                                     std::vector<std::unordered_map<int,std::vector<size_t> > >& globalElementIndexOnProc, 
    114114                                     SourceDestinationIndexMap& globaIndexWeightFromSrcToDst); 
    115115 
     
    117117                                  CDomain* domainSrc, 
    118118                                  CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    119                                   boost::unordered_map<int,std::vector<size_t> >& globalDomainIndexOnProc); 
     119                                  std::unordered_map<int,std::vector<size_t> >& globalDomainIndexOnProc); 
    120120 
    121121  void computeExchangeAxisIndex(CAxis* axisDst, 
    122122                                CAxis* axisSrc, 
    123123                                CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    124                                 boost::unordered_map<int,std::vector<size_t> >& globalAxisIndexOnProc); 
     124                                std::unordered_map<int,std::vector<size_t> >& globalAxisIndexOnProc); 
    125125 
    126126  void computeExchangeScalarIndex(CScalar* scalarDst, 
    127127                                  CScalar* scalarSrc, 
    128128                                  CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    129                                   boost::unordered_map<int,std::vector<size_t> >& globalScalarIndexOnProc); 
     129                                  std::unordered_map<int,std::vector<size_t> >& globalScalarIndexOnProc); 
    130130 
    131131  void computePositionElements(CGrid* dst, CGrid* src); 
     
    151151  std::set<StdSize> indexElementSrc_; 
    152152 
    153   std::vector<boost::unordered_map<int,std::vector<size_t> > > globalElementIndexOnProc_; 
     153  std::vector<std::unordered_map<int,std::vector<size_t> > > globalElementIndexOnProc_; 
    154154 
    155155  std::vector<int> procContainSrcElementIdx_;  // List of processes containing source index of transformed elements 
  • XIOS/dev/branch_openmp/src/transformation/grid_transformation.cpp

    r1460 r1545  
    1515#include "mpi_tag.hpp" 
    1616#include "grid.hpp" 
    17 #include <boost/unordered_map.hpp> 
     17#include <unordered_map> 
    1818#include "timer.hpp" 
    1919 
     
    479479  SourceDestinationIndexMap::const_iterator itbIndex = globaIndexWeightFromSrcToDst.begin(), 
    480480                                            iteIndex = globaIndexWeightFromSrcToDst.end(), itIndex; 
    481   typedef boost::unordered_map<size_t, std::vector<std::pair<size_t,double> > > SendIndexMap; 
     481  typedef std::unordered_map<size_t, std::vector<std::pair<size_t,double> > > SendIndexMap; 
    482482  std::map<int,int> sendRankSizeMap,recvRankSizeMap; 
    483483  int connectedClient = globaIndexWeightFromSrcToDst.size(); 
     
    522522  std::vector<ep_lib::MPI_Request> requests(recvRankSizeMap.size()*2 + globaIndexWeightFromSrcToDst.size()*2); 
    523523  std::vector<ep_lib::MPI_Status> status; 
    524   boost::unordered_map<int, unsigned char* > recvMaskDst; 
    525   boost::unordered_map<int, unsigned long* > recvGlobalIndexSrc; 
     524  std::unordered_map<int, unsigned char* > recvMaskDst; 
     525  std::unordered_map<int, unsigned long* > recvGlobalIndexSrc; 
    526526  int requests_position = 0; 
    527527  for (std::map<int,int>::const_iterator itRecv = recvRankSizeMap.begin(); itRecv != recvRankSizeMap.end(); ++itRecv) 
     
    536536  } 
    537537 
    538   boost::unordered_map<int, CArray<size_t,1> > globalIndexDst; 
    539   boost::unordered_map<int, CArray<double,1> > weightDst; 
    540   boost::unordered_map<int, unsigned char* > sendMaskDst; 
    541   boost::unordered_map<int, unsigned long* > sendGlobalIndexSrc; 
     538  std::unordered_map<int, CArray<size_t,1> > globalIndexDst; 
     539  std::unordered_map<int, CArray<double,1> > weightDst; 
     540  std::unordered_map<int, unsigned char* > sendMaskDst; 
     541  std::unordered_map<int, unsigned long* > sendGlobalIndexSrc; 
    542542  for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 
    543543  { 
     
    666666  delete [] recvSizeBuff; 
    667667 
    668   boost::unordered_map<int, unsigned char* >::const_iterator itChar; 
     668  std::unordered_map<int, unsigned char* >::const_iterator itChar; 
    669669  for (itChar = sendMaskDst.begin(); itChar != sendMaskDst.end(); ++itChar) 
    670670    delete [] itChar->second; 
    671671  for (itChar = recvMaskDst.begin(); itChar != recvMaskDst.end(); ++itChar) 
    672672    delete [] itChar->second; 
    673   boost::unordered_map<int, unsigned long* >::const_iterator itLong; 
     673  std::unordered_map<int, unsigned long* >::const_iterator itLong; 
    674674  for (itLong = sendGlobalIndexSrc.begin(); itLong != sendGlobalIndexSrc.end(); ++itLong) 
    675675    delete [] itLong->second; 
  • XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_extract_axis.cpp

    r1460 r1545  
    1414#include "grid_transformation_factory_impl.hpp" 
    1515 
    16 //#include "reduction.hpp" 
     16 
    1717 
    1818namespace xios { 
  • XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_reduce_axis.cpp

    r1460 r1545  
    1313#include "grid.hpp" 
    1414#include "grid_transformation_factory_impl.hpp" 
    15 //#include "reduction.hpp" 
     15 
    1616 
    1717 
  • XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_reduce_domain.cpp

    r1460 r1545  
    1414#include "grid_transformation_factory_impl.hpp" 
    1515 
    16 //#include "reduction.hpp" 
    1716 
    1817namespace xios { 
     
    7574    CReductionAlgorithm::initReductionOperation(); 
    7675  } 
    77  
    78   //if (CReductionAlgorithm::ReductionOperations.end() == CReductionAlgorithm::ReductionOperations.find(op)) 
    7976  if (CReductionAlgorithm::ReductionOperations_ptr->end() == CReductionAlgorithm::ReductionOperations_ptr->find(op)) 
    8077    ERROR("CScalarAlgorithmReduceDomain::CScalarAlgorithmReduceDomain(CDomain* domainDestination, CDomain* domainSource, CReduceDomainToScalar* algo)", 
     
    8380       << "Scalar destination " << scalarDestination->getId()); 
    8481 
    85   //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]); 
    8682  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    8783  local = algo->local ; 
  • XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_reduce_scalar.cpp

    r1460 r1545  
    99#include "grid.hpp" 
    1010#include "grid_transformation_factory_impl.hpp" 
    11 //#include "reduction.hpp" 
     11 
    1212 
    1313 
     
    7676  } 
    7777   
    78   //if (CReductionAlgorithm::ReductionOperations.end() == CReductionAlgorithm::ReductionOperations.find(op)) 
    7978  if (CReductionAlgorithm::ReductionOperations_ptr->end() == CReductionAlgorithm::ReductionOperations_ptr->find(op)) 
    8079    ERROR("CScalarAlgorithmReduceScalar::CScalarAlgorithmReduceScalar(CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo)", 
     
    8281       << "Scalar source " <<scalarSource->getId() << std::endl 
    8382       << "Scalar destination " << scalarDestination->getId()); 
    84    
    85   //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]); 
     83 
    8684  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    8785} 
  • XIOS/dev/branch_openmp/src/xios.hpp

    r1328 r1545  
    66/// XIOS headers /// 
    77#include "data_output.hpp" 
    8 //#include "nc4_data_output.hpp" 
     8 
    99 
    1010 
    1111using namespace xios; 
    12 //using namespace xios::xml; 
    13 //using namespace xios::func; 
     12 
     13 
    1414 
    1515#endif //__XIOS__ 
  • XIOS/dev/branch_openmp/src/xios_server.f90

    r1482 r1545  
    44  INCLUDE "mpif.h" 
    55  INTEGER :: ierr 
    6  
    7      
     6   
    87    CALL xios_init_server 
    98     
  • XIOS/dev/branch_openmp/src/xios_spl.hpp

    r1460 r1545  
    66#include <string> 
    77#include <algorithm> 
     8#include <unordered_map> 
     9#include <memory> 
    810 
    911// standard C 
     
    2830 
    2931/// boost headers /// 
    30 #include <boost/unordered_map.hpp> 
    31 #include <boost/shared_ptr.hpp> 
    3232#include <boost/cast.hpp> 
    3333/// Map /// 
     
    5858#include "log.hpp" 
    5959using namespace std; 
    60 //using namespace boost ; 
     60using namespace boost ; 
    6161 
    6262 
Note: See TracChangeset for help on using the changeset viewer.