Changeset 1545 for XIOS/dev/branch_openmp/src
- Timestamp:
- 06/18/18 20:32:55 (6 years ago)
- Location:
- XIOS/dev/branch_openmp/src
- Files:
-
- 30 added
- 183 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/src/array.hpp
r591 r1545 4 4 /// boost headers /// 5 5 #include <boost/cstdint.hpp> 6 #include <boost/shared_ptr.hpp>7 6 #include <boost/multi_array.hpp> 8 7 -
XIOS/dev/branch_openmp/src/array_mac.hpp
r591 r1545 5 5 6 6 // Type Fortran 7 #define ARRAY(valuetype, numdims) boost::shared_ptr<CArray<valuetype, numdims> >7 #define ARRAY(valuetype, numdims) std::shared_ptr<CArray<valuetype, numdims> > 8 8 9 9 #define ARRAY_ASSIGN(value, valuetype, numdims, extent)\ -
XIOS/dev/branch_openmp/src/attribute_template_impl.hpp
r1482 r1545 66 66 inheritedValue.reset() ; 67 67 } 68 69 68 70 69 template <class T> … … 80 79 } 81 80 } 82 81 83 82 template <class T> 84 83 T CAttributeTemplate<T>::getValue(void) const … … 86 85 return CType<T>::get() ; 87 86 } 88 89 87 90 88 -
XIOS/dev/branch_openmp/src/buffer_client.cpp
r1520 r1545 15 15 size_t CClientBuffer::maxRequestSize = 0; 16 16 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) 19 19 , serverRank(serverRank) 20 20 , bufferSize(bufferSize) -
XIOS/dev/branch_openmp/src/buffer_client.hpp
r1460 r1545 43 43 44 44 CBufferOut* retBuffer; 45 ep_lib::MPI_Comm interComm;45 const ep_lib::MPI_Comm interComm; 46 46 }; 47 47 } -
XIOS/dev/branch_openmp/src/calendar_util.cpp
r1482 r1545 132 132 CDuration dur( dt0.getYear() - dt1.getYear(), dt0.getMonth() - dt1.getMonth() , dt0.getDay() - dt1.getDay(), 133 133 dt0.getHour() - dt1.getHour(), dt0.getMinute() - dt1.getMinute(), dt0.getSecond() - dt1.getSecond() ); 134 135 134 return (dur.resolve(dt0.getRelCalendar())); 136 135 } -
XIOS/dev/branch_openmp/src/client.cpp
r1460 r1545 18 18 MPI_Comm CClient::intraComm ; 19 19 MPI_Comm CClient::interComm ; 20 //std::list<MPI_Comm> CClient::contextInterComms;21 20 std::list<MPI_Comm> *CClient::contextInterComms_ptr = 0; 22 21 int CClient::serverLeader ; … … 110 109 MPI_Comm_size(intraComm,&intraCommSize) ; 111 110 MPI_Comm_rank(intraComm,&intraCommRank) ; 111 112 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, serverLeader, 0, &interComm) ; 112 113 #pragma omp critical (_output) 113 114 { … … 115 116 <<" intraCommRank :"<<intraCommRank<<" clientLeader "<< serverLeader<<endl ; 116 117 } 117 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, serverLeader, 0, &interComm) ; 118 //rank_ = intraCommRank; 118 119 119 } 120 120 else … … 198 198 CContext::setCurrent(id); 199 199 200 //contextInterComms.push_back(contextInterComm);201 200 if(contextInterComms_ptr == NULL) contextInterComms_ptr = new std::list<MPI_Comm>; 202 201 contextInterComms_ptr->push_back(contextInterComm); … … 234 233 context->initClient(contextComm,contextInterComm) ; 235 234 236 //contextInterComms.push_back(contextInterComm);237 235 if(contextInterComms_ptr == NULL) contextInterComms_ptr = new std::list<MPI_Comm>; 238 236 contextInterComms_ptr->push_back(contextInterComm); … … 260 258 } 261 259 262 //for (std::list<MPI_Comm>::iterator it = contextInterComms.begin(); it != contextInterComms.end(); it++)263 260 for (std::list<MPI_Comm>::iterator it = contextInterComms_ptr->begin(); it != contextInterComms_ptr->end(); it++) 264 261 MPI_Comm_free(&(*it)); … … 333 330 if (!fb->is_open()) 334 331 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)."); 336 333 } 337 334 -
XIOS/dev/branch_openmp/src/client_client_dht_template.hpp
r1328 r1545 15 15 #include "mpi.hpp" 16 16 #include "policy.hpp" 17 #include <boost/unordered_map.hpp>17 #include <unordered_map> 18 18 #include "dht_data_types.hpp" 19 19 … … 34 34 typedef T InfoType; 35 35 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; 39 39 40 40 public: -
XIOS/dev/branch_openmp/src/client_client_dht_template_impl.hpp
r1460 r1545 116 116 size_t index; 117 117 HashXIOS<size_t> hashGlobalIndex; 118 boost::unordered_map<size_t,int> nbIndices;118 std::unordered_map<size_t,int> nbIndices; 119 119 nbIndices.rehash(std::ceil(ssize/nbIndices.max_load_factor())); 120 120 for (int i = 0; i < ssize; ++i) … … 131 131 } 132 132 133 boost::unordered_map<int, size_t* > client2ClientIndex;133 std::unordered_map<int, size_t* > client2ClientIndex; 134 134 for (int idx = 0; idx < nbClient; ++idx) 135 135 { … … 191 191 if (0 != recvNbIndexClientCount[idx]) 192 192 recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, &request[request_position++]); 193 //recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, request);194 193 currentIndex += recvNbIndexClientCount[idx]; 195 194 } 196 195 197 boost::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex,196 std::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex, 198 197 iteIndex = client2ClientIndex.end(); 199 198 for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 200 199 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);202 200 203 201 std::vector<ep_lib::MPI_Status> status(request.size()); … … 280 278 if (0 != recvNbIndexOnReturn[idx]) 281 279 { 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);287 280 recvIndexFromClients(recvRankOnReturn[idx], recvIndexBuffOnReturn+currentIndex, recvNbIndexOnReturn[idx], commLevel, &requestOnReturn[requestOnReturn_position++]); 288 281 recvInfoFromClients(recvRankOnReturn[idx], … … 294 287 } 295 288 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; 298 291 currentIndex = 0; 299 292 for (int idx = 0; idx < nbRecvClient; ++idx) … … 322 315 } 323 316 324 //sendIndexToClients(rank, client2ClientIndexOnReturn[rank],325 // sendNbIndexOnReturn[idx], commLevel, requestOnReturn);326 //sendInfoToClients(rank, client2ClientInfoOnReturn[rank],327 // sendNbIndexOnReturn[idx]*ProcessDHTElement<InfoType>::typeSize(), commLevel, requestOnReturn);328 317 sendIndexToClients(rank, client2ClientIndexOnReturn[rank], 329 318 sendNbIndexOnReturn[idx], commLevel, &requestOnReturn[requestOnReturn_position++]); … … 349 338 indexToInfoMappingLevel_.swap(indexToInfoMapping); 350 339 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(); 352 341 it != client2ClientIndex.end(); ++it) 353 342 delete [] it->second; … … 360 349 } 361 350 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(); 363 352 it != client2ClientInfoOnReturn.end(); ++it) 364 353 delete [] it->second; 365 354 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(); 367 356 it != client2ClientIndexOnReturn.end(); ++it) 368 357 delete [] it->second; … … 430 419 } 431 420 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; 434 423 for (int idx = 0; idx < nbClient; ++idx) 435 424 { … … 500 489 if (0 != recvNbIndexClientCount[idx]) 501 490 { 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);507 491 recvIndexFromClients(recvRankClient[idx], recvIndexBuff+currentIndex, recvNbIndexClientCount[idx], commLevel, &request[request_position++]); 508 492 recvInfoFromClients(recvRankClient[idx], … … 514 498 } 515 499 516 boost::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex,500 std::unordered_map<int, size_t* >::iterator itbIndex = client2ClientIndex.begin(), itIndex, 517 501 iteIndex = client2ClientIndex.end(); 518 502 for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 519 503 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, 522 505 iteInfo = client2ClientInfo.end(); 523 506 for (itInfo = itbInfo; itInfo != iteInfo; ++itInfo) 524 507 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);526 508 527 509 std::vector<ep_lib::MPI_Status> status(request.size()); … … 551 533 delete [] recvInfoBuff; 552 534 } 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(); 554 536 it != client2ClientInfo.end(); ++it) 555 537 delete [] it->second; 556 538 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(); 558 540 it != client2ClientIndex.end(); ++it) 559 541 delete [] it->second; -
XIOS/dev/branch_openmp/src/client_server_mapping.hpp
r1460 r1545 13 13 #include "array_new.hpp" 14 14 #include "mpi.hpp" 15 #include < boost/unordered_map.hpp>15 #include <unordered_map> 16 16 17 17 namespace xios { … … 25 25 { 26 26 public: 27 typedef boost::unordered_map<int, std::vector<size_t> > GlobalIndexMap;27 typedef std::unordered_map<int, std::vector<size_t> > GlobalIndexMap; 28 28 public: 29 29 /** Default constructor */ -
XIOS/dev/branch_openmp/src/client_server_mapping_distributed.cpp
r1460 r1545 20 20 { 21 21 22 CClientServerMappingDistributed::CClientServerMappingDistributed(const boost::unordered_map<size_t,int>& globalIndexOfServer,22 CClientServerMappingDistributed::CClientServerMappingDistributed(const std::unordered_map<size_t,int>& globalIndexOfServer, 23 23 const MPI_Comm& clientIntraComm, bool isDataDistributed) 24 24 : CClientServerMapping(), ccDHT_(0) -
XIOS/dev/branch_openmp/src/client_server_mapping_distributed.hpp
r1460 r1545 16 16 #include "array_new.hpp" 17 17 #include "mpi.hpp" 18 #include < boost/unordered_map.hpp>18 #include <unordered_map> 19 19 #include "client_client_dht_template.hpp" 20 20 … … 34 34 public: 35 35 /** Default constructor */ 36 CClientServerMappingDistributed(const boost::unordered_map<size_t,int>& globalIndexOfServer,36 CClientServerMappingDistributed(const std::unordered_map<size_t,int>& globalIndexOfServer, 37 37 const ep_lib::MPI_Comm& clientIntraComm, 38 38 bool isDataDistributed = true); -
XIOS/dev/branch_openmp/src/config/axis_attribute.conf
r1460 r1545 2 2 DECLARE_ATTRIBUTE(StdString, standard_name) 3 3 DECLARE_ATTRIBUTE(StdString, long_name) 4 5 DECLARE_ATTRIBUTE(StdString, comment) 4 6 5 7 DECLARE_ATTRIBUTE(StdString, unit) -
XIOS/dev/branch_openmp/src/config/calendar_wrapper_attribute.conf
r550 r1545 1 DECLARE_ATTRIBUTE(StdString, comment) 1 2 DECLARE_ENUM6(type, D360, AllLeap, NoLeap, Julian, Gregorian, user_defined) 2 3 DECLARE_ATTRIBUTE(CDuration, timestep) -
XIOS/dev/branch_openmp/src/config/domain_attribute.conf
r1460 r1545 9 9 DECLARE_ATTRIBUTE(StdString , dim_i_name) 10 10 DECLARE_ATTRIBUTE(StdString , dim_j_name) 11 12 DECLARE_ATTRIBUTE(StdString, comment) 11 13 12 14 /* GLOBAL */ -
XIOS/dev/branch_openmp/src/config/field_attribute.conf
r1205 r1545 2 2 DECLARE_ATTRIBUTE(StdString, standard_name) 3 3 DECLARE_ATTRIBUTE(StdString, long_name) 4 5 DECLARE_ATTRIBUTE(StdString, comment) 4 6 5 7 DECLARE_ATTRIBUTE(StdString, unit) … … 18 20 DECLARE_ATTRIBUTE(bool, check_if_active) 19 21 20 DECLARE_ATTRIBUTE(StdString, domain_ref )21 DECLARE_ATTRIBUTE(StdString, axis_ref )22 DECLARE_ATTRIBUTE(StdString, scalar_ref )22 DECLARE_ATTRIBUTE(StdString, domain_ref, false) 23 DECLARE_ATTRIBUTE(StdString, axis_ref, false) 24 DECLARE_ATTRIBUTE(StdString, scalar_ref, false) 23 25 DECLARE_ATTRIBUTE(StdString, grid_ref) 24 26 DECLARE_ATTRIBUTE(StdString, field_ref) -
XIOS/dev/branch_openmp/src/config/file_attribute.conf
r1491 r1545 1 1 DECLARE_ATTRIBUTE(StdString, name) 2 2 DECLARE_ATTRIBUTE(StdString, description) 3 4 DECLARE_ATTRIBUTE(StdString, comment) 3 5 4 6 DECLARE_ATTRIBUTE(StdString, name_suffix) -
XIOS/dev/branch_openmp/src/config/grid_attribute.conf
r1460 r1545 1 1 DECLARE_ATTRIBUTE(StdString, name) 2 2 DECLARE_ATTRIBUTE(StdString, description) 3 4 DECLARE_ATTRIBUTE(StdString, comment) 3 5 4 6 DECLARE_ARRAY(bool, 1, mask_1d, false) -
XIOS/dev/branch_openmp/src/config/scalar_attribute.conf
r1460 r1545 2 2 DECLARE_ATTRIBUTE(StdString, standard_name) 3 3 DECLARE_ATTRIBUTE(StdString, long_name) 4 5 DECLARE_ATTRIBUTE(StdString, comment) 4 6 5 7 DECLARE_ATTRIBUTE(StdString, unit) -
XIOS/dev/branch_openmp/src/context_client.cpp
r1520 r1545 102 102 typeId_in=event.getTypeId() ; 103 103 classId_in=event.getClassId() ; 104 //MPI_Allreduce(&timeLine,&timeLine_out, 1, MPI_UINT64_T, MPI_SUM, intraComm) ;105 104 MPI_Allreduce(&timeLine,&timeLine_out, 1, MPI_LONG_LONG_INT, MPI_SUM, intraComm) ; 106 105 MPI_Allreduce(&typeId_in,&typeId, 1, MPI_INT, MPI_SUM, intraComm) ; … … 342 341 if (ratio < minBufferSizeEventSizeRatio) minBufferSizeEventSizeRatio = ratio; 343 342 } 344 //MPI_Allreduce(MPI_IN_PLACE, &minBufferSizeEventSizeRatio, 1, MPI_DOUBLE, MPI_MIN, intraComm);345 343 MPI_Allreduce(&minBufferSizeEventSizeRatio, &minBufferSizeEventSizeRatio, 1, MPI_DOUBLE, MPI_MIN, intraComm); 346 344 -
XIOS/dev/branch_openmp/src/context_server.cpp
r1538 r1545 130 130 MPI_Irecv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &request); 131 131 MPI_Wait(&request, &status); 132 //MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status);133 132 mapBufferSize_.insert(std::make_pair(rank, buffSize)); 134 133 it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first; -
XIOS/dev/branch_openmp/src/cxios.cpp
r1538 r1545 66 66 usingServer2=getin<bool>("using_server2",false) ; 67 67 ratioServer2=getin<int>("ratio_server2",50); 68 nbPoolsServer2=getin<int>("number_pools_server2", 1);68 nbPoolsServer2=getin<int>("number_pools_server2",0); 69 69 info.setLevel(getin<int>("info_level",0)) ; 70 70 report.setLevel(getin<int>("info_level",50)); … … 108 108 MPI_Comm_create_endpoints(MPI_COMM_WORLD->mpi_comm, num_ep, info, ep_comm); // servers should reach here too. 109 109 passage = ep_comm; 110 //::MPI_Comm_group(to_mpi_comm(MPI_COMM_WORLD->mpi_comm), &MPI_GROUP_WORLD);111 110 } 112 111 -
XIOS/dev/branch_openmp/src/data_output.cpp
r1328 r1545 87 87 { 88 88 CContext* context = CContext::getCurrent() ; 89 boost::shared_ptr<CCalendar> calendar = context->getCalendar();89 std::shared_ptr<CCalendar> calendar = context->getCalendar(); 90 90 91 91 this->writeTimeAxis_(field, calendar); -
XIOS/dev/branch_openmp/src/data_output.hpp
r1334 r1545 59 59 virtual void writeTimeDimension_(void) = 0; 60 60 virtual void writeTimeAxis_ (CField* field, 61 const boost::shared_ptr<CCalendar> cal) = 0;61 const std::shared_ptr<CCalendar> cal) = 0; 62 62 63 63 /// Propriétés protégées /// -
XIOS/dev/branch_openmp/src/date.cpp
r1105 r1545 235 235 void CDate::addMonth(int value) 236 236 {// Value doit être égale à 1 ou -1. 237 238 const CCalendar& c = getRelCalendar(); 239 int nbMonthsPerYear = c.getYearLength(); 240 237 241 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; } 240 245 } 241 246 -
XIOS/dev/branch_openmp/src/distribution.hpp
r1460 r1545 12 12 #include "xios_spl.hpp" 13 13 #include "array_new.hpp" 14 #include < boost/unordered_map.hpp>14 #include <unordered_map> 15 15 16 16 namespace xios { … … 24 24 { 25 25 public: 26 typedef boost::unordered_map<size_t,int> GlobalLocalMap;26 typedef std::unordered_map<size_t,int> GlobalLocalMap; 27 27 28 28 public: -
XIOS/dev/branch_openmp/src/duration.cpp
r1482 r1545 7 7 { 8 8 /// ////////////////////// Définitions ////////////////////// /// 9 9 10 10 const CDuration Year ( 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); 11 11 const CDuration Month ( 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 ); … … 25 25 } 26 26 27 ///--------------------------------------------------------------- 27 28 28 29 CDuration& CDuration::operator=(const CDuration& duration) -
XIOS/dev/branch_openmp/src/duration.hpp
r1482 r1545 21 21 public: 22 22 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 24 24 /// Opérateurs /// 25 25 CDuration& operator=(const CDuration& duration); -
XIOS/dev/branch_openmp/src/filter/binary_arithmetic_filter.hpp
r642 r1545 5 5 #include <string> 6 6 #include "operator_expr.hpp" 7 #include <unordered_map> 7 8 8 9 namespace xios -
XIOS/dev/branch_openmp/src/filter/data_packet.hpp
r643 r1545 2 2 #define __XIOS_CDataPacket__ 3 3 4 #include < boost/shared_ptr.hpp>4 #include <memory> 5 5 6 6 #include "array_new.hpp" … … 43 43 }; // struct CDataPacket 44 44 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; 47 47 } // namespace xios 48 48 -
XIOS/dev/branch_openmp/src/filter/output_pin.cpp
r1460 r1545 9 9 { /* Nothing to do */ } 10 10 11 void COutputPin::connectOutput( boost::shared_ptr<CInputPin> inputPin, size_t inputSlot)11 void COutputPin::connectOutput(std::shared_ptr<CInputPin> inputPin, size_t inputSlot) 12 12 { 13 13 if (!inputPin) … … 42 42 "The packet cannot be null."); 43 43 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; 45 45 for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 46 46 it->first->setInput(it->second, packet); … … 68 68 bool COutputPin::mustAutoTrigger() const 69 69 { 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; 71 71 for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 72 72 { … … 80 80 void COutputPin::setOutputTriggers() 81 81 { 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; 83 83 for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 84 84 it->first->setInputTrigger(it->second, this); … … 87 87 bool COutputPin::isDataExpected(const CDate& date) const 88 88 { 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; 90 90 for (it = outputs.begin(), itEnd = outputs.end(); it != itEnd; ++it) 91 91 { -
XIOS/dev/branch_openmp/src/filter/output_pin.hpp
r1460 r1545 29 29 * \param inputSlot the input slot number 30 30 */ 31 void connectOutput( boost::shared_ptr<CInputPin> inputPin, size_t inputSlot);31 void connectOutput(std::shared_ptr<CInputPin> inputPin, size_t inputSlot); 32 32 33 33 /*! … … 93 93 94 94 //!< 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; 96 96 97 97 //! Output buffer, store the packets until the output is triggered -
XIOS/dev/branch_openmp/src/filter/spatial_transform_filter.cpp
r1482 r1545 13 13 { /* Nothing to do */ } 14 14 15 std::pair< boost::shared_ptr<CSpatialTransformFilter>, boost::shared_ptr<CSpatialTransformFilter> >15 std::pair<std::shared_ptr<CSpatialTransformFilter>, std::shared_ptr<CSpatialTransformFilter> > 16 16 CSpatialTransformFilter::buildFilterGraph(CGarbageCollector& gc, CGrid* srcGrid, CGrid* destGrid, bool hasMissingValue, double missingValue) 17 17 { 18 18 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> >" 20 20 "buildFilterGraph(CGarbageCollector& gc, CGrid* srcGrid, CGrid* destGrid)", 21 21 "Impossible to build the filter graph if either the source or the destination grid are null."); 22 22 23 boost::shared_ptr<CSpatialTransformFilter> firstFilter, lastFilter;23 std::shared_ptr<CSpatialTransformFilter> firstFilter, lastFilter; 24 24 // Note that this loop goes from the last transformation to the first transformation 25 25 do … … 38 38 for (it=algoList.begin();it!=algoList.end();++it) if (it->second.first == TRANS_TEMPORAL_SPLITTING) isSpatialTemporal=true ; 39 39 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)); 43 43 44 44 … … 142 142 } 143 143 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; 146 145 147 146 CSpatialTransformFilterEngine* CSpatialTransformFilterEngine::get(CGridTransformation* gridTransformation) … … 151 150 "Impossible to get the requested engine, the grid transformation is invalid."); 152 151 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); 158 156 if (it == engines_ptr->end()) 159 157 { 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)); 162 159 it = engines_ptr->insert(std::make_pair(gridTransformation, engine)).first; 163 160 } -
XIOS/dev/branch_openmp/src/filter/spatial_transform_filter.hpp
r1460 r1545 36 36 * \return the first and the last filters of the filter graph 37 37 */ 38 static std::pair< boost::shared_ptr<CSpatialTransformFilter>, boost::shared_ptr<CSpatialTransformFilter> >38 static std::pair<std::shared_ptr<CSpatialTransformFilter>, std::shared_ptr<CSpatialTransformFilter> > 39 39 buildFilterGraph(CGarbageCollector& gc, CGrid* srcGrid, CGrid* destGrid, bool hasMissingValue, double defaultValue); 40 40 … … 141 141 142 142 //! 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; 145 145 #pragma omp threadprivate(engines_ptr) 146 146 }; // class CSpatialTransformFilterEngine -
XIOS/dev/branch_openmp/src/filter/temporal_filter.cpp
r1482 r1545 22 22 this->samplingOffset.second, this->samplingOffset.timestep) 23 23 , initDate(initDate) 24 , nextSamplingDate(initDate + (this->samplingOffset+ initDate.getRelCalendar().getTimeStep()))24 , nextSamplingDate(initDate + offsetMonth + ( offsetAllButMonth + initDate.getRelCalendar().getTimeStep())) 25 25 , nbOperationDates(1) 26 26 , nbSamplingDates(0) -
XIOS/dev/branch_openmp/src/generate_fortran_interface.cpp
r1460 r1545 302 302 file.open((path+"iexpand_domain_attr.F90").c_str()); 303 303 expandDomain.generateFortranInterface(file); 304 file.close(); 304 305 305 306 file.open((path+"reorder_domain_interface_attr.F90").c_str()); -
XIOS/dev/branch_openmp/src/group_factory.hpp
r1334 r1545 1 1 #ifndef __XIOS_CGroupFactory__ 2 2 #define __XIOS_CGroupFactory__ 3 4 /// boost headers ///5 #include <boost/shared_ptr.hpp>6 3 7 4 /// XIOS headers /// … … 23 20 24 21 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); 27 24 28 25 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); 31 28 32 29 /// Accesseurs /// … … 34 31 35 32 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); 38 35 39 36 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); 42 39 43 40 template <typename U> 44 static int GetGroupNum( boost::shared_ptr<U> group);41 static int GetGroupNum(std::shared_ptr<U> group); 45 42 template <typename U> 46 static int GetGroupIdNum( boost::shared_ptr<U> group);43 static int GetGroupIdNum(std::shared_ptr<U> group); 47 44 template <typename U> 48 static int GetChildNum( boost::shared_ptr<U> group);45 static int GetChildNum(std::shared_ptr<U> group); 49 46 template <typename U> 50 static int GetChildIdNum( boost::shared_ptr<U> group);47 static int GetChildIdNum(std::shared_ptr<U> group); 51 48 52 49 /// Tests /// 53 50 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); 55 52 56 53 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); 58 55 59 56 /// Instanciateur /// 60 57 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("")); 63 60 64 61 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("")); 67 64 68 65 private : -
XIOS/dev/branch_openmp/src/group_factory_decl.cpp
r1460 r1545 5 5 { 6 6 # 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); 19 19 20 20 macro(CFieldGroup) -
XIOS/dev/branch_openmp/src/group_factory_impl.hpp
r591 r1545 9 9 10 10 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) 13 13 { 14 14 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)", 16 16 << " pgroup or cgroup NULL !"); 17 17 if (!cgroup->hasId()) … … 25 25 26 26 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) 29 29 { 30 30 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)", 32 32 << " pgroup or cgroup NULL !"); 33 33 if (!child->hasId()) … … 41 41 42 42 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) 45 45 { 46 46 CObjectFactory::SetCurrentContextId … … 48 48 if (id.size() == 0) 49 49 { 50 boost::shared_ptr<U> value = CObjectFactory::CreateObject<U>(CObjectFactory::GenUId<U>());50 std::shared_ptr<U> value = CObjectFactory::CreateObject<U>(CObjectFactory::GenUId<U>()); 51 51 group->groupList.insert(group->groupList.end(), value.get()); 52 52 group->groupMap.insert(std::make_pair(value->getId(), value.get())); … … 57 57 else 58 58 { 59 boost::shared_ptr<U> value = CObjectFactory::CreateObject<U>(id);59 std::shared_ptr<U> value = CObjectFactory::CreateObject<U>(id); 60 60 group->groupList.insert(group->groupList.end(), value.get()); 61 61 group->groupMap.insert(std::make_pair(id, value.get())); … … 65 65 66 66 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) 69 69 { 70 70 CObjectFactory::SetCurrentContextId … … 72 72 if (id.size() == 0) 73 73 { 74 boost::shared_ptr<typename U::RelChild> value =74 std::shared_ptr<typename U::RelChild> value = 75 75 CObjectFactory::CreateObject<typename U::RelChild>(); 76 76 group->childList.insert(group->childList.end(), value.get()); … … 82 82 else 83 83 { 84 boost::shared_ptr<typename U::RelChild> value =84 std::shared_ptr<typename U::RelChild> value = 85 85 CObjectFactory::CreateObject<typename U::RelChild>(id); 86 86 group->childList.insert(group->childList.end(), value.get()); … … 91 91 92 92 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) 94 94 { return (group->groupMap.find(id) != group->groupMap.end()); } 95 95 96 96 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) 98 98 { return (group->childMap.find(id) != group->childMap.end()); } 99 99 100 100 template <typename U> 101 int CGroupFactory::GetGroupNum( boost::shared_ptr<U> group)101 int CGroupFactory::GetGroupNum(std::shared_ptr<U> group) 102 102 { return (group->groupList.size()); } 103 103 104 104 template <typename U> 105 int CGroupFactory::GetGroupIdNum( boost::shared_ptr<U> group)105 int CGroupFactory::GetGroupIdNum(std::shared_ptr<U> group) 106 106 { return (group->groupMap.size()); } 107 107 108 108 template <typename U> 109 int CGroupFactory::GetChildNum( boost::shared_ptr<U> group)109 int CGroupFactory::GetChildNum(std::shared_ptr<U> group) 110 110 { return (group->childList.size()); } 111 111 112 112 template <typename U> 113 int CGroupFactory::GetChildIdNum( boost::shared_ptr<U> group)113 int CGroupFactory::GetChildIdNum(std::shared_ptr<U> group) 114 114 { return (group->childMap.size()); } 115 115 116 116 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) 119 119 { 120 120 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)", 122 122 << "[ id = " << id << ", U = " << U::GetName() << " ] " 123 123 << " group is not referenced !"); … … 126 126 127 127 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) 130 130 { 131 131 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)", 133 133 << "[ id = " << id << ", U = " << U::GetName() << " ] " 134 134 << " child is not referenced !"); -
XIOS/dev/branch_openmp/src/group_template.hpp
r1460 r1545 46 46 virtual void fromString(const StdString & str); 47 47 48 // virtual void toBinary (StdOStream & os) const;49 // virtual void fromBinary(StdIStream & is);50 48 51 49 virtual void parse(xml::CXMLNode & node); … … 63 61 virtual void solveDescInheritance(bool apply, const CAttributeMap * const parent = 0); 64 62 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 68 65 U* createChild(const string& id="") ; 69 66 -
XIOS/dev/branch_openmp/src/group_template_impl.hpp
r1460 r1545 319 319 { /* Ne rien faire de plus */ } 320 320 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 // }344 321 ///-------------------------------------------------------------- 345 322 -
XIOS/dev/branch_openmp/src/interface/c/icaxis.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 8 8 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/iccalendar.cpp
r704 r1545 24 24 CTimer::get("XIOS").resume(); 25 25 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(); 27 27 if (!cal) 28 28 ERROR("void cxios_get_current_date(cxios_date* current_date_c)", … … 41 41 { 42 42 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(); 44 44 if (!cal) 45 45 ERROR("int cxios_get_year_length_in_seconds(int year)", … … 54 54 { 55 55 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(); 57 57 if (!cal) 58 58 ERROR("int cxios_get_day_length_in_seconds()", -
XIOS/dev/branch_openmp/src/interface/c/iccalendar_wrapper.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/iccompute_connectivity_domain.cpp
r934 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp>7 6 8 7 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/iccontext.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icdata.cpp
r1460 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include <string> 8 8 #include <cstring> -
XIOS/dev/branch_openmp/src/interface/c/icdate.cpp
r1482 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp>7 6 8 7 #include "xios.hpp" … … 27 26 if (!context) 28 27 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(); 30 29 if (!cal) 31 30 ERROR(idFunc, << "Impossible to do calendar operations: no calendar was defined."); … … 82 81 date_c.hour, date_c.minute, date_c.second); 83 82 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 84 84 xios::CDate res = date - dur; 85 85 return { res.getYear(), res.getMonth(), res.getDay(), res.getHour(), res.getMinute(), res.getSecond() }; -
XIOS/dev/branch_openmp/src/interface/c/icdomain.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icduration.cpp
r1482 r1545 8 8 { 9 9 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 10 11 if (!string_copy(dur.toString(), str, str_size)) 11 12 ERROR("void cxios_duration_convert_to_string(cxios_duration dur_c, char* str, int str_size)", << "Input string is too short"); … … 27 28 xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep ); 28 29 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 29 31 xios::CDuration res = dur1 + dur2; 30 32 return { res.year, res.month, res.day, res.hour, res.minute, res.second, res.timestep }; … … 35 37 xios::CDuration dur1( dur1_c.year, dur1_c.month, dur1_c.day, dur1_c.hour, dur1_c.minute, dur1_c.second, dur1_c.timestep ); 36 38 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 37 40 xios::CDuration res = dur1 - dur2; 38 41 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 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icextract_to_axis.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 8 8 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icextract_to_scalar.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 8 8 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icfield.cpp
r1119 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icfile.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 8 8 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icgenerate_rectilinear_domain.cpp
r786 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icgrid.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp>7 6 8 7 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icinterpolate.cpp
r786 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp>7 6 8 7 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icinverse_axis.cpp
r786 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icreduce_to_axis.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icreduce_to_scalar.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp>7 6 8 7 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icscalar.cpp
r891 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 8 8 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icvariable.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/icxml_tree.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 8 8 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c/iczoom.cpp
r786 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include <boost/shared_ptr.hpp> 6 7 #include <memory> 7 8 8 9 #include "xios.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icaxis_attr.cpp
r1052 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 44 44 45 45 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 46 72 void cxios_set_axis_begin(axis_Ptr axis_hdl, int begin) 47 73 { … … 92 118 93 119 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 94 172 void cxios_set_axis_data_begin(axis_Ptr axis_hdl, int data_begin) 95 173 { … … 158 236 CTimer::get("XIOS").resume(); 159 237 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(); 160 368 CTimer::get("XIOS").suspend(); 161 369 return isDefined; -
XIOS/dev/branch_openmp/src/interface/c_attr/icaxisgroup_attr.cpp
r1052 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 44 44 45 45 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 46 72 void cxios_set_axisgroup_begin(axisgroup_Ptr axisgroup_hdl, int begin) 47 73 { … … 92 118 93 119 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 94 172 void cxios_set_axisgroup_data_begin(axisgroup_Ptr axisgroup_hdl, int data_begin) 95 173 { … … 158 236 CTimer::get("XIOS").resume(); 159 237 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(); 160 368 CTimer::get("XIOS").suspend(); 161 369 return isDefined; -
XIOS/dev/branch_openmp/src/interface/c_attr/iccalendar_wrapper_attr.cpp
r674 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 17 17 { 18 18 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 19 45 20 46 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 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/iccontext_attr.cpp
r591 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icdomain_attr.cpp
r1052 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 93 93 94 94 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 95 121 void cxios_set_domain_bounds_lon_1d(domain_Ptr domain_hdl, double* bounds_lon_1d, int* extent) 96 122 { … … 143 169 144 170 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 145 223 void cxios_set_domain_data_dim(domain_Ptr domain_hdl, int data_dim) 146 224 { … … 308 386 309 387 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 310 440 void cxios_set_domain_domain_ref(domain_Ptr domain_hdl, const char * domain_ref, int domain_ref_size) 311 441 { … … 430 560 431 561 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 432 588 void cxios_set_domain_latvalue_1d(domain_Ptr domain_hdl, double* latvalue_1d, int* extent) 433 589 { … … 480 636 481 637 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 482 664 void cxios_set_domain_long_name(domain_Ptr domain_hdl, const char * long_name, int long_name_size) 483 665 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icdomaingroup_attr.cpp
r1052 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 93 93 94 94 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 95 121 void cxios_set_domaingroup_bounds_lon_1d(domaingroup_Ptr domaingroup_hdl, double* bounds_lon_1d, int* extent) 96 122 { … … 143 169 144 170 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 145 223 void cxios_set_domaingroup_data_dim(domaingroup_Ptr domaingroup_hdl, int data_dim) 146 224 { … … 308 386 309 387 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 310 440 void cxios_set_domaingroup_domain_ref(domaingroup_Ptr domaingroup_hdl, const char * domain_ref, int domain_ref_size) 311 441 { … … 456 586 457 587 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 458 614 void cxios_set_domaingroup_latvalue_1d(domaingroup_Ptr domaingroup_hdl, double* latvalue_1d, int* extent) 459 615 { … … 506 662 507 663 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 508 690 void cxios_set_domaingroup_long_name(domaingroup_Ptr domaingroup_hdl, const char * long_name, int long_name_size) 509 691 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icexpand_domain_attr.cpp
r1078 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icextract_axis_to_scalar_attr.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icextract_domain_to_axis_attr.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icfield_attr.cpp
r1205 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 137 137 CTimer::get("XIOS").resume(); 138 138 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(); 139 165 CTimer::get("XIOS").suspend(); 140 166 return isDefined; -
XIOS/dev/branch_openmp/src/interface/c_attr/icfieldgroup_attr.cpp
r1205 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 137 137 CTimer::get("XIOS").resume(); 138 138 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(); 139 165 CTimer::get("XIOS").suspend(); 140 166 return isDefined; -
XIOS/dev/branch_openmp/src/interface/c_attr/icfile_attr.cpp
r1205 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 36 36 CTimer::get("XIOS").resume(); 37 37 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(); 38 64 CTimer::get("XIOS").suspend(); 39 65 return isDefined; … … 402 428 403 429 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 404 453 void cxios_set_file_record_offset(file_Ptr file_hdl, int record_offset) 405 454 { … … 420 469 CTimer::get("XIOS").resume(); 421 470 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(); 422 509 CTimer::get("XIOS").suspend(); 423 510 return isDefined; … … 489 576 490 577 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 491 642 void cxios_set_file_sync_freq(file_Ptr file_hdl, cxios_duration sync_freq_c) 492 643 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icfilegroup_attr.cpp
r1205 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 36 36 CTimer::get("XIOS").resume(); 37 37 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(); 38 64 CTimer::get("XIOS").suspend(); 39 65 return isDefined; … … 428 454 429 455 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 430 479 void cxios_set_filegroup_record_offset(filegroup_Ptr filegroup_hdl, int record_offset) 431 480 { … … 446 495 CTimer::get("XIOS").resume(); 447 496 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(); 448 535 CTimer::get("XIOS").suspend(); 449 536 return isDefined; … … 515 602 516 603 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 517 668 void cxios_set_filegroup_sync_freq(filegroup_Ptr filegroup_hdl, cxios_duration sync_freq_c) 518 669 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icgenerate_rectilinear_domain_attr.cpp
r786 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icgrid_attr.cpp
r932 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 18 18 typedef xios::CGrid* grid_Ptr; 19 19 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 20 46 void cxios_set_grid_description(grid_Ptr grid_hdl, const char * description, int description_size) 21 47 { … … 44 70 45 71 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 46 97 void cxios_set_grid_mask_1d(grid_Ptr grid_hdl, bool* mask_1d, int* extent) 47 98 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icgridgroup_attr.cpp
r932 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 18 18 typedef xios::CGridGroup* gridgroup_Ptr; 19 19 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 20 46 void cxios_set_gridgroup_description(gridgroup_Ptr gridgroup_hdl, const char * description, int description_size) 21 47 { … … 70 96 71 97 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 72 123 void cxios_set_gridgroup_mask_1d(gridgroup_Ptr gridgroup_hdl, bool* mask_1d, int* extent) 73 124 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icinterpolate_axis_attr.cpp
r891 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icinterpolate_domain_attr.cpp
r1205 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 18 18 typedef xios::CInterpolateDomain* interpolate_domain_Ptr; 19 19 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 20 43 void cxios_set_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, const char * mode, int mode_size) 21 44 { … … 90 113 91 114 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 92 141 void cxios_set_interpolate_domain_renormalize(interpolate_domain_Ptr interpolate_domain_hdl, bool renormalize) 93 142 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icinverse_axis_attr.cpp
r786 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icreduce_axis_to_scalar_attr.cpp
r980 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icreduce_domain_to_axis_attr.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 44 44 45 45 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 46 69 void cxios_set_reduce_domain_to_axis_operation(reduce_domain_to_axis_Ptr reduce_domain_to_axis_hdl, const char * operation, int operation_size) 47 70 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icreduce_domain_to_scalar_attr.cpp
r981 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 17 17 { 18 18 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 19 42 20 43 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 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 18 18 typedef xios::CScalar* scalar_Ptr; 19 19 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 20 149 void cxios_set_scalar_long_name(scalar_Ptr scalar_hdl, const char * long_name, int long_name_size) 21 150 { … … 70 199 71 200 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 72 227 void cxios_set_scalar_prec(scalar_Ptr scalar_hdl, int prec) 73 228 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icscalargroup_attr.cpp
r1052 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" … … 18 18 typedef xios::CScalarGroup* scalargroup_Ptr; 19 19 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 20 123 void cxios_set_scalargroup_group_ref(scalargroup_Ptr scalargroup_hdl, const char * group_ref, int group_ref_size) 21 124 { … … 44 147 45 148 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 46 175 void cxios_set_scalargroup_long_name(scalargroup_Ptr scalargroup_hdl, const char * long_name, int long_name_size) 47 176 { … … 96 225 97 226 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 98 253 void cxios_set_scalargroup_prec(scalargroup_Ptr scalargroup_hdl, int prec) 99 254 { -
XIOS/dev/branch_openmp/src/interface/c_attr/icvariable_attr.cpp
r1041 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/icvariablegroup_attr.cpp
r1041 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/iczoom_axis_attr.cpp
r1205 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/c_attr/iczoom_domain_attr.cpp
r787 r1545 4 4 5 5 #include <boost/multi_array.hpp> 6 #include < boost/shared_ptr.hpp>6 #include <memory> 7 7 #include "xios.hpp" 8 8 #include "attribute_template.hpp" -
XIOS/dev/branch_openmp/src/interface/fortran_attr/axis_interface_attr.F90
r1052 r1545 31 31 32 32 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 33 54 SUBROUTINE cxios_set_axis_begin(axis_hdl, begin) BIND(C) 34 55 USE ISO_C_BINDING … … 71 92 72 93 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 73 136 SUBROUTINE cxios_set_axis_data_begin(axis_hdl, data_begin) BIND(C) 74 137 USE ISO_C_BINDING … … 128 191 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl 129 192 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 130 298 131 299 -
XIOS/dev/branch_openmp/src/interface/fortran_attr/axisgroup_interface_attr.F90
r1052 r1545 31 31 32 32 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 33 54 SUBROUTINE cxios_set_axisgroup_begin(axisgroup_hdl, begin) BIND(C) 34 55 USE ISO_C_BINDING … … 71 92 72 93 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 73 136 SUBROUTINE cxios_set_axisgroup_data_begin(axisgroup_hdl, data_begin) BIND(C) 74 137 USE ISO_C_BINDING … … 128 191 INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl 129 192 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 130 298 131 299 -
XIOS/dev/branch_openmp/src/interface/fortran_attr/calendar_wrapper_interface_attr.F90
r674 r1545 10 10 ! Do not call directly / interface FORTRAN 2003 <-> C99 11 11 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 12 33 SUBROUTINE cxios_set_calendar_wrapper_day_length(calendar_wrapper_hdl, day_length) BIND(C) 13 34 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/domain_interface_attr.F90
r1052 r1545 73 73 74 74 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 75 96 SUBROUTINE cxios_set_domain_bounds_lon_1d(domain_hdl, bounds_lon_1d, extent) BIND(C) 76 97 USE ISO_C_BINDING … … 113 134 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 114 135 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 115 178 116 179 … … 250 313 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 251 314 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 252 357 253 358 … … 353 458 354 459 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 355 481 SUBROUTINE cxios_set_domain_latvalue_1d(domain_hdl, latvalue_1d, extent) BIND(C) 356 482 USE ISO_C_BINDING … … 393 519 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl 394 520 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 395 542 396 543 -
XIOS/dev/branch_openmp/src/interface/fortran_attr/domaingroup_interface_attr.F90
r1052 r1545 73 73 74 74 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 75 96 SUBROUTINE cxios_set_domaingroup_bounds_lon_1d(domaingroup_hdl, bounds_lon_1d, extent) BIND(C) 76 97 USE ISO_C_BINDING … … 113 134 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 114 135 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 115 178 116 179 … … 250 313 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 251 314 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 252 357 253 358 … … 374 479 375 480 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 376 502 SUBROUTINE cxios_set_domaingroup_latvalue_1d(domaingroup_hdl, latvalue_1d, extent) BIND(C) 377 503 USE ISO_C_BINDING … … 414 540 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl 415 541 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 416 563 417 564 -
XIOS/dev/branch_openmp/src/interface/fortran_attr/field_interface_attr.F90
r1205 r1545 111 111 112 112 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 113 134 SUBROUTINE cxios_set_field_compression_level(field_hdl, compression_level) BIND(C) 114 135 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/fieldgroup_interface_attr.F90
r1205 r1545 111 111 112 112 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 113 134 SUBROUTINE cxios_set_fieldgroup_compression_level(fieldgroup_hdl, compression_level) BIND(C) 114 135 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/file_interface_attr.F90
r1205 r1545 29 29 30 30 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 31 52 SUBROUTINE cxios_set_file_compression_level(file_hdl, compression_level) BIND(C) 32 53 USE ISO_C_BINDING … … 313 334 314 335 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 315 355 SUBROUTINE cxios_set_file_record_offset(file_hdl, record_offset) BIND(C) 316 356 USE ISO_C_BINDING … … 330 370 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 331 371 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 332 393 333 394 … … 374 435 375 436 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 376 479 SUBROUTINE cxios_set_file_sync_freq(file_hdl, sync_freq) BIND(C) 377 480 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/filegroup_interface_attr.F90
r1205 r1545 29 29 30 30 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 31 52 SUBROUTINE cxios_set_filegroup_compression_level(filegroup_hdl, compression_level) BIND(C) 32 53 USE ISO_C_BINDING … … 334 355 335 356 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 336 376 SUBROUTINE cxios_set_filegroup_record_offset(filegroup_hdl, record_offset) BIND(C) 337 377 USE ISO_C_BINDING … … 351 391 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 352 392 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 353 414 354 415 … … 395 456 396 457 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 397 500 SUBROUTINE cxios_set_filegroup_sync_freq(filegroup_hdl, sync_freq) BIND(C) 398 501 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/grid_interface_attr.F90
r932 r1545 10 10 ! Do not call directly / interface FORTRAN 2003 <-> C99 11 11 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 12 33 SUBROUTINE cxios_set_grid_description(grid_hdl, description, description_size) BIND(C) 13 34 USE ISO_C_BINDING … … 31 52 32 53 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 33 75 SUBROUTINE cxios_set_grid_mask_1d(grid_hdl, mask_1d, extent) BIND(C) 34 76 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/gridgroup_interface_attr.F90
r932 r1545 10 10 ! Do not call directly / interface FORTRAN 2003 <-> C99 11 11 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 12 33 SUBROUTINE cxios_set_gridgroup_description(gridgroup_hdl, description, description_size) BIND(C) 13 34 USE ISO_C_BINDING … … 52 73 53 74 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 54 96 SUBROUTINE cxios_set_gridgroup_mask_1d(gridgroup_hdl, mask_1d, extent) BIND(C) 55 97 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/iaxis_attr.F90
r1052 r1545 12 12 13 13 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 ) 17 18 18 19 IMPLICIT NONE … … 20 21 CHARACTER(LEN=*), INTENT(IN) ::axis_id 21 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 23 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 22 24 INTEGER , OPTIONAL, INTENT(IN) :: begin 23 25 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 24 28 INTEGER , OPTIONAL, INTENT(IN) :: data_begin 25 29 INTEGER , OPTIONAL, INTENT(IN) :: data_index(:) 26 30 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 27 36 INTEGER , OPTIONAL, INTENT(IN) :: index(:) 28 37 CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label(:) … … 43 52 (axis_id,axis_hdl) 44 53 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 ) 48 58 49 59 END SUBROUTINE xios(set_axis_attr) 50 60 51 61 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 ) 55 66 56 67 IMPLICIT NONE 57 68 TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 58 69 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 70 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 59 71 INTEGER , OPTIONAL, INTENT(IN) :: begin 60 72 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 73 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 74 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 61 75 INTEGER , OPTIONAL, INTENT(IN) :: data_begin 62 76 INTEGER , OPTIONAL, INTENT(IN) :: data_index(:) 63 77 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 64 83 INTEGER , OPTIONAL, INTENT(IN) :: index(:) 65 84 CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label(:) … … 78 97 79 98 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 ) 83 103 84 104 END SUBROUTINE xios(set_axis_attr_hdl) 85 105 86 106 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_ ) 90 111 91 112 IMPLICIT NONE 92 113 TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 93 114 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 115 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type_ 94 116 INTEGER , OPTIONAL, INTENT(IN) :: begin_ 95 117 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:,:) 118 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name_ 119 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 96 120 INTEGER , OPTIONAL, INTENT(IN) :: data_begin_ 97 121 INTEGER , OPTIONAL, INTENT(IN) :: data_index_(:) 98 122 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_ 99 128 INTEGER , OPTIONAL, INTENT(IN) :: index_(:) 100 129 CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label_(:) … … 117 146 ENDIF 118 147 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 119 153 IF (PRESENT(begin_)) THEN 120 154 CALL cxios_set_axis_begin & … … 127 161 ENDIF 128 162 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 129 173 IF (PRESENT(data_begin_)) THEN 130 174 CALL cxios_set_axis_data_begin & … … 140 184 CALL cxios_set_axis_data_n & 141 185 (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_)) 142 211 ENDIF 143 212 … … 212 281 213 282 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 ) 217 287 218 288 IMPLICIT NONE … … 220 290 CHARACTER(LEN=*), INTENT(IN) ::axis_id 221 291 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 292 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 222 293 INTEGER , OPTIONAL, INTENT(OUT) :: begin 223 294 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 295 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 296 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 224 297 INTEGER , OPTIONAL, INTENT(OUT) :: data_begin 225 298 INTEGER , OPTIONAL, INTENT(OUT) :: data_index(:) 226 299 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 227 305 INTEGER , OPTIONAL, INTENT(OUT) :: index(:) 228 306 CHARACTER(len=*) , OPTIONAL, INTENT(OUT) :: label(:) … … 243 321 (axis_id,axis_hdl) 244 322 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 ) 248 327 249 328 END SUBROUTINE xios(get_axis_attr) 250 329 251 330 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 ) 255 335 256 336 IMPLICIT NONE 257 337 TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 258 338 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 339 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 259 340 INTEGER , OPTIONAL, INTENT(OUT) :: begin 260 341 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 342 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 343 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 261 344 INTEGER , OPTIONAL, INTENT(OUT) :: data_begin 262 345 INTEGER , OPTIONAL, INTENT(OUT) :: data_index(:) 263 346 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 264 352 INTEGER , OPTIONAL, INTENT(OUT) :: index(:) 265 353 CHARACTER(len=*) , OPTIONAL, INTENT(OUT) :: label(:) … … 278 366 279 367 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 ) 283 372 284 373 END SUBROUTINE xios(get_axis_attr_hdl) 285 374 286 375 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_ ) 290 380 291 381 IMPLICIT NONE 292 382 TYPE(txios(axis)) , INTENT(IN) :: axis_hdl 293 383 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 384 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type_ 294 385 INTEGER , OPTIONAL, INTENT(OUT) :: begin_ 295 386 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:,:) 387 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name_ 388 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 296 389 INTEGER , OPTIONAL, INTENT(OUT) :: data_begin_ 297 390 INTEGER , OPTIONAL, INTENT(OUT) :: data_index_(:) 298 391 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_ 299 397 INTEGER , OPTIONAL, INTENT(OUT) :: index_(:) 300 398 CHARACTER(len=*) , OPTIONAL, INTENT(OUT) :: label_(:) … … 317 415 ENDIF 318 416 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 319 422 IF (PRESENT(begin_)) THEN 320 423 CALL cxios_get_axis_begin & … … 327 430 ENDIF 328 431 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 329 442 IF (PRESENT(data_begin_)) THEN 330 443 CALL cxios_get_axis_data_begin & … … 340 453 CALL cxios_get_axis_data_n & 341 454 (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_)) 342 480 ENDIF 343 481 … … 412 550 413 551 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 ) 417 556 418 557 IMPLICIT NONE … … 421 560 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 422 561 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 562 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 563 LOGICAL(KIND=C_BOOL) :: axis_type_tmp 423 564 LOGICAL, OPTIONAL, INTENT(OUT) :: begin 424 565 LOGICAL(KIND=C_BOOL) :: begin_tmp 425 566 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 426 567 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 427 572 LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 428 573 LOGICAL(KIND=C_BOOL) :: data_begin_tmp … … 431 576 LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 432 577 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 433 588 LOGICAL, OPTIONAL, INTENT(OUT) :: index 434 589 LOGICAL(KIND=C_BOOL) :: index_tmp … … 461 616 (axis_id,axis_hdl) 462 617 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 ) 466 622 467 623 END SUBROUTINE xios(is_defined_axis_attr) 468 624 469 625 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 ) 473 630 474 631 IMPLICIT NONE … … 476 633 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 477 634 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 635 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 636 LOGICAL(KIND=C_BOOL) :: axis_type_tmp 478 637 LOGICAL, OPTIONAL, INTENT(OUT) :: begin 479 638 LOGICAL(KIND=C_BOOL) :: begin_tmp 480 639 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 481 640 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 482 645 LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 483 646 LOGICAL(KIND=C_BOOL) :: data_begin_tmp … … 486 649 LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 487 650 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 488 661 LOGICAL, OPTIONAL, INTENT(OUT) :: index 489 662 LOGICAL(KIND=C_BOOL) :: index_tmp … … 514 687 515 688 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 ) 519 693 520 694 END SUBROUTINE xios(is_defined_axis_attr_hdl) 521 695 522 696 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_ ) 526 701 527 702 IMPLICIT NONE … … 529 704 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_ 530 705 LOGICAL(KIND=C_BOOL) :: axis_ref__tmp 706 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type_ 707 LOGICAL(KIND=C_BOOL) :: axis_type__tmp 531 708 LOGICAL, OPTIONAL, INTENT(OUT) :: begin_ 532 709 LOGICAL(KIND=C_BOOL) :: begin__tmp 533 710 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 534 711 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 535 716 LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin_ 536 717 LOGICAL(KIND=C_BOOL) :: data_begin__tmp … … 539 720 LOGICAL, OPTIONAL, INTENT(OUT) :: data_n_ 540 721 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 541 732 LOGICAL, OPTIONAL, INTENT(OUT) :: index_ 542 733 LOGICAL(KIND=C_BOOL) :: index__tmp … … 572 763 ENDIF 573 764 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 574 771 IF (PRESENT(begin_)) THEN 575 772 begin__tmp = cxios_is_defined_axis_begin & … … 584 781 ENDIF 585 782 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 586 795 IF (PRESENT(data_begin_)) THEN 587 796 data_begin__tmp = cxios_is_defined_axis_data_begin & … … 602 811 ENDIF 603 812 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 604 843 IF (PRESENT(index_)) THEN 605 844 index__tmp = cxios_is_defined_axis_index & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/iaxisgroup_attr.F90
r1052 r1545 12 12 13 13 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 ) 17 18 18 19 IMPLICIT NONE … … 20 21 CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id 21 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 23 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 22 24 INTEGER , OPTIONAL, INTENT(IN) :: begin 23 25 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 24 28 INTEGER , OPTIONAL, INTENT(IN) :: data_begin 25 29 INTEGER , OPTIONAL, INTENT(IN) :: data_index(:) 26 30 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 27 36 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 28 37 INTEGER , OPTIONAL, INTENT(IN) :: index(:) … … 44 53 (axisgroup_id,axisgroup_hdl) 45 54 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 ) 49 59 50 60 END SUBROUTINE xios(set_axisgroup_attr) 51 61 52 62 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 ) 56 67 57 68 IMPLICIT NONE 58 69 TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 59 70 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 71 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type 60 72 INTEGER , OPTIONAL, INTENT(IN) :: begin 61 73 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:) 74 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name 75 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 62 76 INTEGER , OPTIONAL, INTENT(IN) :: data_begin 63 77 INTEGER , OPTIONAL, INTENT(IN) :: data_index(:) 64 78 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 65 84 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 66 85 INTEGER , OPTIONAL, INTENT(IN) :: index(:) … … 80 99 81 100 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 ) 85 105 86 106 END SUBROUTINE xios(set_axisgroup_attr_hdl) 87 107 88 108 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_ ) 92 113 93 114 IMPLICIT NONE 94 115 TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 95 116 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 117 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type_ 96 118 INTEGER , OPTIONAL, INTENT(IN) :: begin_ 97 119 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_(:,:) 120 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name_ 121 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 98 122 INTEGER , OPTIONAL, INTENT(IN) :: data_begin_ 99 123 INTEGER , OPTIONAL, INTENT(IN) :: data_index_(:) 100 124 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_ 101 130 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 102 131 INTEGER , OPTIONAL, INTENT(IN) :: index_(:) … … 120 149 ENDIF 121 150 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 122 156 IF (PRESENT(begin_)) THEN 123 157 CALL cxios_set_axisgroup_begin & … … 130 164 ENDIF 131 165 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 132 176 IF (PRESENT(data_begin_)) THEN 133 177 CALL cxios_set_axisgroup_data_begin & … … 143 187 CALL cxios_set_axisgroup_data_n & 144 188 (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_)) 145 214 ENDIF 146 215 … … 220 289 221 290 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 ) 225 295 226 296 IMPLICIT NONE … … 228 298 CHARACTER(LEN=*), INTENT(IN) ::axisgroup_id 229 299 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 300 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 230 301 INTEGER , OPTIONAL, INTENT(OUT) :: begin 231 302 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 303 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 304 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 232 305 INTEGER , OPTIONAL, INTENT(OUT) :: data_begin 233 306 INTEGER , OPTIONAL, INTENT(OUT) :: data_index(:) 234 307 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 235 313 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 236 314 INTEGER , OPTIONAL, INTENT(OUT) :: index(:) … … 252 330 (axisgroup_id,axisgroup_hdl) 253 331 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 ) 257 336 258 337 END SUBROUTINE xios(get_axisgroup_attr) 259 338 260 339 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 ) 264 344 265 345 IMPLICIT NONE 266 346 TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 267 347 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 348 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type 268 349 INTEGER , OPTIONAL, INTENT(OUT) :: begin 269 350 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds(:,:) 351 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name 352 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 270 353 INTEGER , OPTIONAL, INTENT(OUT) :: data_begin 271 354 INTEGER , OPTIONAL, INTENT(OUT) :: data_index(:) 272 355 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 273 361 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 274 362 INTEGER , OPTIONAL, INTENT(OUT) :: index(:) … … 288 376 289 377 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 ) 293 382 294 383 END SUBROUTINE xios(get_axisgroup_attr_hdl) 295 384 296 385 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_ ) 300 390 301 391 IMPLICIT NONE 302 392 TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl 303 393 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 394 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_type_ 304 395 INTEGER , OPTIONAL, INTENT(OUT) :: begin_ 305 396 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_(:,:) 397 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_name_ 398 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 306 399 INTEGER , OPTIONAL, INTENT(OUT) :: data_begin_ 307 400 INTEGER , OPTIONAL, INTENT(OUT) :: data_index_(:) 308 401 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_ 309 407 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 310 408 INTEGER , OPTIONAL, INTENT(OUT) :: index_(:) … … 328 426 ENDIF 329 427 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 330 433 IF (PRESENT(begin_)) THEN 331 434 CALL cxios_get_axisgroup_begin & … … 338 441 ENDIF 339 442 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 340 453 IF (PRESENT(data_begin_)) THEN 341 454 CALL cxios_get_axisgroup_data_begin & … … 351 464 CALL cxios_get_axisgroup_data_n & 352 465 (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_)) 353 491 ENDIF 354 492 … … 428 566 429 567 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 ) 433 572 434 573 IMPLICIT NONE … … 437 576 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 438 577 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 578 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 579 LOGICAL(KIND=C_BOOL) :: axis_type_tmp 439 580 LOGICAL, OPTIONAL, INTENT(OUT) :: begin 440 581 LOGICAL(KIND=C_BOOL) :: begin_tmp 441 582 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 442 583 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 443 588 LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 444 589 LOGICAL(KIND=C_BOOL) :: data_begin_tmp … … 447 592 LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 448 593 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 449 604 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 450 605 LOGICAL(KIND=C_BOOL) :: group_ref_tmp … … 479 634 (axisgroup_id,axisgroup_hdl) 480 635 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 ) 484 640 485 641 END SUBROUTINE xios(is_defined_axisgroup_attr) 486 642 487 643 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 ) 491 648 492 649 IMPLICIT NONE … … 494 651 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 495 652 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp 653 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type 654 LOGICAL(KIND=C_BOOL) :: axis_type_tmp 496 655 LOGICAL, OPTIONAL, INTENT(OUT) :: begin 497 656 LOGICAL(KIND=C_BOOL) :: begin_tmp 498 657 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds 499 658 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 500 663 LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin 501 664 LOGICAL(KIND=C_BOOL) :: data_begin_tmp … … 504 667 LOGICAL, OPTIONAL, INTENT(OUT) :: data_n 505 668 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 506 679 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 507 680 LOGICAL(KIND=C_BOOL) :: group_ref_tmp … … 534 707 535 708 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 ) 539 713 540 714 END SUBROUTINE xios(is_defined_axisgroup_attr_hdl) 541 715 542 716 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_ ) 546 721 547 722 IMPLICIT NONE … … 549 724 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_ 550 725 LOGICAL(KIND=C_BOOL) :: axis_ref__tmp 726 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_type_ 727 LOGICAL(KIND=C_BOOL) :: axis_type__tmp 551 728 LOGICAL, OPTIONAL, INTENT(OUT) :: begin_ 552 729 LOGICAL(KIND=C_BOOL) :: begin__tmp 553 730 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_ 554 731 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 555 736 LOGICAL, OPTIONAL, INTENT(OUT) :: data_begin_ 556 737 LOGICAL(KIND=C_BOOL) :: data_begin__tmp … … 559 740 LOGICAL, OPTIONAL, INTENT(OUT) :: data_n_ 560 741 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 561 752 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 562 753 LOGICAL(KIND=C_BOOL) :: group_ref__tmp … … 594 785 ENDIF 595 786 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 596 793 IF (PRESENT(begin_)) THEN 597 794 begin__tmp = cxios_is_defined_axisgroup_begin & … … 606 803 ENDIF 607 804 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 608 817 IF (PRESENT(data_begin_)) THEN 609 818 data_begin__tmp = cxios_is_defined_axisgroup_data_begin & … … 624 833 ENDIF 625 834 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 626 865 IF (PRESENT(group_ref_)) THEN 627 866 group_ref__tmp = cxios_is_defined_axisgroup_group_ref & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/icalendar_wrapper_attr.F90
r966 r1545 12 12 13 13 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 & 15 15 , month_lengths, start_date, time_origin, timestep, type, year_length ) 16 16 … … 18 18 TYPE(txios(calendar_wrapper)) :: calendar_wrapper_hdl 19 19 CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 20 21 INTEGER , OPTIONAL, INTENT(IN) :: day_length 21 22 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift … … 32 33 (calendar_wrapper_id,calendar_wrapper_hdl) 33 34 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 & 35 36 , month_lengths, start_date, time_origin, timestep, type, year_length ) 36 37 … … 38 39 39 40 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 45 47 INTEGER , OPTIONAL, INTENT(IN) :: day_length 46 48 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift … … 55 57 56 58 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 & 58 60 , month_lengths, start_date, time_origin, timestep, type, year_length ) 59 61 … … 61 63 62 64 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_ & 64 66 , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 65 67 66 68 IMPLICIT NONE 67 69 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 70 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 68 71 INTEGER , OPTIONAL, INTENT(IN) :: day_length_ 69 72 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_ … … 77 80 INTEGER , OPTIONAL, INTENT(IN) :: year_length_ 78 81 82 IF (PRESENT(comment_)) THEN 83 CALL cxios_set_calendar_wrapper_comment & 84 (calendar_wrapper_hdl%daddr, comment_, len(comment_)) 85 ENDIF 86 79 87 IF (PRESENT(day_length_)) THEN 80 88 CALL cxios_set_calendar_wrapper_day_length & … … 130 138 131 139 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 & 133 141 , month_lengths, start_date, time_origin, timestep, type, year_length ) 134 142 … … 136 144 TYPE(txios(calendar_wrapper)) :: calendar_wrapper_hdl 137 145 CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 146 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 138 147 INTEGER , OPTIONAL, INTENT(OUT) :: day_length 139 148 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift … … 150 159 (calendar_wrapper_id,calendar_wrapper_hdl) 151 160 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 & 153 162 , month_lengths, start_date, time_origin, timestep, type, year_length ) 154 163 … … 156 165 157 166 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 163 173 INTEGER , OPTIONAL, INTENT(OUT) :: day_length 164 174 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift … … 173 183 174 184 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 & 176 186 , month_lengths, start_date, time_origin, timestep, type, year_length ) 177 187 … … 179 189 180 190 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_ & 182 192 , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 183 193 184 194 IMPLICIT NONE 185 195 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 196 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 186 197 INTEGER , OPTIONAL, INTENT(OUT) :: day_length_ 187 198 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_ … … 195 206 INTEGER , OPTIONAL, INTENT(OUT) :: year_length_ 196 207 208 IF (PRESENT(comment_)) THEN 209 CALL cxios_get_calendar_wrapper_comment & 210 (calendar_wrapper_hdl%daddr, comment_, len(comment_)) 211 ENDIF 212 197 213 IF (PRESENT(day_length_)) THEN 198 214 CALL cxios_get_calendar_wrapper_day_length & … … 248 264 249 265 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 & 251 267 , month_lengths, start_date, time_origin, timestep, type, year_length ) 252 268 … … 254 270 TYPE(txios(calendar_wrapper)) :: calendar_wrapper_hdl 255 271 CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 272 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 273 LOGICAL(KIND=C_BOOL) :: comment_tmp 256 274 LOGICAL, OPTIONAL, INTENT(OUT) :: day_length 257 275 LOGICAL(KIND=C_BOOL) :: day_length_tmp … … 278 296 (calendar_wrapper_id,calendar_wrapper_hdl) 279 297 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 & 281 299 , month_lengths, start_date, time_origin, timestep, type, year_length ) 282 300 … … 284 302 285 303 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 291 311 LOGICAL, OPTIONAL, INTENT(OUT) :: day_length 292 312 LOGICAL(KIND=C_BOOL) :: day_length_tmp … … 311 331 312 332 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 & 314 334 , month_lengths, start_date, time_origin, timestep, type, year_length ) 315 335 … … 317 337 318 338 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_ & 320 340 , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 321 341 322 342 IMPLICIT NONE 323 343 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 344 LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 345 LOGICAL(KIND=C_BOOL) :: comment__tmp 324 346 LOGICAL, OPTIONAL, INTENT(OUT) :: day_length_ 325 347 LOGICAL(KIND=C_BOOL) :: day_length__tmp … … 343 365 LOGICAL(KIND=C_BOOL) :: year_length__tmp 344 366 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 345 373 IF (PRESENT(day_length_)) THEN 346 374 day_length__tmp = cxios_is_defined_calendar_wrapper_day_length & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/idomain_attr.F90
r1052 r1545 12 12 13 13 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 ) 18 19 19 20 IMPLICIT NONE … … 23 24 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 24 25 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 25 27 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 26 28 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 27 31 INTEGER , OPTIONAL, INTENT(IN) :: data_dim 28 32 INTEGER , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 32 36 INTEGER , OPTIONAL, INTENT(IN) :: data_ni 33 37 INTEGER , OPTIONAL, INTENT(IN) :: data_nj 38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 34 40 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 35 41 INTEGER , OPTIONAL, INTENT(IN) :: i_index(:) … … 37 43 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:) 38 44 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 45 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 39 46 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 40 47 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 48 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 41 49 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 42 50 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) … … 59 67 (domain_id,domain_hdl) 60 68 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 ) 65 74 66 75 END SUBROUTINE xios(set_domain_attr) 67 76 68 77 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 ) 73 83 74 84 IMPLICIT NONE … … 77 87 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 78 88 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 89 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 79 90 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 80 91 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 81 94 INTEGER , OPTIONAL, INTENT(IN) :: data_dim 82 95 INTEGER , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 86 99 INTEGER , OPTIONAL, INTENT(IN) :: data_ni 87 100 INTEGER , OPTIONAL, INTENT(IN) :: data_nj 101 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 102 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 88 103 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 89 104 INTEGER , OPTIONAL, INTENT(IN) :: i_index(:) … … 91 106 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:) 92 107 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 108 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 93 109 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 94 110 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 111 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 95 112 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 96 113 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) … … 111 128 112 129 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 ) 117 135 118 136 END SUBROUTINE xios(set_domain_attr_hdl) 119 137 120 138 SUBROUTINE xios(set_domain_attr_hdl_) & 121 ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_l on_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 , l onvalue_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_ ) 126 144 127 145 IMPLICIT NONE … … 130 148 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d_(:,:) 131 149 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d_(:,:,:) 150 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name_ 132 151 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d_(:,:) 133 152 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_ 134 155 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_ 135 156 INTEGER , OPTIONAL, INTENT(IN) :: data_i_index_(:) … … 139 160 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_ 140 161 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_ 162 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name_ 163 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name_ 141 164 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 142 165 INTEGER , OPTIONAL, INTENT(IN) :: i_index_(:) … … 144 167 INTEGER , OPTIONAL, INTENT(IN) :: j_index_(:) 145 168 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_ 169 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name_ 146 170 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d_(:) 147 171 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d_(:,:) 172 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name_ 148 173 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 149 174 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d_(:) … … 178 203 ENDIF 179 204 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 180 210 IF (PRESENT(bounds_lon_1d_)) THEN 181 211 CALL cxios_set_domain_bounds_lon_1d & … … 188 218 ENDIF 189 219 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 190 230 IF (PRESENT(data_dim_)) THEN 191 231 CALL cxios_set_domain_data_dim & … … 223 263 ENDIF 224 264 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 225 275 IF (PRESENT(domain_ref_)) THEN 226 276 CALL cxios_set_domain_domain_ref & … … 248 298 ENDIF 249 299 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 250 305 IF (PRESENT(latvalue_1d_)) THEN 251 306 CALL cxios_set_domain_latvalue_1d & … … 256 311 CALL cxios_set_domain_latvalue_2d & 257 312 (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_)) 258 318 ENDIF 259 319 … … 335 395 336 396 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 ) 341 402 342 403 IMPLICIT NONE … … 346 407 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 347 408 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 409 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 348 410 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 349 411 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 350 414 INTEGER , OPTIONAL, INTENT(OUT) :: data_dim 351 415 INTEGER , OPTIONAL, INTENT(OUT) :: data_i_index(:) … … 355 419 INTEGER , OPTIONAL, INTENT(OUT) :: data_ni 356 420 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj 421 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 422 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 357 423 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 358 424 INTEGER , OPTIONAL, INTENT(OUT) :: i_index(:) … … 360 426 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:) 361 427 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 428 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 362 429 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 363 430 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 431 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 364 432 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 365 433 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) … … 382 450 (domain_id,domain_hdl) 383 451 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 ) 388 457 389 458 END SUBROUTINE xios(get_domain_attr) 390 459 391 460 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 ) 396 466 397 467 IMPLICIT NONE … … 400 470 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 401 471 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 472 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 402 473 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 403 474 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 404 477 INTEGER , OPTIONAL, INTENT(OUT) :: data_dim 405 478 INTEGER , OPTIONAL, INTENT(OUT) :: data_i_index(:) … … 409 482 INTEGER , OPTIONAL, INTENT(OUT) :: data_ni 410 483 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj 484 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 485 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 411 486 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 412 487 INTEGER , OPTIONAL, INTENT(OUT) :: i_index(:) … … 414 489 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:) 415 490 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 491 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 416 492 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 417 493 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 494 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 418 495 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 419 496 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) … … 434 511 435 512 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 ) 440 518 441 519 END SUBROUTINE xios(get_domain_attr_hdl) 442 520 443 521 SUBROUTINE xios(get_domain_attr_hdl_) & 444 ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_l on_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 , l onvalue_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_ ) 449 527 450 528 IMPLICIT NONE … … 453 531 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d_(:,:) 454 532 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d_(:,:,:) 533 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name_ 455 534 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d_(:,:) 456 535 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_ 457 538 INTEGER , OPTIONAL, INTENT(OUT) :: data_dim_ 458 539 INTEGER , OPTIONAL, INTENT(OUT) :: data_i_index_(:) … … 462 543 INTEGER , OPTIONAL, INTENT(OUT) :: data_ni_ 463 544 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj_ 545 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name_ 546 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name_ 464 547 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 465 548 INTEGER , OPTIONAL, INTENT(OUT) :: i_index_(:) … … 467 550 INTEGER , OPTIONAL, INTENT(OUT) :: j_index_(:) 468 551 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin_ 552 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name_ 469 553 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d_(:) 470 554 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d_(:,:) 555 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name_ 471 556 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 472 557 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d_(:) … … 501 586 ENDIF 502 587 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 503 593 IF (PRESENT(bounds_lon_1d_)) THEN 504 594 CALL cxios_get_domain_bounds_lon_1d & … … 511 601 ENDIF 512 602 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 513 613 IF (PRESENT(data_dim_)) THEN 514 614 CALL cxios_get_domain_data_dim & … … 546 646 ENDIF 547 647 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 548 658 IF (PRESENT(domain_ref_)) THEN 549 659 CALL cxios_get_domain_domain_ref & … … 571 681 ENDIF 572 682 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 573 688 IF (PRESENT(latvalue_1d_)) THEN 574 689 CALL cxios_get_domain_latvalue_1d & … … 579 694 CALL cxios_get_domain_latvalue_2d & 580 695 (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_)) 581 701 ENDIF 582 702 … … 658 778 659 779 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 ) 664 785 665 786 IMPLICIT NONE … … 672 793 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 673 794 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 674 797 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 675 798 LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 676 799 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 677 800 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 678 805 LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 679 806 LOGICAL(KIND=C_BOOL) :: data_dim_tmp … … 690 817 LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 691 818 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 692 823 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 693 824 LOGICAL(KIND=C_BOOL) :: domain_ref_tmp … … 700 831 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 701 832 LOGICAL(KIND=C_BOOL) :: jbegin_tmp 833 LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 834 LOGICAL(KIND=C_BOOL) :: lat_name_tmp 702 835 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 703 836 LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 704 837 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 705 838 LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 839 LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 840 LOGICAL(KIND=C_BOOL) :: lon_name_tmp 706 841 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 707 842 LOGICAL(KIND=C_BOOL) :: long_name_tmp … … 736 871 (domain_id,domain_hdl) 737 872 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 ) 742 878 743 879 END SUBROUTINE xios(is_defined_domain_attr) 744 880 745 881 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 ) 750 887 751 888 IMPLICIT NONE … … 757 894 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 758 895 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 759 898 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 760 899 LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 761 900 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 762 901 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 763 906 LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 764 907 LOGICAL(KIND=C_BOOL) :: data_dim_tmp … … 775 918 LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 776 919 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 777 924 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 778 925 LOGICAL(KIND=C_BOOL) :: domain_ref_tmp … … 785 932 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 786 933 LOGICAL(KIND=C_BOOL) :: jbegin_tmp 934 LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 935 LOGICAL(KIND=C_BOOL) :: lat_name_tmp 787 936 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 788 937 LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 789 938 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 790 939 LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 940 LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 941 LOGICAL(KIND=C_BOOL) :: lon_name_tmp 791 942 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 792 943 LOGICAL(KIND=C_BOOL) :: long_name_tmp … … 819 970 820 971 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 ) 825 977 826 978 END SUBROUTINE xios(is_defined_domain_attr_hdl) 827 979 828 980 SUBROUTINE xios(is_defined_domain_attr_hdl_) & 829 ( domain_hdl, area_, bounds_lat_1d_, bounds_lat_2d_, bounds_l on_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 , l onvalue_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_ ) 834 986 835 987 IMPLICIT NONE … … 841 993 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d_ 842 994 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 843 997 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d_ 844 998 LOGICAL(KIND=C_BOOL) :: bounds_lon_1d__tmp 845 999 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d_ 846 1000 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 847 1005 LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim_ 848 1006 LOGICAL(KIND=C_BOOL) :: data_dim__tmp … … 859 1017 LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj_ 860 1018 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 861 1023 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 862 1024 LOGICAL(KIND=C_BOOL) :: domain_ref__tmp … … 869 1031 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 870 1032 LOGICAL(KIND=C_BOOL) :: jbegin__tmp 1033 LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name_ 1034 LOGICAL(KIND=C_BOOL) :: lat_name__tmp 871 1035 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d_ 872 1036 LOGICAL(KIND=C_BOOL) :: latvalue_1d__tmp 873 1037 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d_ 874 1038 LOGICAL(KIND=C_BOOL) :: latvalue_2d__tmp 1039 LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name_ 1040 LOGICAL(KIND=C_BOOL) :: lon_name__tmp 875 1041 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 876 1042 LOGICAL(KIND=C_BOOL) :: long_name__tmp … … 920 1086 ENDIF 921 1087 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 922 1094 IF (PRESENT(bounds_lon_1d_)) THEN 923 1095 bounds_lon_1d__tmp = cxios_is_defined_domain_bounds_lon_1d & … … 932 1104 ENDIF 933 1105 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 934 1118 IF (PRESENT(data_dim_)) THEN 935 1119 data_dim__tmp = cxios_is_defined_domain_data_dim & … … 974 1158 ENDIF 975 1159 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 976 1172 IF (PRESENT(domain_ref_)) THEN 977 1173 domain_ref__tmp = cxios_is_defined_domain_domain_ref & … … 1004 1200 ENDIF 1005 1201 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 1006 1208 IF (PRESENT(latvalue_1d_)) THEN 1007 1209 latvalue_1d__tmp = cxios_is_defined_domain_latvalue_1d & … … 1016 1218 ENDIF 1017 1219 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 1018 1226 IF (PRESENT(long_name_)) THEN 1019 1227 long_name__tmp = cxios_is_defined_domain_long_name & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/idomaingroup_attr.F90
r1052 r1545 12 12 13 13 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 ) 18 19 19 20 IMPLICIT NONE … … 23 24 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 24 25 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 25 27 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 26 28 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 27 31 INTEGER , OPTIONAL, INTENT(IN) :: data_dim 28 32 INTEGER , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 32 36 INTEGER , OPTIONAL, INTENT(IN) :: data_ni 33 37 INTEGER , OPTIONAL, INTENT(IN) :: data_nj 38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 34 40 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 35 41 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref … … 38 44 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:) 39 45 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 46 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 40 47 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 41 48 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 49 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 42 50 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 43 51 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) … … 60 68 (domaingroup_id,domaingroup_hdl) 61 69 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 ) 66 75 67 76 END SUBROUTINE xios(set_domaingroup_attr) 68 77 69 78 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 ) 74 84 75 85 IMPLICIT NONE … … 78 88 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:) 79 89 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:) 90 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name 80 91 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:) 81 92 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 82 95 INTEGER , OPTIONAL, INTENT(IN) :: data_dim 83 96 INTEGER , OPTIONAL, INTENT(IN) :: data_i_index(:) … … 87 100 INTEGER , OPTIONAL, INTENT(IN) :: data_ni 88 101 INTEGER , OPTIONAL, INTENT(IN) :: data_nj 102 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name 103 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name 89 104 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref 90 105 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref … … 93 108 INTEGER , OPTIONAL, INTENT(IN) :: j_index(:) 94 109 INTEGER , OPTIONAL, INTENT(IN) :: jbegin 110 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name 95 111 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:) 96 112 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:) 113 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name 97 114 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 98 115 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:) … … 113 130 114 131 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 ) 119 137 120 138 END SUBROUTINE xios(set_domaingroup_attr_hdl) 121 139 122 140 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 ) 128 147 129 148 IMPLICIT NONE … … 132 151 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d_(:,:) 133 152 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d_(:,:,:) 153 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name_ 134 154 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d_(:,:) 135 155 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_ 136 158 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_ 137 159 INTEGER , OPTIONAL, INTENT(IN) :: data_i_index_(:) … … 141 163 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_ 142 164 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_ 165 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name_ 166 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name_ 143 167 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_ 144 168 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ … … 147 171 INTEGER , OPTIONAL, INTENT(IN) :: j_index_(:) 148 172 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_ 173 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name_ 149 174 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d_(:) 150 175 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d_(:,:) 176 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name_ 151 177 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 152 178 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d_(:) … … 181 207 ENDIF 182 208 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 183 214 IF (PRESENT(bounds_lon_1d_)) THEN 184 215 CALL cxios_set_domaingroup_bounds_lon_1d & … … 191 222 ENDIF 192 223 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 193 234 IF (PRESENT(data_dim_)) THEN 194 235 CALL cxios_set_domaingroup_data_dim & … … 226 267 ENDIF 227 268 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 228 279 IF (PRESENT(domain_ref_)) THEN 229 280 CALL cxios_set_domaingroup_domain_ref & … … 256 307 ENDIF 257 308 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 258 314 IF (PRESENT(latvalue_1d_)) THEN 259 315 CALL cxios_set_domaingroup_latvalue_1d & … … 264 320 CALL cxios_set_domaingroup_latvalue_2d & 265 321 (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_)) 266 327 ENDIF 267 328 … … 343 404 344 405 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 ) 349 411 350 412 IMPLICIT NONE … … 354 416 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 355 417 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 418 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 356 419 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 357 420 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 358 423 INTEGER , OPTIONAL, INTENT(OUT) :: data_dim 359 424 INTEGER , OPTIONAL, INTENT(OUT) :: data_i_index(:) … … 363 428 INTEGER , OPTIONAL, INTENT(OUT) :: data_ni 364 429 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj 430 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 431 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 365 432 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 366 433 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref … … 369 436 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:) 370 437 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 438 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 371 439 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 372 440 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 441 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 373 442 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 374 443 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) … … 391 460 (domaingroup_id,domaingroup_hdl) 392 461 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 ) 397 467 398 468 END SUBROUTINE xios(get_domaingroup_attr) 399 469 400 470 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 ) 405 476 406 477 IMPLICIT NONE … … 409 480 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d(:,:) 410 481 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d(:,:,:) 482 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name 411 483 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d(:,:) 412 484 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 413 487 INTEGER , OPTIONAL, INTENT(OUT) :: data_dim 414 488 INTEGER , OPTIONAL, INTENT(OUT) :: data_i_index(:) … … 418 492 INTEGER , OPTIONAL, INTENT(OUT) :: data_ni 419 493 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj 494 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name 495 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name 420 496 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref 421 497 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref … … 424 500 INTEGER , OPTIONAL, INTENT(OUT) :: j_index(:) 425 501 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin 502 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name 426 503 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d(:) 427 504 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d(:,:) 505 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name 428 506 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 429 507 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d(:) … … 444 522 445 523 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 ) 450 529 451 530 END SUBROUTINE xios(get_domaingroup_attr_hdl) 452 531 453 532 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 ) 459 539 460 540 IMPLICIT NONE … … 463 543 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_1d_(:,:) 464 544 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lat_2d_(:,:,:) 545 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: bounds_lat_name_ 465 546 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: bounds_lon_1d_(:,:) 466 547 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_ 467 550 INTEGER , OPTIONAL, INTENT(OUT) :: data_dim_ 468 551 INTEGER , OPTIONAL, INTENT(OUT) :: data_i_index_(:) … … 472 555 INTEGER , OPTIONAL, INTENT(OUT) :: data_ni_ 473 556 INTEGER , OPTIONAL, INTENT(OUT) :: data_nj_ 557 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_i_name_ 558 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: dim_j_name_ 474 559 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_ 475 560 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ … … 478 563 INTEGER , OPTIONAL, INTENT(OUT) :: j_index_(:) 479 564 INTEGER , OPTIONAL, INTENT(OUT) :: jbegin_ 565 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lat_name_ 480 566 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_1d_(:) 481 567 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: latvalue_2d_(:,:) 568 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: lon_name_ 482 569 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 483 570 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: lonvalue_1d_(:) … … 512 599 ENDIF 513 600 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 514 606 IF (PRESENT(bounds_lon_1d_)) THEN 515 607 CALL cxios_get_domaingroup_bounds_lon_1d & … … 522 614 ENDIF 523 615 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 524 626 IF (PRESENT(data_dim_)) THEN 525 627 CALL cxios_get_domaingroup_data_dim & … … 557 659 ENDIF 558 660 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 559 671 IF (PRESENT(domain_ref_)) THEN 560 672 CALL cxios_get_domaingroup_domain_ref & … … 587 699 ENDIF 588 700 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 589 706 IF (PRESENT(latvalue_1d_)) THEN 590 707 CALL cxios_get_domaingroup_latvalue_1d & … … 595 712 CALL cxios_get_domaingroup_latvalue_2d & 596 713 (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_)) 597 719 ENDIF 598 720 … … 674 796 675 797 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 ) 680 803 681 804 IMPLICIT NONE … … 688 811 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 689 812 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 690 815 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 691 816 LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 692 817 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 693 818 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 694 823 LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 695 824 LOGICAL(KIND=C_BOOL) :: data_dim_tmp … … 706 835 LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 707 836 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 708 841 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 709 842 LOGICAL(KIND=C_BOOL) :: domain_ref_tmp … … 718 851 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 719 852 LOGICAL(KIND=C_BOOL) :: jbegin_tmp 853 LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 854 LOGICAL(KIND=C_BOOL) :: lat_name_tmp 720 855 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 721 856 LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 722 857 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 723 858 LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 859 LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 860 LOGICAL(KIND=C_BOOL) :: lon_name_tmp 724 861 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 725 862 LOGICAL(KIND=C_BOOL) :: long_name_tmp … … 754 891 (domaingroup_id,domaingroup_hdl) 755 892 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 ) 760 898 761 899 END SUBROUTINE xios(is_defined_domaingroup_attr) 762 900 763 901 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 ) 768 907 769 908 IMPLICIT NONE … … 775 914 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d 776 915 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 777 918 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d 778 919 LOGICAL(KIND=C_BOOL) :: bounds_lon_1d_tmp 779 920 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d 780 921 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 781 926 LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim 782 927 LOGICAL(KIND=C_BOOL) :: data_dim_tmp … … 793 938 LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj 794 939 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 795 944 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref 796 945 LOGICAL(KIND=C_BOOL) :: domain_ref_tmp … … 805 954 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin 806 955 LOGICAL(KIND=C_BOOL) :: jbegin_tmp 956 LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name 957 LOGICAL(KIND=C_BOOL) :: lat_name_tmp 807 958 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d 808 959 LOGICAL(KIND=C_BOOL) :: latvalue_1d_tmp 809 960 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d 810 961 LOGICAL(KIND=C_BOOL) :: latvalue_2d_tmp 962 LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name 963 LOGICAL(KIND=C_BOOL) :: lon_name_tmp 811 964 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 812 965 LOGICAL(KIND=C_BOOL) :: long_name_tmp … … 839 992 840 993 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 ) 845 999 846 1000 END SUBROUTINE xios(is_defined_domaingroup_attr_hdl) 847 1001 848 1002 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 ) 854 1009 855 1010 IMPLICIT NONE … … 861 1016 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d_ 862 1017 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 863 1020 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d_ 864 1021 LOGICAL(KIND=C_BOOL) :: bounds_lon_1d__tmp 865 1022 LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d_ 866 1023 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 867 1028 LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim_ 868 1029 LOGICAL(KIND=C_BOOL) :: data_dim__tmp … … 879 1040 LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj_ 880 1041 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 881 1046 LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_ 882 1047 LOGICAL(KIND=C_BOOL) :: domain_ref__tmp … … 891 1056 LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin_ 892 1057 LOGICAL(KIND=C_BOOL) :: jbegin__tmp 1058 LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name_ 1059 LOGICAL(KIND=C_BOOL) :: lat_name__tmp 893 1060 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d_ 894 1061 LOGICAL(KIND=C_BOOL) :: latvalue_1d__tmp 895 1062 LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d_ 896 1063 LOGICAL(KIND=C_BOOL) :: latvalue_2d__tmp 1064 LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name_ 1065 LOGICAL(KIND=C_BOOL) :: lon_name__tmp 897 1066 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 898 1067 LOGICAL(KIND=C_BOOL) :: long_name__tmp … … 942 1111 ENDIF 943 1112 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 944 1119 IF (PRESENT(bounds_lon_1d_)) THEN 945 1120 bounds_lon_1d__tmp = cxios_is_defined_domaingroup_bounds_lon_1d & … … 954 1129 ENDIF 955 1130 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 956 1143 IF (PRESENT(data_dim_)) THEN 957 1144 data_dim__tmp = cxios_is_defined_domaingroup_data_dim & … … 996 1183 ENDIF 997 1184 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 998 1197 IF (PRESENT(domain_ref_)) THEN 999 1198 domain_ref__tmp = cxios_is_defined_domaingroup_domain_ref & … … 1032 1231 ENDIF 1033 1232 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 1034 1239 IF (PRESENT(latvalue_1d_)) THEN 1035 1240 latvalue_1d__tmp = cxios_is_defined_domaingroup_latvalue_1d & … … 1044 1249 ENDIF 1045 1250 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 1046 1257 IF (PRESENT(long_name_)) THEN 1047 1258 long_name__tmp = cxios_is_defined_domaingroup_long_name & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/ifield_attr.F90
r1205 r1545 12 12 13 13 SUBROUTINE xios(set_field_attr) & 14 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 19 19 20 20 IMPLICIT NONE … … 27 27 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 28 28 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 29 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 29 30 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 30 31 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 62 63 (field_id,field_hdl) 63 64 CALL xios(set_field_attr_hdl_) & 64 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 69 70 70 71 END SUBROUTINE xios(set_field_attr) 71 72 72 73 SUBROUTINE xios(set_field_attr_hdl) & 73 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 78 79 79 80 IMPLICIT NONE … … 85 86 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 86 87 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 88 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 87 89 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 88 90 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 118 120 119 121 CALL xios(set_field_attr_hdl_) & 120 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 125 127 126 128 END SUBROUTINE xios(set_field_attr_hdl) 127 129 128 130 SUBROUTINE xios(set_field_attr_hdl_) & 129 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, com pression_level_ &130 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ &131 , freq_o p_, 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_ ) 134 136 135 137 IMPLICIT NONE … … 141 143 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active_ 142 144 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 145 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 143 146 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 144 147 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ … … 199 202 ENDIF 200 203 204 IF (PRESENT(comment_)) THEN 205 CALL cxios_set_field_comment & 206 (field_hdl%daddr, comment_, len(comment_)) 207 ENDIF 208 201 209 IF (PRESENT(compression_level_)) THEN 202 210 CALL cxios_set_field_compression_level & … … 337 345 338 346 SUBROUTINE xios(get_field_attr) & 339 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 344 352 345 353 IMPLICIT NONE … … 352 360 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 353 361 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 362 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 354 363 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 355 364 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 387 396 (field_id,field_hdl) 388 397 CALL xios(get_field_attr_hdl_) & 389 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 394 403 395 404 END SUBROUTINE xios(get_field_attr) 396 405 397 406 SUBROUTINE xios(get_field_attr_hdl) & 398 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 403 412 404 413 IMPLICIT NONE … … 410 419 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 411 420 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 421 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 412 422 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 413 423 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 443 453 444 454 CALL xios(get_field_attr_hdl_) & 445 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 450 460 451 461 END SUBROUTINE xios(get_field_attr_hdl) 452 462 453 463 SUBROUTINE xios(get_field_attr_hdl_) & 454 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, com pression_level_ &455 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ &456 , freq_o p_, 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_ ) 459 469 460 470 IMPLICIT NONE … … 466 476 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active_ 467 477 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 478 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 468 479 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 469 480 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ … … 524 535 ENDIF 525 536 537 IF (PRESENT(comment_)) THEN 538 CALL cxios_get_field_comment & 539 (field_hdl%daddr, comment_, len(comment_)) 540 ENDIF 541 526 542 IF (PRESENT(compression_level_)) THEN 527 543 CALL cxios_get_field_compression_level & … … 662 678 663 679 SUBROUTINE xios(is_defined_field_attr) & 664 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 669 685 670 686 IMPLICIT NONE … … 681 697 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 682 698 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 699 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 700 LOGICAL(KIND=C_BOOL) :: comment_tmp 683 701 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 684 702 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 737 755 (field_id,field_hdl) 738 756 CALL xios(is_defined_field_attr_hdl_) & 739 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 744 762 745 763 END SUBROUTINE xios(is_defined_field_attr) 746 764 747 765 SUBROUTINE xios(is_defined_field_attr_hdl) & 748 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 753 771 754 772 IMPLICIT NONE … … 764 782 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 765 783 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 784 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 785 LOGICAL(KIND=C_BOOL) :: comment_tmp 766 786 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 767 787 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 818 838 819 839 CALL xios(is_defined_field_attr_hdl_) & 820 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 825 845 826 846 END SUBROUTINE xios(is_defined_field_attr_hdl) 827 847 828 848 SUBROUTINE xios(is_defined_field_attr_hdl_) & 829 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, com pression_level_ &830 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ &831 , freq_o p_, 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_ ) 834 854 835 855 IMPLICIT NONE … … 845 865 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active_ 846 866 LOGICAL(KIND=C_BOOL) :: check_if_active__tmp 867 LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 868 LOGICAL(KIND=C_BOOL) :: comment__tmp 847 869 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 848 870 LOGICAL(KIND=C_BOOL) :: compression_level__tmp … … 928 950 ENDIF 929 951 952 IF (PRESENT(comment_)) THEN 953 comment__tmp = cxios_is_defined_field_comment & 954 (field_hdl%daddr) 955 comment_ = comment__tmp 956 ENDIF 957 930 958 IF (PRESENT(compression_level_)) THEN 931 959 compression_level__tmp = cxios_is_defined_field_compression_level & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/ifieldgroup_attr.F90
r1205 r1545 12 12 13 13 SUBROUTINE xios(set_fieldgroup_attr) & 14 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 19 19 20 20 IMPLICIT NONE … … 27 27 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 28 28 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 29 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 29 30 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 30 31 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 63 64 (fieldgroup_id,fieldgroup_hdl) 64 65 CALL xios(set_fieldgroup_attr_hdl_) & 65 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 70 71 71 72 END SUBROUTINE xios(set_fieldgroup_attr) 72 73 73 74 SUBROUTINE xios(set_fieldgroup_attr_hdl) & 74 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 79 80 80 81 IMPLICIT NONE … … 86 87 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 87 88 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 89 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 88 90 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 89 91 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 120 122 121 123 CALL xios(set_fieldgroup_attr_hdl_) & 122 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 127 129 128 130 END SUBROUTINE xios(set_fieldgroup_attr_hdl) … … 130 132 SUBROUTINE xios(set_fieldgroup_attr_hdl_) & 131 133 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_ & 132 , com pression_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_ ) 136 138 137 139 IMPLICIT NONE … … 143 145 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active_ 144 146 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 147 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 145 148 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 146 149 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ … … 202 205 ENDIF 203 206 207 IF (PRESENT(comment_)) THEN 208 CALL cxios_set_fieldgroup_comment & 209 (fieldgroup_hdl%daddr, comment_, len(comment_)) 210 ENDIF 211 204 212 IF (PRESENT(compression_level_)) THEN 205 213 CALL cxios_set_fieldgroup_compression_level & … … 345 353 346 354 SUBROUTINE xios(get_fieldgroup_attr) & 347 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 352 360 353 361 IMPLICIT NONE … … 360 368 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 361 369 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 370 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 362 371 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 363 372 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 396 405 (fieldgroup_id,fieldgroup_hdl) 397 406 CALL xios(get_fieldgroup_attr_hdl_) & 398 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 403 412 404 413 END SUBROUTINE xios(get_fieldgroup_attr) 405 414 406 415 SUBROUTINE xios(get_fieldgroup_attr_hdl) & 407 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 412 421 413 422 IMPLICIT NONE … … 419 428 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 420 429 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 430 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 421 431 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 422 432 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 453 463 454 464 CALL xios(get_fieldgroup_attr_hdl_) & 455 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 460 470 461 471 END SUBROUTINE xios(get_fieldgroup_attr_hdl) … … 463 473 SUBROUTINE xios(get_fieldgroup_attr_hdl_) & 464 474 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_ & 465 , com pression_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_ ) 469 479 470 480 IMPLICIT NONE … … 476 486 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active_ 477 487 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 488 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 478 489 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 479 490 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ … … 535 546 ENDIF 536 547 548 IF (PRESENT(comment_)) THEN 549 CALL cxios_get_fieldgroup_comment & 550 (fieldgroup_hdl%daddr, comment_, len(comment_)) 551 ENDIF 552 537 553 IF (PRESENT(compression_level_)) THEN 538 554 CALL cxios_get_fieldgroup_compression_level & … … 678 694 679 695 SUBROUTINE xios(is_defined_fieldgroup_attr) & 680 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 685 701 686 702 IMPLICIT NONE … … 697 713 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 698 714 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 715 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 716 LOGICAL(KIND=C_BOOL) :: comment_tmp 699 717 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 700 718 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 755 773 (fieldgroup_id,fieldgroup_hdl) 756 774 CALL xios(is_defined_fieldgroup_attr_hdl_) & 757 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 762 780 763 781 END SUBROUTINE xios(is_defined_fieldgroup_attr) 764 782 765 783 SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) & 766 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 771 789 772 790 IMPLICIT NONE … … 782 800 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 783 801 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 802 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 803 LOGICAL(KIND=C_BOOL) :: comment_tmp 784 804 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 785 805 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 838 858 839 859 CALL xios(is_defined_fieldgroup_attr_hdl_) & 840 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, com pression_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 ) 845 865 846 866 END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) … … 848 868 SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_) & 849 869 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_ & 850 , com pression_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_ ) 854 874 855 875 IMPLICIT NONE … … 865 885 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active_ 866 886 LOGICAL(KIND=C_BOOL) :: check_if_active__tmp 887 LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 888 LOGICAL(KIND=C_BOOL) :: comment__tmp 867 889 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 868 890 LOGICAL(KIND=C_BOOL) :: compression_level__tmp … … 950 972 ENDIF 951 973 974 IF (PRESENT(comment_)) THEN 975 comment__tmp = cxios_is_defined_fieldgroup_comment & 976 (fieldgroup_hdl%daddr) 977 comment_ = comment__tmp 978 ENDIF 979 952 980 IF (PRESENT(compression_level_)) THEN 953 981 compression_level__tmp = cxios_is_defined_fieldgroup_compression_level & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/ifile_attr.F90
r1205 r1545 12 12 13 13 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 ) 18 19 19 20 IMPLICIT NONE … … 22 23 LOGICAL , OPTIONAL, INTENT(IN) :: append 23 24 LOGICAL (KIND=C_BOOL) :: append_tmp 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 24 26 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 25 27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention … … 38 40 INTEGER , OPTIONAL, INTENT(IN) :: output_level 39 41 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 42 LOGICAL , OPTIONAL, INTENT(IN) :: read_metadata_par 43 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 40 44 INTEGER , OPTIONAL, INTENT(IN) :: record_offset 45 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_end_offset 41 46 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_freq 42 47 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 43 50 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: sync_freq 44 51 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter … … 56 63 (file_id,file_hdl) 57 64 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 ) 62 70 63 71 END SUBROUTINE xios(set_file_attr) 64 72 65 73 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 ) 70 79 71 80 IMPLICIT NONE … … 73 82 LOGICAL , OPTIONAL, INTENT(IN) :: append 74 83 LOGICAL (KIND=C_BOOL) :: append_tmp 84 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 75 85 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 76 86 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention … … 89 99 INTEGER , OPTIONAL, INTENT(IN) :: output_level 90 100 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 101 LOGICAL , OPTIONAL, INTENT(IN) :: read_metadata_par 102 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 91 103 INTEGER , OPTIONAL, INTENT(IN) :: record_offset 104 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_end_offset 92 105 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_freq 93 106 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 94 109 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: sync_freq 95 110 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter … … 105 120 106 121 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 ) 111 127 112 128 END SUBROUTINE xios(set_file_attr_hdl) 113 129 114 130 SUBROUTINE xios(set_file_attr_hdl_) & 115 ( file_hdl, append_, com pression_level_, convention_, convention_str_, cyclic_, description_ &131 ( file_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_, description_ & 116 132 , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ & 117 , re cord_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_ ) 120 136 121 137 IMPLICIT NONE … … 123 139 LOGICAL , OPTIONAL, INTENT(IN) :: append_ 124 140 LOGICAL (KIND=C_BOOL) :: append__tmp 141 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 125 142 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 126 143 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ … … 139 156 INTEGER , OPTIONAL, INTENT(IN) :: output_level_ 140 157 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access_ 158 LOGICAL , OPTIONAL, INTENT(IN) :: read_metadata_par_ 159 LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 141 160 INTEGER , OPTIONAL, INTENT(IN) :: record_offset_ 161 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_end_offset_ 142 162 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_freq_ 143 163 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_ 144 166 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: sync_freq_ 145 167 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter_ … … 160 182 ENDIF 161 183 184 IF (PRESENT(comment_)) THEN 185 CALL cxios_set_file_comment & 186 (file_hdl%daddr, comment_, len(comment_)) 187 ENDIF 188 162 189 IF (PRESENT(compression_level_)) THEN 163 190 CALL cxios_set_file_compression_level & … … 232 259 ENDIF 233 260 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 234 267 IF (PRESENT(record_offset_)) THEN 235 268 CALL cxios_set_file_record_offset & … … 237 270 ENDIF 238 271 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 239 277 IF (PRESENT(split_freq_)) THEN 240 278 CALL cxios_set_file_split_freq & … … 247 285 ENDIF 248 286 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 249 297 IF (PRESENT(sync_freq_)) THEN 250 298 CALL cxios_set_file_sync_freq & … … 305 353 306 354 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 ) 311 360 312 361 IMPLICIT NONE … … 315 364 LOGICAL , OPTIONAL, INTENT(OUT) :: append 316 365 LOGICAL (KIND=C_BOOL) :: append_tmp 366 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 317 367 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 318 368 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention … … 331 381 INTEGER , OPTIONAL, INTENT(OUT) :: output_level 332 382 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 383 LOGICAL , OPTIONAL, INTENT(OUT) :: read_metadata_par 384 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 333 385 INTEGER , OPTIONAL, INTENT(OUT) :: record_offset 386 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_end_offset 334 387 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_freq 335 388 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 336 391 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: sync_freq 337 392 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter … … 349 404 (file_id,file_hdl) 350 405 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 ) 355 411 356 412 END SUBROUTINE xios(get_file_attr) 357 413 358 414 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 ) 363 420 364 421 IMPLICIT NONE … … 366 423 LOGICAL , OPTIONAL, INTENT(OUT) :: append 367 424 LOGICAL (KIND=C_BOOL) :: append_tmp 425 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 368 426 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 369 427 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention … … 382 440 INTEGER , OPTIONAL, INTENT(OUT) :: output_level 383 441 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 442 LOGICAL , OPTIONAL, INTENT(OUT) :: read_metadata_par 443 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 384 444 INTEGER , OPTIONAL, INTENT(OUT) :: record_offset 445 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_end_offset 385 446 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_freq 386 447 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 387 450 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: sync_freq 388 451 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter … … 398 461 399 462 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 ) 404 468 405 469 END SUBROUTINE xios(get_file_attr_hdl) 406 470 407 471 SUBROUTINE xios(get_file_attr_hdl_) & 408 ( file_hdl, append_, com pression_level_, convention_, convention_str_, cyclic_, description_ &472 ( file_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_, description_ & 409 473 , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ & 410 , re cord_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_ ) 413 477 414 478 IMPLICIT NONE … … 416 480 LOGICAL , OPTIONAL, INTENT(OUT) :: append_ 417 481 LOGICAL (KIND=C_BOOL) :: append__tmp 482 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 418 483 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 419 484 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ … … 432 497 INTEGER , OPTIONAL, INTENT(OUT) :: output_level_ 433 498 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access_ 499 LOGICAL , OPTIONAL, INTENT(OUT) :: read_metadata_par_ 500 LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 434 501 INTEGER , OPTIONAL, INTENT(OUT) :: record_offset_ 502 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_end_offset_ 435 503 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_freq_ 436 504 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_ 437 507 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: sync_freq_ 438 508 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter_ … … 453 523 ENDIF 454 524 525 IF (PRESENT(comment_)) THEN 526 CALL cxios_get_file_comment & 527 (file_hdl%daddr, comment_, len(comment_)) 528 ENDIF 529 455 530 IF (PRESENT(compression_level_)) THEN 456 531 CALL cxios_get_file_compression_level & … … 525 600 ENDIF 526 601 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 527 608 IF (PRESENT(record_offset_)) THEN 528 609 CALL cxios_get_file_record_offset & … … 530 611 ENDIF 531 612 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 532 618 IF (PRESENT(split_freq_)) THEN 533 619 CALL cxios_get_file_split_freq & … … 540 626 ENDIF 541 627 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 542 638 IF (PRESENT(sync_freq_)) THEN 543 639 CALL cxios_get_file_sync_freq & … … 598 694 599 695 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 ) 604 701 605 702 IMPLICIT NONE … … 608 705 LOGICAL, OPTIONAL, INTENT(OUT) :: append 609 706 LOGICAL(KIND=C_BOOL) :: append_tmp 707 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 708 LOGICAL(KIND=C_BOOL) :: comment_tmp 610 709 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 611 710 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 636 735 LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 637 736 LOGICAL(KIND=C_BOOL) :: par_access_tmp 737 LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 738 LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 638 739 LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 639 740 LOGICAL(KIND=C_BOOL) :: record_offset_tmp 741 LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 742 LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 640 743 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 641 744 LOGICAL(KIND=C_BOOL) :: split_freq_tmp 642 745 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 643 746 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 644 751 LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 645 752 LOGICAL(KIND=C_BOOL) :: sync_freq_tmp … … 668 775 (file_id,file_hdl) 669 776 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 ) 674 782 675 783 END SUBROUTINE xios(is_defined_file_attr) 676 784 677 785 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 ) 682 791 683 792 IMPLICIT NONE … … 685 794 LOGICAL, OPTIONAL, INTENT(OUT) :: append 686 795 LOGICAL(KIND=C_BOOL) :: append_tmp 796 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 797 LOGICAL(KIND=C_BOOL) :: comment_tmp 687 798 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 688 799 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 713 824 LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 714 825 LOGICAL(KIND=C_BOOL) :: par_access_tmp 826 LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 827 LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 715 828 LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 716 829 LOGICAL(KIND=C_BOOL) :: record_offset_tmp 830 LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 831 LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 717 832 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 718 833 LOGICAL(KIND=C_BOOL) :: split_freq_tmp 719 834 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 720 835 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 721 840 LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 722 841 LOGICAL(KIND=C_BOOL) :: sync_freq_tmp … … 743 862 744 863 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 ) 749 869 750 870 END SUBROUTINE xios(is_defined_file_attr_hdl) 751 871 752 872 SUBROUTINE xios(is_defined_file_attr_hdl_) & 753 ( file_hdl, append_, com pression_level_, convention_, convention_str_, cyclic_, description_ &873 ( file_hdl, append_, comment_, compression_level_, convention_, convention_str_, cyclic_, description_ & 754 874 , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ & 755 , re cord_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_ ) 758 878 759 879 IMPLICIT NONE … … 761 881 LOGICAL, OPTIONAL, INTENT(OUT) :: append_ 762 882 LOGICAL(KIND=C_BOOL) :: append__tmp 883 LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 884 LOGICAL(KIND=C_BOOL) :: comment__tmp 763 885 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 764 886 LOGICAL(KIND=C_BOOL) :: compression_level__tmp … … 789 911 LOGICAL, OPTIONAL, INTENT(OUT) :: par_access_ 790 912 LOGICAL(KIND=C_BOOL) :: par_access__tmp 913 LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par_ 914 LOGICAL(KIND=C_BOOL) :: read_metadata_par__tmp 791 915 LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset_ 792 916 LOGICAL(KIND=C_BOOL) :: record_offset__tmp 917 LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset_ 918 LOGICAL(KIND=C_BOOL) :: split_end_offset__tmp 793 919 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_ 794 920 LOGICAL(KIND=C_BOOL) :: split_freq__tmp 795 921 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format_ 796 922 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 797 927 LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq_ 798 928 LOGICAL(KIND=C_BOOL) :: sync_freq__tmp … … 824 954 ENDIF 825 955 956 IF (PRESENT(comment_)) THEN 957 comment__tmp = cxios_is_defined_file_comment & 958 (file_hdl%daddr) 959 comment_ = comment__tmp 960 ENDIF 961 826 962 IF (PRESENT(compression_level_)) THEN 827 963 compression_level__tmp = cxios_is_defined_file_compression_level & … … 908 1044 ENDIF 909 1045 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 910 1052 IF (PRESENT(record_offset_)) THEN 911 1053 record_offset__tmp = cxios_is_defined_file_record_offset & … … 914 1056 ENDIF 915 1057 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 916 1064 IF (PRESENT(split_freq_)) THEN 917 1065 split_freq__tmp = cxios_is_defined_file_split_freq & … … 926 1074 ENDIF 927 1075 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 928 1088 IF (PRESENT(sync_freq_)) THEN 929 1089 sync_freq__tmp = cxios_is_defined_file_sync_freq & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/ifilegroup_attr.F90
r1205 r1545 12 12 13 13 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 & 17 18 , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 18 19 … … 22 23 LOGICAL , OPTIONAL, INTENT(IN) :: append 23 24 LOGICAL (KIND=C_BOOL) :: append_tmp 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 24 26 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 25 27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention … … 39 41 INTEGER , OPTIONAL, INTENT(IN) :: output_level 40 42 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 43 LOGICAL , OPTIONAL, INTENT(IN) :: read_metadata_par 44 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 41 45 INTEGER , OPTIONAL, INTENT(IN) :: record_offset 46 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_end_offset 42 47 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_freq 43 48 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 44 51 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: sync_freq 45 52 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter … … 57 64 (filegroup_id,filegroup_hdl) 58 65 CALL xios(set_filegroup_attr_hdl_) & 59 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &66 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 60 67 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 61 , par_access, re cord_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 ) 64 71 65 72 END SUBROUTINE xios(set_filegroup_attr) 66 73 67 74 SUBROUTINE xios(set_filegroup_attr_hdl) & 68 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &75 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 69 76 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 70 , par_access, re cord_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 ) 73 80 74 81 IMPLICIT NONE … … 76 83 LOGICAL , OPTIONAL, INTENT(IN) :: append 77 84 LOGICAL (KIND=C_BOOL) :: append_tmp 85 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 78 86 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 79 87 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention … … 93 101 INTEGER , OPTIONAL, INTENT(IN) :: output_level 94 102 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access 103 LOGICAL , OPTIONAL, INTENT(IN) :: read_metadata_par 104 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 95 105 INTEGER , OPTIONAL, INTENT(IN) :: record_offset 106 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_end_offset 96 107 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_freq 97 108 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 98 111 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: sync_freq 99 112 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter … … 109 122 110 123 CALL xios(set_filegroup_attr_hdl_) & 111 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &124 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 112 125 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 113 , par_access, re cord_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 ) 116 129 117 130 END SUBROUTINE xios(set_filegroup_attr_hdl) 118 131 119 132 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_ & 123 137 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 124 138 , uuid_name_ ) … … 128 142 LOGICAL , OPTIONAL, INTENT(IN) :: append_ 129 143 LOGICAL (KIND=C_BOOL) :: append__tmp 144 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 130 145 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 131 146 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ … … 145 160 INTEGER , OPTIONAL, INTENT(IN) :: output_level_ 146 161 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access_ 162 LOGICAL , OPTIONAL, INTENT(IN) :: read_metadata_par_ 163 LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 147 164 INTEGER , OPTIONAL, INTENT(IN) :: record_offset_ 165 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_end_offset_ 148 166 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: split_freq_ 149 167 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_ 150 170 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: sync_freq_ 151 171 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter_ … … 166 186 ENDIF 167 187 188 IF (PRESENT(comment_)) THEN 189 CALL cxios_set_filegroup_comment & 190 (filegroup_hdl%daddr, comment_, len(comment_)) 191 ENDIF 192 168 193 IF (PRESENT(compression_level_)) THEN 169 194 CALL cxios_set_filegroup_compression_level & … … 243 268 ENDIF 244 269 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 245 276 IF (PRESENT(record_offset_)) THEN 246 277 CALL cxios_set_filegroup_record_offset & … … 248 279 ENDIF 249 280 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 250 286 IF (PRESENT(split_freq_)) THEN 251 287 CALL cxios_set_filegroup_split_freq & … … 258 294 ENDIF 259 295 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 260 306 IF (PRESENT(sync_freq_)) THEN 261 307 CALL cxios_set_filegroup_sync_freq & … … 316 362 317 363 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 & 321 368 , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 322 369 … … 326 373 LOGICAL , OPTIONAL, INTENT(OUT) :: append 327 374 LOGICAL (KIND=C_BOOL) :: append_tmp 375 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 328 376 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 329 377 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention … … 343 391 INTEGER , OPTIONAL, INTENT(OUT) :: output_level 344 392 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 393 LOGICAL , OPTIONAL, INTENT(OUT) :: read_metadata_par 394 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 345 395 INTEGER , OPTIONAL, INTENT(OUT) :: record_offset 396 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_end_offset 346 397 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_freq 347 398 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 348 401 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: sync_freq 349 402 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter … … 361 414 (filegroup_id,filegroup_hdl) 362 415 CALL xios(get_filegroup_attr_hdl_) & 363 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &416 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 364 417 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 365 , par_access, re cord_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 ) 368 421 369 422 END SUBROUTINE xios(get_filegroup_attr) 370 423 371 424 SUBROUTINE xios(get_filegroup_attr_hdl) & 372 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &425 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 373 426 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 374 , par_access, re cord_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 ) 377 430 378 431 IMPLICIT NONE … … 380 433 LOGICAL , OPTIONAL, INTENT(OUT) :: append 381 434 LOGICAL (KIND=C_BOOL) :: append_tmp 435 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 382 436 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 383 437 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention … … 397 451 INTEGER , OPTIONAL, INTENT(OUT) :: output_level 398 452 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access 453 LOGICAL , OPTIONAL, INTENT(OUT) :: read_metadata_par 454 LOGICAL (KIND=C_BOOL) :: read_metadata_par_tmp 399 455 INTEGER , OPTIONAL, INTENT(OUT) :: record_offset 456 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_end_offset 400 457 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_freq 401 458 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 402 461 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: sync_freq 403 462 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter … … 413 472 414 473 CALL xios(get_filegroup_attr_hdl_) & 415 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &474 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 416 475 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 417 , par_access, re cord_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 ) 420 479 421 480 END SUBROUTINE xios(get_filegroup_attr_hdl) 422 481 423 482 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_ & 427 487 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 428 488 , uuid_name_ ) … … 432 492 LOGICAL , OPTIONAL, INTENT(OUT) :: append_ 433 493 LOGICAL (KIND=C_BOOL) :: append__tmp 494 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 434 495 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 435 496 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ … … 449 510 INTEGER , OPTIONAL, INTENT(OUT) :: output_level_ 450 511 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: par_access_ 512 LOGICAL , OPTIONAL, INTENT(OUT) :: read_metadata_par_ 513 LOGICAL (KIND=C_BOOL) :: read_metadata_par__tmp 451 514 INTEGER , OPTIONAL, INTENT(OUT) :: record_offset_ 515 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_end_offset_ 452 516 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: split_freq_ 453 517 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_ 454 520 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: sync_freq_ 455 521 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_counter_ … … 470 536 ENDIF 471 537 538 IF (PRESENT(comment_)) THEN 539 CALL cxios_get_filegroup_comment & 540 (filegroup_hdl%daddr, comment_, len(comment_)) 541 ENDIF 542 472 543 IF (PRESENT(compression_level_)) THEN 473 544 CALL cxios_get_filegroup_compression_level & … … 547 618 ENDIF 548 619 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 549 626 IF (PRESENT(record_offset_)) THEN 550 627 CALL cxios_get_filegroup_record_offset & … … 552 629 ENDIF 553 630 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 554 636 IF (PRESENT(split_freq_)) THEN 555 637 CALL cxios_get_filegroup_split_freq & … … 562 644 ENDIF 563 645 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 564 656 IF (PRESENT(sync_freq_)) THEN 565 657 CALL cxios_get_filegroup_sync_freq & … … 620 712 621 713 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 & 625 718 , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 626 719 … … 630 723 LOGICAL, OPTIONAL, INTENT(OUT) :: append 631 724 LOGICAL(KIND=C_BOOL) :: append_tmp 725 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 726 LOGICAL(KIND=C_BOOL) :: comment_tmp 632 727 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 633 728 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 660 755 LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 661 756 LOGICAL(KIND=C_BOOL) :: par_access_tmp 757 LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 758 LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 662 759 LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 663 760 LOGICAL(KIND=C_BOOL) :: record_offset_tmp 761 LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 762 LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 664 763 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 665 764 LOGICAL(KIND=C_BOOL) :: split_freq_tmp 666 765 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 667 766 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 668 771 LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 669 772 LOGICAL(KIND=C_BOOL) :: sync_freq_tmp … … 692 795 (filegroup_id,filegroup_hdl) 693 796 CALL xios(is_defined_filegroup_attr_hdl_) & 694 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &797 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 695 798 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 696 , par_access, re cord_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 ) 699 802 700 803 END SUBROUTINE xios(is_defined_filegroup_attr) 701 804 702 805 SUBROUTINE xios(is_defined_filegroup_attr_hdl) & 703 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &806 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 704 807 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 705 , par_access, re cord_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 ) 708 811 709 812 IMPLICIT NONE … … 711 814 LOGICAL, OPTIONAL, INTENT(OUT) :: append 712 815 LOGICAL(KIND=C_BOOL) :: append_tmp 816 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 817 LOGICAL(KIND=C_BOOL) :: comment_tmp 713 818 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 714 819 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 741 846 LOGICAL, OPTIONAL, INTENT(OUT) :: par_access 742 847 LOGICAL(KIND=C_BOOL) :: par_access_tmp 848 LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par 849 LOGICAL(KIND=C_BOOL) :: read_metadata_par_tmp 743 850 LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset 744 851 LOGICAL(KIND=C_BOOL) :: record_offset_tmp 852 LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset 853 LOGICAL(KIND=C_BOOL) :: split_end_offset_tmp 745 854 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq 746 855 LOGICAL(KIND=C_BOOL) :: split_freq_tmp 747 856 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format 748 857 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 749 862 LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq 750 863 LOGICAL(KIND=C_BOOL) :: sync_freq_tmp … … 771 884 772 885 CALL xios(is_defined_filegroup_attr_hdl_) & 773 ( filegroup_hdl, append, com pression_level, convention, convention_str, cyclic, description &886 ( filegroup_hdl, append, comment, compression_level, convention, convention_str, cyclic, description & 774 887 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 775 , par_access, re cord_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 ) 778 891 779 892 END SUBROUTINE xios(is_defined_filegroup_attr_hdl) 780 893 781 894 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_ & 785 899 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 786 900 , uuid_name_ ) … … 790 904 LOGICAL, OPTIONAL, INTENT(OUT) :: append_ 791 905 LOGICAL(KIND=C_BOOL) :: append__tmp 906 LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 907 LOGICAL(KIND=C_BOOL) :: comment__tmp 792 908 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 793 909 LOGICAL(KIND=C_BOOL) :: compression_level__tmp … … 820 936 LOGICAL, OPTIONAL, INTENT(OUT) :: par_access_ 821 937 LOGICAL(KIND=C_BOOL) :: par_access__tmp 938 LOGICAL, OPTIONAL, INTENT(OUT) :: read_metadata_par_ 939 LOGICAL(KIND=C_BOOL) :: read_metadata_par__tmp 822 940 LOGICAL, OPTIONAL, INTENT(OUT) :: record_offset_ 823 941 LOGICAL(KIND=C_BOOL) :: record_offset__tmp 942 LOGICAL, OPTIONAL, INTENT(OUT) :: split_end_offset_ 943 LOGICAL(KIND=C_BOOL) :: split_end_offset__tmp 824 944 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_ 825 945 LOGICAL(KIND=C_BOOL) :: split_freq__tmp 826 946 LOGICAL, OPTIONAL, INTENT(OUT) :: split_freq_format_ 827 947 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 828 952 LOGICAL, OPTIONAL, INTENT(OUT) :: sync_freq_ 829 953 LOGICAL(KIND=C_BOOL) :: sync_freq__tmp … … 855 979 ENDIF 856 980 981 IF (PRESENT(comment_)) THEN 982 comment__tmp = cxios_is_defined_filegroup_comment & 983 (filegroup_hdl%daddr) 984 comment_ = comment__tmp 985 ENDIF 986 857 987 IF (PRESENT(compression_level_)) THEN 858 988 compression_level__tmp = cxios_is_defined_filegroup_compression_level & … … 945 1075 ENDIF 946 1076 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 947 1083 IF (PRESENT(record_offset_)) THEN 948 1084 record_offset__tmp = cxios_is_defined_filegroup_record_offset & … … 951 1087 ENDIF 952 1088 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 953 1095 IF (PRESENT(split_freq_)) THEN 954 1096 split_freq__tmp = cxios_is_defined_filegroup_split_freq & … … 963 1105 ENDIF 964 1106 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 965 1119 IF (PRESENT(sync_freq_)) THEN 966 1120 sync_freq__tmp = cxios_is_defined_filegroup_sync_freq & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/igrid_attr.F90
r966 r1545 12 12 13 13 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 ) 16 16 17 17 IMPLICIT NONE 18 18 TYPE(txios(grid)) :: grid_hdl 19 19 CHARACTER(LEN=*), INTENT(IN) ::grid_id 20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 20 21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 22 LOGICAL , OPTIONAL, INTENT(IN) :: mask_0d(:) 23 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 21 24 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d(:) 22 25 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 38 41 (grid_id,grid_hdl) 39 42 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 ) 42 45 43 46 END SUBROUTINE xios(set_grid_attr) 44 47 45 48 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 ) 48 51 49 52 IMPLICIT NONE 50 53 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 51 55 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 56 LOGICAL , OPTIONAL, INTENT(IN) :: mask_0d(:) 57 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 52 58 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d(:) 53 59 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 67 73 68 74 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 ) 71 77 72 78 END SUBROUTINE xios(set_grid_attr_hdl) 73 79 74 80 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_ ) 77 83 78 84 IMPLICIT NONE 79 85 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 86 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 80 87 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 88 LOGICAL , OPTIONAL, INTENT(IN) :: mask_0d_(:) 89 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 81 90 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d_(:) 82 91 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) … … 95 104 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 96 105 106 IF (PRESENT(comment_)) THEN 107 CALL cxios_set_grid_comment & 108 (grid_hdl%daddr, comment_, len(comment_)) 109 ENDIF 110 97 111 IF (PRESENT(description_)) THEN 98 112 CALL cxios_set_grid_description & 99 113 (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_)) 100 121 ENDIF 101 122 … … 162 183 163 184 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 ) 166 187 167 188 IMPLICIT NONE 168 189 TYPE(txios(grid)) :: grid_hdl 169 190 CHARACTER(LEN=*), INTENT(IN) ::grid_id 191 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 170 192 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 193 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_0d(:) 194 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 171 195 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d(:) 172 196 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 188 212 (grid_id,grid_hdl) 189 213 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 ) 192 216 193 217 END SUBROUTINE xios(get_grid_attr) 194 218 195 219 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 ) 198 222 199 223 IMPLICIT NONE 200 224 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 225 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 201 226 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 227 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_0d(:) 228 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 202 229 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d(:) 203 230 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 217 244 218 245 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 ) 221 248 222 249 END SUBROUTINE xios(get_grid_attr_hdl) 223 250 224 251 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_ ) 227 254 228 255 IMPLICIT NONE 229 256 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 257 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 230 258 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 259 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_0d_(:) 260 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 231 261 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d_(:) 232 262 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) … … 245 275 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 246 276 277 IF (PRESENT(comment_)) THEN 278 CALL cxios_get_grid_comment & 279 (grid_hdl%daddr, comment_, len(comment_)) 280 ENDIF 281 247 282 IF (PRESENT(description_)) THEN 248 283 CALL cxios_get_grid_description & 249 284 (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 250 292 ENDIF 251 293 … … 312 354 313 355 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 ) 316 358 317 359 IMPLICIT NONE 318 360 TYPE(txios(grid)) :: grid_hdl 319 361 CHARACTER(LEN=*), INTENT(IN) ::grid_id 362 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 363 LOGICAL(KIND=C_BOOL) :: comment_tmp 320 364 LOGICAL, OPTIONAL, INTENT(OUT) :: description 321 365 LOGICAL(KIND=C_BOOL) :: description_tmp 366 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 367 LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 322 368 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 323 369 LOGICAL(KIND=C_BOOL) :: mask_1d_tmp … … 340 386 (grid_id,grid_hdl) 341 387 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 ) 344 390 345 391 END SUBROUTINE xios(is_defined_grid_attr) 346 392 347 393 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 ) 350 396 351 397 IMPLICIT NONE 352 398 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 399 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 400 LOGICAL(KIND=C_BOOL) :: comment_tmp 353 401 LOGICAL, OPTIONAL, INTENT(OUT) :: description 354 402 LOGICAL(KIND=C_BOOL) :: description_tmp 403 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 404 LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 355 405 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 356 406 LOGICAL(KIND=C_BOOL) :: mask_1d_tmp … … 371 421 372 422 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 ) 375 425 376 426 END SUBROUTINE xios(is_defined_grid_attr_hdl) 377 427 378 428 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_ ) 381 431 382 432 IMPLICIT NONE 383 433 TYPE(txios(grid)) , INTENT(IN) :: grid_hdl 434 LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 435 LOGICAL(KIND=C_BOOL) :: comment__tmp 384 436 LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 385 437 LOGICAL(KIND=C_BOOL) :: description__tmp 438 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d_ 439 LOGICAL(KIND=C_BOOL) :: mask_0d__tmp 386 440 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d_ 387 441 LOGICAL(KIND=C_BOOL) :: mask_1d__tmp … … 401 455 LOGICAL(KIND=C_BOOL) :: name__tmp 402 456 457 IF (PRESENT(comment_)) THEN 458 comment__tmp = cxios_is_defined_grid_comment & 459 (grid_hdl%daddr) 460 comment_ = comment__tmp 461 ENDIF 462 403 463 IF (PRESENT(description_)) THEN 404 464 description__tmp = cxios_is_defined_grid_description & … … 407 467 ENDIF 408 468 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 409 475 IF (PRESENT(mask_1d_)) THEN 410 476 mask_1d__tmp = cxios_is_defined_grid_mask_1d & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/igridgroup_attr.F90
r966 r1545 12 12 13 13 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 ) 16 16 17 17 IMPLICIT NONE 18 18 TYPE(txios(gridgroup)) :: gridgroup_hdl 19 19 CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 20 21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 21 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 23 LOGICAL , OPTIONAL, INTENT(IN) :: mask_0d(:) 24 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 22 25 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d(:) 23 26 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 39 42 (gridgroup_id,gridgroup_hdl) 40 43 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 ) 43 46 44 47 END SUBROUTINE xios(set_gridgroup_attr) 45 48 46 49 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 ) 49 52 50 53 IMPLICIT NONE 51 54 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 55 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment 52 56 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description 53 57 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 58 LOGICAL , OPTIONAL, INTENT(IN) :: mask_0d(:) 59 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 54 60 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d(:) 55 61 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 69 75 70 76 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 ) 73 79 74 80 END SUBROUTINE xios(set_gridgroup_attr_hdl) 75 81 76 82 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_ ) 79 85 80 86 IMPLICIT NONE 81 87 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 88 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment_ 82 89 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_ 83 90 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 91 LOGICAL , OPTIONAL, INTENT(IN) :: mask_0d_(:) 92 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 84 93 LOGICAL , OPTIONAL, INTENT(IN) :: mask_1d_(:) 85 94 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) … … 98 107 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 99 108 109 IF (PRESENT(comment_)) THEN 110 CALL cxios_set_gridgroup_comment & 111 (gridgroup_hdl%daddr, comment_, len(comment_)) 112 ENDIF 113 100 114 IF (PRESENT(description_)) THEN 101 115 CALL cxios_set_gridgroup_description & … … 106 120 CALL cxios_set_gridgroup_group_ref & 107 121 (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_)) 108 129 ENDIF 109 130 … … 170 191 171 192 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 ) 174 195 175 196 IMPLICIT NONE 176 197 TYPE(txios(gridgroup)) :: gridgroup_hdl 177 198 CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 199 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 178 200 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 179 201 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 202 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_0d(:) 203 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 180 204 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d(:) 181 205 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 197 221 (gridgroup_id,gridgroup_hdl) 198 222 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 ) 201 225 202 226 END SUBROUTINE xios(get_gridgroup_attr) 203 227 204 228 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 ) 207 231 208 232 IMPLICIT NONE 209 233 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 234 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment 210 235 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description 211 236 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 237 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_0d(:) 238 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d_tmp(:) 212 239 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d(:) 213 240 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d_tmp(:) … … 227 254 228 255 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 ) 231 258 232 259 END SUBROUTINE xios(get_gridgroup_attr_hdl) 233 260 234 261 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_ ) 237 264 238 265 IMPLICIT NONE 239 266 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 267 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment_ 240 268 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: description_ 241 269 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 270 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_0d_(:) 271 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_0d__tmp(:) 242 272 LOGICAL , OPTIONAL, INTENT(OUT) :: mask_1d_(:) 243 273 LOGICAL (KIND=C_BOOL) , ALLOCATABLE :: mask_1d__tmp(:) … … 256 286 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 257 287 288 IF (PRESENT(comment_)) THEN 289 CALL cxios_get_gridgroup_comment & 290 (gridgroup_hdl%daddr, comment_, len(comment_)) 291 ENDIF 292 258 293 IF (PRESENT(description_)) THEN 259 294 CALL cxios_get_gridgroup_description & … … 264 299 CALL cxios_get_gridgroup_group_ref & 265 300 (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 266 308 ENDIF 267 309 … … 328 370 329 371 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 ) 332 374 333 375 IMPLICIT NONE 334 376 TYPE(txios(gridgroup)) :: gridgroup_hdl 335 377 CHARACTER(LEN=*), INTENT(IN) ::gridgroup_id 378 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 379 LOGICAL(KIND=C_BOOL) :: comment_tmp 336 380 LOGICAL, OPTIONAL, INTENT(OUT) :: description 337 381 LOGICAL(KIND=C_BOOL) :: description_tmp 338 382 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 339 383 LOGICAL(KIND=C_BOOL) :: group_ref_tmp 384 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 385 LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 340 386 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 341 387 LOGICAL(KIND=C_BOOL) :: mask_1d_tmp … … 358 404 (gridgroup_id,gridgroup_hdl) 359 405 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 ) 362 408 363 409 END SUBROUTINE xios(is_defined_gridgroup_attr) 364 410 365 411 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 ) 368 414 369 415 IMPLICIT NONE 370 416 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 417 LOGICAL, OPTIONAL, INTENT(OUT) :: comment 418 LOGICAL(KIND=C_BOOL) :: comment_tmp 371 419 LOGICAL, OPTIONAL, INTENT(OUT) :: description 372 420 LOGICAL(KIND=C_BOOL) :: description_tmp 373 421 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 374 422 LOGICAL(KIND=C_BOOL) :: group_ref_tmp 423 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d 424 LOGICAL(KIND=C_BOOL) :: mask_0d_tmp 375 425 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d 376 426 LOGICAL(KIND=C_BOOL) :: mask_1d_tmp … … 391 441 392 442 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 ) 395 445 396 446 END SUBROUTINE xios(is_defined_gridgroup_attr_hdl) 397 447 398 448 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_ ) 401 451 402 452 IMPLICIT NONE 403 453 TYPE(txios(gridgroup)) , INTENT(IN) :: gridgroup_hdl 454 LOGICAL, OPTIONAL, INTENT(OUT) :: comment_ 455 LOGICAL(KIND=C_BOOL) :: comment__tmp 404 456 LOGICAL, OPTIONAL, INTENT(OUT) :: description_ 405 457 LOGICAL(KIND=C_BOOL) :: description__tmp 406 458 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 407 459 LOGICAL(KIND=C_BOOL) :: group_ref__tmp 460 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_0d_ 461 LOGICAL(KIND=C_BOOL) :: mask_0d__tmp 408 462 LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d_ 409 463 LOGICAL(KIND=C_BOOL) :: mask_1d__tmp … … 423 477 LOGICAL(KIND=C_BOOL) :: name__tmp 424 478 479 IF (PRESENT(comment_)) THEN 480 comment__tmp = cxios_is_defined_gridgroup_comment & 481 (gridgroup_hdl%daddr) 482 comment_ = comment__tmp 483 ENDIF 484 425 485 IF (PRESENT(description_)) THEN 426 486 description__tmp = cxios_is_defined_gridgroup_description & … … 435 495 ENDIF 436 496 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 437 503 IF (PRESENT(mask_1d_)) THEN 438 504 mask_1d__tmp = cxios_is_defined_gridgroup_mask_1d & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/iinterpolate_domain_attr.F90
r1205 r1545 12 12 13 13 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 ) 15 16 16 17 IMPLICIT NONE 17 18 TYPE(txios(interpolate_domain)) :: interpolate_domain_hdl 18 19 CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id 20 LOGICAL , OPTIONAL, INTENT(IN) :: detect_missing_value 21 LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 19 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 20 23 INTEGER , OPTIONAL, INTENT(IN) :: order 21 24 LOGICAL , OPTIONAL, INTENT(IN) :: quantity 22 25 LOGICAL (KIND=C_BOOL) :: quantity_tmp 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: read_write_convention 23 27 LOGICAL , OPTIONAL, INTENT(IN) :: renormalize 24 28 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 30 34 (interpolate_domain_id,interpolate_domain_hdl) 31 35 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 ) 34 38 35 39 END SUBROUTINE xios(set_interpolate_domain_attr) 36 40 37 41 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 43 49 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 44 50 INTEGER , OPTIONAL, INTENT(IN) :: order 45 51 LOGICAL , OPTIONAL, INTENT(IN) :: quantity 46 52 LOGICAL (KIND=C_BOOL) :: quantity_tmp 53 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: read_write_convention 47 54 LOGICAL , OPTIONAL, INTENT(IN) :: renormalize 48 55 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 52 59 53 60 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 ) 56 63 57 64 END SUBROUTINE xios(set_interpolate_domain_attr_hdl) 58 65 59 66 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 65 74 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode_ 66 75 INTEGER , OPTIONAL, INTENT(IN) :: order_ 67 76 LOGICAL , OPTIONAL, INTENT(IN) :: quantity_ 68 77 LOGICAL (KIND=C_BOOL) :: quantity__tmp 78 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: read_write_convention_ 69 79 LOGICAL , OPTIONAL, INTENT(IN) :: renormalize_ 70 80 LOGICAL (KIND=C_BOOL) :: renormalize__tmp … … 73 83 LOGICAL (KIND=C_BOOL) :: write_weight__tmp 74 84 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 75 91 IF (PRESENT(mode_)) THEN 76 92 CALL cxios_set_interpolate_domain_mode & … … 89 105 ENDIF 90 106 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 91 112 IF (PRESENT(renormalize_)) THEN 92 113 renormalize__tmp = renormalize_ … … 109 130 110 131 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 ) 112 134 113 135 IMPLICIT NONE 114 136 TYPE(txios(interpolate_domain)) :: interpolate_domain_hdl 115 137 CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id 138 LOGICAL , OPTIONAL, INTENT(OUT) :: detect_missing_value 139 LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp 116 140 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 117 141 INTEGER , OPTIONAL, INTENT(OUT) :: order 118 142 LOGICAL , OPTIONAL, INTENT(OUT) :: quantity 119 143 LOGICAL (KIND=C_BOOL) :: quantity_tmp 144 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: read_write_convention 120 145 LOGICAL , OPTIONAL, INTENT(OUT) :: renormalize 121 146 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 127 152 (interpolate_domain_id,interpolate_domain_hdl) 128 153 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 ) 131 156 132 157 END SUBROUTINE xios(get_interpolate_domain_attr) 133 158 134 159 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 140 167 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 141 168 INTEGER , OPTIONAL, INTENT(OUT) :: order 142 169 LOGICAL , OPTIONAL, INTENT(OUT) :: quantity 143 170 LOGICAL (KIND=C_BOOL) :: quantity_tmp 171 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: read_write_convention 144 172 LOGICAL , OPTIONAL, INTENT(OUT) :: renormalize 145 173 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 149 177 150 178 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 ) 153 181 154 182 END SUBROUTINE xios(get_interpolate_domain_attr_hdl) 155 183 156 184 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 162 192 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode_ 163 193 INTEGER , OPTIONAL, INTENT(OUT) :: order_ 164 194 LOGICAL , OPTIONAL, INTENT(OUT) :: quantity_ 165 195 LOGICAL (KIND=C_BOOL) :: quantity__tmp 196 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: read_write_convention_ 166 197 LOGICAL , OPTIONAL, INTENT(OUT) :: renormalize_ 167 198 LOGICAL (KIND=C_BOOL) :: renormalize__tmp … … 170 201 LOGICAL (KIND=C_BOOL) :: write_weight__tmp 171 202 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 172 209 IF (PRESENT(mode_)) THEN 173 210 CALL cxios_get_interpolate_domain_mode & … … 186 223 ENDIF 187 224 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 188 230 IF (PRESENT(renormalize_)) THEN 189 231 CALL cxios_get_interpolate_domain_renormalize & … … 206 248 207 249 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 ) 209 252 210 253 IMPLICIT NONE 211 254 TYPE(txios(interpolate_domain)) :: interpolate_domain_hdl 212 255 CHARACTER(LEN=*), INTENT(IN) ::interpolate_domain_id 256 LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value 257 LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp 213 258 LOGICAL, OPTIONAL, INTENT(OUT) :: mode 214 259 LOGICAL(KIND=C_BOOL) :: mode_tmp … … 217 262 LOGICAL, OPTIONAL, INTENT(OUT) :: quantity 218 263 LOGICAL(KIND=C_BOOL) :: quantity_tmp 264 LOGICAL, OPTIONAL, INTENT(OUT) :: read_write_convention 265 LOGICAL(KIND=C_BOOL) :: read_write_convention_tmp 219 266 LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 220 267 LOGICAL(KIND=C_BOOL) :: renormalize_tmp … … 227 274 (interpolate_domain_id,interpolate_domain_hdl) 228 275 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 ) 231 278 232 279 END SUBROUTINE xios(is_defined_interpolate_domain_attr) 233 280 234 281 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 240 289 LOGICAL, OPTIONAL, INTENT(OUT) :: mode 241 290 LOGICAL(KIND=C_BOOL) :: mode_tmp … … 244 293 LOGICAL, OPTIONAL, INTENT(OUT) :: quantity 245 294 LOGICAL(KIND=C_BOOL) :: quantity_tmp 295 LOGICAL, OPTIONAL, INTENT(OUT) :: read_write_convention 296 LOGICAL(KIND=C_BOOL) :: read_write_convention_tmp 246 297 LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 247 298 LOGICAL(KIND=C_BOOL) :: renormalize_tmp … … 252 303 253 304 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 ) 256 307 257 308 END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl) 258 309 259 310 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 265 318 LOGICAL, OPTIONAL, INTENT(OUT) :: mode_ 266 319 LOGICAL(KIND=C_BOOL) :: mode__tmp … … 269 322 LOGICAL, OPTIONAL, INTENT(OUT) :: quantity_ 270 323 LOGICAL(KIND=C_BOOL) :: quantity__tmp 324 LOGICAL, OPTIONAL, INTENT(OUT) :: read_write_convention_ 325 LOGICAL(KIND=C_BOOL) :: read_write_convention__tmp 271 326 LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize_ 272 327 LOGICAL(KIND=C_BOOL) :: renormalize__tmp … … 276 331 LOGICAL(KIND=C_BOOL) :: write_weight__tmp 277 332 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 278 339 IF (PRESENT(mode_)) THEN 279 340 mode__tmp = cxios_is_defined_interpolate_domain_mode & … … 294 355 ENDIF 295 356 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 296 363 IF (PRESENT(renormalize_)) THEN 297 364 renormalize__tmp = cxios_is_defined_interpolate_domain_renormalize & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/interpolate_domain_interface_attr.F90
r1205 r1545 9 9 INTERFACE 10 10 ! 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 11 30 12 31 SUBROUTINE cxios_set_interpolate_domain_mode(interpolate_domain_hdl, mode, mode_size) BIND(C) … … 67 86 INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 68 87 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 69 109 70 110 -
XIOS/dev/branch_openmp/src/interface/fortran_attr/ireduce_domain_to_axis_attr.F90
r981 r1545 12 12 13 13 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 ) 15 15 16 16 IMPLICIT NONE … … 18 18 CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_axis_id 19 19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: direction 20 LOGICAL , OPTIONAL, INTENT(IN) :: local 21 LOGICAL (KIND=C_BOOL) :: local_tmp 20 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 21 23 … … 23 25 (reduce_domain_to_axis_id,reduce_domain_to_axis_hdl) 24 26 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 ) 26 28 27 29 END SUBROUTINE xios(set_reduce_domain_to_axis_attr) 28 30 29 31 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 ) 31 33 32 34 IMPLICIT NONE 33 35 TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 34 36 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: direction 37 LOGICAL , OPTIONAL, INTENT(IN) :: local 38 LOGICAL (KIND=C_BOOL) :: local_tmp 35 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 36 40 37 41 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 ) 39 43 40 44 END SUBROUTINE xios(set_reduce_domain_to_axis_attr_hdl) 41 45 42 46 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_ ) 44 48 45 49 IMPLICIT NONE 46 50 TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 47 51 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: direction_ 52 LOGICAL , OPTIONAL, INTENT(IN) :: local_ 53 LOGICAL (KIND=C_BOOL) :: local__tmp 48 54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_ 49 55 … … 53 59 ENDIF 54 60 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 55 67 IF (PRESENT(operation_)) THEN 56 68 CALL cxios_set_reduce_domain_to_axis_operation & … … 61 73 62 74 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 ) 64 76 65 77 IMPLICIT NONE … … 67 79 CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_axis_id 68 80 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: direction 81 LOGICAL , OPTIONAL, INTENT(OUT) :: local 82 LOGICAL (KIND=C_BOOL) :: local_tmp 69 83 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 70 84 … … 72 86 (reduce_domain_to_axis_id,reduce_domain_to_axis_hdl) 73 87 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 ) 75 89 76 90 END SUBROUTINE xios(get_reduce_domain_to_axis_attr) 77 91 78 92 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 ) 80 94 81 95 IMPLICIT NONE 82 96 TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 83 97 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: direction 98 LOGICAL , OPTIONAL, INTENT(OUT) :: local 99 LOGICAL (KIND=C_BOOL) :: local_tmp 84 100 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 85 101 86 102 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 ) 88 104 89 105 END SUBROUTINE xios(get_reduce_domain_to_axis_attr_hdl) 90 106 91 107 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_ ) 93 109 94 110 IMPLICIT NONE 95 111 TYPE(txios(reduce_domain_to_axis)) , INTENT(IN) :: reduce_domain_to_axis_hdl 96 112 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: direction_ 113 LOGICAL , OPTIONAL, INTENT(OUT) :: local_ 114 LOGICAL (KIND=C_BOOL) :: local__tmp 97 115 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_ 98 116 … … 102 120 ENDIF 103 121 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 104 128 IF (PRESENT(operation_)) THEN 105 129 CALL cxios_get_reduce_domain_to_axis_operation & … … 110 134 111 135 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 ) 113 137 114 138 IMPLICIT NONE … … 117 141 LOGICAL, OPTIONAL, INTENT(OUT) :: direction 118 142 LOGICAL(KIND=C_BOOL) :: direction_tmp 143 LOGICAL, OPTIONAL, INTENT(OUT) :: local 144 LOGICAL(KIND=C_BOOL) :: local_tmp 119 145 LOGICAL, OPTIONAL, INTENT(OUT) :: operation 120 146 LOGICAL(KIND=C_BOOL) :: operation_tmp … … 123 149 (reduce_domain_to_axis_id,reduce_domain_to_axis_hdl) 124 150 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 ) 126 152 127 153 END SUBROUTINE xios(is_defined_reduce_domain_to_axis_attr) 128 154 129 155 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 ) 131 157 132 158 IMPLICIT NONE … … 134 160 LOGICAL, OPTIONAL, INTENT(OUT) :: direction 135 161 LOGICAL(KIND=C_BOOL) :: direction_tmp 162 LOGICAL, OPTIONAL, INTENT(OUT) :: local 163 LOGICAL(KIND=C_BOOL) :: local_tmp 136 164 LOGICAL, OPTIONAL, INTENT(OUT) :: operation 137 165 LOGICAL(KIND=C_BOOL) :: operation_tmp 138 166 139 167 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 ) 141 169 142 170 END SUBROUTINE xios(is_defined_reduce_domain_to_axis_attr_hdl) 143 171 144 172 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_ ) 146 174 147 175 IMPLICIT NONE … … 149 177 LOGICAL, OPTIONAL, INTENT(OUT) :: direction_ 150 178 LOGICAL(KIND=C_BOOL) :: direction__tmp 179 LOGICAL, OPTIONAL, INTENT(OUT) :: local_ 180 LOGICAL(KIND=C_BOOL) :: local__tmp 151 181 LOGICAL, OPTIONAL, INTENT(OUT) :: operation_ 152 182 LOGICAL(KIND=C_BOOL) :: operation__tmp … … 158 188 ENDIF 159 189 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 160 196 IF (PRESENT(operation_)) THEN 161 197 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 12 12 13 13 SUBROUTINE xios(set_reduce_domain_to_scalar_attr) & 14 ( reduce_domain_to_scalar_id, operation )14 ( reduce_domain_to_scalar_id, local, operation ) 15 15 16 16 IMPLICIT NONE 17 17 TYPE(txios(reduce_domain_to_scalar)) :: reduce_domain_to_scalar_hdl 18 18 CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_scalar_id 19 LOGICAL , OPTIONAL, INTENT(IN) :: local 20 LOGICAL (KIND=C_BOOL) :: local_tmp 19 21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 20 22 … … 22 24 (reduce_domain_to_scalar_id,reduce_domain_to_scalar_hdl) 23 25 CALL xios(set_reduce_domain_to_scalar_attr_hdl_) & 24 ( reduce_domain_to_scalar_hdl, operation )26 ( reduce_domain_to_scalar_hdl, local, operation ) 25 27 26 28 END SUBROUTINE xios(set_reduce_domain_to_scalar_attr) 27 29 28 30 SUBROUTINE xios(set_reduce_domain_to_scalar_attr_hdl) & 29 ( reduce_domain_to_scalar_hdl, operation )31 ( reduce_domain_to_scalar_hdl, local, operation ) 30 32 31 33 IMPLICIT NONE 32 34 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 33 37 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 34 38 35 39 CALL xios(set_reduce_domain_to_scalar_attr_hdl_) & 36 ( reduce_domain_to_scalar_hdl, operation )40 ( reduce_domain_to_scalar_hdl, local, operation ) 37 41 38 42 END SUBROUTINE xios(set_reduce_domain_to_scalar_attr_hdl) 39 43 40 44 SUBROUTINE xios(set_reduce_domain_to_scalar_attr_hdl_) & 41 ( reduce_domain_to_scalar_hdl, operation_ )45 ( reduce_domain_to_scalar_hdl, local_, operation_ ) 42 46 43 47 IMPLICIT NONE 44 48 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 45 51 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 46 58 47 59 IF (PRESENT(operation_)) THEN … … 53 65 54 66 SUBROUTINE xios(get_reduce_domain_to_scalar_attr) & 55 ( reduce_domain_to_scalar_id, operation )67 ( reduce_domain_to_scalar_id, local, operation ) 56 68 57 69 IMPLICIT NONE 58 70 TYPE(txios(reduce_domain_to_scalar)) :: reduce_domain_to_scalar_hdl 59 71 CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_scalar_id 72 LOGICAL , OPTIONAL, INTENT(OUT) :: local 73 LOGICAL (KIND=C_BOOL) :: local_tmp 60 74 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 61 75 … … 63 77 (reduce_domain_to_scalar_id,reduce_domain_to_scalar_hdl) 64 78 CALL xios(get_reduce_domain_to_scalar_attr_hdl_) & 65 ( reduce_domain_to_scalar_hdl, operation )79 ( reduce_domain_to_scalar_hdl, local, operation ) 66 80 67 81 END SUBROUTINE xios(get_reduce_domain_to_scalar_attr) 68 82 69 83 SUBROUTINE xios(get_reduce_domain_to_scalar_attr_hdl) & 70 ( reduce_domain_to_scalar_hdl, operation )84 ( reduce_domain_to_scalar_hdl, local, operation ) 71 85 72 86 IMPLICIT NONE 73 87 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 74 90 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 75 91 76 92 CALL xios(get_reduce_domain_to_scalar_attr_hdl_) & 77 ( reduce_domain_to_scalar_hdl, operation )93 ( reduce_domain_to_scalar_hdl, local, operation ) 78 94 79 95 END SUBROUTINE xios(get_reduce_domain_to_scalar_attr_hdl) 80 96 81 97 SUBROUTINE xios(get_reduce_domain_to_scalar_attr_hdl_) & 82 ( reduce_domain_to_scalar_hdl, operation_ )98 ( reduce_domain_to_scalar_hdl, local_, operation_ ) 83 99 84 100 IMPLICIT NONE 85 101 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 86 104 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 87 111 88 112 IF (PRESENT(operation_)) THEN … … 94 118 95 119 SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr) & 96 ( reduce_domain_to_scalar_id, operation )120 ( reduce_domain_to_scalar_id, local, operation ) 97 121 98 122 IMPLICIT NONE 99 123 TYPE(txios(reduce_domain_to_scalar)) :: reduce_domain_to_scalar_hdl 100 124 CHARACTER(LEN=*), INTENT(IN) ::reduce_domain_to_scalar_id 125 LOGICAL, OPTIONAL, INTENT(OUT) :: local 126 LOGICAL(KIND=C_BOOL) :: local_tmp 101 127 LOGICAL, OPTIONAL, INTENT(OUT) :: operation 102 128 LOGICAL(KIND=C_BOOL) :: operation_tmp … … 105 131 (reduce_domain_to_scalar_id,reduce_domain_to_scalar_hdl) 106 132 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 ) 108 134 109 135 END SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr) 110 136 111 137 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 ) 113 139 114 140 IMPLICIT NONE 115 141 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 116 144 LOGICAL, OPTIONAL, INTENT(OUT) :: operation 117 145 LOGICAL(KIND=C_BOOL) :: operation_tmp 118 146 119 147 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 ) 121 149 122 150 END SUBROUTINE xios(is_defined_reduce_domain_to_scalar_attr_hdl) 123 151 124 152 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_ ) 126 154 127 155 IMPLICIT NONE 128 156 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 129 159 LOGICAL, OPTIONAL, INTENT(OUT) :: operation_ 130 160 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 131 167 132 168 IF (PRESENT(operation_)) THEN -
XIOS/dev/branch_openmp/src/interface/fortran_attr/iscalar_attr.F90
r1052 r1545 12 12 13 13 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 ) 15 16 16 17 IMPLICIT NONE 17 18 TYPE(txios(scalar)) :: scalar_hdl 18 19 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 19 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 20 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 21 28 INTEGER , OPTIONAL, INTENT(IN) :: prec 22 29 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref … … 28 35 (scalar_id,scalar_hdl) 29 36 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 ) 31 39 32 40 END SUBROUTINE xios(set_scalar_attr) 33 41 34 42 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 39 53 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 40 54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 55 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 41 56 INTEGER , OPTIONAL, INTENT(IN) :: prec 42 57 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref … … 46 61 47 62 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 ) 49 65 50 66 END SUBROUTINE xios(set_scalar_attr_hdl) 51 67 52 68 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_ 57 79 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 58 80 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 81 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_ 59 82 INTEGER , OPTIONAL, INTENT(IN) :: prec_ 60 83 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref_ … … 63 86 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value_ 64 87 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 65 113 IF (PRESENT(long_name_)) THEN 66 114 CALL cxios_set_scalar_long_name & … … 73 121 ENDIF 74 122 123 IF (PRESENT(positive_)) THEN 124 CALL cxios_set_scalar_positive & 125 (scalar_hdl%daddr, positive_, len(positive_)) 126 ENDIF 127 75 128 IF (PRESENT(prec_)) THEN 76 129 CALL cxios_set_scalar_prec & … … 101 154 102 155 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 ) 104 158 105 159 IMPLICIT NONE 106 160 TYPE(txios(scalar)) :: scalar_hdl 107 161 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 108 167 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 109 168 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 169 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 110 170 INTEGER , OPTIONAL, INTENT(OUT) :: prec 111 171 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref … … 117 177 (scalar_id,scalar_hdl) 118 178 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 ) 120 181 121 182 END SUBROUTINE xios(get_scalar_attr) 122 183 123 184 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 128 195 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 129 196 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 197 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 130 198 INTEGER , OPTIONAL, INTENT(OUT) :: prec 131 199 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref … … 135 203 136 204 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 ) 138 207 139 208 END SUBROUTINE xios(get_scalar_attr_hdl) 140 209 141 210 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_ 146 221 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 147 222 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 223 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_ 148 224 INTEGER , OPTIONAL, INTENT(OUT) :: prec_ 149 225 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref_ … … 152 228 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value_ 153 229 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 154 255 IF (PRESENT(long_name_)) THEN 155 256 CALL cxios_get_scalar_long_name & … … 162 263 ENDIF 163 264 265 IF (PRESENT(positive_)) THEN 266 CALL cxios_get_scalar_positive & 267 (scalar_hdl%daddr, positive_, len(positive_)) 268 ENDIF 269 164 270 IF (PRESENT(prec_)) THEN 165 271 CALL cxios_get_scalar_prec & … … 190 296 191 297 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 ) 193 300 194 301 IMPLICIT NONE 195 302 TYPE(txios(scalar)) :: scalar_hdl 196 303 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 197 314 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 198 315 LOGICAL(KIND=C_BOOL) :: long_name_tmp 199 316 LOGICAL, OPTIONAL, INTENT(OUT) :: name 200 317 LOGICAL(KIND=C_BOOL) :: name_tmp 318 LOGICAL, OPTIONAL, INTENT(OUT) :: positive 319 LOGICAL(KIND=C_BOOL) :: positive_tmp 201 320 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 202 321 LOGICAL(KIND=C_BOOL) :: prec_tmp … … 213 332 (scalar_id,scalar_hdl) 214 333 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 ) 216 336 217 337 END SUBROUTINE xios(is_defined_scalar_attr) 218 338 219 339 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 224 355 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 225 356 LOGICAL(KIND=C_BOOL) :: long_name_tmp 226 357 LOGICAL, OPTIONAL, INTENT(OUT) :: name 227 358 LOGICAL(KIND=C_BOOL) :: name_tmp 359 LOGICAL, OPTIONAL, INTENT(OUT) :: positive 360 LOGICAL(KIND=C_BOOL) :: positive_tmp 228 361 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 229 362 LOGICAL(KIND=C_BOOL) :: prec_tmp … … 238 371 239 372 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 ) 241 375 242 376 END SUBROUTINE xios(is_defined_scalar_attr_hdl) 243 377 244 378 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 249 394 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 250 395 LOGICAL(KIND=C_BOOL) :: long_name__tmp 251 396 LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 252 397 LOGICAL(KIND=C_BOOL) :: name__tmp 398 LOGICAL, OPTIONAL, INTENT(OUT) :: positive_ 399 LOGICAL(KIND=C_BOOL) :: positive__tmp 253 400 LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 254 401 LOGICAL(KIND=C_BOOL) :: prec__tmp … … 262 409 LOGICAL(KIND=C_BOOL) :: value__tmp 263 410 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 264 441 IF (PRESENT(long_name_)) THEN 265 442 long_name__tmp = cxios_is_defined_scalar_long_name & … … 274 451 ENDIF 275 452 453 IF (PRESENT(positive_)) THEN 454 positive__tmp = cxios_is_defined_scalar_positive & 455 (scalar_hdl%daddr) 456 positive_ = positive__tmp 457 ENDIF 458 276 459 IF (PRESENT(prec_)) THEN 277 460 prec__tmp = cxios_is_defined_scalar_prec & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/iscalargroup_attr.F90
r1052 r1545 12 12 13 13 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 ) 15 16 16 17 IMPLICIT NONE 17 18 TYPE(txios(scalargroup)) :: scalargroup_hdl 18 19 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 19 24 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 20 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 21 27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 22 29 INTEGER , OPTIONAL, INTENT(IN) :: prec 23 30 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref … … 29 36 (scalargroup_id,scalargroup_hdl) 30 37 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 ) 33 40 34 41 END SUBROUTINE xios(set_scalargroup_attr) 35 42 36 43 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 ) 39 46 40 47 IMPLICIT NONE 41 48 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 42 53 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label 43 55 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name 44 56 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 57 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive 45 58 INTEGER , OPTIONAL, INTENT(IN) :: prec 46 59 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref … … 50 63 51 64 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 ) 54 67 55 68 END SUBROUTINE xios(set_scalargroup_attr_hdl) 56 69 57 70 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_ ) 60 73 61 74 IMPLICIT NONE 62 75 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_ 63 80 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 81 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: label_ 64 82 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ 65 83 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 84 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive_ 66 85 INTEGER , OPTIONAL, INTENT(IN) :: prec_ 67 86 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref_ … … 70 89 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value_ 71 90 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 72 111 IF (PRESENT(group_ref_)) THEN 73 112 CALL cxios_set_scalargroup_group_ref & … … 75 114 ENDIF 76 115 116 IF (PRESENT(label_)) THEN 117 CALL cxios_set_scalargroup_label & 118 (scalargroup_hdl%daddr, label_, len(label_)) 119 ENDIF 120 77 121 IF (PRESENT(long_name_)) THEN 78 122 CALL cxios_set_scalargroup_long_name & … … 85 129 ENDIF 86 130 131 IF (PRESENT(positive_)) THEN 132 CALL cxios_set_scalargroup_positive & 133 (scalargroup_hdl%daddr, positive_, len(positive_)) 134 ENDIF 135 87 136 IF (PRESENT(prec_)) THEN 88 137 CALL cxios_set_scalargroup_prec & … … 113 162 114 163 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 ) 116 166 117 167 IMPLICIT NONE 118 168 TYPE(txios(scalargroup)) :: scalargroup_hdl 119 169 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 120 174 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 175 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 121 176 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 122 177 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 178 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 123 179 INTEGER , OPTIONAL, INTENT(OUT) :: prec 124 180 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref … … 130 186 (scalargroup_id,scalargroup_hdl) 131 187 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 ) 134 190 135 191 END SUBROUTINE xios(get_scalargroup_attr) 136 192 137 193 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 ) 140 196 141 197 IMPLICIT NONE 142 198 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 143 203 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 204 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label 144 205 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name 145 206 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 207 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive 146 208 INTEGER , OPTIONAL, INTENT(OUT) :: prec 147 209 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref … … 151 213 152 214 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 ) 155 217 156 218 END SUBROUTINE xios(get_scalargroup_attr_hdl) 157 219 158 220 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_ ) 161 223 162 224 IMPLICIT NONE 163 225 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_ 164 230 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 231 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: label_ 165 232 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_ 166 233 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 234 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: positive_ 167 235 INTEGER , OPTIONAL, INTENT(OUT) :: prec_ 168 236 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref_ … … 171 239 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: value_ 172 240 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 173 261 IF (PRESENT(group_ref_)) THEN 174 262 CALL cxios_get_scalargroup_group_ref & … … 176 264 ENDIF 177 265 266 IF (PRESENT(label_)) THEN 267 CALL cxios_get_scalargroup_label & 268 (scalargroup_hdl%daddr, label_, len(label_)) 269 ENDIF 270 178 271 IF (PRESENT(long_name_)) THEN 179 272 CALL cxios_get_scalargroup_long_name & … … 186 279 ENDIF 187 280 281 IF (PRESENT(positive_)) THEN 282 CALL cxios_get_scalargroup_positive & 283 (scalargroup_hdl%daddr, positive_, len(positive_)) 284 ENDIF 285 188 286 IF (PRESENT(prec_)) THEN 189 287 CALL cxios_get_scalargroup_prec & … … 214 312 215 313 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 ) 217 316 218 317 IMPLICIT NONE 219 318 TYPE(txios(scalargroup)) :: scalargroup_hdl 220 319 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 221 328 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 222 329 LOGICAL(KIND=C_BOOL) :: group_ref_tmp 330 LOGICAL, OPTIONAL, INTENT(OUT) :: label 331 LOGICAL(KIND=C_BOOL) :: label_tmp 223 332 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 224 333 LOGICAL(KIND=C_BOOL) :: long_name_tmp 225 334 LOGICAL, OPTIONAL, INTENT(OUT) :: name 226 335 LOGICAL(KIND=C_BOOL) :: name_tmp 336 LOGICAL, OPTIONAL, INTENT(OUT) :: positive 337 LOGICAL(KIND=C_BOOL) :: positive_tmp 227 338 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 228 339 LOGICAL(KIND=C_BOOL) :: prec_tmp … … 239 350 (scalargroup_id,scalargroup_hdl) 240 351 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 ) 243 354 244 355 END SUBROUTINE xios(is_defined_scalargroup_attr) 245 356 246 357 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 ) 249 360 250 361 IMPLICIT NONE 251 362 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 252 371 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref 253 372 LOGICAL(KIND=C_BOOL) :: group_ref_tmp 373 LOGICAL, OPTIONAL, INTENT(OUT) :: label 374 LOGICAL(KIND=C_BOOL) :: label_tmp 254 375 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name 255 376 LOGICAL(KIND=C_BOOL) :: long_name_tmp 256 377 LOGICAL, OPTIONAL, INTENT(OUT) :: name 257 378 LOGICAL(KIND=C_BOOL) :: name_tmp 379 LOGICAL, OPTIONAL, INTENT(OUT) :: positive 380 LOGICAL(KIND=C_BOOL) :: positive_tmp 258 381 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 259 382 LOGICAL(KIND=C_BOOL) :: prec_tmp … … 268 391 269 392 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 ) 272 395 273 396 END SUBROUTINE xios(is_defined_scalargroup_attr_hdl) 274 397 275 398 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_ ) 278 401 279 402 IMPLICIT NONE 280 403 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 281 412 LOGICAL, OPTIONAL, INTENT(OUT) :: group_ref_ 282 413 LOGICAL(KIND=C_BOOL) :: group_ref__tmp 414 LOGICAL, OPTIONAL, INTENT(OUT) :: label_ 415 LOGICAL(KIND=C_BOOL) :: label__tmp 283 416 LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_ 284 417 LOGICAL(KIND=C_BOOL) :: long_name__tmp 285 418 LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 286 419 LOGICAL(KIND=C_BOOL) :: name__tmp 420 LOGICAL, OPTIONAL, INTENT(OUT) :: positive_ 421 LOGICAL(KIND=C_BOOL) :: positive__tmp 287 422 LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 288 423 LOGICAL(KIND=C_BOOL) :: prec__tmp … … 296 431 LOGICAL(KIND=C_BOOL) :: value__tmp 297 432 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 298 457 IF (PRESENT(group_ref_)) THEN 299 458 group_ref__tmp = cxios_is_defined_scalargroup_group_ref & … … 302 461 ENDIF 303 462 463 IF (PRESENT(label_)) THEN 464 label__tmp = cxios_is_defined_scalargroup_label & 465 (scalargroup_hdl%daddr) 466 label_ = label__tmp 467 ENDIF 468 304 469 IF (PRESENT(long_name_)) THEN 305 470 long_name__tmp = cxios_is_defined_scalargroup_long_name & … … 314 479 ENDIF 315 480 481 IF (PRESENT(positive_)) THEN 482 positive__tmp = cxios_is_defined_scalargroup_positive & 483 (scalargroup_hdl%daddr) 484 positive_ = positive__tmp 485 ENDIF 486 316 487 IF (PRESENT(prec_)) THEN 317 488 prec__tmp = cxios_is_defined_scalargroup_prec & -
XIOS/dev/branch_openmp/src/interface/fortran_attr/reduce_domain_to_axis_interface_attr.F90
r981 r1545 31 31 32 32 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 33 52 SUBROUTINE cxios_set_reduce_domain_to_axis_operation(reduce_domain_to_axis_hdl, operation, operation_size) BIND(C) 34 53 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/reduce_domain_to_scalar_interface_attr.F90
r981 r1545 9 9 INTERFACE 10 10 ! 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 11 30 12 31 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 10 10 ! Do not call directly / interface FORTRAN 2003 <-> C99 11 11 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 12 117 SUBROUTINE cxios_set_scalar_long_name(scalar_hdl, long_name, long_name_size) BIND(C) 13 118 USE ISO_C_BINDING … … 52 157 53 158 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 54 180 SUBROUTINE cxios_set_scalar_prec(scalar_hdl, prec) BIND(C) 55 181 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/interface/fortran_attr/scalargroup_interface_attr.F90
r1052 r1545 10 10 ! Do not call directly / interface FORTRAN 2003 <-> C99 11 11 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 12 96 SUBROUTINE cxios_set_scalargroup_group_ref(scalargroup_hdl, group_ref, group_ref_size) BIND(C) 13 97 USE ISO_C_BINDING … … 31 115 32 116 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 33 138 SUBROUTINE cxios_set_scalargroup_long_name(scalargroup_hdl, long_name, long_name_size) BIND(C) 34 139 USE ISO_C_BINDING … … 73 178 74 179 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 75 201 SUBROUTINE cxios_set_scalargroup_prec(scalargroup_hdl, prec) BIND(C) 76 202 USE ISO_C_BINDING -
XIOS/dev/branch_openmp/src/io/inetcdf4.cpp
r1538 r1545 7 7 namespace xios 8 8 { 9 //CINetCDF4::CINetCDF4(const StdString& filename, const ep_lib::MPI_Comm* comm /*= NULL*/, bool multifile /*= true*/, const StdString& timeCounterName /*= "time_counter"*/)10 9 CINetCDF4::CINetCDF4(const StdString& filename, const ep_lib::MPI_Comm* comm /*= NULL*/, bool multifile /*= true*/, 11 10 bool readMetaDataPar /*= false*/, const StdString& timeCounterName /*= "time_counter"*/) … … 19 18 comm = NULL; 20 19 } 21 //mpi = comm && !multifile;22 20 mpi = comm && !multifile && readMetaDataPar; 23 //ep_lib::MPI_Info info_null = MPI_INFO_NULL;24 21 25 22 // The file format will be detected automatically by NetCDF, it is safe to always set NC_MPIIO … … 496 493 } 497 494 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 else512 return false;513 }514 }515 return true;516 }517 */518 519 495 bool CINetCDF4::isRectilinear(const StdString& name, const CVarPath* const path) 520 496 { … … 559 535 return (varDims1D.size() == 2); 560 536 } 561 562 537 563 538 bool CINetCDF4::isCurvilinear(const StdString& name, const CVarPath* const path) … … 833 808 bool CINetCDF4::isLonOrLat(const StdString& varname, const CVarPath* const path) 834 809 { 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 ; 841 817 } 842 818 -
XIOS/dev/branch_openmp/src/io/inetcdf4.hpp
r1491 r1545 24 24 CINetCDF4(const StdString& filename, const ep_lib::MPI_Comm* comm = NULL, bool multifile = true, 25 25 bool readMetaDataPar = false, const StdString& timeCounterName = "time_counter"); 26 //const StdString& timeCounterName = "time_counter"); 26 27 27 CINetCDF4(const CINetCDF4& inetcdf4); // Not implemented. 28 28 CINetCDF4(const CINetCDF4* const inetcdf4); // Not implemented. -
XIOS/dev/branch_openmp/src/io/nc4_data_input.cpp
r1544 r1545 10 10 namespace xios 11 11 { 12 //CNc4DataInput::CNc4DataInput(const StdString& filename, ep_lib::MPI_Comm comm_file, bool multifile, bool isCollective /*= true*/, const StdString& timeCounterName /*= "time_counter"*/)13 12 CNc4DataInput::CNc4DataInput(const StdString& filename, ep_lib::MPI_Comm comm_file, bool multifile, bool isCollective /*= true*/, 14 13 bool readMetaDataPar /*= false*/, bool ugridConvention /*= false*/, const StdString& timeCounterName /*= "time_counter"*/) 15 14 : SuperClass() 16 15 , SuperClassWriter(filename, &comm_file, multifile, readMetaDataPar, timeCounterName) 17 //, SuperClassWriter(filename, &comm_file, multifile, timeCounterName)18 16 , comm_file(comm_file) 19 17 , filename(filename) … … 410 408 // int nbVertex = this->getNbVertex(fieldId); 411 409 int nbVertex = (ugridConvention) ? domain->nvertex : this->getNbVertex(fieldId); 412 413 410 if (!domain->nvertex.isEmpty() && (domain->nvertex != nbVertex)) 414 411 { -
XIOS/dev/branch_openmp/src/io/nc4_data_input.hpp
r1491 r1545 26 26 CNc4DataInput(const StdString& filename, ep_lib::MPI_Comm comm_file, bool multifile, bool isCollective = true, 27 27 bool readMetaDataPar = false, bool ugridConvention = false, const StdString& timeCounterName = "time_counter"); 28 //const StdString& timeCounterName = "time_counter");29 28 CNc4DataInput(const CNc4DataInput& dataInput); // Not implemented. 30 29 CNc4DataInput(const CNc4DataInput* const dataInput); // Not implemented. -
XIOS/dev/branch_openmp/src/io/nc4_data_output.cpp
r1460 r1545 557 557 558 558 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 559 567 domain->checkAttributes(); 560 568 if (domain->isEmpty()) … … 567 575 568 576 std::vector<StdString> dim0; 569 StdString domid = domain->getDomainOutputName();570 577 StdString domainName = domain->name; 571 578 domain->assignMesh(domainName, domain->nvertex); … … 593 600 594 601 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); 604 608 605 609 try … … 773 777 std::vector<StdSize> countFaceConctv(2) ; 774 778 775 if ( !isWrittenDomain(domid))779 if (domain->nvertex == 1) 776 780 { 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 } 878 826 else 879 827 { 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 } 926 878 SuperClassWriter::definition_start(); 927 879 … … 1231 1183 axis->computeWrittenCompressedIndex(comm_file); 1232 1184 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(); 1235 1187 1236 1188 int zoom_count = axis->zoom_n; … … 2745 2697 void CNc4DataOutput::writeTimeAxis_ 2746 2698 (CField* field, 2747 const boost::shared_ptr<CCalendar> cal)2699 const std::shared_ptr<CCalendar> cal) 2748 2700 { 2749 2701 StdOStringStream oss; … … 2968 2920 msg.append(e.what()); 2969 2921 ERROR("CNc4DataOutput::writeTimeAxis_ (CField* field, \ 2970 const boost::shared_ptr<CCalendar> cal)", << msg);2922 const std::shared_ptr<CCalendar> cal)", << msg); 2971 2923 } 2972 2924 } -
XIOS/dev/branch_openmp/src/io/nc4_data_output.hpp
r1460 r1545 62 62 virtual void syncFile_ (void); 63 63 virtual void writeTimeAxis_ (CField* field, 64 const boost::shared_ptr<CCalendar> cal);64 const std::shared_ptr<CCalendar> cal); 65 65 66 66 protected : -
XIOS/dev/branch_openmp/src/io/netCdfInterface.hpp
r1460 r1545 17 17 #endif 18 18 19 //#include "mpi.hpp" 19 20 20 #include "netcdf.hpp" 21 21 -
XIOS/dev/branch_openmp/src/io/netCdfInterface_impl.hpp
r1544 r1545 85 85 int CNetCdfInterface::getVaraType(int ncid, int varId, const StdSize* start, const StdSize* count, T* data) 86 86 { 87 int status; 88 status = ncGetVaraType(ncid, varId, start, count, data); 87 int status = ncGetVaraType(ncid, varId, start, count, data); 89 88 if (NC_NOERR != status) 90 89 { -
XIOS/dev/branch_openmp/src/io/onetcdf4.cpp
r1520 r1545 49 49 } 50 50 wmpi = comm && !multifile; 51 ep_lib::MPI_Info info_null;52 51 53 52 if (wmpi) … … 59 58 CTimer::get("Files : create").resume(); 60 59 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); 62 61 else 63 62 CNetCdfInterface::create(filename, mode, this->ncidp); … … 71 70 CTimer::get("Files : open").resume(); 72 71 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); 74 73 else 75 74 CNetCdfInterface::open(filename, mode, this->ncidp); -
XIOS/dev/branch_openmp/src/io/onetcdf4.hpp
r1460 r1545 8 8 #include "data_output.hpp" 9 9 #include "array_new.hpp" 10 //#include "mpi.hpp"11 10 #include "netcdf.hpp" 12 11 -
XIOS/dev/branch_openmp/src/node/axis.cpp
r1460 r1545 22 22 CAxis::CAxis(void) 23 23 : CObjectTemplate<CAxis>() 24 , CAxisAttributes(), isChecked(false), relFiles() 25 , areClientAttributesChecked_(false) 24 , CAxisAttributes(), isChecked(false), relFiles(), areClientAttributesChecked_(false) 26 25 , isClientAfterTransformationChecked(false) 27 26 , hasBounds(false), isCompressible_(false) 28 27 , numberWrittenIndexes_(), totalNumberWrittenIndexes_(), offsetWrittenIndexes_() 29 , transformationMap_() 30 , hasValue(false), hasLabel(false) 28 , transformationMap_(), hasValue(false), hasLabel(false) 31 29 , computedWrittenIndex_(false) 32 30 , clients() … … 36 34 CAxis::CAxis(const StdString & id) 37 35 : CObjectTemplate<CAxis>(id) 38 , CAxisAttributes(), isChecked(false), relFiles() 39 , areClientAttributesChecked_(false) 36 , CAxisAttributes(), isChecked(false), relFiles(), areClientAttributesChecked_(false) 40 37 , isClientAfterTransformationChecked(false) 41 38 , hasBounds(false), isCompressible_(false) 42 39 , numberWrittenIndexes_(), totalNumberWrittenIndexes_(), offsetWrittenIndexes_() 43 , transformationMap_() 44 , hasValue(false), hasLabel(false) 40 , transformationMap_(), hasValue(false), hasLabel(false) 45 41 , computedWrittenIndex_(false) 46 42 , clients() … … 166 162 return compressedIndexToWriteOnServer[writtenSize]; 167 163 } 168 169 164 //---------------------------------------------------------------- 170 165 171 166 /*! 172 167 * Compute the minimum buffer size required to send the attributes to the server(s). 173 168 * … … 182 177 // bool isNonDistributed = (n_glo == n); 183 178 bool isDistributed = (orderPositionInGrid == CServerDistributionDescription::defaultDistributedDimension(globalDim.size(), distType)) 184 179 || (index.numElements() != n_glo); 185 180 186 181 if (client->isServerLeader()) … … 221 216 { 222 217 // 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(); 224 219 for (it = indSrv_[client->serverSize].begin(); it != ite; ++it) 225 220 { … … 474 469 } 475 470 } 476 477 /*!471 472 /*! 478 473 Check attributes on client side (This name is still adequate???) 479 474 */ … … 528 523 } 529 524 530 525 /*! 531 526 Send attributes from one client to other clients 532 527 \param[in] globalDim global dimension of grid which contains this axis … … 642 637 643 638 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); 645 640 646 641 std::list<int> serverZeroIndexLeader; 647 642 std::list<int> serverZeroIndexNotLeader; 648 643 CContextClient::computeLeader(client->clientRank, client->clientSize, serverZeroIndex.size(), serverZeroIndexLeader, serverZeroIndexNotLeader); 649 650 644 for (std::list<int>::iterator it = serverZeroIndexLeader.begin(); it != serverZeroIndexLeader.end(); ++it) 651 645 *it = serverZeroIndex[*it]; … … 713 707 // we need to compute the local index on the server from its corresponding global index 714 708 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(), 716 710 ite = globalLocalIndexMap_.end(), it; 717 711 CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), … … 745 739 { 746 740 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(), 748 742 ite = globalLocalIndexMap_.end(), it; 749 743 for (int i = 0; i < zoom_index.numElements(); ++i) … … 789 783 CDistributionServer srvDist(server->intraCommSize, nBegin, nSize, nBeginGlobal, nGlob); 790 784 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(), 792 786 ite = globalLocalIndexMap_.end(), it; 793 787 794 788 CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), 795 789 itSrve = writtenGlobalIndex.end(), itSrv; 796 boost::unordered_map<size_t,size_t> localGlobalIndexMap;790 std::unordered_map<size_t,size_t> localGlobalIndexMap; 797 791 for (itSrv = itSrvb; itSrv != itSrve; ++itSrv) 798 792 { … … 968 962 std::list<CContextClient*>::iterator it; 969 963 for (it=clients.begin(); it!=clients.end(); ++it) 970 {971 CContextClient* client = *it;964 { 965 CContextClient* client = *it; 972 966 973 967 CEventClient event(getType(), EVENT_ID_NON_DISTRIBUTED_ATTRIBUTES); … … 1083 1077 } 1084 1078 1085 /*1079 /* 1086 1080 Send attributes of axis from a group of client to other group of clients/servers 1087 1081 on supposing that these attributes are distributed among the clients of the sending group … … 1116 1110 } 1117 1111 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; 1119 1113 iteMap = indSrv_[nbServer].end(); 1120 1114 for (int k = 0; k < connectedServerRank_[nbServer].size(); ++k) -
XIOS/dev/branch_openmp/src/node/axis.hpp
r1460 r1545 168 168 bool isCompressible_; 169 169 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 server170 std::map<int, std::unordered_map<int, vector<size_t> > > indSrv_; // Global index of each client sent to server 171 171 // 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_; 173 173 std::vector<int> indexesToWrite; 174 174 std::map<int,int> numberWrittenIndexes_, totalNumberWrittenIndexes_, offsetWrittenIndexes_; -
XIOS/dev/branch_openmp/src/node/calendar_wrapper.cpp
r550 r1545 32 32 \return the calendar 33 33 */ 34 boost::shared_ptr<CCalendar> CCalendarWrapper::getCalendar(bool checkValid /*= false*/) const34 std::shared_ptr<CCalendar> CCalendarWrapper::getCalendar(bool checkValid /*= false*/) const 35 35 { 36 36 if (checkValid && !this->calendar) … … 92 92 #define DECLARE_CALENDAR(MType, eType) \ 93 93 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()); 95 95 #include "calendar_type.conf" 96 96 #undef DECLARE_CALENDAR … … 111 111 << "Both leap_year_drift and leap_year_month attributes are mandatory if you wish to use leap_year_drift_offset attribute."); 112 112 113 boost::shared_ptr<CUserDefinedCalendar> userDefinedCalendar;113 std::shared_ptr<CUserDefinedCalendar> userDefinedCalendar; 114 114 if (year_length.isEmpty()) 115 115 userDefinedCalendar.reset(new CUserDefinedCalendar(day_length.getValue(), month_lengths.getValue())); -
XIOS/dev/branch_openmp/src/node/calendar_wrapper.hpp
r591 r1545 67 67 public : 68 68 /// Accesseurs /// 69 boost::shared_ptr<CCalendar> getCalendar(bool checkValid = false) const;69 std::shared_ptr<CCalendar> getCalendar(bool checkValid = false) const; 70 70 71 71 const CDate& getInitDate() const; … … 78 78 private: 79 79 // Calendar of context 80 boost::shared_ptr<CCalendar> calendar;80 std::shared_ptr<CCalendar> calendar; 81 81 82 82 }; // class CCalendarWrapper -
XIOS/dev/branch_openmp/src/node/context.cpp
r1538 r1545 25 25 namespace xios { 26 26 27 boost::shared_ptr<CContextGroup> * CContext::root_ptr = 0;28 29 /// ////////////////////// D finitions ////////////////////// ///27 std::shared_ptr<CContextGroup> * CContext::root_ptr = 0; 28 29 /// ////////////////////// Définitions ////////////////////// /// 30 30 31 31 CContext::CContext(void) … … 68 68 CContextGroup* CContext::getRoot(void) 69 69 { 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())); 71 71 return root_ptr->get(); 72 72 } … … 78 78 \return Calendar 79 79 */ 80 boost::shared_ptr<CCalendar> CContext::getCalendar(void) const80 std::shared_ptr<CCalendar> CContext::getCalendar(void) const 81 81 { 82 82 return (this->calendar); … … 89 89 \param[in] newCalendar new calendar 90 90 */ 91 void CContext::setCalendar( boost::shared_ptr<CCalendar> newCalendar)91 void CContext::setCalendar(std::shared_ptr<CCalendar> newCalendar) 92 92 { 93 93 this->calendar = newCalendar; … … 191 191 if (!this->hasChild()) 192 192 { 193 //oss << "<!-- No definition -->" << std::endl; // fait planter l'incr mentation193 //oss << "<!-- No definition -->" << std::endl; // fait planter l'incrémentation 194 194 } 195 195 else … … 257 257 258 258 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 { 264 261 client = new CContextClient(this, intraComm, interComm, cxtServer); 265 262 if (cxtServer) // Attached mode … … 291 288 server = new CContextServer(this, intraCommServer, interCommServer); 292 289 } 293 //else if(CServer::serverLevel == 1) 294 else 295 // initClient is called by primary server 290 291 else // initClient is called by primary server 296 292 { 297 293 clientPrimServer.push_back(new CContextClient(this, intraComm, interComm)); … … 861 857 void CContext::solveAllInheritance(bool apply) 862 858 { 863 // R solution des hritages descendants (cd des hritages de groupes)859 // Résolution des héritages descendants (cà d des héritages de groupes) 864 860 // pour chacun des contextes. 865 861 solveDescInheritance(apply); 866 862 867 // R solution des hritages par rfrence au niveau des fichiers.863 // Résolution des héritages par référence au niveau des fichiers. 868 864 const vector<CFile*> allFiles=CFile::getAll(); 869 865 const vector<CGrid*> allGrids= CGrid::getAll(); … … 889 885 890 886 for (unsigned int i = 0; i < allFiles.size(); i++) 891 if (!allFiles[i]->enabled.isEmpty()) // Si l'attribut 'enabled' est d fini.887 if (!allFiles[i]->enabled.isEmpty()) // Si l'attribut 'enabled' est défini. 892 888 { 893 if (allFiles[i]->enabled.getValue()) // Si l'attribut 'enabled' est fix 889 if (allFiles[i]->enabled.getValue()) // Si l'attribut 'enabled' est fixé à vrai. 894 890 { 895 891 if (allFiles[i]->output_freq.isEmpty()) … … 928 924 929 925 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é \"" 931 927 << getId() << "\" !"); 932 928 … … 1434 1430 idServer_ = this->getId(); 1435 1431 idServer_ += "_server_"; 1436 idServer_ += boost::lexical_cast<string>(i);1432 idServer_ += std::to_string(static_cast<unsigned long long>(i)); 1437 1433 return idServer_; 1438 1434 } … … 1472 1468 if (hasClient && !hasServer) prepareTimeseries(); 1473 1469 1474 //Initialisation du vecteur 'enabledFiles' contenant la liste des fichiers sortir.1470 //Initialisation du vecteur 'enabledFiles' contenant la liste des fichiers à sortir. 1475 1471 findEnabledFiles(); 1476 1472 findEnabledWriteModeFiles(); -
XIOS/dev/branch_openmp/src/node/context.hpp
r1460 r1545 9 9 10 10 #include "declare_group.hpp" 11 //#include "context_client.hpp"12 //#include "context_server.hpp"13 11 #include "data_output.hpp" 14 12 #include "garbage_collector.hpp" 15 13 #include "registry.hpp" 16 //#include "mpi.hpp"17 14 18 15 … … 84 81 85 82 /// Mutateurs /// 86 void setCalendar( boost::shared_ptr<CCalendar> newCalendar);83 void setCalendar(std::shared_ptr<CCalendar> newCalendar); 87 84 88 85 /// Accesseurs /// 89 boost::shared_ptr<CCalendar> getCalendar(void) const;86 std::shared_ptr<CCalendar> getCalendar(void) const; 90 87 91 88 public : … … 228 225 public : 229 226 // Calendar of context 230 boost::shared_ptr<CCalendar> calendar;227 std::shared_ptr<CCalendar> calendar; 231 228 232 229 // List of all enabled files (files on which fields are written or read) … … 242 239 243 240 // Context root 244 static boost::shared_ptr<CContextGroup> *root_ptr;241 static std::shared_ptr<CContextGroup> *root_ptr; 245 242 #pragma omp threadprivate(root_ptr) 246 243 -
XIOS/dev/branch_openmp/src/node/domain.cpp
r1491 r1545 68 68 } 69 69 70 71 70 std::map<StdString, ETranformationType> *CDomain::transformationMapList_ptr = 0; 72 71 … … 163 162 } 164 163 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(); 166 165 // std::map<int, std::vector<int> >::const_iterator itWrittenIndexEnd = indWrittenSrv_.end(); 167 166 for (size_t k = 0; k < connectedServerRank_[client->serverSize].size(); ++k) 168 167 { 169 168 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); 171 170 size_t idxCount = (it != itIndexEnd) ? it->second.size() : 0; 172 171 … … 1510 1509 ERROR("CDomain::checkBounds(void)", 1511 1510 << "Since 'bounds_lat_2d' is defined, 'latvalue_2d' must be defined too." << std::endl); 1512 1511 1513 1512 // In case of reading UGRID bounds values are not required 1514 1513 hasBounds = (!bounds_lat_1d.isEmpty() || !bounds_lat_2d.isEmpty() ); … … 1814 1813 int iend = ibegin + ni -1; 1815 1814 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; 1817 1816 int zoom_iend = global_zoom_iend < iend ? zoom_iend : iend ; 1818 1817 zoom_ni = zoom_iend-zoom_ibegin+1 ; 1819 1818 1820 zoom_jbegin = global_zoom_jbegin > jbegin ? global_zoom_jbegin : jbegin ;1819 zoom_jbegin = global_zoom_jbegin > jbegin ? global_zoom_jbegin.getValue() : jbegin ; 1821 1820 int zoom_jend = global_zoom_jend < jend ? zoom_jend : jend; 1822 1821 zoom_nj = zoom_jend-zoom_jbegin+1; … … 1851 1850 CServerDistributionDescription serverDescription(nGlobDomain, nbServer); 1852 1851 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); 1855 1854 1856 1855 std::list<int> serverZeroIndexLeader; … … 1909 1908 1910 1909 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(), 1912 1911 ite = globalLocalIndexMap_.end(), it; 1913 1912 CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), … … 1941 1940 } 1942 1941 } 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 // else1986 // totalNumberWrittenIndexes_ = numberWrittenIndexes_;1987 // }1988 1942 } 1989 1943 … … 2009 1963 const CArray<size_t,1>& writtenGlobalIndex = srvDist.getGlobalIndex(); 2010 1964 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(), 2012 1966 ite = globalLocalIndexMap_.end(), it; 2013 1967 CArray<size_t,1>::const_iterator itSrvb = writtenGlobalIndex.begin(), 2014 1968 itSrve = writtenGlobalIndex.end(), itSrv; 2015 boost::unordered_map<size_t,size_t> localGlobalIndexMap;1969 std::unordered_map<size_t,size_t> localGlobalIndexMap; 2016 1970 for (itSrv = itSrvb; itSrv != itSrve; ++itSrv) 2017 1971 { … … 2089 2043 list<CArray<int,1> > list_indZoom, list_writtenInd, list_indGlob; 2090 2044 2091 boost::unordered_map<int, vector<size_t> >::const_iterator itIndex, iteIndex;2045 std::unordered_map<int, vector<size_t> >::const_iterator itIndex, iteIndex; 2092 2046 iteIndex = indSrv_[serverSize].end(); 2093 2047 for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) … … 2190 2144 list<CArray<bool,1> > list_mask; 2191 2145 2192 boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap;2146 std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 2193 2147 iteMap = indSrv_[serverSize].end(); 2194 2148 for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) … … 2237 2191 list<CArray<double,1> > list_area; 2238 2192 2239 boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap;2193 std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 2240 2194 iteMap = indSrv_[serverSize].end(); 2241 2195 for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) … … 2288 2242 list<CArray<double,2> > list_boundslon, list_boundslat; 2289 2243 2290 boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap;2244 std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 2291 2245 iteMap = indSrv_[serverSize].end(); 2292 2246 for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) … … 2405 2359 } 2406 2360 2407 boost::unordered_map<int, vector<size_t> >::const_iterator it, iteMap;2361 std::unordered_map<int, vector<size_t> >::const_iterator it, iteMap; 2408 2362 iteMap = indSrv_[serverSize].end(); 2409 2363 for (int k = 0; k < connectedServerRank_[serverSize].size(); ++k) … … 2607 2561 int zoom_jend_glob = global_zoom_jbegin + global_zoom_nj - 1; 2608 2562 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); 2610 2564 int zoom_iend = zoom_iend_glob < iend ? zoom_iend_glob : iend ; 2611 2565 zoom_ni.setValue(zoom_iend-zoom_ibegin+1); 2612 2566 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); 2614 2568 int zoom_jend = zoom_jend_glob < jend ? zoom_jend_glob : jend ; 2615 2569 zoom_nj.setValue(zoom_jend-zoom_jbegin+1); … … 2670 2624 2671 2625 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; 2674 2628 2675 2629 nbMaskInd = globalLocalIndexMap_.size(); … … 2746 2700 2747 2701 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; 2750 2704 2751 2705 nbLonInd = globalLocalIndexMap_.size(); … … 2830 2784 2831 2785 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; 2834 2788 2835 2789 nbLatInd = globalLocalIndexMap_.size(); … … 2912 2866 2913 2867 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; 2916 2870 2917 2871 nbAreaInd = globalLocalIndexMap_.size(); -
XIOS/dev/branch_openmp/src/node/domain.hpp
r1460 r1545 216 216 217 217 /** 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_; 219 219 // std::map<CContextClient*, std::map<int, vector<int> > > indWrittenSrv_; // Global written index of each client sent to server 220 220 std::vector<int> indexesToWrite; … … 230 230 TransMapTypes transformationMap_; 231 231 bool isUnstructed_; 232 boost::unordered_map<size_t,size_t> globalLocalIndexMap_;232 std::unordered_map<size_t,size_t> globalLocalIndexMap_; 233 233 234 234 private: -
XIOS/dev/branch_openmp/src/node/field.cpp
r1482 r1545 219 219 // Gather all data from different clients 220 220 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)); 222 222 } 223 223 … … 505 505 if (!nstepMaxRead) 506 506 { 507 //MPI_Allreduce(MPI_IN_PLACE, &nstepMax, 1, MPI_INT, MPI_MAX, context->server->intraComm);508 507 MPI_Allreduce(&nstepMax, &nstepMax, 1, MPI_INT, MPI_MAX, context->server->intraComm); 509 508 nstepMaxRead = true; … … 720 719 //---------------------------------------------------------------- 721 720 722 boost::shared_ptr<COutputPin> CField::getInstantDataFilter()721 std::shared_ptr<COutputPin> CField::getInstantDataFilter() 723 722 { 724 723 return instantDataFilter; … … 988 987 << "An operation must be defined for field \"" << getId() << "\"."); 989 988 990 boost::shared_ptr<func::CFunctor> functor;989 std::shared_ptr<func::CFunctor> functor; 991 990 CArray<double, 1> dummyData; 992 991 … … 1031 1030 { 1032 1031 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)); 1034 1033 1035 1034 … … 1039 1038 if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 1040 1039 { 1041 fileServerWriterFilter = boost::shared_ptr<CFileServerWriterFilter>(new CFileServerWriterFilter(gc, this));1040 fileServerWriterFilter = std::shared_ptr<CFileServerWriterFilter>(new CFileServerWriterFilter(gc, this)); 1042 1041 instantDataFilter->connectOutput(fileServerWriterFilter, 0); 1043 1042 } … … 1047 1046 { 1048 1047 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)); 1050 1049 1051 1050 // If the field data is to be read by the client or/and written to a file … … 1054 1053 if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 1055 1054 { 1056 fileWriterFilter = boost::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this));1055 fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 1057 1056 instantDataFilter->connectOutput(fileWriterFilter, 0); 1058 1057 } … … 1068 1067 { 1069 1068 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); 1071 1070 1072 1071 // Check if a spatial transformation is needed … … 1077 1076 if (grid && grid != gridRef && grid->hasTransform()) 1078 1077 { 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); 1080 1079 1081 1080 filter->connectOutput(filters.first, 0); … … 1093 1092 { 1094 1093 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, 1096 1095 detectMissingValues, defaultValue)); 1097 1096 } … … 1099 1098 { 1100 1099 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, 1102 1101 detectMissingValues, defaultValue)); 1103 1102 } … … 1109 1108 if (!read_access.isEmpty() && read_access) 1110 1109 { 1111 storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid,1110 storeFilter = std::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid, 1112 1111 detectMissingValues, defaultValue)); 1113 1112 instantDataFilter->connectOutput(storeFilter, 0); … … 1116 1115 if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 1117 1116 { 1118 fileWriterFilter = boost::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this));1117 fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 1119 1118 getTemporalDataFilter(gc, file->output_freq)->connectOutput(fileWriterFilter, 0); 1120 1119 } … … 1130 1129 * \return the output pin corresponding to the field reference 1131 1130 */ 1132 boost::shared_ptr<COutputPin> CField::getFieldReference(CGarbageCollector& gc)1131 std::shared_ptr<COutputPin> CField::getFieldReference(CGarbageCollector& gc) 1133 1132 { 1134 1133 if (instantDataFilter || field_ref.isEmpty()) … … 1139 1138 fieldRef->buildFilterGraph(gc, false); 1140 1139 1141 std::pair< boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters;1140 std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters; 1142 1141 // Check if a spatial transformation is needed 1143 1142 if (grid && grid != fieldRef->grid && grid->hasTransform()) … … 1148 1147 } 1149 1148 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)); 1151 1150 1152 1151 fieldRef->getInstantDataFilter()->connectOutput(filters.first, 0); … … 1164 1163 * \return the output pin corresponding to a self reference 1165 1164 */ 1166 boost::shared_ptr<COutputPin> CField::getSelfReference(CGarbageCollector& gc)1165 std::shared_ptr<COutputPin> CField::getSelfReference(CGarbageCollector& gc) 1167 1166 { 1168 1167 if (instantDataFilter || !hasExpression()) … … 1180 1179 { 1181 1180 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, 1183 1182 detectMissingValues, defaultValue)); 1184 1183 } … … 1197 1196 { 1198 1197 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, 1200 1199 detectMissingValues, defaultValue)); 1201 1200 } … … 1217 1216 * \return the output pin corresponding to the requested temporal filter 1218 1217 */ 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); 1222 1221 1223 1222 if (it == temporalDataFilters.end()) … … 1230 1229 1231 1230 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, 1233 1232 CContext::getCurrent()->getCalendar()->getInitDate(), 1234 1233 freq_op, freq_offset, outFreq, detectMissingValues)); … … 1251 1250 */ 1252 1251 1253 boost::shared_ptr<COutputPin> CField::getSelfTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq)1252 std::shared_ptr<COutputPin> CField::getSelfTemporalDataFilter(CGarbageCollector& gc, CDuration outFreq) 1254 1253 { 1255 1254 if (instantDataFilter || !hasExpression()) … … 1268 1267 1269 1268 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, 1271 1270 CContext::getCurrent()->getCalendar()->getInitDate(), 1272 1271 freq_op, freq_offset, outFreq, detectMissingValues)); … … 1319 1318 std::vector<CScalar*> vecScalar; 1320 1319 std::vector<int> axisDomainOrderTmp; 1320 1321 std::vector<CDomain*> vecDomRef; 1322 std::vector<CAxis*> vecAxisRef; 1323 std::vector<CScalar*> vecScalarRef; 1324 1321 1325 1322 1326 if (!domain_ref.isEmpty()) … … 1326 1330 { 1327 1331 vecDom.push_back(CDomain::get(domain_ref)); 1332 vecDomRef.push_back(CDomain::createDomain()); 1333 vecDomRef.back()->domain_ref=domain_ref; 1328 1334 axisDomainOrderTmp.push_back(2); 1329 1335 } 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() << "'."); 1333 1338 } 1334 1339 … … 1338 1343 { 1339 1344 vecAxis.push_back(CAxis::get(axis_ref)); 1345 vecAxisRef.push_back(CAxis::createAxis()); 1346 vecAxisRef.back()->axis_ref=axis_ref; 1340 1347 axisDomainOrderTmp.push_back(1); 1341 1348 } 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() << "'."); 1345 1351 } 1346 1352 … … 1350 1356 { 1351 1357 vecScalar.push_back(CScalar::get(scalar_ref)); 1358 vecScalarRef.push_back(CScalar::createScalar()); 1359 vecScalarRef.back()->scalar_ref=scalar_ref; 1352 1360 axisDomainOrderTmp.push_back(0); 1353 1361 } 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() << "'."); 1357 1364 } 1358 1365 … … 1365 1372 // Warning: the gridId shouldn't be set as the grid_ref since it could be inherited 1366 1373 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); 1371 1376 } 1372 1377 else 1373 1378 { 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() << "'."); 1379 1382 } 1380 1383 } … … 1621 1624 } 1622 1625 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 1623 1643 void CField::sendAddVariable(const string& id, CContextClient* client) 1624 1644 { … … 1670 1690 bool isFieldRead = file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read; 1671 1691 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") ) 1673 1693 ERROR("void CField::checkTimeAttributes(void)", 1674 1694 << "Unsupported operation for field '" << getFieldOutputName() << "'." << std::endl -
XIOS/dev/branch_openmp/src/node/field.hpp
r1460 r1545 92 92 template <int N> void getData(CArray<double, N>& _data) const; 93 93 94 boost::shared_ptr<COutputPin> getInstantDataFilter();94 std::shared_ptr<COutputPin> getInstantDataFilter(); 95 95 96 96 /// Mutateur /// … … 143 143 144 144 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); 149 149 150 150 // virtual void fromBinary(StdIStream& is); … … 161 161 template <int N> void setData(const CArray<double, N>& _data); 162 162 static bool dispatchEvent(CEventServer& event); 163 void sendAllAttributesToServer(CContextClient* client) ; 163 164 void sendUpdateData(const CArray<double,1>& data); 164 165 void sendUpdateData(const CArray<double,1>& data, CContextClient* client); … … 225 226 bool mustAutoTrigger; 226 227 227 map<int, boost::shared_ptr<func::CFunctor> > foperation_srv;228 map<int,std::shared_ptr<func::CFunctor> > foperation_srv; 228 229 229 230 // map<int, CArray<double,1> > data_srv; 230 231 CArray<double,1> recvDataSrv; 231 232 232 boost::shared_ptr<func::CFunctor> recvFoperationSrv;233 std::shared_ptr<func::CFunctor> recvFoperationSrv; 233 234 string content; 234 235 … … 257 258 258 259 //! 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; 260 261 //! 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; 262 263 //! 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; 264 265 //! The source filter for data provided by the client 265 boost::shared_ptr<CSourceFilter> clientSourceFilter;266 std::shared_ptr<CSourceFilter> clientSourceFilter; 266 267 //! The source filter for data provided by the server 267 boost::shared_ptr<CSourceFilter> serverSourceFilter;268 std::shared_ptr<CSourceFilter> serverSourceFilter; 268 269 //! The terminal filter which stores the instant data 269 boost::shared_ptr<CStoreFilter> storeFilter;270 std::shared_ptr<CStoreFilter> storeFilter; 270 271 //! The terminal filter which writes the data to file 271 boost::shared_ptr<CFileWriterFilter> fileWriterFilter;272 std::shared_ptr<CFileWriterFilter> fileWriterFilter; 272 273 //! The terminal filter which writes data to file 273 boost::shared_ptr<CFileServerWriterFilter> fileServerWriterFilter;274 std::shared_ptr<CFileServerWriterFilter> fileServerWriterFilter; 274 275 }; // class CField 275 276 -
XIOS/dev/branch_openmp/src/node/file.cpp
r1491 r1545 25 25 CFile::CFile(void) 26 26 : CObjectTemplate<CFile>(), CFileAttributes() 27 , vFieldGroup(), data_out(), enabledFields() 27 , vFieldGroup(), data_out(), enabledFields(), fileComm(MPI_COMM_NULL) 28 28 , isOpen(false), read_client(0), checkRead(false), allZoneEmpty(false) 29 29 { … … 34 34 CFile::CFile(const StdString & id) 35 35 : CObjectTemplate<CFile>(id), CFileAttributes() 36 , vFieldGroup(), data_out(), enabledFields() 36 , vFieldGroup(), data_out(), enabledFields(), fileComm(MPI_COMM_NULL) 37 37 , isOpen(false), read_client(0), checkRead(false), allZoneEmpty(false) 38 38 { … … 64 64 \return data writer object. 65 65 */ 66 boost::shared_ptr<CDataOutput> CFile::getDataOutput(void) const66 std::shared_ptr<CDataOutput> CFile::getDataOutput(void) const 67 67 { 68 68 return data_out; … … 75 75 \return data reader object. 76 76 */ 77 boost::shared_ptr<CDataInput> CFile::getDataInput(void) const77 std::shared_ptr<CDataInput> CFile::getDataInput(void) const 78 78 { 79 79 return data_in; … … 479 479 if (split_freq_format.isEmpty()) 480 480 { 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"; 486 488 else splitFormat = "%y"; 487 489 } … … 543 545 if (isOpen) data_out->closeFile(); 544 546 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, 546 548 fileComm, multifile, isCollective, time_counter_name)); 547 549 isOpen = true; 548 550 549 551 data_out->writeFile(CFile::get(this)); 552 553 if (!useCFConvention) sortEnabledFieldsForUgrid(); 550 554 551 555 // Do not recreate the file structure if opening an existing file … … 611 615 if (split_freq_format.isEmpty()) 612 616 { 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"; 618 624 else splitFormat = "%y"; 619 625 } … … 657 663 658 664 bool isCollective = par_access.isEmpty() || par_access == par_access_attr::collective; 659 bool 665 bool readMetaDataPar = true; 660 666 if (!context->hasServer) readMetaDataPar = (read_metadata_par.isEmpty()) ? false : read_metadata_par; 661 667 662 668 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));665 669 bool ugridConvention = !convention.isEmpty() ? (convention == convention_attr::UGRID) : false; 666 670 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)); 668 672 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)); 671 674 isOpen = true; 672 675 } … … 813 816 } 814 817 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 815 872 void CFile::sendGridOfEnabledFields() 816 873 { -
XIOS/dev/branch_openmp/src/node/file.hpp
r1460 r1545 13 13 #include "attribute_enum_impl.hpp" 14 14 #include "context_client.hpp" 15 //#include "mpi.hpp" 15 16 16 17 17 namespace xios { … … 72 72 /// Accesseurs /// 73 73 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; 76 76 CFieldGroup* getVirtualFieldGroup(void) const; 77 77 CVariableGroup* getVirtualVariableGroup(void) const; … … 119 119 void checkGridOfEnabledFields(); 120 120 void sendGridOfEnabledFields(); 121 void sendGridComponentOfEnabledFields(); 121 void sendGridComponentOfEnabledFields(); 122 123 void sortEnabledFieldsForUgrid(); 122 124 123 125 // Add component into file … … 185 187 CFieldGroup* vFieldGroup; 186 188 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; 189 191 std::vector<CField*> enabledFields; 190 192 -
XIOS/dev/branch_openmp/src/node/grid.cpp
r1460 r1545 783 783 784 784 // 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; 786 786 CServerDistributionDescription serverDistributionDescription(getGlobalDimension(), client->serverSize); 787 787 std::vector<int> serverZeroIndex = serverDistributionDescription.computeServerGlobalByElement(indexServerOnElement, … … 889 889 \param [out] globalIndexOnServer global index of grid and its corresponding rank of server. 890 890 */ 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, 892 892 const CContextClient* client, 893 893 CClientServerMapping::GlobalIndexMap& globalIndexOnServer) … … 942 942 943 943 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); 945 945 CArray<int,1> nbIndexOnServer(serverSize); // Number of distributed global index held by each client for each server 946 946 // Number of temporary distributed global index held by each client for each server … … 950 950 { 951 951 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]; 953 953 const CArray<size_t,1>& globalIndexElementOnClient = globalIndexElement[idx]; 954 954 CClientClientDHTInt clientClientDHT(indexServerElement, client->intraComm); -
XIOS/dev/branch_openmp/src/node/grid.hpp
r1460 r1545 288 288 void checkAttributesAfterTransformation(); 289 289 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, 291 291 const CContextClient* client, 292 292 CClientServerMapping::GlobalIndexMap& globalIndexOnServer); -
XIOS/dev/branch_openmp/src/node/mesh.cpp
r1328 r1545 7 7 #include "mesh.hpp" 8 8 using namespace ep_lib; 9 #include <boost/functional/hash.hpp> 9 10 10 11 namespace xios { … … 32 33 } 33 34 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 37 35 std::map <StdString, CMesh> *CMesh::meshList_ptr = 0; 38 36 std::map <StdString, vector<int> > *CMesh::domainList_ptr = 0; … … 50 48 if(CMesh::meshList_ptr == NULL) CMesh::meshList_ptr = new std::map <StdString, CMesh>(); 51 49 52 //CMesh::domainList[meshName].push_back(nvertex);53 50 CMesh::domainList_ptr->at(meshName).push_back(nvertex); 54 51 55 //if ( CMesh::meshList.begin() != CMesh::meshList.end() )56 52 if ( CMesh::meshList_ptr->begin() != CMesh::meshList_ptr->end() ) 57 53 { 58 //for (std::map<StdString, CMesh>::iterator it=CMesh::meshList.begin(); it!=CMesh::meshList.end(); ++it)59 54 for (std::map<StdString, CMesh>::iterator it=CMesh::meshList_ptr->begin(); it!=CMesh::meshList_ptr->end(); ++it) 60 55 { 61 56 if (it->first == meshName) 62 //return &meshList[meshName];63 57 return &meshList_ptr->at(meshName); 64 58 else 65 59 { 66 60 CMesh newMesh; 67 //CMesh::meshList.insert( make_pair(meshName, newMesh) );68 61 CMesh::meshList_ptr->insert( make_pair(meshName, newMesh) ); 69 //return &meshList[meshName];70 62 return &meshList_ptr->at(meshName); 71 63 } … … 75 67 { 76 68 CMesh newMesh; 77 //CMesh::meshList.insert( make_pair(meshName, newMesh) );78 69 CMesh::meshList_ptr->insert( make_pair(meshName, newMesh) ); 79 //return &meshList[meshName];80 70 return &meshList_ptr->at(meshName); 81 71 } … … 151 141 } 152 142 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 otherwise162 */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 else192 {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 else204 {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 else225 return ( (hashed_map_nodes[hash0]+1) / 4 );226 227 } // nodeIndex()228 229 143 ///---------------------------------------------------------------- 230 144 /*! … … 313 227 * \param [in] bounds_lat Array of boundary latitudes. Its size depends on the element type. 314 228 */ 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 connectivity340 node_lon.resizeAndPreserve(nbEdges_*nvertex); // Max possible number of nodes341 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 else357 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 edges364 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 else380 {381 nbFaces_ = bounds_lon.shape()[1];382 383 // Create nodes and face_node connectivity384 node_lon.resizeAndPreserve(nbFaces_*nvertex); // Max possible number of nodes385 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 else401 {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 connectivity410 edge_lon.resizeAndPreserve(nbFaces_*nvertex); // Max possible number of edges411 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 generated418 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 rotation428 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 else443 {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 else454 {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 else464 {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 faces483 face_lon.resize(nbFaces_);484 face_lat.resize(nbFaces_);485 face_lon = lonvalue;486 face_lat = latvalue;487 facesAreWritten = true;488 489 } // nvertex > 2490 491 } // createMesh()492 229 493 230 ///---------------------------------------------------------------- … … 547 284 548 285 // For determining the global edge index 549 size_tnbEdgesOnProc = nbEdges_;550 size_tnbEdgesAccum;286 unsigned long nbEdgesOnProc = nbEdges_; 287 unsigned long nbEdgesAccum; 551 288 MPI_Scan(&nbEdgesOnProc, &nbEdgesAccum, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 552 289 nbEdgesAccum -= nbEdges_; … … 677 414 // Maps modified in this step: 678 415 // nodeIdx2Idx = <idx, idxGlo> 679 intnodeCount = nodeIdx2Idx.size();680 intnodeStart, nbNodes;416 unsigned long nodeCount = nodeIdx2Idx.size(); 417 unsigned long nodeStart, nbNodes; 681 418 MPI_Scan(&nodeCount, &nodeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 682 419 int nNodes = nodeStart; … … 770 507 771 508 // For determining the global face index 772 size_tnbFacesOnProc = nbFaces_;773 size_tnbFacesAccum;509 unsigned long nbFacesOnProc = nbFaces_; 510 unsigned long nbFacesAccum; 774 511 MPI_Scan(&nbFacesOnProc, &nbFacesAccum, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 775 512 nbFacesAccum -= nbFaces_; … … 895 632 } 896 633 897 intedgeStart, nbEdges;634 unsigned long edgeStart, nbEdges; 898 635 MPI_Scan(&edgeCount, &edgeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 899 636 int nEdges = edgeStart; … … 1115 852 } 1116 853 1117 intedgeCount = edgeIdx2Idx.size();1118 intedgeStart, nbEdges;854 unsigned long edgeCount = edgeIdx2Idx.size(); 855 unsigned long edgeStart, nbEdges; 1119 856 MPI_Scan(&edgeCount, &edgeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 1120 857 int nEdges = edgeStart; … … 1385 1122 // Maps modified in this step: 1386 1123 // nodeIdx2Idx = <idx, idxGlo> 1387 intnodeCount = nodeIdx2Idx.size();1388 intnodeStart, nbNodes;1124 unsigned long nodeCount = nodeIdx2Idx.size(); 1125 unsigned long nodeStart, nbNodes; 1389 1126 MPI_Scan(&nodeCount, &nodeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 1390 1127 int nNodes = nodeStart; … … 1505 1242 } 1506 1243 1507 intedgeCount = edgeIdx2Idx.size();1508 intedgeStart, nbEdges;1244 unsigned long edgeCount = edgeIdx2Idx.size(); 1245 unsigned long edgeStart, nbEdges; 1509 1246 MPI_Scan(&edgeCount, &edgeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 1510 1247 int nEdges = edgeStart; … … 2103 1840 2104 1841 // 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) 2106 1843 int maxNb = 20; // some assumption on the max possible number of neighboring cells 2107 1844 faceToFaces.resize(maxNb, nbFaces); … … 2160 1897 CArray<double, 2> faceToNodes (nvertex, nbFaces); 2161 1898 2162 boost::unordered_map <pair<double,double>, int> mapNodes;1899 std::unordered_map <pairDouble, int, boost::hash<pairDouble> > mapNodes; 2163 1900 2164 1901 for (int nf = 0; nf < nbFaces; ++nf) … … 2176 1913 2177 1914 // faceToFaces connectivity 2178 boost::unordered_map <pair<int,int>, int> mapEdges;1915 std::unordered_map <pairInt, int, boost::hash<pairInt> > mapEdges; 2179 1916 faceToFaces.resize(nvertex, nbFaces); 2180 1917 CArray<int, 2> edgeToFaces(2, nbFaces*nvertex); // max possible -
XIOS/dev/branch_openmp/src/node/mesh.hpp
r1331 r1545 76 76 private: 77 77 78 typedef std::pair<double, double> pairDouble; 79 typedef std::pair<int, int> pairInt; 80 78 81 int nbNodes_; 79 82 int nbEdges_; … … 93 96 vector<size_t> createHashes (const double, const double); 94 97 95 size_t nodeIndex (double, double); // redundant in parallel version with epsilon precision96 boost::unordered_map <size_t, size_t> hashed_map_nodes; // redundant in parallel version with epsilon precision97 boost::unordered_map <pair<double,double>, int> map_nodes; // redundant in parallel version with epsilon precision98 boost::unordered_map <pair<int,int>, int> map_edges; // redundant in parallel version with epsilon precision99 100 98 }; 101 99 -
XIOS/dev/branch_openmp/src/node/scalar.cpp
r1460 r1545 27 27 { /* Ne rien faire de plus */ } 28 28 29 //std::map<StdString, ETranformationType> CScalar::transformationMapList_ = std::map<StdString, ETranformationType>(); 29 30 30 std::map<StdString, ETranformationType> *CScalar::transformationMapList_ptr = 0; 31 //bool CScalar::dummyTransformationMapList_ = CScalar::initializeTransformationMap(CScalar::transformationMapList_); 31 32 32 bool CScalar::initializeTransformationMap(std::map<StdString, ETranformationType>& m) 33 33 { … … 175 175 176 176 nodeElementName = node.getElementName(); 177 //std::map<StdString, ETranformationType>::const_iterator ite = transformationMapList_.end(), it;178 177 if(CScalar::transformationMapList_ptr == 0) initializeTransformationMap(); 179 178 std::map<StdString, ETranformationType>::const_iterator ite = transformationMapList_ptr->end(), it; 180 //it = transformationMapList_.find(nodeElementName);181 179 it = transformationMapList_ptr->find(nodeElementName); 182 180 if (ite != it) -
XIOS/dev/branch_openmp/src/node/transformation.hpp
r1460 r1545 35 35 typedef std::map<ETranformationType, CreateTransformationCallBack> CallBackMap; 36 36 static CallBackMap* transformationCreationCallBacks_; 37 //#pragma omp threadprivate(transformationCreationCallBacks_)38 37 39 38 static bool registerTransformation(ETranformationType transType, CreateTransformationCallBack createFn); -
XIOS/dev/branch_openmp/src/object_factory.hpp
r1544 r1545 2 2 #define __XIOS_CObjectFactory__ 3 3 4 /// boost headers /// 5 #include <boost/shared_ptr.hpp> 4 #include <memory> 6 5 7 6 /// XIOS headers /// … … 24 23 25 24 template <typename U> 26 static boost::shared_ptr<U> GetObject(const StdString & id);25 static std::shared_ptr<U> GetObject(const StdString & id); 27 26 28 27 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); 30 29 31 30 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); 33 32 34 33 template <typename U> … … 38 37 39 38 template <typename U> 40 static const std::vector< boost::shared_ptr<U> > &39 static const std::vector<std::shared_ptr<U> > & 41 40 GetObjectVector(const StdString & context); 42 //GetObjectVector(const StdString & context = CObjectFactory::GetCurrentContextId());43 41 44 42 /// Tests /// … … 51 49 /// Instanciateur /// 52 50 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("")); 54 52 55 53 template <typename U> static const StdString& GetUIdBase(void); -
XIOS/dev/branch_openmp/src/object_factory_decl.cpp
r1460 r1545 5 5 { 6 6 #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); \ 10 10 template int CObjectFactory::GetObjectNum<U>(void); \ 11 11 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 ); \ 13 13 template bool CObjectFactory::HasObject<U>(const StdString& id); \ 14 14 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 ); \ 16 16 template const StdString& CObjectFactory::GetUIdBase<U>(void); \ 17 17 template StdString CObjectFactory::GenUId<U>(void); \ -
XIOS/dev/branch_openmp/src/object_factory_impl.hpp
r1460 r1545 13 13 ERROR("CObjectFactory::GetObjectNum(void)", 14 14 << "please define current context id !"); 15 //return (U::AllVectObj[CObjectFactory::CurrContext].size());16 15 if(U::AllVectObj_ptr == NULL) return 0; 17 16 return (*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr].size(); … … 24 23 ERROR("CObjectFactory::GetObjectIdNum(void)", 25 24 << "please define current context id !"); 26 //return (U::AllMapObj[CObjectFactory::CurrContext].size());27 25 if(U::AllMapObj_ptr == NULL) return 0; 28 26 return (*U::AllMapObj_ptr)[*CObjectFactory::CurrContext_ptr].size(); … … 35 33 ERROR("CObjectFactory::HasObject(const StdString & id)", 36 34 << "[ id = " << id << " ] please define current context id !"); 37 //return (U::AllMapObj[CObjectFactory::CurrContext].find(id) !=38 // U::AllMapObj[CObjectFactory::CurrContext].end());39 35 if(U::AllMapObj_ptr == NULL) return false; 40 36 return ((*U::AllMapObj_ptr)[*CObjectFactory::CurrContext_ptr].find(id) != … … 46 42 bool CObjectFactory::HasObject(const StdString & context, const StdString & id) 47 43 { 48 49 // if (U::AllMapObj.find(context) == U::AllMapObj.end()) return false ;50 // else return (U::AllMapObj[context].find(id) != U::AllMapObj[context].end());51 44 if(U::AllMapObj_ptr == NULL) return false; 52 45 … … 56 49 57 50 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) 59 52 { 60 if(U::AllVectObj_ptr == NULL) return ( boost::shared_ptr<U>());53 if(U::AllVectObj_ptr == NULL) return (std::shared_ptr<U>()); 61 54 if (CurrContext_ptr->size() == 0) 62 55 ERROR("CObjectFactory::GetObject(const U * const object)", 63 56 << "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]; 66 58 67 typename std::vector< boost::shared_ptr<U> >::const_iterator59 typename std::vector<std::shared_ptr<U> >::const_iterator 68 60 it = vect.begin(), end = vect.end(); 69 61 70 62 for (; it != end; it++) 71 63 { 72 boost::shared_ptr<U> ptr = *it;64 std::shared_ptr<U> ptr = *it; 73 65 if (ptr.get() == object) 74 66 return (ptr); … … 78 70 << "[type = " << U::GetName() << ", adress = " << object << "] " 79 71 << "object was not found."); 80 return ( boost::shared_ptr<U>()); // jamais atteint72 return (std::shared_ptr<U>()); // jamais atteint 81 73 } 82 74 83 75 template <typename U> 84 boost::shared_ptr<U> CObjectFactory::GetObject(const StdString & id)76 std::shared_ptr<U> CObjectFactory::GetObject(const StdString & id) 85 77 { 86 if(U::AllMapObj_ptr == NULL) return ( boost::shared_ptr<U>());78 if(U::AllMapObj_ptr == NULL) return (std::shared_ptr<U>()); 87 79 if (CurrContext_ptr->size() == 0) 88 80 ERROR("CObjectFactory::GetObject(const StdString & id)", … … 92 84 << "[ id = " << id << ", U = " << U::GetName() << " ] " 93 85 << "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]);102 86 return (*U::AllMapObj_ptr)[*CObjectFactory::CurrContext_ptr][id]; 103 87 } 104 88 105 89 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) 107 91 { 108 if(U::AllMapObj_ptr == NULL) return ( boost::shared_ptr<U>());92 if(U::AllMapObj_ptr == NULL) return (std::shared_ptr<U>()); 109 93 110 94 if (!CObjectFactory::HasObject<U>(context,id)) … … 112 96 << "[ id = " << id << ", U = " << U::GetName() <<", context = "<<context<< " ] " 113 97 << "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]);122 98 return (*U::AllMapObj_ptr)[context][id]; 123 99 } 124 100 125 101 template <typename U> 126 boost::shared_ptr<U> CObjectFactory::CreateObject(const StdString& id)102 std::shared_ptr<U> CObjectFactory::CreateObject(const StdString& id) 127 103 { 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> > >; 130 106 131 107 if (CurrContext_ptr->empty()) … … 139 115 else 140 116 { 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)); 145 118 146 119 (*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr].insert((*U::AllVectObj_ptr)[*CObjectFactory::CurrContext_ptr].end(), value); 147 120 (*U::AllMapObj_ptr) [*CObjectFactory::CurrContext_ptr].insert(std::make_pair(value->getId(), value)); 148 //cout<<"CObjectFactory::CreateObject(const StdString& id) [ id = " << id << " ]" <<endl;149 121 150 122 return value; … … 153 125 154 126 template <typename U> 155 const std::vector< boost::shared_ptr<U> > &127 const std::vector<std::shared_ptr<U> > & 156 128 CObjectFactory::GetObjectVector(const StdString & context) 157 129 { 158 //return (U::AllVectObj[context]);159 130 return (*U::AllVectObj_ptr)[context]; 160 131 } -
XIOS/dev/branch_openmp/src/object_template.hpp
r1460 r1545 71 71 72 72 /// Accesseur statique /// 73 static std::vector< boost::shared_ptr<DerivedType> > &73 static std::vector<std::shared_ptr<DerivedType> > & 74 74 GetAllVectobject(const StdString & contextId); 75 75 … … 83 83 static T* get(const string& contextId, const string& id) ; 84 84 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) ; 87 87 88 88 static T* create(const string& id=string("")) ; … … 108 108 static xios_map<StdString, 109 109 xios_map<StdString, 110 boost::shared_ptr<DerivedType> > > *AllMapObj_ptr;110 std::shared_ptr<DerivedType> > > *AllMapObj_ptr; 111 111 #pragma omp threadprivate(AllMapObj_ptr) 112 112 static xios_map<StdString, 113 std::vector< boost::shared_ptr<DerivedType> > > *AllVectObj_ptr;113 std::vector<std::shared_ptr<DerivedType> > > *AllVectObj_ptr; 114 114 #pragma omp threadprivate(AllVectObj_ptr) 115 115 -
XIOS/dev/branch_openmp/src/object_template_impl.hpp
r1544 r1545 24 24 xios_map<StdString, 25 25 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; 28 27 29 28 template <class T> 30 29 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> 36 33 xios_map<StdString,long int> *CObjectTemplate<T>::GenId_ptr = 0; 37 34 … … 66 63 67 64 template <class T> 68 std::vector< boost::shared_ptr<T> > &65 std::vector<std::shared_ptr<T> > & 69 66 CObjectTemplate<T>::GetAllVectobject(const StdString & contextId) 70 67 { 71 //return (CObjectTemplate<T>::AllVectObj[contextId]); 72 return (CObjectTemplate<T>::AllVectObj_ptr->at(contextId)); 68 return (CObjectTemplate<T>::AllVectObj_ptr->at(contextId)); 73 69 } 74 70 … … 416 412 417 413 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) 419 415 { 420 416 return CObjectFactory::GetObject<T>(ptr); … … 422 418 423 419 template <typename T> 424 boost::shared_ptr<T> CObjectTemplate<T>::getShared(void)420 std::shared_ptr<T> CObjectTemplate<T>::getShared(void) 425 421 { 426 422 return CObjectFactory::GetObject<T>((T*)this); … … 430 426 const vector<T*> CObjectTemplate<T>::getAll() 431 427 { 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()); 436 429 vector<T*> vect; 437 430 438 typename vector< boost::shared_ptr<T> >::const_iterator it;431 typename vector<std::shared_ptr<T> >::const_iterator it; 439 432 for(it=shared_vect.begin();it!=shared_vect.end();++it) vect.push_back(it->get()); 440 433 return vect; … … 444 437 const vector<T*> CObjectTemplate<T>::getAll(const string & id) 445 438 { 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); 447 440 vector<T*> vect; 448 441 449 typename vector< boost::shared_ptr<T> >::const_iterator it;442 typename vector<std::shared_ptr<T> >::const_iterator it; 450 443 for(it=shared_vect.begin();it!=shared_vect.end();++it) vect.push_back(it->get()); 451 444 return vect; … … 482 475 oss << iendl; 483 476 oss << "#include <boost/multi_array.hpp>" << iendl; 484 oss << "#include <boost /shared_ptr.hpp>" << iendl;477 oss << "#include <boostXXX/shared_ptr.hpp>" << iendl; 485 478 oss << "#include \"xios.hpp\"" << iendl; 486 479 oss << "#include \"attribute_template.hpp\"" << iendl; -
XIOS/dev/branch_openmp/src/parse_expr/filter_expr_node.cpp
r1038 r1545 11 11 { /* Nothing to do */ } 12 12 13 boost::shared_ptr<COutputPin> CFilterFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const14 { 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; 16 16 17 17 if (fieldId == "this") … … 21 21 CField* field = CField::get(fieldId); 22 22 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", 24 24 << "The field " << fieldId << " has an invalid reference to itself. " 25 25 << "Use the keyword \"this\" if you want to reference the input data sent to this field."); … … 29 29 } 30 30 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", 32 32 << "The field " << fieldId << " does not exist."); 33 33 … … 39 39 { /* Nothing to do */ } 40 40 41 boost::shared_ptr<COutputPin> CFilterTemporalFieldExprNode::reduce(CGarbageCollector& gc, CField& thisField) const42 { 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; 44 44 45 45 if (fieldId == "this") … … 49 49 CField* field = CField::get(fieldId); 50 50 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", 52 52 << "The field " << fieldId << " has an invalid reference to itself. " 53 53 << "Use the keyword \"this\" if you want to reference the input data sent to this field."); … … 57 57 } 58 58 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", 60 60 << "The field " << fieldId << " does not exist."); 61 61 … … 72 72 } 73 73 74 boost::shared_ptr<COutputPin> CFilterUnaryOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const75 { 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)); 77 77 child->reduce(gc, thisField)->connectOutput(filter, 0); 78 78 return filter; … … 89 89 } 90 90 91 boost::shared_ptr<COutputPin> CFilterScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const92 { 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())); 94 94 child2->reduce(gc, thisField)->connectOutput(filter, 0); 95 95 return filter; … … 106 106 } 107 107 108 boost::shared_ptr<COutputPin> CFilterFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const109 { 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())); 111 111 child1->reduce(gc, thisField)->connectOutput(filter, 0); 112 112 return filter; … … 123 123 } 124 124 125 boost::shared_ptr<COutputPin> CFilterFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const126 { 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)); 128 128 child1->reduce(gc, thisField)->connectOutput(filter, 0); 129 129 child2->reduce(gc, thisField)->connectOutput(filter, 1); … … 145 145 } 146 146 147 boost::shared_ptr<COutputPin> CFilterScalarScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const148 { 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())); 150 150 child3->reduce(gc, thisField)->connectOutput(filter, 0); 151 151 return filter; … … 164 164 } 165 165 166 boost::shared_ptr<COutputPin> CFilterScalarFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const167 { 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())); 169 169 child2->reduce(gc, thisField)->connectOutput(filter, 0); 170 170 return filter; … … 183 183 } 184 184 185 boost::shared_ptr<COutputPin> CFilterScalarFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const186 { 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())); 188 188 child2->reduce(gc, thisField)->connectOutput(filter, 0); 189 189 child3->reduce(gc, thisField)->connectOutput(filter, 1); … … 204 204 } 205 205 206 boost::shared_ptr<COutputPin> CFilterFieldScalarScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const207 { 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())); 209 209 child1->reduce(gc, thisField)->connectOutput(filter, 0); 210 210 return filter; … … 224 224 } 225 225 226 boost::shared_ptr<COutputPin> CFilterFieldScalarFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const227 { 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())); 229 229 child1->reduce(gc, thisField)->connectOutput(filter, 0); 230 230 child3->reduce(gc, thisField)->connectOutput(filter, 1); … … 245 245 } 246 246 247 boost::shared_ptr<COutputPin> CFilterFieldFieldScalarOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const248 { 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())); 250 250 child1->reduce(gc, thisField)->connectOutput(filter, 0); 251 251 child2->reduce(gc, thisField)->connectOutput(filter, 1); … … 265 265 } 266 266 267 boost::shared_ptr<COutputPin> CFilterFieldFieldFieldOpExprNode::reduce(CGarbageCollector& gc, CField& thisField) const268 { 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)); 270 270 child1->reduce(gc, thisField)->connectOutput(filter, 0); 271 271 child2->reduce(gc, thisField)->connectOutput(filter, 1); -
XIOS/dev/branch_openmp/src/parse_expr/filter_expr_node.hpp
r1038 r1545 3 3 4 4 #include <string> 5 #include <boost/shared_ptr.hpp>6 5 #include <boost/smart_ptr/scoped_ptr.hpp> 7 6 #include "scalar_expr_node.hpp" … … 26 25 * \return the output pin of the filter producing the result of the expression 27 26 */ 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; 29 28 }; 30 29 … … 43 42 CFilterFieldExprNode(const std::string& fieldId); 44 43 45 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;44 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 46 45 47 46 private: … … 64 63 CFilterTemporalFieldExprNode(const std::string& fieldId); 65 64 66 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;65 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 67 66 68 67 private: … … 87 86 CFilterUnaryOpExprNode(const std::string& opId, IFilterExprNode* child); 88 87 89 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;88 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 90 89 91 90 private: … … 112 111 CFilterScalarFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2); 113 112 114 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;113 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 115 114 116 115 private: … … 138 137 CFilterFieldScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2); 139 138 140 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;139 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 141 140 142 141 private: … … 163 162 CFilterFieldFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2); 164 163 165 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;164 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 166 165 167 166 private: … … 191 190 CFilterScalarScalarFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3); 192 191 193 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;192 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 194 193 195 194 private: … … 220 219 CFilterScalarFieldScalarOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3); 221 220 222 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;221 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 223 222 224 223 private: … … 249 248 CFilterScalarFieldFieldOpExprNode(IScalarExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3); 250 249 251 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;250 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 252 251 253 252 private: … … 279 278 CFilterFieldScalarScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IScalarExprNode* child3); 280 279 281 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;280 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 282 281 283 282 private: … … 308 307 CFilterFieldScalarFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IScalarExprNode* child2, IFilterExprNode* child3); 309 308 310 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;309 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 311 310 312 311 private: … … 336 335 CFilterFieldFieldScalarOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IScalarExprNode* child3); 337 336 338 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;337 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 339 338 340 339 private: … … 365 364 CFilterFieldFieldFieldOpExprNode(IFilterExprNode* child1, const std::string& opId, IFilterExprNode* child2, IFilterExprNode* child3); 366 365 367 virtual boost::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const;366 virtual std::shared_ptr<COutputPin> reduce(CGarbageCollector& gc, CField& thisField) const; 368 367 369 368 private: -
XIOS/dev/branch_openmp/src/parse_expr/operator_expr.hpp
r1482 r1545 254 254 static inline double div_ss(double x, double y) { return x / y; } 255 255 static inline double pow_ss(double x, double y) { return std::pow(x,y); } 256 256 257 static inline double eq_ss(double x, double y) // specific check for NaN 257 258 { … … 350 351 else return Array<double,1>(x == y); 351 352 } 352 353 353 static inline CArray<double,1> lt_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x < y); } 354 354 static inline CArray<double,1> gt_sf(double x, const CArray<double,1>& y) { return Array<double,1>(x > y); } … … 367 367 else return Array<double,1>(x != y); 368 368 } 369 370 371 372 369 static inline double cond_sss(double x, double y, double z) { return (x==0) ? z : y ; } 373 370 -
XIOS/dev/branch_openmp/src/server.cpp
r1533 r1545 39 39 * \fn void CServer::initialize(void) 40 40 * 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.)42 41 * Creates interComm and stores them into the following lists: 43 42 * classical server -- interCommLeft … … 111 110 else 112 111 { 112 if (CXios::nbPoolsServer2 == 0) CXios::nbPoolsServer2 = reqNbProc; 113 113 int firstSndSrvRank = srvRanks.size()*(100.-CXios::ratioServer2)/100. ; 114 114 int poolLeader = firstSndSrvRank; 115 115 //*********** (1) Comment out the line below to set one process per pool 116 //sndServerGlobalRanks.push_back(srvRanks[poolLeader]);116 sndServerGlobalRanks.push_back(srvRanks[poolLeader]); 117 117 int nbPools = CXios::nbPoolsServer2; 118 118 if ( nbPools > reqNbProc || nbPools < 1) … … 140 140 } 141 141 //*********** (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]); 144 144 //*********** (3) Uncomment the line below to set one process per pool 145 sndServerGlobalRanks.push_back(srvRanks[i]);145 // sndServerGlobalRanks.push_back(srvRanks[i]); 146 146 } 147 147 else … … 189 189 MPI_Comm_size(intraComm,&intraCommSize) ; 190 190 MPI_Comm_rank(intraComm,&intraCommRank) ; 191 192 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ; 191 193 #pragma omp critical (_output) 192 194 { … … 195 197 } 196 198 197 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ;199 198 200 interCommLeft.push_back(newComm) ; 199 201 } … … 213 215 MPI_Comm_size(intraComm, &intraCommSize) ; 214 216 MPI_Comm_rank(intraComm, &intraCommRank) ; 217 218 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ; 215 219 #pragma omp critical (_output) 216 220 { … … 218 222 <<" intraCommRank :"<<intraCommRank<<" clientLeader "<< clientLeader<<endl ; 219 223 } 220 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 0, &newComm) ; 224 221 225 interCommLeft.push_back(newComm) ; 222 226 } … … 228 232 MPI_Comm_size(intraComm, &intraCommSize) ; 229 233 MPI_Comm_rank(intraComm, &intraCommRank) ; 234 235 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, sndServerGlobalRanks[i], 1, &newComm) ; 230 236 #pragma omp critical (_output) 231 237 { … … 233 239 <<" intraCommRank :"<<intraCommRank<<" clientLeader "<< sndServerGlobalRanks[i]<<endl ; 234 240 } 235 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, sndServerGlobalRanks[i], 1, &newComm) ; 241 236 242 interCommRight.push_back(newComm) ; 237 243 } … … 244 250 MPI_Comm_size(intraComm, &intraCommSize) ; 245 251 MPI_Comm_rank(intraComm, &intraCommRank) ; 252 253 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 1, &newComm) ; 246 254 #pragma omp critical (_output) 247 255 { … … 250 258 } 251 259 252 MPI_Intercomm_create(intraComm, 0, CXios::globalComm, clientLeader, 1, &newComm) ;253 260 interCommLeft.push_back(newComm) ; 254 261 } … … 654 661 if (flag==true) 655 662 { 656 int my_count;657 663 counts.push_back(0); 658 664 MPI_Get_count(&status,MPI_CHAR,&(counts.back())) ; 659 665 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())) ;662 666 MPI_Irecv((void*)(buffers.back()),counts.back(),MPI_CHAR,root,2,intraComm,&request) ; 663 667 requests.push_back(request); … … 817 821 if (!fb->is_open()) 818 822 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)."); 820 824 } 821 825 -
XIOS/dev/branch_openmp/src/server_distribution_description.cpp
r1460 r1545 196 196 \param [in] positionDimensionDistributed dimension of server on which we make the cut. 197 197 */ 198 std::vector<int> CServerDistributionDescription::computeServerGlobalByElement(std::vector< boost::unordered_map<size_t,std::vector<int> > >& indexServerOnElement,198 std::vector<int> CServerDistributionDescription::computeServerGlobalByElement(std::vector<std::unordered_map<size_t,std::vector<int> > >& indexServerOnElement, 199 199 int clientRank, 200 200 int clientSize, … … 510 510 Get global index calculated by computeServerGlobalIndexInRange 511 511 */ 512 const boost::unordered_map<size_t,int>& CServerDistributionDescription::getGlobalIndexRange() const512 const std::unordered_map<size_t,int>& CServerDistributionDescription::getGlobalIndexRange() const 513 513 { 514 514 return globalIndex_; -
XIOS/dev/branch_openmp/src/server_distribution_description.hpp
r1460 r1545 13 13 #include "xios_spl.hpp" 14 14 #include "array_new.hpp" 15 #include < boost/unordered_map.hpp>15 #include <unordered_map> 16 16 17 17 namespace xios … … 39 39 void computeServerDistribution(bool doComputeGlobalIndex = false, int positionDimensionDistributed = 1); 40 40 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, 42 42 int rank, 43 43 int clientSize, … … 48 48 std::vector<std::vector<int> > getServerDimensionSizes() const; 49 49 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; 51 51 int getDimensionDistributed(); 52 52 … … 73 73 74 74 //!< 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_; 76 76 77 77 //!< Type of distribution on server side -
XIOS/dev/branch_openmp/src/timer.cpp
r1328 r1545 10 10 namespace xios 11 11 { 12 //std::map<std::string,CTimer> CTimer::allTimer;13 12 std::map<std::string,CTimer> *CTimer::allTimer_ptr = 0; 14 13 … … 58 57 if(allTimer_ptr == NULL) allTimer_ptr = new std::map<std::string,CTimer>; 59 58 60 //std::map<std::string,CTimer>::iterator it = allTimer.find(name);61 59 std::map<std::string,CTimer>::iterator it = allTimer_ptr->find(name); 62 //if (it == allTimer.end()) 60 63 61 if (it == allTimer_ptr->end()) 64 62 it = allTimer_ptr->insert(std::make_pair(name, CTimer(name))).first; 65 63 66 //it = allTimer.insert(std::make_pair(name, CTimer(name))).first;67 64 return it->second; 68 65 } … … 72 69 std::ostringstream strOut ; 73 70 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 75 72 for(std::map<std::string,CTimer>::iterator it=allTimer_ptr->begin();it!=allTimer_ptr->end();++it) 76 73 strOut<<"Timer : "<<it->first<<" --> cumulated time : "<<it->second.getCumulatedTime()<<std::endl ; -
XIOS/dev/branch_openmp/src/timer.hpp
r1331 r1545 20 20 void reset(void); 21 21 double getCumulatedTime(void); 22 //static std::map<std::string,CTimer> allTimer;23 22 static std::map<std::string,CTimer> *allTimer_ptr; 24 23 #pragma omp threadprivate(allTimer_ptr) -
XIOS/dev/branch_openmp/src/transformation/Functions/reduction.hpp
r1460 r1545 23 23 { 24 24 public: 25 //static std::map<StdString,EReductionType> ReductionOperations;26 25 static std::map<StdString,EReductionType> *ReductionOperations_ptr; 27 26 #pragma omp threadprivate(ReductionOperations_ptr) -
XIOS/dev/branch_openmp/src/transformation/axis_algorithm_extract_domain.cpp
r1460 r1545 13 13 #include "grid.hpp" 14 14 #include "grid_transformation_factory_impl.hpp" 15 //#include "reduction.hpp"16 15 17 16 namespace xios { -
XIOS/dev/branch_openmp/src/transformation/axis_algorithm_inverse.cpp
r1328 r1545 109 109 } 110 110 111 typedef boost::unordered_map<size_t, std::vector<double> > GlobalIndexMapFromSrcToDest;111 typedef std::unordered_map<size_t, std::vector<double> > GlobalIndexMapFromSrcToDest; 112 112 GlobalIndexMapFromSrcToDest globalIndexMapFromSrcToDest; 113 113 TransformationIndexMap& transMap = this->transformationMapping_[0]; … … 127 127 dhtIndexProcRank.computeIndexInfoMapping(globalSrcIndex); 128 128 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; 130 130 for (int idx = 0; idx < localIndex; ++idx) 131 131 { … … 138 138 } 139 139 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, 141 141 iteIndex = globalSrcIndexSendToProc.end(); 142 142 std::map<int,int> sendRankSizeMap,recvRankSizeMap; … … 176 176 std::vector<MPI_Request> requests; 177 177 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; 180 180 for (std::map<int,int>::const_iterator itRecv = recvRankSizeMap.begin(); itRecv != recvRankSizeMap.end(); ++itRecv) 181 181 { … … 189 189 } 190 190 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; 193 193 for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 194 194 { … … 272 272 delete [] recvSizeBuff; 273 273 274 boost::unordered_map<int, double* >::const_iterator itChar;274 std::unordered_map<int, double* >::const_iterator itChar; 275 275 for (itChar = sendValueToDest.begin(); itChar != sendValueToDest.end(); ++itChar) 276 276 delete [] itChar->second; 277 277 for (itChar = recvValueFromSrc.begin(); itChar != recvValueFromSrc.end(); ++itChar) 278 278 delete [] itChar->second; 279 boost::unordered_map<int, unsigned long* >::const_iterator itLong;279 std::unordered_map<int, unsigned long* >::const_iterator itLong; 280 280 for (itLong = sendGlobalIndexSrc.begin(); itLong != sendGlobalIndexSrc.end(); ++itLong) 281 281 delete [] itLong->second; -
XIOS/dev/branch_openmp/src/transformation/axis_algorithm_reduce_axis.cpp
r1460 r1545 12 12 #include "grid.hpp" 13 13 #include "grid_transformation_factory_impl.hpp" 14 //#include "reduction.hpp"15 14 16 15 namespace xios { … … 72 71 CReductionAlgorithm::initReductionOperation(); 73 72 } 74 //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]); 73 75 74 reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 76 75 } -
XIOS/dev/branch_openmp/src/transformation/axis_algorithm_reduce_domain.cpp
r1460 r1545 13 13 #include "grid.hpp" 14 14 #include "grid_transformation_factory_impl.hpp" 15 //#include "reduction.hpp" 15 16 16 17 17 namespace xios { … … 74 74 CReductionAlgorithm::initReductionOperation(); 75 75 } 76 //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]);77 76 reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 78 77 local = algo->local ; -
XIOS/dev/branch_openmp/src/transformation/domain_algorithm_interpolate.cpp
r1540 r1545 8 8 */ 9 9 #include "domain_algorithm_interpolate.hpp" 10 #include < boost/unordered_map.hpp>10 #include <unordered_map> 11 11 #include "context.hpp" 12 12 #include "context_client.hpp" … … 406 406 CContext* context = CContext::getCurrent(); 407 407 CContextClient* client=context->client; 408 //int mykey;409 //ep_lib::MPI_Comm_rank(client->intraComm, &mykey);410 408 411 409 ep_lib::MPI_Comm poleComme = MPI_COMM_NULL; 412 410 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())415 411 if (poleComme!=MPI_COMM_NULL) 416 412 { … … 540 536 TransformationWeightMap& transWeight = this->transformationWeight_[0]; 541 537 542 boost::unordered_map<size_t,int> globalIndexOfDomainDest;538 std::unordered_map<size_t,int> globalIndexOfDomainDest; 543 539 int ni = domainDest_->ni.getValue(); 544 540 int nj = domainDest_->nj.getValue(); … … 816 812 WriteNetCdf *netCdfWriter; 817 813 818 // #pragma omp barrier 819 // #pragma omp master 814 820 815 MPI_Barrier_local(client->intraComm); 821 816 if(my_rank_loc==0) … … 843 838 } 844 839 845 // #pragma omp barrier 840 846 841 MPI_Barrier_local(client->intraComm); 847 842 … … 863 858 MPI_Barrier_local(client->intraComm); 864 859 865 // #pragma omp barrier 866 cout<<"end write weight info"<< endl; 860 867 861 } 868 862 … … 953 947 renormalizationFactor=1 ; 954 948 } 955 949 956 950 if (firstPass) 957 951 { … … 969 963 else 970 964 { 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 972 967 } 973 968 } … … 999 994 if (renormalizationFactor.numElements()>0) dataOut/=renormalizationFactor ; // In some case, process doesn't received any data for interpolation (mask) 1000 995 // 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 51 51 } 52 52 } 53 53 54 } 54 55 else … … 164 165 int nbClient = client->clientSize; 165 166 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; 167 168 int idx; 168 169 … … 286 287 if (idx != elementPositionInGrid) 287 288 { 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, 289 290 ite = globalElementIndexOnProc_[idx].end(); 290 291 for (it = itb; it != ite; ++it) it->second.resize(1); … … 300 301 if (idx != elementPositionInGrid) 301 302 { 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, 303 304 ite = globalElementIndexOnProc_[idx].end(); 304 305 for (it = itb; it != ite; ++it) procOfNonTransformedElements_.insert(it->first); … … 358 359 set<int> tmpSet ; 359 360 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, 361 362 ite = globalElementIndexOnProc_[idx].end(); 362 363 for (it = itb; it != ite; ++it) … … 394 395 395 396 // 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]); 397 398 std::set<int> tmpCounter; 398 399 itTransWeight = itbTransWeight; … … 425 426 if (idx != elementPositionInGrid) 426 427 { 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, 428 429 ite = globalElementIndexOnProc_[idx].end(); 429 430 for (it = itb; it != ite; ++it) it->second[0] = transPos(idxTrans); … … 455 456 void CGenericAlgorithmTransformation::computeGlobalGridIndexMapping(int elementPositionInGrid, 456 457 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, 458 459 CGrid* gridSrc, 459 460 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, 461 462 SourceDestinationIndexMap& globaIndexWeightFromSrcToDst) 462 463 { … … 614 615 615 616 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 ; 617 618 std::vector<std::pair<size_t,double> >::iterator vectIt,vectIte ; 618 619 … … 652 653 CScalar* scalarSrc, 653 654 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) 655 656 { 656 657 CContext* context = CContext::getCurrent(); … … 676 677 CAxis* axisSrc, 677 678 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) 679 680 { 680 681 CContext* context = CContext::getCurrent(); … … 745 746 CDomain* domainSrc, 746 747 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) 748 749 { 749 750 CContext* context = CContext::getCurrent(); -
XIOS/dev/branch_openmp/src/transformation/generic_algorithm_transformation.hpp
r1460 r1545 38 38 public: 39 39 // 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; 41 41 42 42 protected: 43 typedef boost::unordered_map<size_t,int> GlobalLocalMap;43 typedef std::unordered_map<size_t,int> GlobalLocalMap; 44 44 protected: 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; 48 48 49 49 public: … … 108 108 void computeGlobalGridIndexMapping(int elementPositionInGrid, 109 109 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, 111 111 CGrid* gridDst, 112 112 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, 114 114 SourceDestinationIndexMap& globaIndexWeightFromSrcToDst); 115 115 … … 117 117 CDomain* domainSrc, 118 118 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); 120 120 121 121 void computeExchangeAxisIndex(CAxis* axisDst, 122 122 CAxis* axisSrc, 123 123 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); 125 125 126 126 void computeExchangeScalarIndex(CScalar* scalarDst, 127 127 CScalar* scalarSrc, 128 128 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); 130 130 131 131 void computePositionElements(CGrid* dst, CGrid* src); … … 151 151 std::set<StdSize> indexElementSrc_; 152 152 153 std::vector< boost::unordered_map<int,std::vector<size_t> > > globalElementIndexOnProc_;153 std::vector<std::unordered_map<int,std::vector<size_t> > > globalElementIndexOnProc_; 154 154 155 155 std::vector<int> procContainSrcElementIdx_; // List of processes containing source index of transformed elements -
XIOS/dev/branch_openmp/src/transformation/grid_transformation.cpp
r1460 r1545 15 15 #include "mpi_tag.hpp" 16 16 #include "grid.hpp" 17 #include < boost/unordered_map.hpp>17 #include <unordered_map> 18 18 #include "timer.hpp" 19 19 … … 479 479 SourceDestinationIndexMap::const_iterator itbIndex = globaIndexWeightFromSrcToDst.begin(), 480 480 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; 482 482 std::map<int,int> sendRankSizeMap,recvRankSizeMap; 483 483 int connectedClient = globaIndexWeightFromSrcToDst.size(); … … 522 522 std::vector<ep_lib::MPI_Request> requests(recvRankSizeMap.size()*2 + globaIndexWeightFromSrcToDst.size()*2); 523 523 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; 526 526 int requests_position = 0; 527 527 for (std::map<int,int>::const_iterator itRecv = recvRankSizeMap.begin(); itRecv != recvRankSizeMap.end(); ++itRecv) … … 536 536 } 537 537 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; 542 542 for (itIndex = itbIndex; itIndex != iteIndex; ++itIndex) 543 543 { … … 666 666 delete [] recvSizeBuff; 667 667 668 boost::unordered_map<int, unsigned char* >::const_iterator itChar;668 std::unordered_map<int, unsigned char* >::const_iterator itChar; 669 669 for (itChar = sendMaskDst.begin(); itChar != sendMaskDst.end(); ++itChar) 670 670 delete [] itChar->second; 671 671 for (itChar = recvMaskDst.begin(); itChar != recvMaskDst.end(); ++itChar) 672 672 delete [] itChar->second; 673 boost::unordered_map<int, unsigned long* >::const_iterator itLong;673 std::unordered_map<int, unsigned long* >::const_iterator itLong; 674 674 for (itLong = sendGlobalIndexSrc.begin(); itLong != sendGlobalIndexSrc.end(); ++itLong) 675 675 delete [] itLong->second; -
XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_extract_axis.cpp
r1460 r1545 14 14 #include "grid_transformation_factory_impl.hpp" 15 15 16 //#include "reduction.hpp" 16 17 17 18 18 namespace xios { -
XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_reduce_axis.cpp
r1460 r1545 13 13 #include "grid.hpp" 14 14 #include "grid_transformation_factory_impl.hpp" 15 //#include "reduction.hpp" 15 16 16 17 17 -
XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_reduce_domain.cpp
r1460 r1545 14 14 #include "grid_transformation_factory_impl.hpp" 15 15 16 //#include "reduction.hpp"17 16 18 17 namespace xios { … … 75 74 CReductionAlgorithm::initReductionOperation(); 76 75 } 77 78 //if (CReductionAlgorithm::ReductionOperations.end() == CReductionAlgorithm::ReductionOperations.find(op))79 76 if (CReductionAlgorithm::ReductionOperations_ptr->end() == CReductionAlgorithm::ReductionOperations_ptr->find(op)) 80 77 ERROR("CScalarAlgorithmReduceDomain::CScalarAlgorithmReduceDomain(CDomain* domainDestination, CDomain* domainSource, CReduceDomainToScalar* algo)", … … 83 80 << "Scalar destination " << scalarDestination->getId()); 84 81 85 //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]);86 82 reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 87 83 local = algo->local ; -
XIOS/dev/branch_openmp/src/transformation/scalar_algorithm_reduce_scalar.cpp
r1460 r1545 9 9 #include "grid.hpp" 10 10 #include "grid_transformation_factory_impl.hpp" 11 //#include "reduction.hpp" 11 12 12 13 13 … … 76 76 } 77 77 78 //if (CReductionAlgorithm::ReductionOperations.end() == CReductionAlgorithm::ReductionOperations.find(op))79 78 if (CReductionAlgorithm::ReductionOperations_ptr->end() == CReductionAlgorithm::ReductionOperations_ptr->find(op)) 80 79 ERROR("CScalarAlgorithmReduceScalar::CScalarAlgorithmReduceScalar(CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo)", … … 82 81 << "Scalar source " <<scalarSource->getId() << std::endl 83 82 << "Scalar destination " << scalarDestination->getId()); 84 85 //reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations[op]); 83 86 84 reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 87 85 } -
XIOS/dev/branch_openmp/src/xios.hpp
r1328 r1545 6 6 /// XIOS headers /// 7 7 #include "data_output.hpp" 8 //#include "nc4_data_output.hpp" 8 9 9 10 10 11 11 using namespace xios; 12 //using namespace xios::xml; 13 //using namespace xios::func; 12 13 14 14 15 15 #endif //__XIOS__ -
XIOS/dev/branch_openmp/src/xios_server.f90
r1482 r1545 4 4 INCLUDE "mpif.h" 5 5 INTEGER :: ierr 6 7 6 8 7 CALL xios_init_server 9 8 -
XIOS/dev/branch_openmp/src/xios_spl.hpp
r1460 r1545 6 6 #include <string> 7 7 #include <algorithm> 8 #include <unordered_map> 9 #include <memory> 8 10 9 11 // standard C … … 28 30 29 31 /// boost headers /// 30 #include <boost/unordered_map.hpp>31 #include <boost/shared_ptr.hpp>32 32 #include <boost/cast.hpp> 33 33 /// Map /// … … 58 58 #include "log.hpp" 59 59 using namespace std; 60 //using namespace boost ;60 using namespace boost ; 61 61 62 62
Note: See TracChangeset
for help on using the changeset viewer.