Changeset 1201 for XIOS/dev/dev_olga/src
- Timestamp:
- 07/07/17 18:17:49 (7 years ago)
- Location:
- XIOS/dev/dev_olga/src
- Files:
-
- 48 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/buffer_client.cpp
r1130 r1201 12 12 size_t CClientBuffer::maxRequestSize = 0; 13 13 14 CClientBuffer::CClientBuffer(MPI_Comm interComm, int serverRank, StdSize bufferSize, StdSize maxBufferedEvents)14 CClientBuffer::CClientBuffer(MPI_Comm interComm, int serverRank, StdSize bufferSize, StdSize estimatedMaxEventSize, StdSize maxBufferedEvents) 15 15 : interComm(interComm) 16 16 , serverRank(serverRank) 17 17 , bufferSize(bufferSize) 18 , estimatedMaxEventSize(estimatedMaxEventSize) 19 , maxEventSize(0) 18 20 , current(0) 19 21 , count(0) … … 42 44 bool CClientBuffer::isBufferFree(int size) 43 45 { 44 if (size > maxRequestSize) maxRequestSize = size;45 46 46 if (size > bufferSize) 47 47 ERROR("bool CClientBuffer::isBufferFree(int size)", 48 48 << "The requested size (" << size << " bytes) is too big to fit the buffer (" << bufferSize << " bytes), please increase the client buffer size." << endl); 49 50 if (size > maxEventSize) 51 { 52 maxEventSize = size; 53 54 if (size > estimatedMaxEventSize) 55 error(0) << "WARNING: Unexpected event of size " << size << " for server " << serverRank 56 << " (estimated max event size = " << estimatedMaxEventSize << ")" << std::endl; 57 58 if (size > maxRequestSize) maxRequestSize = size; 59 } 60 49 61 50 62 return (size <= remain() && bufferedEvents < maxBufferedEvents); -
XIOS/dev/dev_olga/src/buffer_client.hpp
r917 r1201 14 14 static size_t maxRequestSize; 15 15 16 CClientBuffer(MPI_Comm intercomm, int serverRank, StdSize bufferSize, StdSize maxBufferedEvents);16 CClientBuffer(MPI_Comm intercomm, int serverRank, StdSize bufferSize, StdSize estimatedMaxEventSize, StdSize maxBufferedEvents); 17 17 ~CClientBuffer(); 18 18 … … 29 29 int count; 30 30 int bufferedEvents; 31 int maxEventSize; 31 32 const int maxBufferedEvents; 32 33 const int bufferSize; 34 const int estimatedMaxEventSize; 33 35 const int serverRank; 34 36 bool pending; -
XIOS/dev/dev_olga/src/config/axis_attribute_private.conf
r1099 r1201 1 1 DECLARE_ATTRIBUTE_PRIVATE(int, global_zoom_begin) 2 2 DECLARE_ATTRIBUTE_PRIVATE(int, global_zoom_n) 3 3 DECLARE_ARRAY_PRIVATE(int, 1, global_zoom_index) 4 4 DECLARE_ATTRIBUTE_PRIVATE(int, zoom_begin) 5 5 DECLARE_ATTRIBUTE_PRIVATE(int, zoom_n) -
XIOS/dev/dev_olga/src/config/field_attribute.conf
r1021 r1201 16 16 DECLARE_ATTRIBUTE(bool, read_access) 17 17 DECLARE_ATTRIBUTE(bool, indexed_output) 18 DECLARE_ATTRIBUTE(bool, check_if_active) 18 19 19 20 DECLARE_ATTRIBUTE(StdString, domain_ref) -
XIOS/dev/dev_olga/src/config/file_attribute.conf
r1158 r1201 10 10 DECLARE_ATTRIBUTE(CDuration, split_freq) 11 11 DECLARE_ATTRIBUTE(StdString, split_freq_format) 12 DECLARE_ATTRIBUTE(CDuration, split_start_offset) 13 DECLARE_ATTRIBUTE(CDuration, split_end_offset) 14 DECLARE_ATTRIBUTE(string, split_last_date) 12 15 DECLARE_ATTRIBUTE(bool, enabled) 13 16 DECLARE_ENUM2(type, one_file, multiple_file) -
XIOS/dev/dev_olga/src/config/zoom_axis_attribute.conf
r787 r1201 2 2 DECLARE_ATTRIBUTE(int, begin) 3 3 DECLARE_ATTRIBUTE(int, n) 4 DECLARE_ARRAY(int ,1 , index) -
XIOS/dev/dev_olga/src/context_client.cpp
r1194 r1201 246 246 void CContextClient::newBuffer(int rank) 247 247 { 248 if (!mapBufferSize_.count(rank)) 249 { 250 // error(0) << "WARNING: Unexpected request for buffer to communicate with server " << rank << std::endl; 251 mapBufferSize_[rank] = CXios::minBufferSize; 252 } 253 CClientBuffer* buffer = buffers[rank] = new CClientBuffer(interComm, rank, mapBufferSize_[rank], maxBufferedEvents); 254 // Notify the server 255 CBufferOut* bufOut = buffer->getBuffer(sizeof(StdSize)); 256 bufOut->put(mapBufferSize_[rank]); // Stupid C++ 257 buffer->checkBuffer(); 248 if (!mapBufferSize_.count(rank)) 249 { 250 error(0) << "WARNING: Unexpected request for buffer to communicate with server " << rank << std::endl; 251 mapBufferSize_[rank] = CXios::minBufferSize; 252 maxEventSizes[rank] = CXios::minBufferSize; 253 } 254 CClientBuffer* buffer = buffers[rank] = new CClientBuffer(interComm, rank, mapBufferSize_[rank], maxEventSizes[rank], maxBufferedEvents); 255 // Notify the server 256 CBufferOut* bufOut = buffer->getBuffer(sizeof(StdSize)); 257 bufOut->put(mapBufferSize_[rank]); // Stupid C++ 258 buffer->checkBuffer(); 258 259 } 259 260 … … 304 305 { 305 306 mapBufferSize_ = mapSize; 307 maxEventSizes = maxEventSize; 306 308 307 309 // Compute the maximum number of events that can be safely buffered. … … 315 317 316 318 if (minBufferSizeEventSizeRatio < 1.0) 319 { 317 320 ERROR("void CContextClient::setBufferSize(const std::map<int,StdSize>& mapSize, const std::map<int,StdSize>& maxEventSize)", 318 321 << "The buffer sizes and the maximum events sizes are incoherent."); 322 } 323 else if (minBufferSizeEventSizeRatio == std::numeric_limits<double>::max()) 324 minBufferSizeEventSizeRatio = 1.0; // In this case, maxBufferedEvents will never be used but we want to avoid any floating point exception 319 325 320 326 maxBufferedEvents = size_t(2 * minBufferSizeEventSizeRatio) // there is room for two local buffers on the server -
XIOS/dev/dev_olga/src/context_client.hpp
r1194 r1201 76 76 //! Mapping of server and buffer size for each connection to server 77 77 std::map<int,StdSize> mapBufferSize_; 78 //! Maximum event sizes estimated for each connection to server 79 std::map<int,StdSize> maxEventSizes; 78 80 //! Maximum number of events that can be buffered 79 81 StdSize maxBufferedEvents; -
XIOS/dev/dev_olga/src/distribution_server.hpp
r1158 r1201 23 23 public: 24 24 /** Default constructor */ 25 CDistributionServer(int rank, int dims, const CArray<size_t,1>& globalIndex = CArray<size_t,1>()); 25 26 CDistributionServer(int rank, const std::vector<int>& nZoomBeginServer, 27 const std::vector<int>& nZoomSizeServer, const std::vector<int>& nGlobal); 28 CDistributionServer(int rank, const std::vector<int>& nZoomBeginServer, 29 const std::vector<int>& nZoomSizeServer, 30 const std::vector<int>& nZoomBeginGlobal, 31 const std::vector<int>& nGlobal); 32 33 CDistributionServer(int rank, 34 const std::vector<CArray<int,1> >& globalIndexElements, 35 const CArray<int,1>& elementOrder, 36 const std::vector<int>& nZoomBeginServer, 26 37 const std::vector<int>& nZoomSizeServer, 27 38 const std::vector<int>& nZoomBeginGlobal, … … 51 62 std::vector<int> nZoomSize_; 52 63 std::vector<int> nZoomBegin_; 64 53 65 }; 54 66 -
XIOS/dev/dev_olga/src/filter/file_writer_filter.cpp
r1158 r1201 17 17 void CFileWriterFilter::onInputReady(std::vector<CDataPacketPtr> data) 18 18 { 19 bool ignoreMissingValue = (!field->detect_missing_value.isEmpty() && 20 !field->default_value.isEmpty() && 21 field->detect_missing_value == true); 22 if (ignoreMissingValue) 19 CDataPacketPtr packet = data[0]; 20 21 const bool detectMissingValue = (!field->detect_missing_value.isEmpty() 22 && !field->default_value.isEmpty() 23 && field->detect_missing_value == true); 24 if (detectMissingValue) 23 25 { 24 double missingValue = field->default_value;25 size_t nbData = data[0]->data.numElements();26 const double missingValue = field->default_value; 27 const size_t nbData = packet->data.numElements(); 26 28 for (size_t idx = 0; idx < nbData; ++idx) 27 29 { 28 if (NumTraits<double>::isnan( data[0]->data(idx)))29 data[0]->data(idx) = missingValue;30 if (NumTraits<double>::isnan(packet->data(idx))) 31 packet->data(idx) = missingValue; 30 32 } 31 } 33 } 32 34 33 field->sendUpdateData( data[0]->data);35 field->sendUpdateData(packet->data); 34 36 } 35 37 -
XIOS/dev/dev_olga/src/filter/source_filter.cpp
r1158 r1201 37 37 if (hasMissingValue) 38 38 { 39 double nanValue = std::numeric_limits<double>::quiet_NaN();40 size_t nbData = packet->data.numElements();39 const double nanValue = std::numeric_limits<double>::quiet_NaN(); 40 const size_t nbData = packet->data.numElements(); 41 41 for (size_t idx = 0; idx < nbData; ++idx) 42 42 { … … 82 82 } 83 83 84 // Convert missing values to NaN 85 if (hasMissingValue) 86 { 87 const double nanValue = std::numeric_limits<double>::quiet_NaN(); 88 const size_t nbData = packet->data.numElements(); 89 for (size_t idx = 0; idx < nbData; ++idx) 90 { 91 if (defaultValue == packet->data(idx)) 92 packet->data(idx) = nanValue; 93 } 94 } 95 84 96 onOutputReady(packet); 85 97 } -
XIOS/dev/dev_olga/src/filter/source_filter.hpp
r1158 r1201 62 62 CGrid* grid; //!< The grid attached to the data the filter can accept 63 63 const CDuration offset; //!< The offset applied to the timestamp of all packets 64 bool hasMissingValue;65 double defaultValue;64 const bool hasMissingValue; 65 const double defaultValue; 66 66 }; // class CSourceFilter 67 67 } // namespace xios -
XIOS/dev/dev_olga/src/filter/store_filter.cpp
r1158 r1201 6 6 namespace xios 7 7 { 8 CStoreFilter::CStoreFilter(CGarbageCollector& gc, CContext* context, CGrid* grid) 8 CStoreFilter::CStoreFilter(CGarbageCollector& gc, CContext* context, CGrid* grid, 9 bool detectMissingValues /*= false*/, double missingValue /*= 0.0*/) 9 10 : CInputPin(gc, 1) 10 11 , gc(gc) 11 12 , context(context) 12 13 , grid(grid) 14 , detectMissingValues(detectMissingValues) 15 , missingValue(missingValue) 13 16 { 14 17 if (!context) … … 75 78 void CStoreFilter::onInputReady(std::vector<CDataPacketPtr> data) 76 79 { 77 packets.insert(std::make_pair(data[0]->timestamp, data[0])); 80 CDataPacketPtr packet = data[0]; 81 82 packets.insert(std::make_pair(packet->timestamp, packet)); 78 83 // The packet is always destroyed by the garbage collector 79 84 // so we register but never unregister 80 gc.registerObject(this, data[0]->timestamp); 85 gc.registerObject(this, packet->timestamp); 86 87 if (detectMissingValues) 88 { 89 const size_t nbData = packet->data.numElements(); 90 for (size_t idx = 0; idx < nbData; ++idx) 91 { 92 if (NumTraits<double>::isnan(packet->data(idx))) 93 packet->data(idx) = missingValue; 94 } 95 } 81 96 } 82 97 -
XIOS/dev/dev_olga/src/filter/store_filter.hpp
r1158 r1201 22 22 * \param context the context to which the data belongs 23 23 * \param grid the grid to which the data is attached 24 * \param detectMissingValues whether missing values should be detected 25 * \param missingValue the value to use to replace missing values 24 26 */ 25 CStoreFilter(CGarbageCollector& gc, CContext* context, CGrid* grid); 27 CStoreFilter(CGarbageCollector& gc, CContext* context, CGrid* grid, 28 bool detectMissingValues = false, double missingValue = 0.0); 26 29 27 30 /*! … … 75 78 CContext* context; //!< The context to which the data belongs 76 79 CGrid* grid; //!< The grid attached to the data the filter can accept 80 const bool detectMissingValues; //!< Whether missing values should be detected 81 const double missingValue; //!< The value to use to replace missing values 77 82 std::map<Time, CDataPacketPtr> packets; //<! The stored packets 78 83 }; // class CStoreFilter -
XIOS/dev/dev_olga/src/filter/temporal_filter.hpp
r1158 r1201 48 48 49 49 private: 50 // Warning the declaration order matters here, double-check the constructor before changing it 51 CArray<double, 1> tmpData; //!< The array of data used for temporary storage 50 52 const boost::scoped_ptr<func::CFunctor> functor; //!< The functor corresponding to the temporal operation 51 CArray<double, 1> tmpData; //!< The array of data used for temporary storage 53 const bool isOnceOperation; //!< True if the operation should be computed just once 54 const bool isInstantOperation; //!< True if the operation is instant 52 55 const CDuration samplingFreq; //!< The sampling frequency, i.e. the frequency at which the input data will be used 53 56 const CDuration samplingOffset; //!< The sampling offset, i.e. the offset after which the input data will be used … … 56 59 CDate nextOperationDate; //!< The date of the next operation 57 60 bool isFirstOperation; //!< True before the first operation was been computed 58 const bool isOnceOperation; //!< True if the operation should be computed just once59 const bool isInstantOperation; //!< True if the operation is instant60 61 }; // class CTemporalFilter 61 62 } // namespace xios -
XIOS/dev/dev_olga/src/interface/c_attr/icfield_attr.cpp
r1021 r1201 119 119 120 120 121 void cxios_set_field_check_if_active(field_Ptr field_hdl, bool check_if_active) 122 { 123 CTimer::get("XIOS").resume(); 124 field_hdl->check_if_active.setValue(check_if_active); 125 CTimer::get("XIOS").suspend(); 126 } 127 128 void cxios_get_field_check_if_active(field_Ptr field_hdl, bool* check_if_active) 129 { 130 CTimer::get("XIOS").resume(); 131 *check_if_active = field_hdl->check_if_active.getInheritedValue(); 132 CTimer::get("XIOS").suspend(); 133 } 134 135 bool cxios_is_defined_field_check_if_active(field_Ptr field_hdl) 136 { 137 CTimer::get("XIOS").resume(); 138 bool isDefined = field_hdl->check_if_active.hasInheritedValue(); 139 CTimer::get("XIOS").suspend(); 140 return isDefined; 141 } 142 143 121 144 void cxios_set_field_compression_level(field_Ptr field_hdl, int compression_level) 122 145 { -
XIOS/dev/dev_olga/src/interface/c_attr/icfieldgroup_attr.cpp
r1021 r1201 119 119 120 120 121 void cxios_set_fieldgroup_check_if_active(fieldgroup_Ptr fieldgroup_hdl, bool check_if_active) 122 { 123 CTimer::get("XIOS").resume(); 124 fieldgroup_hdl->check_if_active.setValue(check_if_active); 125 CTimer::get("XIOS").suspend(); 126 } 127 128 void cxios_get_fieldgroup_check_if_active(fieldgroup_Ptr fieldgroup_hdl, bool* check_if_active) 129 { 130 CTimer::get("XIOS").resume(); 131 *check_if_active = fieldgroup_hdl->check_if_active.getInheritedValue(); 132 CTimer::get("XIOS").suspend(); 133 } 134 135 bool cxios_is_defined_fieldgroup_check_if_active(fieldgroup_Ptr fieldgroup_hdl) 136 { 137 CTimer::get("XIOS").resume(); 138 bool isDefined = fieldgroup_hdl->check_if_active.hasInheritedValue(); 139 CTimer::get("XIOS").suspend(); 140 return isDefined; 141 } 142 143 121 144 void cxios_set_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl, int compression_level) 122 145 { -
XIOS/dev/dev_olga/src/interface/c_attr/icfile_attr.cpp
r1158 r1201 90 90 91 91 92 void cxios_set_file_convention_str(file_Ptr file_hdl, const char * convention_str, int convention_str_size) 93 { 94 std::string convention_str_str; 95 if (!cstr2string(convention_str, convention_str_size, convention_str_str)) return; 96 CTimer::get("XIOS").resume(); 97 file_hdl->convention_str.setValue(convention_str_str); 98 CTimer::get("XIOS").suspend(); 99 } 100 101 void cxios_get_file_convention_str(file_Ptr file_hdl, char * convention_str, int convention_str_size) 102 { 103 CTimer::get("XIOS").resume(); 104 if (!string_copy(file_hdl->convention_str.getInheritedValue(), convention_str, convention_str_size)) 105 ERROR("void cxios_get_file_convention_str(file_Ptr file_hdl, char * convention_str, int convention_str_size)", << "Input string is too short"); 106 CTimer::get("XIOS").suspend(); 107 } 108 109 bool cxios_is_defined_file_convention_str(file_Ptr file_hdl) 110 { 111 CTimer::get("XIOS").resume(); 112 bool isDefined = file_hdl->convention_str.hasInheritedValue(); 113 CTimer::get("XIOS").suspend(); 114 return isDefined; 115 } 116 117 92 118 void cxios_set_file_cyclic(file_Ptr file_hdl, bool cyclic) 93 119 { -
XIOS/dev/dev_olga/src/interface/c_attr/icfilegroup_attr.cpp
r1158 r1201 90 90 91 91 92 void cxios_set_filegroup_convention_str(filegroup_Ptr filegroup_hdl, const char * convention_str, int convention_str_size) 93 { 94 std::string convention_str_str; 95 if (!cstr2string(convention_str, convention_str_size, convention_str_str)) return; 96 CTimer::get("XIOS").resume(); 97 filegroup_hdl->convention_str.setValue(convention_str_str); 98 CTimer::get("XIOS").suspend(); 99 } 100 101 void cxios_get_filegroup_convention_str(filegroup_Ptr filegroup_hdl, char * convention_str, int convention_str_size) 102 { 103 CTimer::get("XIOS").resume(); 104 if (!string_copy(filegroup_hdl->convention_str.getInheritedValue(), convention_str, convention_str_size)) 105 ERROR("void cxios_get_filegroup_convention_str(filegroup_Ptr filegroup_hdl, char * convention_str, int convention_str_size)", << "Input string is too short"); 106 CTimer::get("XIOS").suspend(); 107 } 108 109 bool cxios_is_defined_filegroup_convention_str(filegroup_Ptr filegroup_hdl) 110 { 111 CTimer::get("XIOS").resume(); 112 bool isDefined = filegroup_hdl->convention_str.hasInheritedValue(); 113 CTimer::get("XIOS").suspend(); 114 return isDefined; 115 } 116 117 92 118 void cxios_set_filegroup_cyclic(filegroup_Ptr filegroup_hdl, bool cyclic) 93 119 { -
XIOS/dev/dev_olga/src/interface/c_attr/icinterpolate_domain_attr.cpp
r1158 r1201 62 62 CTimer::get("XIOS").resume(); 63 63 bool isDefined = interpolate_domain_hdl->order.hasInheritedValue(); 64 CTimer::get("XIOS").suspend(); 65 return isDefined; 66 } 67 68 69 void cxios_set_interpolate_domain_quantity(interpolate_domain_Ptr interpolate_domain_hdl, bool quantity) 70 { 71 CTimer::get("XIOS").resume(); 72 interpolate_domain_hdl->quantity.setValue(quantity); 73 CTimer::get("XIOS").suspend(); 74 } 75 76 void cxios_get_interpolate_domain_quantity(interpolate_domain_Ptr interpolate_domain_hdl, bool* quantity) 77 { 78 CTimer::get("XIOS").resume(); 79 *quantity = interpolate_domain_hdl->quantity.getInheritedValue(); 80 CTimer::get("XIOS").suspend(); 81 } 82 83 bool cxios_is_defined_interpolate_domain_quantity(interpolate_domain_Ptr interpolate_domain_hdl) 84 { 85 CTimer::get("XIOS").resume(); 86 bool isDefined = interpolate_domain_hdl->quantity.hasInheritedValue(); 64 87 CTimer::get("XIOS").suspend(); 65 88 return isDefined; -
XIOS/dev/dev_olga/src/interface/c_attr/iczoom_axis_attr.cpp
r787 r1201 41 41 42 42 43 void cxios_set_zoom_axis_index(zoom_axis_Ptr zoom_axis_hdl, int* index, int* extent) 44 { 45 CTimer::get("XIOS").resume(); 46 CArray<int,1> tmp(index, shape(extent[0]), neverDeleteData); 47 zoom_axis_hdl->index.reference(tmp.copy()); 48 CTimer::get("XIOS").suspend(); 49 } 50 51 void cxios_get_zoom_axis_index(zoom_axis_Ptr zoom_axis_hdl, int* index, int* extent) 52 { 53 CTimer::get("XIOS").resume(); 54 CArray<int,1> tmp(index, shape(extent[0]), neverDeleteData); 55 tmp=zoom_axis_hdl->index.getInheritedValue(); 56 CTimer::get("XIOS").suspend(); 57 } 58 59 bool cxios_is_defined_zoom_axis_index(zoom_axis_Ptr zoom_axis_hdl) 60 { 61 CTimer::get("XIOS").resume(); 62 bool isDefined = zoom_axis_hdl->index.hasInheritedValue(); 63 CTimer::get("XIOS").suspend(); 64 return isDefined; 65 } 66 67 43 68 void cxios_set_zoom_axis_n(zoom_axis_Ptr zoom_axis_hdl, int n) 44 69 { -
XIOS/dev/dev_olga/src/interface/fortran_attr/field_interface_attr.F90
r1021 r1201 92 92 93 93 94 SUBROUTINE cxios_set_field_check_if_active(field_hdl, check_if_active) BIND(C) 95 USE ISO_C_BINDING 96 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 97 LOGICAL (KIND=C_BOOL) , VALUE :: check_if_active 98 END SUBROUTINE cxios_set_field_check_if_active 99 100 SUBROUTINE cxios_get_field_check_if_active(field_hdl, check_if_active) BIND(C) 101 USE ISO_C_BINDING 102 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 103 LOGICAL (KIND=C_BOOL) :: check_if_active 104 END SUBROUTINE cxios_get_field_check_if_active 105 106 FUNCTION cxios_is_defined_field_check_if_active(field_hdl) BIND(C) 107 USE ISO_C_BINDING 108 LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_check_if_active 109 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 110 END FUNCTION cxios_is_defined_field_check_if_active 111 112 94 113 SUBROUTINE cxios_set_field_compression_level(field_hdl, compression_level) BIND(C) 95 114 USE ISO_C_BINDING -
XIOS/dev/dev_olga/src/interface/fortran_attr/fieldgroup_interface_attr.F90
r1021 r1201 92 92 93 93 94 SUBROUTINE cxios_set_fieldgroup_check_if_active(fieldgroup_hdl, check_if_active) BIND(C) 95 USE ISO_C_BINDING 96 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 97 LOGICAL (KIND=C_BOOL) , VALUE :: check_if_active 98 END SUBROUTINE cxios_set_fieldgroup_check_if_active 99 100 SUBROUTINE cxios_get_fieldgroup_check_if_active(fieldgroup_hdl, check_if_active) BIND(C) 101 USE ISO_C_BINDING 102 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 103 LOGICAL (KIND=C_BOOL) :: check_if_active 104 END SUBROUTINE cxios_get_fieldgroup_check_if_active 105 106 FUNCTION cxios_is_defined_fieldgroup_check_if_active(fieldgroup_hdl) BIND(C) 107 USE ISO_C_BINDING 108 LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_check_if_active 109 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 110 END FUNCTION cxios_is_defined_fieldgroup_check_if_active 111 112 94 113 SUBROUTINE cxios_set_fieldgroup_compression_level(fieldgroup_hdl, compression_level) BIND(C) 95 114 USE ISO_C_BINDING -
XIOS/dev/dev_olga/src/interface/fortran_attr/file_interface_attr.F90
r1158 r1201 69 69 70 70 71 SUBROUTINE cxios_set_file_convention_str(file_hdl, convention_str, convention_str_size) BIND(C) 72 USE ISO_C_BINDING 73 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 74 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: convention_str 75 INTEGER (kind = C_INT) , VALUE :: convention_str_size 76 END SUBROUTINE cxios_set_file_convention_str 77 78 SUBROUTINE cxios_get_file_convention_str(file_hdl, convention_str, convention_str_size) BIND(C) 79 USE ISO_C_BINDING 80 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 81 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: convention_str 82 INTEGER (kind = C_INT) , VALUE :: convention_str_size 83 END SUBROUTINE cxios_get_file_convention_str 84 85 FUNCTION cxios_is_defined_file_convention_str(file_hdl) BIND(C) 86 USE ISO_C_BINDING 87 LOGICAL(kind=C_BOOL) :: cxios_is_defined_file_convention_str 88 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl 89 END FUNCTION cxios_is_defined_file_convention_str 90 91 71 92 SUBROUTINE cxios_set_file_cyclic(file_hdl, cyclic) BIND(C) 72 93 USE ISO_C_BINDING -
XIOS/dev/dev_olga/src/interface/fortran_attr/filegroup_interface_attr.F90
r1158 r1201 69 69 70 70 71 SUBROUTINE cxios_set_filegroup_convention_str(filegroup_hdl, convention_str, convention_str_size) BIND(C) 72 USE ISO_C_BINDING 73 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 74 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: convention_str 75 INTEGER (kind = C_INT) , VALUE :: convention_str_size 76 END SUBROUTINE cxios_set_filegroup_convention_str 77 78 SUBROUTINE cxios_get_filegroup_convention_str(filegroup_hdl, convention_str, convention_str_size) BIND(C) 79 USE ISO_C_BINDING 80 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 81 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: convention_str 82 INTEGER (kind = C_INT) , VALUE :: convention_str_size 83 END SUBROUTINE cxios_get_filegroup_convention_str 84 85 FUNCTION cxios_is_defined_filegroup_convention_str(filegroup_hdl) BIND(C) 86 USE ISO_C_BINDING 87 LOGICAL(kind=C_BOOL) :: cxios_is_defined_filegroup_convention_str 88 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl 89 END FUNCTION cxios_is_defined_filegroup_convention_str 90 91 71 92 SUBROUTINE cxios_set_filegroup_cyclic(filegroup_hdl, cyclic) BIND(C) 72 93 USE ISO_C_BINDING -
XIOS/dev/dev_olga/src/interface/fortran_attr/ifield_attr.F90
r1021 r1201 12 12 13 13 SUBROUTINE xios(set_field_attr) & 14 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 15 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 16 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 17 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 14 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 15 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 16 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 17 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 18 ) 18 19 19 20 IMPLICIT NONE … … 24 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods 25 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode 27 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 28 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 26 29 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 27 30 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 59 62 (field_id,field_hdl) 60 63 CALL xios(set_field_attr_hdl_) & 61 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 62 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 63 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 64 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 64 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 65 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 66 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 67 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 68 ) 65 69 66 70 END SUBROUTINE xios(set_field_attr) 67 71 68 72 SUBROUTINE xios(set_field_attr_hdl) & 69 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 70 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 71 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 72 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 73 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 74 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 75 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 76 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 77 ) 73 78 74 79 IMPLICIT NONE … … 78 83 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods 79 84 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode 85 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 86 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 80 87 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 81 88 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 111 118 112 119 CALL xios(set_field_attr_hdl_) & 113 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 114 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 115 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 116 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 120 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 121 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 122 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 123 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 124 ) 117 125 118 126 END SUBROUTINE xios(set_field_attr_hdl) 119 127 120 128 SUBROUTINE xios(set_field_attr_hdl_) & 121 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, c ompression_level_, default_value_ &122 , de tect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_ &123 , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_ &124 , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ &125 )129 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, compression_level_ & 130 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ & 131 , freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_ & 132 , read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_ & 133 , valid_max_, valid_min_ ) 126 134 127 135 IMPLICIT NONE … … 131 139 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_ 132 140 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode_ 141 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active_ 142 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 133 143 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 134 144 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ … … 183 193 ENDIF 184 194 195 IF (PRESENT(check_if_active_)) THEN 196 check_if_active__tmp = check_if_active_ 197 CALL cxios_set_field_check_if_active & 198 (field_hdl%daddr, check_if_active__tmp) 199 ENDIF 200 185 201 IF (PRESENT(compression_level_)) THEN 186 202 CALL cxios_set_field_compression_level & … … 321 337 322 338 SUBROUTINE xios(get_field_attr) & 323 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 324 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 325 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 326 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 339 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 340 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 341 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 342 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 343 ) 327 344 328 345 IMPLICIT NONE … … 333 350 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods 334 351 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode 352 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 353 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 335 354 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 336 355 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 368 387 (field_id,field_hdl) 369 388 CALL xios(get_field_attr_hdl_) & 370 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 371 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 372 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 373 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 389 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 390 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 391 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 392 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 393 ) 374 394 375 395 END SUBROUTINE xios(get_field_attr) 376 396 377 397 SUBROUTINE xios(get_field_attr_hdl) & 378 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 379 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 380 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 381 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 398 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 399 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 400 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 401 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 402 ) 382 403 383 404 IMPLICIT NONE … … 387 408 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods 388 409 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode 410 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 411 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 389 412 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 390 413 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 420 443 421 444 CALL xios(get_field_attr_hdl_) & 422 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 423 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 424 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 425 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 445 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 446 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 447 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 448 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 449 ) 426 450 427 451 END SUBROUTINE xios(get_field_attr_hdl) 428 452 429 453 SUBROUTINE xios(get_field_attr_hdl_) & 430 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, c ompression_level_, default_value_ &431 , de tect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_ &432 , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_ &433 , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ &434 )454 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, compression_level_ & 455 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ & 456 , freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_ & 457 , read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_ & 458 , valid_max_, valid_min_ ) 435 459 436 460 IMPLICIT NONE … … 440 464 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_ 441 465 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode_ 466 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active_ 467 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 442 468 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 443 469 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ … … 492 518 ENDIF 493 519 520 IF (PRESENT(check_if_active_)) THEN 521 CALL cxios_get_field_check_if_active & 522 (field_hdl%daddr, check_if_active__tmp) 523 check_if_active_ = check_if_active__tmp 524 ENDIF 525 494 526 IF (PRESENT(compression_level_)) THEN 495 527 CALL cxios_get_field_compression_level & … … 630 662 631 663 SUBROUTINE xios(is_defined_field_attr) & 632 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 633 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 634 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 635 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 664 ( field_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 665 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 666 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 667 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 668 ) 636 669 637 670 IMPLICIT NONE … … 646 679 LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode 647 680 LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp 681 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 682 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 648 683 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 649 684 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 702 737 (field_id,field_hdl) 703 738 CALL xios(is_defined_field_attr_hdl_) & 704 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 705 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 706 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 707 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 739 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 740 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 741 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 742 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 743 ) 708 744 709 745 END SUBROUTINE xios(is_defined_field_attr) 710 746 711 747 SUBROUTINE xios(is_defined_field_attr_hdl) & 712 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 713 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 714 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 715 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 748 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 749 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 750 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 751 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 752 ) 716 753 717 754 IMPLICIT NONE … … 725 762 LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode 726 763 LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp 764 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 765 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 727 766 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 728 767 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 779 818 780 819 CALL xios(is_defined_field_attr_hdl_) & 781 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, compression_level, default_value & 782 , detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path & 783 , grid_ref, indexed_output, level, long_name, name, operation, prec, read_access, scalar_ref & 784 , scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min ) 820 ( field_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 821 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 822 , grid_path, grid_ref, indexed_output, level, long_name, name, operation, prec, read_access & 823 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 824 ) 785 825 786 826 END SUBROUTINE xios(is_defined_field_attr_hdl) 787 827 788 828 SUBROUTINE xios(is_defined_field_attr_hdl_) & 789 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, c ompression_level_, default_value_ &790 , de tect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_, freq_op_, grid_path_ &791 , grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_, read_access_, scalar_ref_ &792 , scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_, valid_max_, valid_min_ &793 )829 ( field_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_, compression_level_ & 830 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ & 831 , freq_op_, grid_path_, grid_ref_, indexed_output_, level_, long_name_, name_, operation_, prec_ & 832 , read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_, unit_ & 833 , valid_max_, valid_min_ ) 794 834 795 835 IMPLICIT NONE … … 803 843 LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode_ 804 844 LOGICAL(KIND=C_BOOL) :: cell_methods_mode__tmp 845 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active_ 846 LOGICAL(KIND=C_BOOL) :: check_if_active__tmp 805 847 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 806 848 LOGICAL(KIND=C_BOOL) :: compression_level__tmp … … 880 922 ENDIF 881 923 924 IF (PRESENT(check_if_active_)) THEN 925 check_if_active__tmp = cxios_is_defined_field_check_if_active & 926 (field_hdl%daddr) 927 check_if_active_ = check_if_active__tmp 928 ENDIF 929 882 930 IF (PRESENT(compression_level_)) THEN 883 931 compression_level__tmp = cxios_is_defined_field_compression_level & -
XIOS/dev/dev_olga/src/interface/fortran_attr/ifieldgroup_attr.F90
r1021 r1201 12 12 13 13 SUBROUTINE xios(set_fieldgroup_attr) & 14 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&15 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&16 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &14 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 15 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 16 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 17 17 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 18 18 ) … … 25 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods 26 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode 27 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 28 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 27 29 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 28 30 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 61 63 (fieldgroup_id,fieldgroup_hdl) 62 64 CALL xios(set_fieldgroup_attr_hdl_) & 63 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&64 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&65 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &65 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 66 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 67 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 66 68 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 67 69 ) … … 70 72 71 73 SUBROUTINE xios(set_fieldgroup_attr_hdl) & 72 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&73 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&74 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &74 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 75 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 76 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 75 77 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 76 78 ) … … 82 84 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods 83 85 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode 86 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active 87 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 84 88 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 85 89 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 116 120 117 121 CALL xios(set_fieldgroup_attr_hdl_) & 118 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&119 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&120 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &122 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 123 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 124 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 121 125 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 122 126 ) … … 125 129 126 130 SUBROUTINE xios(set_fieldgroup_attr_hdl_) & 127 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, c ompression_level_ &128 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ &129 , freq_o p_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_ &130 , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_ &131 , unit_, valid_max_, valid_min_ )131 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_ & 132 , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_ & 133 , freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_ & 134 , name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_ & 135 , ts_split_freq_, unit_, valid_max_, valid_min_ ) 132 136 133 137 IMPLICIT NONE … … 137 141 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_ 138 142 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode_ 143 LOGICAL , OPTIONAL, INTENT(IN) :: check_if_active_ 144 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 139 145 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 140 146 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ … … 190 196 ENDIF 191 197 198 IF (PRESENT(check_if_active_)) THEN 199 check_if_active__tmp = check_if_active_ 200 CALL cxios_set_fieldgroup_check_if_active & 201 (fieldgroup_hdl%daddr, check_if_active__tmp) 202 ENDIF 203 192 204 IF (PRESENT(compression_level_)) THEN 193 205 CALL cxios_set_fieldgroup_compression_level & … … 333 345 334 346 SUBROUTINE xios(get_fieldgroup_attr) & 335 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&336 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&337 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &347 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 348 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 349 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 338 350 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 339 351 ) … … 346 358 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods 347 359 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode 360 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 361 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 348 362 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 349 363 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 382 396 (fieldgroup_id,fieldgroup_hdl) 383 397 CALL xios(get_fieldgroup_attr_hdl_) & 384 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&385 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&386 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &398 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 399 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 400 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 387 401 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 388 402 ) … … 391 405 392 406 SUBROUTINE xios(get_fieldgroup_attr_hdl) & 393 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&394 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&395 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &407 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 408 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 409 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 396 410 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 397 411 ) … … 403 417 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods 404 418 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode 419 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active 420 LOGICAL (KIND=C_BOOL) :: check_if_active_tmp 405 421 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 406 422 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 437 453 438 454 CALL xios(get_fieldgroup_attr_hdl_) & 439 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&440 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&441 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &455 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 456 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 457 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 442 458 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 443 459 ) … … 446 462 447 463 SUBROUTINE xios(get_fieldgroup_attr_hdl_) & 448 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, c ompression_level_ &449 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ &450 , freq_o p_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_ &451 , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_ &452 , unit_, valid_max_, valid_min_ )464 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_ & 465 , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_ & 466 , freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_ & 467 , name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_ & 468 , ts_split_freq_, unit_, valid_max_, valid_min_ ) 453 469 454 470 IMPLICIT NONE … … 458 474 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_ 459 475 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode_ 476 LOGICAL , OPTIONAL, INTENT(OUT) :: check_if_active_ 477 LOGICAL (KIND=C_BOOL) :: check_if_active__tmp 460 478 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 461 479 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ … … 511 529 ENDIF 512 530 531 IF (PRESENT(check_if_active_)) THEN 532 CALL cxios_get_fieldgroup_check_if_active & 533 (fieldgroup_hdl%daddr, check_if_active__tmp) 534 check_if_active_ = check_if_active__tmp 535 ENDIF 536 513 537 IF (PRESENT(compression_level_)) THEN 514 538 CALL cxios_get_fieldgroup_compression_level & … … 654 678 655 679 SUBROUTINE xios(is_defined_fieldgroup_attr) & 656 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&657 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&658 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &680 ( fieldgroup_id, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 681 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 682 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 659 683 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 660 684 ) … … 671 695 LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode 672 696 LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp 697 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 698 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 673 699 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 674 700 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 729 755 (fieldgroup_id,fieldgroup_hdl) 730 756 CALL xios(is_defined_fieldgroup_attr_hdl_) & 731 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&732 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&733 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &757 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 758 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 759 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 734 760 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 735 761 ) … … 738 764 739 765 SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) & 740 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&741 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&742 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &766 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 767 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 768 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 743 769 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 744 770 ) … … 754 780 LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode 755 781 LOGICAL(KIND=C_BOOL) :: cell_methods_mode_tmp 782 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active 783 LOGICAL(KIND=C_BOOL) :: check_if_active_tmp 756 784 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level 757 785 LOGICAL(KIND=C_BOOL) :: compression_level_tmp … … 810 838 811 839 CALL xios(is_defined_fieldgroup_attr_hdl_) & 812 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, c ompression_level, default_value&813 , de tect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op, grid_path&814 , grid_ ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access &840 ( fieldgroup_hdl, add_offset, axis_ref, cell_methods, cell_methods_mode, check_if_active, compression_level & 841 , default_value, detect_missing_value, domain_ref, enabled, expr, field_ref, freq_offset, freq_op & 842 , grid_path, grid_ref, group_ref, indexed_output, level, long_name, name, operation, prec, read_access & 815 843 , scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq, unit, valid_max, valid_min & 816 844 ) … … 819 847 820 848 SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_) & 821 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, c ompression_level_ &822 , default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_, freq_offset_ &823 , freq_o p_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_, name_, operation_ &824 , prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_, ts_split_freq_ &825 , unit_, valid_max_, valid_min_ )849 ( fieldgroup_hdl, add_offset_, axis_ref_, cell_methods_, cell_methods_mode_, check_if_active_ & 850 , compression_level_, default_value_, detect_missing_value_, domain_ref_, enabled_, expr_, field_ref_ & 851 , freq_offset_, freq_op_, grid_path_, grid_ref_, group_ref_, indexed_output_, level_, long_name_ & 852 , name_, operation_, prec_, read_access_, scalar_ref_, scale_factor_, standard_name_, ts_enabled_ & 853 , ts_split_freq_, unit_, valid_max_, valid_min_ ) 826 854 827 855 IMPLICIT NONE … … 835 863 LOGICAL, OPTIONAL, INTENT(OUT) :: cell_methods_mode_ 836 864 LOGICAL(KIND=C_BOOL) :: cell_methods_mode__tmp 865 LOGICAL, OPTIONAL, INTENT(OUT) :: check_if_active_ 866 LOGICAL(KIND=C_BOOL) :: check_if_active__tmp 837 867 LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_ 838 868 LOGICAL(KIND=C_BOOL) :: compression_level__tmp … … 914 944 ENDIF 915 945 946 IF (PRESENT(check_if_active_)) THEN 947 check_if_active__tmp = cxios_is_defined_fieldgroup_check_if_active & 948 (fieldgroup_hdl%daddr) 949 check_if_active_ = check_if_active__tmp 950 ENDIF 951 916 952 IF (PRESENT(compression_level_)) THEN 917 953 compression_level__tmp = cxios_is_defined_fieldgroup_compression_level & -
XIOS/dev/dev_olga/src/interface/fortran_attr/ifile_attr.F90
r1158 r1201 12 12 13 13 SUBROUTINE xios(set_file_attr) & 14 ( file_id, append, compression_level, convention, c yclic, description, enabled, format, min_digits&15 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&16 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&17 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 18 18 19 19 IMPLICIT NONE … … 24 24 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 25 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str 26 27 LOGICAL , OPTIONAL, INTENT(IN) :: cyclic 27 28 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 55 56 (file_id,file_hdl) 56 57 CALL xios(set_file_attr_hdl_) & 57 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&58 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&59 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&60 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 61 62 62 63 END SUBROUTINE xios(set_file_attr) 63 64 64 65 SUBROUTINE xios(set_file_attr_hdl) & 65 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&66 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&67 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&68 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 69 70 70 71 IMPLICIT NONE … … 74 75 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 75 76 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 77 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str 76 78 LOGICAL , OPTIONAL, INTENT(IN) :: cyclic 77 79 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 103 105 104 106 CALL xios(set_file_attr_hdl_) & 105 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&106 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&107 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&108 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 109 111 110 112 END SUBROUTINE xios(set_file_attr_hdl) 111 113 112 114 SUBROUTINE xios(set_file_attr_hdl_) & 113 ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_ & 114 , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_ & 115 , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, time_stamp_format_ & 116 , time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_, uuid_name_ ) 115 ( file_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_ & 116 , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ & 117 , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_ & 118 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 119 , uuid_name_ ) 117 120 118 121 IMPLICIT NONE … … 122 125 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 123 126 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 127 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str_ 124 128 LOGICAL , OPTIONAL, INTENT(IN) :: cyclic_ 125 129 LOGICAL (KIND=C_BOOL) :: cyclic__tmp … … 166 170 ENDIF 167 171 172 IF (PRESENT(convention_str_)) THEN 173 CALL cxios_set_file_convention_str & 174 (file_hdl%daddr, convention_str_, len(convention_str_)) 175 ENDIF 176 168 177 IF (PRESENT(cyclic_)) THEN 169 178 cyclic__tmp = cyclic_ … … 296 305 297 306 SUBROUTINE xios(get_file_attr) & 298 ( file_id, append, compression_level, convention, c yclic, description, enabled, format, min_digits&299 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&300 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&301 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 302 311 303 312 IMPLICIT NONE … … 308 317 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 309 318 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 319 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_str 310 320 LOGICAL , OPTIONAL, INTENT(OUT) :: cyclic 311 321 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 339 349 (file_id,file_hdl) 340 350 CALL xios(get_file_attr_hdl_) & 341 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&342 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&343 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&344 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 345 355 346 356 END SUBROUTINE xios(get_file_attr) 347 357 348 358 SUBROUTINE xios(get_file_attr_hdl) & 349 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&350 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&351 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&352 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 353 363 354 364 IMPLICIT NONE … … 358 368 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 359 369 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 370 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_str 360 371 LOGICAL , OPTIONAL, INTENT(OUT) :: cyclic 361 372 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 387 398 388 399 CALL xios(get_file_attr_hdl_) & 389 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&390 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&391 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&392 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 393 404 394 405 END SUBROUTINE xios(get_file_attr_hdl) 395 406 396 407 SUBROUTINE xios(get_file_attr_hdl_) & 397 ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_ & 398 , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_ & 399 , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, time_stamp_format_ & 400 , time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_, uuid_name_ ) 408 ( file_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_ & 409 , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ & 410 , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_ & 411 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 412 , uuid_name_ ) 401 413 402 414 IMPLICIT NONE … … 406 418 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 407 419 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 420 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_str_ 408 421 LOGICAL , OPTIONAL, INTENT(OUT) :: cyclic_ 409 422 LOGICAL (KIND=C_BOOL) :: cyclic__tmp … … 450 463 ENDIF 451 464 465 IF (PRESENT(convention_str_)) THEN 466 CALL cxios_get_file_convention_str & 467 (file_hdl%daddr, convention_str_, len(convention_str_)) 468 ENDIF 469 452 470 IF (PRESENT(cyclic_)) THEN 453 471 CALL cxios_get_file_cyclic & … … 580 598 581 599 SUBROUTINE xios(is_defined_file_attr) & 582 ( file_id, append, compression_level, convention, c yclic, description, enabled, format, min_digits&583 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&584 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&585 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 586 604 587 605 IMPLICIT NONE … … 594 612 LOGICAL, OPTIONAL, INTENT(OUT) :: convention 595 613 LOGICAL(KIND=C_BOOL) :: convention_tmp 614 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_str 615 LOGICAL(KIND=C_BOOL) :: convention_str_tmp 596 616 LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 597 617 LOGICAL(KIND=C_BOOL) :: cyclic_tmp … … 648 668 (file_id,file_hdl) 649 669 CALL xios(is_defined_file_attr_hdl_) & 650 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&651 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&652 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&653 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 654 674 655 675 END SUBROUTINE xios(is_defined_file_attr) 656 676 657 677 SUBROUTINE xios(is_defined_file_attr_hdl) & 658 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&659 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&660 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&661 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 662 682 663 683 IMPLICIT NONE … … 669 689 LOGICAL, OPTIONAL, INTENT(OUT) :: convention 670 690 LOGICAL(KIND=C_BOOL) :: convention_tmp 691 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_str 692 LOGICAL(KIND=C_BOOL) :: convention_str_tmp 671 693 LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 672 694 LOGICAL(KIND=C_BOOL) :: cyclic_tmp … … 721 743 722 744 CALL xios(is_defined_file_attr_hdl_) & 723 ( file_hdl, append, compression_level, convention, c yclic, description, enabled, format, min_digits&724 , mode, name, name_suffix, output_freq, output_level, par_access, record_offset, split_freq&725 , split_freq _format, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name&726 , time_ units, timeseries, ts_prefix, type, uuid_format, uuid_name )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 ) 727 749 728 750 END SUBROUTINE xios(is_defined_file_attr_hdl) 729 751 730 752 SUBROUTINE xios(is_defined_file_attr_hdl_) & 731 ( file_hdl, append_, compression_level_, convention_, cyclic_, description_, enabled_, format_ & 732 , min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_, record_offset_ & 733 , split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_, time_stamp_format_ & 734 , time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_, uuid_name_ ) 753 ( file_hdl, append_, compression_level_, convention_, convention_str_, cyclic_, description_ & 754 , enabled_, format_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ & 755 , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_ & 756 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 757 , uuid_name_ ) 735 758 736 759 IMPLICIT NONE … … 742 765 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_ 743 766 LOGICAL(KIND=C_BOOL) :: convention__tmp 767 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_str_ 768 LOGICAL(KIND=C_BOOL) :: convention_str__tmp 744 769 LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic_ 745 770 LOGICAL(KIND=C_BOOL) :: cyclic__tmp … … 811 836 ENDIF 812 837 838 IF (PRESENT(convention_str_)) THEN 839 convention_str__tmp = cxios_is_defined_file_convention_str & 840 (file_hdl%daddr) 841 convention_str_ = convention_str__tmp 842 ENDIF 843 813 844 IF (PRESENT(cyclic_)) THEN 814 845 cyclic__tmp = cxios_is_defined_file_cyclic & -
XIOS/dev/dev_olga/src/interface/fortran_attr/ifilegroup_attr.F90
r1158 r1201 12 12 13 13 SUBROUTINE xios(set_filegroup_attr) & 14 ( filegroup_id, append, compression_level, convention, c yclic, description, enabled, format&15 , group_ref, min_digits, mode, name, name_suffix, output_freq, output_level, par_access, record_offset&16 , split_freq, split_freq_format, sync_freq, time_counter, time_counter_name, time_stamp_format &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 & 17 17 , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 18 18 … … 24 24 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 25 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str 26 27 LOGICAL , OPTIONAL, INTENT(IN) :: cyclic 27 28 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 56 57 (filegroup_id,filegroup_hdl) 57 58 CALL xios(set_filegroup_attr_hdl_) & 58 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 59 , group_ref, 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 ) 59 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 60 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 61 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 62 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 63 ) 62 64 63 65 END SUBROUTINE xios(set_filegroup_attr) 64 66 65 67 SUBROUTINE xios(set_filegroup_attr_hdl) & 66 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 67 , group_ref, 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 ) 68 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 69 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 70 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 71 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 72 ) 70 73 71 74 IMPLICIT NONE … … 75 78 INTEGER , OPTIONAL, INTENT(IN) :: compression_level 76 79 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention 80 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str 77 81 LOGICAL , OPTIONAL, INTENT(IN) :: cyclic 78 82 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 105 109 106 110 CALL xios(set_filegroup_attr_hdl_) & 107 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 108 , group_ref, 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 ) 111 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 112 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 113 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 114 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 115 ) 111 116 112 117 END SUBROUTINE xios(set_filegroup_attr_hdl) 113 118 114 119 SUBROUTINE xios(set_filegroup_attr_hdl_) & 115 ( filegroup_hdl, append_, compression_level_, convention_, c yclic_, description_, enabled_, format_ &116 , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ &117 , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_ &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_ & 118 123 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 119 124 , uuid_name_ ) … … 125 130 INTEGER , OPTIONAL, INTENT(IN) :: compression_level_ 126 131 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_ 132 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str_ 127 133 LOGICAL , OPTIONAL, INTENT(IN) :: cyclic_ 128 134 LOGICAL (KIND=C_BOOL) :: cyclic__tmp … … 170 176 ENDIF 171 177 178 IF (PRESENT(convention_str_)) THEN 179 CALL cxios_set_filegroup_convention_str & 180 (filegroup_hdl%daddr, convention_str_, len(convention_str_)) 181 ENDIF 182 172 183 IF (PRESENT(cyclic_)) THEN 173 184 cyclic__tmp = cyclic_ … … 305 316 306 317 SUBROUTINE xios(get_filegroup_attr) & 307 ( filegroup_id, append, compression_level, convention, c yclic, description, enabled, format&308 , group_ref, 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 &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 & 310 321 , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 311 322 … … 317 328 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 318 329 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 330 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_str 319 331 LOGICAL , OPTIONAL, INTENT(OUT) :: cyclic 320 332 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 349 361 (filegroup_id,filegroup_hdl) 350 362 CALL xios(get_filegroup_attr_hdl_) & 351 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 352 , group_ref, 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 ) 363 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 364 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 365 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 366 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 367 ) 355 368 356 369 END SUBROUTINE xios(get_filegroup_attr) 357 370 358 371 SUBROUTINE xios(get_filegroup_attr_hdl) & 359 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 360 , group_ref, 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 ) 372 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 373 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 374 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 375 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 376 ) 363 377 364 378 IMPLICIT NONE … … 368 382 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level 369 383 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention 384 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_str 370 385 LOGICAL , OPTIONAL, INTENT(OUT) :: cyclic 371 386 LOGICAL (KIND=C_BOOL) :: cyclic_tmp … … 398 413 399 414 CALL xios(get_filegroup_attr_hdl_) & 400 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 401 , group_ref, 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 ) 415 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 416 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 417 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 418 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 419 ) 404 420 405 421 END SUBROUTINE xios(get_filegroup_attr_hdl) 406 422 407 423 SUBROUTINE xios(get_filegroup_attr_hdl_) & 408 ( filegroup_hdl, append_, compression_level_, convention_, c yclic_, description_, enabled_, format_ &409 , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ &410 , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_ &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_ & 411 427 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 412 428 , uuid_name_ ) … … 418 434 INTEGER , OPTIONAL, INTENT(OUT) :: compression_level_ 419 435 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_ 436 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: convention_str_ 420 437 LOGICAL , OPTIONAL, INTENT(OUT) :: cyclic_ 421 438 LOGICAL (KIND=C_BOOL) :: cyclic__tmp … … 463 480 ENDIF 464 481 482 IF (PRESENT(convention_str_)) THEN 483 CALL cxios_get_filegroup_convention_str & 484 (filegroup_hdl%daddr, convention_str_, len(convention_str_)) 485 ENDIF 486 465 487 IF (PRESENT(cyclic_)) THEN 466 488 CALL cxios_get_filegroup_cyclic & … … 598 620 599 621 SUBROUTINE xios(is_defined_filegroup_attr) & 600 ( filegroup_id, append, compression_level, convention, c yclic, description, enabled, format&601 , group_ref, 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 &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 & 603 625 , time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name ) 604 626 … … 612 634 LOGICAL, OPTIONAL, INTENT(OUT) :: convention 613 635 LOGICAL(KIND=C_BOOL) :: convention_tmp 636 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_str 637 LOGICAL(KIND=C_BOOL) :: convention_str_tmp 614 638 LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 615 639 LOGICAL(KIND=C_BOOL) :: cyclic_tmp … … 668 692 (filegroup_id,filegroup_hdl) 669 693 CALL xios(is_defined_filegroup_attr_hdl_) & 670 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 671 , group_ref, 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 ) 694 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 695 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 696 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 697 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 698 ) 674 699 675 700 END SUBROUTINE xios(is_defined_filegroup_attr) 676 701 677 702 SUBROUTINE xios(is_defined_filegroup_attr_hdl) & 678 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 679 , group_ref, 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 ) 703 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 704 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 705 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 706 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 707 ) 682 708 683 709 IMPLICIT NONE … … 689 715 LOGICAL, OPTIONAL, INTENT(OUT) :: convention 690 716 LOGICAL(KIND=C_BOOL) :: convention_tmp 717 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_str 718 LOGICAL(KIND=C_BOOL) :: convention_str_tmp 691 719 LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic 692 720 LOGICAL(KIND=C_BOOL) :: cyclic_tmp … … 743 771 744 772 CALL xios(is_defined_filegroup_attr_hdl_) & 745 ( filegroup_hdl, append, compression_level, convention, cyclic, description, enabled, format & 746 , group_ref, 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 ) 773 ( filegroup_hdl, append, compression_level, convention, convention_str, cyclic, description & 774 , enabled, format, group_ref, min_digits, mode, name, name_suffix, output_freq, output_level & 775 , par_access, record_offset, split_freq, split_freq_format, sync_freq, time_counter, time_counter_name & 776 , time_stamp_format, time_stamp_name, time_units, timeseries, ts_prefix, type, uuid_format, uuid_name & 777 ) 749 778 750 779 END SUBROUTINE xios(is_defined_filegroup_attr_hdl) 751 780 752 781 SUBROUTINE xios(is_defined_filegroup_attr_hdl_) & 753 ( filegroup_hdl, append_, compression_level_, convention_, c yclic_, description_, enabled_, format_ &754 , group_ref_, min_digits_, mode_, name_, name_suffix_, output_freq_, output_level_, par_access_ &755 , record_offset_, split_freq_, split_freq_format_, sync_freq_, time_counter_, time_counter_name_ &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_ & 756 785 , time_stamp_format_, time_stamp_name_, time_units_, timeseries_, ts_prefix_, type_, uuid_format_ & 757 786 , uuid_name_ ) … … 765 794 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_ 766 795 LOGICAL(KIND=C_BOOL) :: convention__tmp 796 LOGICAL, OPTIONAL, INTENT(OUT) :: convention_str_ 797 LOGICAL(KIND=C_BOOL) :: convention_str__tmp 767 798 LOGICAL, OPTIONAL, INTENT(OUT) :: cyclic_ 768 799 LOGICAL(KIND=C_BOOL) :: cyclic__tmp … … 836 867 ENDIF 837 868 869 IF (PRESENT(convention_str_)) THEN 870 convention_str__tmp = cxios_is_defined_filegroup_convention_str & 871 (filegroup_hdl%daddr) 872 convention_str_ = convention_str__tmp 873 ENDIF 874 838 875 IF (PRESENT(cyclic_)) THEN 839 876 cyclic__tmp = cxios_is_defined_filegroup_cyclic & -
XIOS/dev/dev_olga/src/interface/fortran_attr/iinterpolate_domain_attr.F90
r1158 r1201 12 12 13 13 SUBROUTINE xios(set_interpolate_domain_attr) & 14 ( interpolate_domain_id, mode, order, renormalize, weight_filename, write_weight )14 ( interpolate_domain_id, mode, order, quantity, renormalize, weight_filename, write_weight ) 15 15 16 16 IMPLICIT NONE … … 19 19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 20 20 INTEGER , OPTIONAL, INTENT(IN) :: order 21 LOGICAL , OPTIONAL, INTENT(IN) :: quantity 22 LOGICAL (KIND=C_BOOL) :: quantity_tmp 21 23 LOGICAL , OPTIONAL, INTENT(IN) :: renormalize 22 24 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 28 30 (interpolate_domain_id,interpolate_domain_hdl) 29 31 CALL xios(set_interpolate_domain_attr_hdl_) & 30 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 32 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 33 ) 31 34 32 35 END SUBROUTINE xios(set_interpolate_domain_attr) 33 36 34 37 SUBROUTINE xios(set_interpolate_domain_attr_hdl) & 35 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 38 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 39 ) 36 40 37 41 IMPLICIT NONE … … 39 43 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode 40 44 INTEGER , OPTIONAL, INTENT(IN) :: order 45 LOGICAL , OPTIONAL, INTENT(IN) :: quantity 46 LOGICAL (KIND=C_BOOL) :: quantity_tmp 41 47 LOGICAL , OPTIONAL, INTENT(IN) :: renormalize 42 48 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 46 52 47 53 CALL xios(set_interpolate_domain_attr_hdl_) & 48 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 54 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 55 ) 49 56 50 57 END SUBROUTINE xios(set_interpolate_domain_attr_hdl) 51 58 52 59 SUBROUTINE xios(set_interpolate_domain_attr_hdl_) & 53 ( interpolate_domain_hdl, mode_, order_, renormalize_, weight_filename_, write_weight_ ) 60 ( interpolate_domain_hdl, mode_, order_, quantity_, renormalize_, weight_filename_, write_weight_ & 61 ) 54 62 55 63 IMPLICIT NONE … … 57 65 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode_ 58 66 INTEGER , OPTIONAL, INTENT(IN) :: order_ 67 LOGICAL , OPTIONAL, INTENT(IN) :: quantity_ 68 LOGICAL (KIND=C_BOOL) :: quantity__tmp 59 69 LOGICAL , OPTIONAL, INTENT(IN) :: renormalize_ 60 70 LOGICAL (KIND=C_BOOL) :: renormalize__tmp … … 73 83 ENDIF 74 84 85 IF (PRESENT(quantity_)) THEN 86 quantity__tmp = quantity_ 87 CALL cxios_set_interpolate_domain_quantity & 88 (interpolate_domain_hdl%daddr, quantity__tmp) 89 ENDIF 90 75 91 IF (PRESENT(renormalize_)) THEN 76 92 renormalize__tmp = renormalize_ … … 93 109 94 110 SUBROUTINE xios(get_interpolate_domain_attr) & 95 ( interpolate_domain_id, mode, order, renormalize, weight_filename, write_weight )111 ( interpolate_domain_id, mode, order, quantity, renormalize, weight_filename, write_weight ) 96 112 97 113 IMPLICIT NONE … … 100 116 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 101 117 INTEGER , OPTIONAL, INTENT(OUT) :: order 118 LOGICAL , OPTIONAL, INTENT(OUT) :: quantity 119 LOGICAL (KIND=C_BOOL) :: quantity_tmp 102 120 LOGICAL , OPTIONAL, INTENT(OUT) :: renormalize 103 121 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 109 127 (interpolate_domain_id,interpolate_domain_hdl) 110 128 CALL xios(get_interpolate_domain_attr_hdl_) & 111 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 129 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 130 ) 112 131 113 132 END SUBROUTINE xios(get_interpolate_domain_attr) 114 133 115 134 SUBROUTINE xios(get_interpolate_domain_attr_hdl) & 116 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 135 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 136 ) 117 137 118 138 IMPLICIT NONE … … 120 140 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode 121 141 INTEGER , OPTIONAL, INTENT(OUT) :: order 142 LOGICAL , OPTIONAL, INTENT(OUT) :: quantity 143 LOGICAL (KIND=C_BOOL) :: quantity_tmp 122 144 LOGICAL , OPTIONAL, INTENT(OUT) :: renormalize 123 145 LOGICAL (KIND=C_BOOL) :: renormalize_tmp … … 127 149 128 150 CALL xios(get_interpolate_domain_attr_hdl_) & 129 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 151 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 152 ) 130 153 131 154 END SUBROUTINE xios(get_interpolate_domain_attr_hdl) 132 155 133 156 SUBROUTINE xios(get_interpolate_domain_attr_hdl_) & 134 ( interpolate_domain_hdl, mode_, order_, renormalize_, weight_filename_, write_weight_ ) 157 ( interpolate_domain_hdl, mode_, order_, quantity_, renormalize_, weight_filename_, write_weight_ & 158 ) 135 159 136 160 IMPLICIT NONE … … 138 162 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: mode_ 139 163 INTEGER , OPTIONAL, INTENT(OUT) :: order_ 164 LOGICAL , OPTIONAL, INTENT(OUT) :: quantity_ 165 LOGICAL (KIND=C_BOOL) :: quantity__tmp 140 166 LOGICAL , OPTIONAL, INTENT(OUT) :: renormalize_ 141 167 LOGICAL (KIND=C_BOOL) :: renormalize__tmp … … 154 180 ENDIF 155 181 182 IF (PRESENT(quantity_)) THEN 183 CALL cxios_get_interpolate_domain_quantity & 184 (interpolate_domain_hdl%daddr, quantity__tmp) 185 quantity_ = quantity__tmp 186 ENDIF 187 156 188 IF (PRESENT(renormalize_)) THEN 157 189 CALL cxios_get_interpolate_domain_renormalize & … … 174 206 175 207 SUBROUTINE xios(is_defined_interpolate_domain_attr) & 176 ( interpolate_domain_id, mode, order, renormalize, weight_filename, write_weight )208 ( interpolate_domain_id, mode, order, quantity, renormalize, weight_filename, write_weight ) 177 209 178 210 IMPLICIT NONE … … 183 215 LOGICAL, OPTIONAL, INTENT(OUT) :: order 184 216 LOGICAL(KIND=C_BOOL) :: order_tmp 217 LOGICAL, OPTIONAL, INTENT(OUT) :: quantity 218 LOGICAL(KIND=C_BOOL) :: quantity_tmp 185 219 LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 186 220 LOGICAL(KIND=C_BOOL) :: renormalize_tmp … … 193 227 (interpolate_domain_id,interpolate_domain_hdl) 194 228 CALL xios(is_defined_interpolate_domain_attr_hdl_) & 195 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 229 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 230 ) 196 231 197 232 END SUBROUTINE xios(is_defined_interpolate_domain_attr) 198 233 199 234 SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl) & 200 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 235 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 236 ) 201 237 202 238 IMPLICIT NONE … … 206 242 LOGICAL, OPTIONAL, INTENT(OUT) :: order 207 243 LOGICAL(KIND=C_BOOL) :: order_tmp 244 LOGICAL, OPTIONAL, INTENT(OUT) :: quantity 245 LOGICAL(KIND=C_BOOL) :: quantity_tmp 208 246 LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize 209 247 LOGICAL(KIND=C_BOOL) :: renormalize_tmp … … 214 252 215 253 CALL xios(is_defined_interpolate_domain_attr_hdl_) & 216 ( interpolate_domain_hdl, mode, order, renormalize, weight_filename, write_weight ) 254 ( interpolate_domain_hdl, mode, order, quantity, renormalize, weight_filename, write_weight & 255 ) 217 256 218 257 END SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl) 219 258 220 259 SUBROUTINE xios(is_defined_interpolate_domain_attr_hdl_) & 221 ( interpolate_domain_hdl, mode_, order_, renormalize_, weight_filename_, write_weight_ ) 260 ( interpolate_domain_hdl, mode_, order_, quantity_, renormalize_, weight_filename_, write_weight_ & 261 ) 222 262 223 263 IMPLICIT NONE … … 227 267 LOGICAL, OPTIONAL, INTENT(OUT) :: order_ 228 268 LOGICAL(KIND=C_BOOL) :: order__tmp 269 LOGICAL, OPTIONAL, INTENT(OUT) :: quantity_ 270 LOGICAL(KIND=C_BOOL) :: quantity__tmp 229 271 LOGICAL, OPTIONAL, INTENT(OUT) :: renormalize_ 230 272 LOGICAL(KIND=C_BOOL) :: renormalize__tmp … … 246 288 ENDIF 247 289 290 IF (PRESENT(quantity_)) THEN 291 quantity__tmp = cxios_is_defined_interpolate_domain_quantity & 292 (interpolate_domain_hdl%daddr) 293 quantity_ = quantity__tmp 294 ENDIF 295 248 296 IF (PRESENT(renormalize_)) THEN 249 297 renormalize__tmp = cxios_is_defined_interpolate_domain_renormalize & -
XIOS/dev/dev_olga/src/interface/fortran_attr/interpolate_domain_interface_attr.F90
r1158 r1201 48 48 INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 49 49 END FUNCTION cxios_is_defined_interpolate_domain_order 50 51 52 SUBROUTINE cxios_set_interpolate_domain_quantity(interpolate_domain_hdl, quantity) BIND(C) 53 USE ISO_C_BINDING 54 INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 55 LOGICAL (KIND=C_BOOL) , VALUE :: quantity 56 END SUBROUTINE cxios_set_interpolate_domain_quantity 57 58 SUBROUTINE cxios_get_interpolate_domain_quantity(interpolate_domain_hdl, quantity) BIND(C) 59 USE ISO_C_BINDING 60 INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 61 LOGICAL (KIND=C_BOOL) :: quantity 62 END SUBROUTINE cxios_get_interpolate_domain_quantity 63 64 FUNCTION cxios_is_defined_interpolate_domain_quantity(interpolate_domain_hdl) BIND(C) 65 USE ISO_C_BINDING 66 LOGICAL(kind=C_BOOL) :: cxios_is_defined_interpolate_domain_quantity 67 INTEGER (kind = C_INTPTR_T), VALUE :: interpolate_domain_hdl 68 END FUNCTION cxios_is_defined_interpolate_domain_quantity 50 69 51 70 -
XIOS/dev/dev_olga/src/interface/fortran_attr/izoom_axis_attr.F90
r966 r1201 12 12 13 13 SUBROUTINE xios(set_zoom_axis_attr) & 14 ( zoom_axis_id, begin, n )14 ( zoom_axis_id, begin, index, n ) 15 15 16 16 IMPLICIT NONE … … 18 18 CHARACTER(LEN=*), INTENT(IN) ::zoom_axis_id 19 19 INTEGER , OPTIONAL, INTENT(IN) :: begin 20 INTEGER , OPTIONAL, INTENT(IN) :: index(:) 20 21 INTEGER , OPTIONAL, INTENT(IN) :: n 21 22 … … 23 24 (zoom_axis_id,zoom_axis_hdl) 24 25 CALL xios(set_zoom_axis_attr_hdl_) & 25 ( zoom_axis_hdl, begin, n )26 ( zoom_axis_hdl, begin, index, n ) 26 27 27 28 END SUBROUTINE xios(set_zoom_axis_attr) 28 29 29 30 SUBROUTINE xios(set_zoom_axis_attr_hdl) & 30 ( zoom_axis_hdl, begin, n )31 ( zoom_axis_hdl, begin, index, n ) 31 32 32 33 IMPLICIT NONE 33 34 TYPE(txios(zoom_axis)) , INTENT(IN) :: zoom_axis_hdl 34 35 INTEGER , OPTIONAL, INTENT(IN) :: begin 36 INTEGER , OPTIONAL, INTENT(IN) :: index(:) 35 37 INTEGER , OPTIONAL, INTENT(IN) :: n 36 38 37 39 CALL xios(set_zoom_axis_attr_hdl_) & 38 ( zoom_axis_hdl, begin, n )40 ( zoom_axis_hdl, begin, index, n ) 39 41 40 42 END SUBROUTINE xios(set_zoom_axis_attr_hdl) 41 43 42 44 SUBROUTINE xios(set_zoom_axis_attr_hdl_) & 43 ( zoom_axis_hdl, begin_, n_ )45 ( zoom_axis_hdl, begin_, index_, n_ ) 44 46 45 47 IMPLICIT NONE 46 48 TYPE(txios(zoom_axis)) , INTENT(IN) :: zoom_axis_hdl 47 49 INTEGER , OPTIONAL, INTENT(IN) :: begin_ 50 INTEGER , OPTIONAL, INTENT(IN) :: index_(:) 48 51 INTEGER , OPTIONAL, INTENT(IN) :: n_ 49 52 … … 51 54 CALL cxios_set_zoom_axis_begin & 52 55 (zoom_axis_hdl%daddr, begin_) 56 ENDIF 57 58 IF (PRESENT(index_)) THEN 59 CALL cxios_set_zoom_axis_index & 60 (zoom_axis_hdl%daddr, index_, SHAPE(index_)) 53 61 ENDIF 54 62 … … 61 69 62 70 SUBROUTINE xios(get_zoom_axis_attr) & 63 ( zoom_axis_id, begin, n )71 ( zoom_axis_id, begin, index, n ) 64 72 65 73 IMPLICIT NONE … … 67 75 CHARACTER(LEN=*), INTENT(IN) ::zoom_axis_id 68 76 INTEGER , OPTIONAL, INTENT(OUT) :: begin 77 INTEGER , OPTIONAL, INTENT(OUT) :: index(:) 69 78 INTEGER , OPTIONAL, INTENT(OUT) :: n 70 79 … … 72 81 (zoom_axis_id,zoom_axis_hdl) 73 82 CALL xios(get_zoom_axis_attr_hdl_) & 74 ( zoom_axis_hdl, begin, n )83 ( zoom_axis_hdl, begin, index, n ) 75 84 76 85 END SUBROUTINE xios(get_zoom_axis_attr) 77 86 78 87 SUBROUTINE xios(get_zoom_axis_attr_hdl) & 79 ( zoom_axis_hdl, begin, n )88 ( zoom_axis_hdl, begin, index, n ) 80 89 81 90 IMPLICIT NONE 82 91 TYPE(txios(zoom_axis)) , INTENT(IN) :: zoom_axis_hdl 83 92 INTEGER , OPTIONAL, INTENT(OUT) :: begin 93 INTEGER , OPTIONAL, INTENT(OUT) :: index(:) 84 94 INTEGER , OPTIONAL, INTENT(OUT) :: n 85 95 86 96 CALL xios(get_zoom_axis_attr_hdl_) & 87 ( zoom_axis_hdl, begin, n )97 ( zoom_axis_hdl, begin, index, n ) 88 98 89 99 END SUBROUTINE xios(get_zoom_axis_attr_hdl) 90 100 91 101 SUBROUTINE xios(get_zoom_axis_attr_hdl_) & 92 ( zoom_axis_hdl, begin_, n_ )102 ( zoom_axis_hdl, begin_, index_, n_ ) 93 103 94 104 IMPLICIT NONE 95 105 TYPE(txios(zoom_axis)) , INTENT(IN) :: zoom_axis_hdl 96 106 INTEGER , OPTIONAL, INTENT(OUT) :: begin_ 107 INTEGER , OPTIONAL, INTENT(OUT) :: index_(:) 97 108 INTEGER , OPTIONAL, INTENT(OUT) :: n_ 98 109 … … 100 111 CALL cxios_get_zoom_axis_begin & 101 112 (zoom_axis_hdl%daddr, begin_) 113 ENDIF 114 115 IF (PRESENT(index_)) THEN 116 CALL cxios_get_zoom_axis_index & 117 (zoom_axis_hdl%daddr, index_, SHAPE(index_)) 102 118 ENDIF 103 119 … … 110 126 111 127 SUBROUTINE xios(is_defined_zoom_axis_attr) & 112 ( zoom_axis_id, begin, n )128 ( zoom_axis_id, begin, index, n ) 113 129 114 130 IMPLICIT NONE … … 117 133 LOGICAL, OPTIONAL, INTENT(OUT) :: begin 118 134 LOGICAL(KIND=C_BOOL) :: begin_tmp 135 LOGICAL, OPTIONAL, INTENT(OUT) :: index 136 LOGICAL(KIND=C_BOOL) :: index_tmp 119 137 LOGICAL, OPTIONAL, INTENT(OUT) :: n 120 138 LOGICAL(KIND=C_BOOL) :: n_tmp … … 123 141 (zoom_axis_id,zoom_axis_hdl) 124 142 CALL xios(is_defined_zoom_axis_attr_hdl_) & 125 ( zoom_axis_hdl, begin, n )143 ( zoom_axis_hdl, begin, index, n ) 126 144 127 145 END SUBROUTINE xios(is_defined_zoom_axis_attr) 128 146 129 147 SUBROUTINE xios(is_defined_zoom_axis_attr_hdl) & 130 ( zoom_axis_hdl, begin, n )148 ( zoom_axis_hdl, begin, index, n ) 131 149 132 150 IMPLICIT NONE … … 134 152 LOGICAL, OPTIONAL, INTENT(OUT) :: begin 135 153 LOGICAL(KIND=C_BOOL) :: begin_tmp 154 LOGICAL, OPTIONAL, INTENT(OUT) :: index 155 LOGICAL(KIND=C_BOOL) :: index_tmp 136 156 LOGICAL, OPTIONAL, INTENT(OUT) :: n 137 157 LOGICAL(KIND=C_BOOL) :: n_tmp 138 158 139 159 CALL xios(is_defined_zoom_axis_attr_hdl_) & 140 ( zoom_axis_hdl, begin, n )160 ( zoom_axis_hdl, begin, index, n ) 141 161 142 162 END SUBROUTINE xios(is_defined_zoom_axis_attr_hdl) 143 163 144 164 SUBROUTINE xios(is_defined_zoom_axis_attr_hdl_) & 145 ( zoom_axis_hdl, begin_, n_ )165 ( zoom_axis_hdl, begin_, index_, n_ ) 146 166 147 167 IMPLICIT NONE … … 149 169 LOGICAL, OPTIONAL, INTENT(OUT) :: begin_ 150 170 LOGICAL(KIND=C_BOOL) :: begin__tmp 171 LOGICAL, OPTIONAL, INTENT(OUT) :: index_ 172 LOGICAL(KIND=C_BOOL) :: index__tmp 151 173 LOGICAL, OPTIONAL, INTENT(OUT) :: n_ 152 174 LOGICAL(KIND=C_BOOL) :: n__tmp … … 156 178 (zoom_axis_hdl%daddr) 157 179 begin_ = begin__tmp 180 ENDIF 181 182 IF (PRESENT(index_)) THEN 183 index__tmp = cxios_is_defined_zoom_axis_index & 184 (zoom_axis_hdl%daddr) 185 index_ = index__tmp 158 186 ENDIF 159 187 -
XIOS/dev/dev_olga/src/interface/fortran_attr/zoom_axis_interface_attr.F90
r787 r1201 29 29 30 30 31 SUBROUTINE cxios_set_zoom_axis_index(zoom_axis_hdl, index, extent) BIND(C) 32 USE ISO_C_BINDING 33 INTEGER (kind = C_INTPTR_T), VALUE :: zoom_axis_hdl 34 INTEGER (KIND=C_INT) , DIMENSION(*) :: index 35 INTEGER (kind = C_INT), DIMENSION(*) :: extent 36 END SUBROUTINE cxios_set_zoom_axis_index 37 38 SUBROUTINE cxios_get_zoom_axis_index(zoom_axis_hdl, index, extent) BIND(C) 39 USE ISO_C_BINDING 40 INTEGER (kind = C_INTPTR_T), VALUE :: zoom_axis_hdl 41 INTEGER (KIND=C_INT) , DIMENSION(*) :: index 42 INTEGER (kind = C_INT), DIMENSION(*) :: extent 43 END SUBROUTINE cxios_get_zoom_axis_index 44 45 FUNCTION cxios_is_defined_zoom_axis_index(zoom_axis_hdl) BIND(C) 46 USE ISO_C_BINDING 47 LOGICAL(kind=C_BOOL) :: cxios_is_defined_zoom_axis_index 48 INTEGER (kind = C_INTPTR_T), VALUE :: zoom_axis_hdl 49 END FUNCTION cxios_is_defined_zoom_axis_index 50 51 31 52 SUBROUTINE cxios_set_zoom_axis_n(zoom_axis_hdl, n) BIND(C) 32 53 USE ISO_C_BINDING -
XIOS/dev/dev_olga/src/io/nc4_data_input.cpp
r1158 r1201 318 318 if (SuperClassWriter::hasVariable(boundsLatName) || SuperClassWriter::hasVariable(boundsLonName)) 319 319 domain->nvertex.setValue(nbVertex); 320 320 321 std::vector<StdSize> nBeginBndsLatLon(3), nSizeBndsLatLon(3); 321 322 nBeginBndsLatLon[0] = 0; nSizeBndsLatLon[0] = domain->nj_glo.getValue(); -
XIOS/dev/dev_olga/src/io/onetcdf4.cpp
r1158 r1201 536 536 537 537 template <> 538 538 539 void CONetCDF4::writeData_(int grpid, int varid, 539 540 const std::vector<StdSize>& sstart, -
XIOS/dev/dev_olga/src/node/axis.hpp
r1158 r1201 123 123 int zoom_begin_srv, zoom_end_srv, zoom_size_srv; 124 124 int ni_srv, begin_srv, end_srv; 125 int global_zoom_begin_srv, global_zoom_end_srv, global_zoom_size_srv; 125 126 CArray<double,1> value_srv; 126 127 CArray<double,2> bound_srv; 127 128 CArray<StdString,1> label_srv; 129 CArray<int,1> zoom_index_srv; 128 130 bool hasValue; 129 131 CArray<int,1> globalDimGrid; … … 144 146 void computeConnectedServer(const std::vector<int>& globalDim, int orderPositionInGrid, 145 147 CServerDistributionDescription::ServerDistributionType distType); 148 bool zoomByIndex(); 146 149 147 150 void sendNonDistributedAttributes(void); -
XIOS/dev/dev_olga/src/node/calendar_wrapper.cpp
r1158 r1201 7 7 namespace xios { 8 8 9 /// ////////////////////// D finitions ////////////////////// ///9 /// ////////////////////// Définitions ////////////////////// /// 10 10 11 11 CCalendarWrapper::CCalendarWrapper(void) -
XIOS/dev/dev_olga/src/node/context.cpp
r1194 r1201 291 291 void CContext::setClientServerBuffer(CContextClient* contextClient) 292 292 { 293 size_t minBufferSize = CXios::minBufferSize; 293 // Estimated minimum event size for small events (10 is an arbitrary constant just for safety) 294 const size_t minEventSize = CEventClient::headerSize + getIdServer().size() + 10 * sizeof(int); 295 296 // Ensure there is at least some room for 20 of such events in the buffers 297 size_t minBufferSize = std::max(CXios::minBufferSize, 20 * minEventSize); 298 294 299 #define DECLARE_NODE(Name_, name_) \ 295 300 if (minBufferSize < sizeof(C##Name_##Definition)) minBufferSize = sizeof(C##Name_##Definition); … … 299 304 #undef DECLARE_NODE_PAR 300 305 306 // Compute the buffer sizes needed to send the attributes and data corresponding to fields 301 307 std::map<int, StdSize> maxEventSize; 302 308 std::map<int, StdSize> bufferSize = getAttributesBufferSize(maxEventSize, contextClient); … … 307 313 if (it->second > bufferSize[it->first]) bufferSize[it->first] = it->second; 308 314 315 // Apply the buffer size factor and check that we are above the minimum buffer size 309 316 ite = bufferSize.end(); 310 317 for (it = bufferSize.begin(); it != ite; ++it) … … 314 321 } 315 322 316 // We consider that the minimum buffer size is also the minimum event size 317 ite = maxEventSize.end(); 318 for (it = maxEventSize.begin(); it != ite; ++it) 319 if (it->second < minBufferSize) it->second = minBufferSize; 320 323 // Leaders will have to send some control events so ensure there is some room for those in the buffers 321 324 if (contextClient->isServerLeader()) 322 325 { 323 326 const std::list<int>& ranks = contextClient->getRanksServerLeader(); 324 327 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 325 if (!bufferSize.count(*itRank)) bufferSize[*itRank] = maxEventSize[*itRank] = minBufferSize; 328 { 329 if (!bufferSize.count(*itRank)) 330 { 331 bufferSize[*itRank] = minBufferSize; 332 maxEventSize[*itRank] = minEventSize; 333 } 334 } 326 335 } 327 336 contextClient->setBufferSize(bufferSize, maxEventSize); -
XIOS/dev/dev_olga/src/node/domain.cpp
r1173 r1201 2463 2463 } 2464 2464 2465 i_index.resize(nbIndGlob); 2466 j_index.resize(nbIndGlob); 2467 2465 2468 globalLocalIndexMap_.rehash(std::ceil(nbIndGlob/globalLocalIndexMap_.max_load_factor())); 2466 i_index.resize(nbIndGlob);2467 j_index.resize(nbIndGlob);2468 2469 nbIndGlob = 0; 2469 2470 for (i = 0; i < nbReceived; ++i) … … 2473 2474 { 2474 2475 index = tmp(ind); 2475 if (0 == globalLocalIndexMap_.count(index)) 2476 { 2477 i_index(nbIndGlob) = index % ni_glo; 2478 j_index(nbIndGlob) = index / ni_glo; 2479 globalLocalIndexMap_[index] = nbIndGlob; 2480 ++nbIndGlob; 2481 } 2476 i_index(nbIndGlob) = index % ni_glo; 2477 j_index(nbIndGlob) = index / ni_glo; 2478 globalLocalIndexMap_[index] = nbIndGlob; 2479 ++nbIndGlob; 2482 2480 } 2483 2481 } 2484 2485 i_index.resizeAndPreserve(nbIndGlob);2486 j_index.resizeAndPreserve(nbIndGlob);2487 2482 } 2488 2483 … … 2635 2630 void CDomain::recvMask(std::map<int, CBufferIn*>& rankBuffers) 2636 2631 { 2637 int nbReceived = rankBuffers.size(), i, ind, index , lInd;2632 int nbReceived = rankBuffers.size(), i, ind, index; 2638 2633 if (nbReceived != recvClientRanks_.size()) 2639 ERROR("void CDomain::recv Mask(std::map<int, CBufferIn*>& rankBuffers)",2634 ERROR("void CDomain::recvArea(std::map<int, CBufferIn*>& rankBuffers)", 2640 2635 << "The number of sending clients is not correct." 2641 2636 << "Expected number: " << recvClientRanks_.size() << " but received " << nbReceived); … … 2655 2650 } 2656 2651 2657 if (nbMaskInd != globalLocalIndexMap_.size())2658 info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes."2659 << "Something shouble be wrong with mask index "<< std::endl;2660 2661 nbMaskInd = globalLocalIndexMap_.size();2662 2652 mask_1d.resize(nbMaskInd); 2663 2653 nbMaskInd = 0; 2664 2654 for (i = 0; i < nbReceived; ++i) 2665 2655 { 2666 CArray<int,1>& tmpInd = indGlob_[recvClientRanks_[i]];2667 2656 CArray<bool,1>& tmp = recvMaskValue[i]; 2668 2657 for (ind = 0; ind < tmp.numElements(); ++ind) 2669 2658 { 2670 lInd = globalLocalIndexMap_[size_t(tmpInd(ind))];2671 mask_1d(lInd) = tmp(ind);2659 mask_1d(nbMaskInd) = tmp(ind); 2660 ++nbMaskInd; 2672 2661 } 2673 2662 } … … 2728 2717 2729 2718 if (nbLonInd != globalLocalIndexMap_.size()) 2730 info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes." 2731 << "Something shouble be wrong with longitude index "<< std::endl; 2732 2733 nbLonInd = globalLocalIndexMap_.size(); 2719 info (0) << "Something wrong with longitude index "<< std::endl; 2720 2734 2721 lonvalue.resize(nbLonInd); 2735 2722 if (hasBounds) … … 2812 2799 2813 2800 if (nbLatInd != globalLocalIndexMap_.size()) 2814 info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes." 2815 << "Something shouble be wrong with latitude index "<< std::endl; 2816 2817 nbLatInd = globalLocalIndexMap_.size(); 2801 info (0) << "Something wrong with latitude index "<< std::endl; 2802 2818 2803 latvalue.resize(nbLatInd); 2819 2804 if (hasBounds) … … 2885 2870 } 2886 2871 2872 int nbAreaInd = 0; 2873 for (i = 0; i < nbReceived; ++i) 2874 { 2875 nbAreaInd += recvAreaValue[i].numElements(); 2876 } 2877 2878 if (nbAreaInd != globalLocalIndexMap_.size()) 2879 info (0) << "Something wrong with latitude index "<< std::endl; 2880 2887 2881 if (hasArea) 2888 2882 { 2889 int nbAreaInd = 0;2890 for (i = 0; i < nbReceived; ++i)2891 {2892 nbAreaInd += recvAreaValue[i].numElements();2893 }2894 2895 if (nbAreaInd != globalLocalIndexMap_.size())2896 info (0) << "If the domain " << this->getDomainOutputName() <<" does not have overlapped region between processes."2897 << "Something shouble be wrong with area index "<< std::endl;2898 2899 nbAreaInd = globalLocalIndexMap_.size();2900 2883 areavalue.resize(nbAreaInd); 2901 2884 nbAreaInd = 0; … … 3005 2988 { 3006 2989 lInd = globalLocalIndexMap_[size_t(tmpInd(ind))]; 3007 dataIIndex(lInd) = (-1 == dataIIndex(lInd)) ? tmpI(ind) : dataIIndex(lInd); // Only fill in dataIndex if there is no data3008 dataJIndex(lInd) = (-1 == dataJIndex(lInd)) ? tmpJ(ind) : dataJIndex(lInd);2990 dataIIndex(lInd) = tmpI(ind); 2991 dataJIndex(lInd) = tmpJ(ind); 3009 2992 } 3010 2993 } -
XIOS/dev/dev_olga/src/node/field.cpp
r1166 r1201 131 131 132 132 CContext* context = CContext::getCurrent(); 133 CContextClient* client = (!context->hasServer) ? context->client : this->file->getContextClient(); 134 135 CEventClient event(getType(), EVENT_ID_UPDATE_DATA); 136 137 map<int, CArray<int,1> >::iterator it; 138 list<CMessage> list_msg; 139 list<CArray<double,1> > list_data; 140 141 if (!grid->doGridHaveDataDistributed()) 133 CContextClient* client = (!context->hasServer) ? context->client : this->file->getContextClient(); 134 135 CEventClient event(getType(), EVENT_ID_UPDATE_DATA); 136 137 map<int, CArray<int,1> >::iterator it; 138 list<CMessage> list_msg; 139 list<CArray<double,1> > list_data; 140 141 if (!grid->doGridHaveDataDistributed()) 142 { 143 if (client->isServerLeader()) 144 { 145 for (it = grid->storeIndex_toSrv.begin(); it != grid->storeIndex_toSrv.end(); it++) 146 { 147 int rank = it->first; 148 CArray<int,1>& index = it->second; 149 150 list_msg.push_back(CMessage()); 151 list_data.push_back(CArray<double,1>(index.numElements())); 152 153 CArray<double,1>& data_tmp = list_data.back(); 154 for (int n = 0; n < data_tmp.numElements(); n++) data_tmp(n) = data(index(n)); 155 156 list_msg.back() << getId() << data_tmp; 157 event.push(rank, 1, list_msg.back()); 158 } 159 client->sendEvent(event); 160 } 161 else client->sendEvent(event); 162 } 163 else 164 { 165 for (it = grid->storeIndex_toSrv.begin(); it != grid->storeIndex_toSrv.end(); it++) 142 166 { 143 if (client->isServerLeader()) 144 { 145 for (it = grid->storeIndex_toSrv.begin(); it != grid->storeIndex_toSrv.end(); it++) 146 { 147 int rank = it->first; 148 CArray<int,1>& index = it->second; 149 150 list_msg.push_back(CMessage()); 151 list_data.push_back(CArray<double,1>(index.numElements())); 152 153 CArray<double,1>& data_tmp = list_data.back(); 154 for (int n = 0; n < data_tmp.numElements(); n++) data_tmp(n) = data(index(n)); 155 156 list_msg.back() << getId() << data_tmp; 157 event.push(rank, 1, list_msg.back()); 158 } 159 client->sendEvent(event); 160 } 161 else client->sendEvent(event); 162 } 163 else 164 { 165 for (it = grid->storeIndex_toSrv.begin(); it != grid->storeIndex_toSrv.end(); it++) 166 { 167 int rank = it->first; 168 CArray<int,1>& index = it->second; 169 170 list_msg.push_back(CMessage()); 171 list_data.push_back(CArray<double,1>(index.numElements())); 172 173 CArray<double,1>& data_tmp = list_data.back(); 174 for (int n = 0; n < data_tmp.numElements(); n++) data_tmp(n) = data(index(n)); 175 176 list_msg.back() << getId() << data_tmp; 177 event.push(rank, grid->nbSenders[0][rank], list_msg.back()); 178 } 179 client->sendEvent(event); 180 } 167 int rank = it->first; 168 CArray<int,1>& index = it->second; 169 170 list_msg.push_back(CMessage()); 171 list_data.push_back(CArray<double,1>(index.numElements())); 172 173 CArray<double,1>& data_tmp = list_data.back(); 174 for (int n = 0; n < data_tmp.numElements(); n++) data_tmp(n) = data(index(n)); 175 176 list_msg.back() << getId() << data_tmp; 177 event.push(rank, grid->nbSenders[0][rank], list_msg.back()); 178 } 179 client->sendEvent(event); 180 } 181 181 182 182 CTimer::get("Field : send data").suspend(); … … 276 276 { 277 277 CContext* context = CContext::getCurrent(); 278 // CContextClient* client = context->client; 278 279 CContextClient* client = (!context->hasServer) ? context->client : this->file->getContextClient(); 279 280 280 281 281 lastDataRequestedFromServer = tsDataRequested; … … 336 336 CContext* context = CContext::getCurrent(); 337 337 CContextClient* client = context->client; 338 // CContextClient* client = (!context->hasServer) ? context->client : this->file->getContextClient(); 338 339 339 340 CEventClient event(getType(), EVENT_ID_READ_DATA_READY); … … 854 855 { 855 856 if (!isReferenceSolvedAndTransformed) solveAllEnabledFieldsAndTransform(); 857 858 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 859 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 860 856 861 CContext* context = CContext::getCurrent(); 857 862 bool hasWriterServer = context->hasServer && !context->hasClient; … … 906 911 if (grid && grid != gridRef && grid->hasTransform()) 907 912 { 908 bool hasMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 909 double defaultValue = hasMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 910 std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, hasMissingValue, defaultValue); 913 std::pair<boost::shared_ptr<CFilter>, boost::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, detectMissingValues, defaultValue); 911 914 912 915 filter->connectOutput(filters.first, 0); … … 924 927 instantDataFilter = serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 925 928 freq_offset.isEmpty() ? NoneDu : freq_offset, 926 true)); 929 true, 930 detectMissingValues, defaultValue)); 927 931 else // The data might be passed from the model 928 932 { 929 bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 930 double defaultValue = ignoreMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 933 if (check_if_active.isEmpty()) check_if_active = false; 931 934 instantDataFilter = clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 932 ignoreMissingValue, defaultValue));935 detectMissingValues, defaultValue)); 933 936 } 934 937 } … … 937 940 if (enableOutput && !storeFilter && !fileWriterFilter) 938 941 { 939 if (!read_access.isEmpty() && read_access) 940 { 941 storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid)); 942 instantDataFilter->connectOutput(storeFilter, 0); 943 } 944 945 if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 946 { 947 fileWriterFilter = boost::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 948 getTemporalDataFilter(gc, file->output_freq)->connectOutput(fileWriterFilter, 0); 949 } 942 storeFilter = boost::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid, 943 detectMissingValues, defaultValue)); 944 instantDataFilter->connectOutput(storeFilter, 0); 945 } 946 947 if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 948 { 949 fileWriterFilter = boost::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 950 getTemporalDataFilter(gc, file->output_freq)->connectOutput(fileWriterFilter, 0); 950 951 } 951 952 } … … 1001 1002 if (!selfReferenceFilter) 1002 1003 { 1004 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 1005 const double defaultValue = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 1006 1003 1007 if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 1004 1008 { … … 1006 1010 serverSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, 1007 1011 freq_offset.isEmpty() ? NoneDu : freq_offset, 1008 true)); 1012 true, 1013 detectMissingValues, defaultValue)); 1014 1009 1015 selfReferenceFilter = serverSourceFilter; 1010 1016 } … … 1019 1025 if (!clientSourceFilter) 1020 1026 { 1021 bool ignoreMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 1022 double defaultValue = ignoreMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 1027 if (check_if_active.isEmpty()) check_if_active = false; 1023 1028 clientSourceFilter = boost::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, NoneDu, false, 1024 ignoreMissingValue, defaultValue));1029 detectMissingValues, defaultValue)); 1025 1030 } 1026 1031 … … 1056 1061 freq_offset.setValue(NoneDu); 1057 1062 1058 const bool ignoreMissingValue= (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);1059 1063 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 1064 1060 1065 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 1061 1066 CContext::getCurrent()->getCalendar()->getInitDate(), 1062 1067 freq_op, freq_offset, outFreq, 1063 ignoreMissingValue, ignoreMissingValue? default_value : 0.0));1068 detectMissingValues, detectMissingValues ? default_value : 0.0)); 1064 1069 instantDataFilter->connectOutput(temporalFilter, 0); 1065 1070 … … 1096 1101 if (freq_offset.isEmpty()) freq_offset.setValue(NoneDu); 1097 1102 1098 const bool ignoreMissingValue= (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true);1103 const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 1099 1104 1100 1105 boost::shared_ptr<CTemporalFilter> temporalFilter(new CTemporalFilter(gc, operation, 1101 1106 CContext::getCurrent()->getCalendar()->getInitDate(), 1102 1107 freq_op, freq_offset, outFreq, 1103 ignoreMissingValue, ignoreMissingValue? default_value : 0.0));1108 detectMissingValues, detectMissingValues ? default_value : 0.0)); 1104 1109 selfReferenceFilter->connectOutput(temporalFilter, 0); 1105 1110 return temporalFilter ; -
XIOS/dev/dev_olga/src/node/field_impl.hpp
r1021 r1201 19 19 { 20 20 if (clientSourceFilter) 21 clientSourceFilter->streamData(CContext::getCurrent()->getCalendar()->getCurrentDate(), _data); 21 { 22 if (check_if_active.isEmpty() || (!check_if_active.isEmpty() && (!check_if_active) || isActive(true))) 23 clientSourceFilter->streamData(CContext::getCurrent()->getCalendar()->getCurrentDate(), _data); 24 } 22 25 else if (instantDataFilter) 23 26 ERROR("void CField::setData(const CArray<double, N>& _data)", -
XIOS/dev/dev_olga/src/node/file.cpp
r1158 r1201 425 425 if (!split_freq.isEmpty()) 426 426 { 427 CDate splitEnd = lastSplit + split_freq - 1 * Second; 427 CDate split_start ; 428 CDate splitEnd ; 429 if (!split_start_offset.isEmpty()) split_start=lastSplit + split_start_offset ; 430 else split_start=lastSplit ; 431 432 splitEnd = lastSplit + split_freq ; 433 if (!split_last_date.isEmpty()) 434 { 435 CDate splitLastDate=CDate::FromString(split_last_date,*CContext::getCurrent()->getCalendar()) ; 436 if( splitLastDate < splitEnd) splitEnd=splitLastDate ; 437 } 438 439 if (!split_end_offset.isEmpty()) splitEnd = splitEnd + split_end_offset; 440 else splitEnd = splitEnd - 1 * Second; 428 441 429 442 string splitFormat; … … 440 453 441 454 oss << firstPart ; 442 if (hasStartDate) oss << lastSplit.getStr(splitFormat) ;455 if (hasStartDate) oss << split_start.getStr(splitFormat) ; 443 456 oss << middlePart ; 444 457 if (hasEndDate) oss << splitEnd.getStr(splitFormat); -
XIOS/dev/dev_olga/src/node/grid.cpp
r1178 r1201 287 287 nbSrvPools = 1; 288 288 for (int p = 0; p < nbSrvPools; ++p) 289 { 290 if (context->hasClient && this->isChecked && doSendingIndex && !isIndexSent) 291 { 292 if (isScalarGrid()) 293 sendIndexScalarGrid(); 294 else 295 sendIndex(); 296 this->isIndexSent = true; 289 { 290 if (isScalarGrid()) 291 { 292 if (context->hasClient) 293 if (this->isChecked && doSendingIndex && !isIndexSent) { sendIndexScalarGrid(); this->isIndexSent = true; } 294 295 if (this->isChecked) continue; 296 297 if (context->hasClient) 298 { 299 this->computeIndexScalarGrid(); 300 } 301 302 if (!(this->hasTransform() && !this->isTransformed())) 303 this->isChecked = true; 304 continue; 297 305 } 298 306 299 // Not sure about this 300 //if (!(this->hasTransform() && !this->isTransformed())) 301 // this->isChecked = true; 302 //return; 307 if (context->hasClient) 308 { 309 if (this->isChecked && doSendingIndex && !isIndexSent) 310 {sendIndex(); this->isIndexSent = true;} 311 } 303 312 } 304 313 … … 537 546 if (computedWrittenIndex_) return; 538 547 computedWrittenIndex_ = true; 539 540 if (isScalarGrid())541 {542 size_t nbWritten = 1;543 int writtenIndex = 0;544 545 localIndexToWriteOnClient.resize(nbWritten);546 localIndexToWriteOnServer.resize(nbWritten);547 localIndexToWriteOnServer(0) = writtenIndex;548 localIndexToWriteOnClient(0) = writtenIndex;549 550 return;551 }552 548 553 549 size_t nbWritten = 0, indGlo; … … 750 746 { 751 747 CContext* context = CContext::getCurrent(); 752 if (isScalarGrid()) 748 computeClientIndex(); 749 if (context->hasClient) 753 750 { 754 computeClientIndexScalarGrid(); 755 if (context->hasClient) 756 { 757 computeConnectedClientsScalarGrid(); 758 } 759 } 760 else 761 { 762 computeClientIndex(); 763 if (context->hasClient) 764 { 765 computeConnectedClients(); 766 } 751 computeConnectedClients(); 767 752 } 768 753 } … … 1186 1171 } 1187 1172 1188 void CGrid::computeClientIndexScalarGrid() 1189 { 1190 CContext* context = CContext::getCurrent(); 1191 int nbSrvPools = (context->hasServer) ? (context->hasClient ? context->clientPrimServer.size() : 1) : 1; // This should be changed soon 1192 for (int p = 0; p < nbSrvPools; ++p) 1193 { 1194 CContextClient* client = (context->hasServer) ? (context->hasClient ? context->clientPrimServer[p] : context->client) 1195 : context->client; 1196 1197 storeIndex_client.resize(1); 1198 storeIndex_client(0) = 0; 1199 1200 if (0 != serverDistribution_) 1201 { 1202 map<int, CArray<size_t, 1> >::iterator itb = outGlobalIndexFromClient.begin(), 1203 ite = outGlobalIndexFromClient.end(), it; 1204 for (it = itb; it != ite; ++it) 1205 { 1206 int rank = it->first; 1207 CArray<size_t,1>& globalIndex = outGlobalIndexFromClient[rank]; 1208 outLocalIndexStoreOnClient.insert(make_pair(rank, CArray<size_t,1>(globalIndex.numElements()))); 1209 CArray<size_t,1>& localIndex = outLocalIndexStoreOnClient[rank]; 1210 if (1 != globalIndex.numElements()) 1211 ERROR("void CGrid::computeClientIndexScalarGrid()", 1212 << "Something wrong happened. " 1213 << "Number of received global index on scalar grid should equal to 1" 1214 << "Number of received global index " << globalIndex.numElements() << "."); 1215 1216 localIndex(0) = globalIndex(0); 1217 } 1218 } 1219 } 1220 } 1221 1222 void CGrid::computeConnectedClientsScalarGrid() 1173 void CGrid::computeIndexScalarGrid() 1223 1174 { 1224 1175 CContext* context = CContext::getCurrent(); … … 1230 1181 for (int p = 0; p < nbSrvPools; ++p) 1231 1182 { 1232 CContextClient* client = (context->hasServer) ? (context->hasClient ? context->clientPrimServer[p] : context->client) 1233 : context->client; 1183 CContextClient* client = context->hasServer ? context->clientPrimServer[p] : context->client; 1184 1185 storeIndex_client.resize(1); 1186 storeIndex_client(0) = 0; 1234 1187 1235 1188 connectedServerRank_[p].clear(); 1236 1189 1237 if (client->isServerLeader()) 1238 { 1239 const std::list<int>& ranks = client->getRanksServerLeader(); 1240 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 1241 { 1242 int rank = *itRank; 1243 int nb = 1; 1190 if (0 == client->clientRank) 1191 { 1192 for (int rank = 0; rank < client->serverSize; ++rank) 1193 { 1244 1194 connectedServerRank_[p].push_back(rank); 1245 connectedDataSize_[p][rank] = nb; 1246 nbSenders[p][rank] = nb; 1247 } 1248 } 1249 else 1250 { 1251 const std::list<int>& ranks = client->getRanksServerNotLeader(); 1252 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 1253 { 1254 int rank = *itRank; 1255 int nb = 1; 1256 connectedServerRank_[p].push_back(rank); 1257 connectedDataSize_[p][rank] = nb; 1258 nbSenders[p][rank] = nb; 1259 } 1260 } 1261 1195 connectedDataSize_[p][rank] = 1; 1196 nbSenders[p][rank] = 1; 1197 } 1198 } 1262 1199 isDataDistributed_ = false; 1263 1200 } -
XIOS/dev/dev_olga/src/node/grid.hpp
r1178 r1201 278 278 void computeClientIndex(); 279 279 void computeConnectedClients(); 280 void computeClientIndexScalarGrid();281 void computeConnectedClientsScalarGrid();282 280 283 281 private: -
XIOS/dev/dev_olga/src/node/zoom_axis.cpp
r836 r1201 46 46 axisGlobalSize = axisDest->n_glo.getValue(); 47 47 48 begin = (this->begin.isEmpty()) ? 0 : this->begin.getValue(); 49 n = (this->n.isEmpty()) ? axisGlobalSize : this->n.getValue(); 50 end = begin+n-1; 48 bool zoomByIndex = !this->index.isEmpty() && (0 != this->index.numElements()); 49 50 if (zoomByIndex) 51 { 52 begin = min(this->index); 53 end = max(this->index); 54 n = end - begin + 1; 55 } 56 else 57 { 58 begin = (this->begin.isEmpty()) ? 0 : this->begin.getValue(); 59 n = (this->n.isEmpty()) ? axisGlobalSize : this->n.getValue(); 60 end = begin+n-1; 61 } 51 62 52 63 if (begin < 0 || begin > axisGlobalSize - 1 || end < 0 || end > axisGlobalSize - 1 … … 55 66 << "One or more attributes among 'begin' (" << begin << "), 'end' (" << end << "), 'n' (" << n << ") " 56 67 << "of axis transformation [ id = '" << axisDest->getId() << "' , context = '" << CObjectFactory::GetCurrentContextId() << "' ] are not well specified"); 68 69 if (zoomByIndex && (!this->begin.isEmpty() || !this->n.isEmpty())) 70 ERROR("CZoomAxis::checkValid(CAxis* axisDest)", 71 << "Only one type of zoom is accepted. Define zoom by index with global_zoom_index or define zoom with begin and n. " 72 << "Axis transformation [ id = '" << axisDest->getId() << "' , context = '" << CObjectFactory::GetCurrentContextId() << "' ] are not well specified"); 57 73 58 74 this->begin.setValue(begin); -
XIOS/dev/dev_olga/src/server.cpp
r1184 r1201 484 484 } 485 485 486 // for(int i=1;i<size;i++)487 // {488 // MPI_Isend(buff,count,MPI_CHAR,i,2,intraComm,&requests[i-1]) ;489 // }490 // MPI_Waitall(size-1,requests,status) ;491 // registerContext(buff,count,it->second.leaderRank) ;492 493 486 recvContextId.erase(it) ; 494 487 delete [] requests ; -
XIOS/dev/dev_olga/src/transformation/axis_algorithm_zoom.hpp
r1144 r1201 48 48 StdSize zoomSize_; 49 49 50 std::vector<int> zoomIndex_; 51 50 52 private: 51 53 -
XIOS/dev/dev_olga/src/transformation/generic_algorithm_transformation.cpp
r1173 r1201 49 49 } 50 50 51 // If all data source are nan then data destination must be nan 51 52 for (int idx = 0; idx < nbLocalIndex; ++idx) 52 53 {
Note: See TracChangeset
for help on using the changeset viewer.