Changeset 1041
- Timestamp:
- 02/01/17 10:10:40 (6 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/config/var_attribute.conf
r527 r1041 1 1 DECLARE_TYPE(type) 2 2 DECLARE_ATTRIBUTE(StdString, name) 3 DECLARE_ENUM4(ts_target, file, field, both, none) -
XIOS/trunk/src/interface/c_attr/icvariable_attr.cpp
r591 r1041 44 44 45 45 46 void cxios_set_variable_ts_target(variable_Ptr variable_hdl, const char * ts_target, int ts_target_size) 47 { 48 std::string ts_target_str; 49 if (!cstr2string(ts_target, ts_target_size, ts_target_str)) return; 50 CTimer::get("XIOS").resume(); 51 variable_hdl->ts_target.fromString(ts_target_str); 52 CTimer::get("XIOS").suspend(); 53 } 54 55 void cxios_get_variable_ts_target(variable_Ptr variable_hdl, char * ts_target, int ts_target_size) 56 { 57 CTimer::get("XIOS").resume(); 58 if (!string_copy(variable_hdl->ts_target.getInheritedStringValue(), ts_target, ts_target_size)) 59 ERROR("void cxios_get_variable_ts_target(variable_Ptr variable_hdl, char * ts_target, int ts_target_size)", << "Input string is too short"); 60 CTimer::get("XIOS").suspend(); 61 } 62 63 bool cxios_is_defined_variable_ts_target(variable_Ptr variable_hdl) 64 { 65 CTimer::get("XIOS").resume(); 66 bool isDefined = variable_hdl->ts_target.hasInheritedValue(); 67 CTimer::get("XIOS").suspend(); 68 return isDefined; 69 } 70 71 46 72 void cxios_set_variable_type(variable_Ptr variable_hdl, const char * type, int type_size) 47 73 { -
XIOS/trunk/src/interface/c_attr/icvariablegroup_attr.cpp
r591 r1041 70 70 71 71 72 void cxios_set_variablegroup_ts_target(variablegroup_Ptr variablegroup_hdl, const char * ts_target, int ts_target_size) 73 { 74 std::string ts_target_str; 75 if (!cstr2string(ts_target, ts_target_size, ts_target_str)) return; 76 CTimer::get("XIOS").resume(); 77 variablegroup_hdl->ts_target.fromString(ts_target_str); 78 CTimer::get("XIOS").suspend(); 79 } 80 81 void cxios_get_variablegroup_ts_target(variablegroup_Ptr variablegroup_hdl, char * ts_target, int ts_target_size) 82 { 83 CTimer::get("XIOS").resume(); 84 if (!string_copy(variablegroup_hdl->ts_target.getInheritedStringValue(), ts_target, ts_target_size)) 85 ERROR("void cxios_get_variablegroup_ts_target(variablegroup_Ptr variablegroup_hdl, char * ts_target, int ts_target_size)", << "Input string is too short"); 86 CTimer::get("XIOS").suspend(); 87 } 88 89 bool cxios_is_defined_variablegroup_ts_target(variablegroup_Ptr variablegroup_hdl) 90 { 91 CTimer::get("XIOS").resume(); 92 bool isDefined = variablegroup_hdl->ts_target.hasInheritedValue(); 93 CTimer::get("XIOS").suspend(); 94 return isDefined; 95 } 96 97 72 98 void cxios_set_variablegroup_type(variablegroup_Ptr variablegroup_hdl, const char * type, int type_size) 73 99 { -
XIOS/trunk/src/interface/fortran_attr/ivariable_attr.F90
r966 r1041 12 12 13 13 SUBROUTINE xios(set_variable_attr) & 14 ( variable_id, name, t ype )14 ( variable_id, name, ts_target, type ) 15 15 16 16 IMPLICIT NONE … … 18 18 CHARACTER(LEN=*), INTENT(IN) ::variable_id 19 19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 20 21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 21 22 … … 23 24 (variable_id,variable_hdl) 24 25 CALL xios(set_variable_attr_hdl_) & 25 ( variable_hdl, name, t ype )26 ( variable_hdl, name, ts_target, type ) 26 27 27 28 END SUBROUTINE xios(set_variable_attr) 28 29 29 30 SUBROUTINE xios(set_variable_attr_hdl) & 30 ( variable_hdl, name, t ype )31 ( variable_hdl, name, ts_target, type ) 31 32 32 33 IMPLICIT NONE 33 34 TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 34 35 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 36 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 35 37 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 36 38 37 39 CALL xios(set_variable_attr_hdl_) & 38 ( variable_hdl, name, t ype )40 ( variable_hdl, name, ts_target, type ) 39 41 40 42 END SUBROUTINE xios(set_variable_attr_hdl) 41 43 42 44 SUBROUTINE xios(set_variable_attr_hdl_) & 43 ( variable_hdl, name_, t ype_ )45 ( variable_hdl, name_, ts_target_, type_ ) 44 46 45 47 IMPLICIT NONE 46 48 TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 47 49 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 50 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target_ 48 51 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 49 52 … … 51 54 CALL cxios_set_variable_name & 52 55 (variable_hdl%daddr, name_, len(name_)) 56 ENDIF 57 58 IF (PRESENT(ts_target_)) THEN 59 CALL cxios_set_variable_ts_target & 60 (variable_hdl%daddr, ts_target_, len(ts_target_)) 53 61 ENDIF 54 62 … … 61 69 62 70 SUBROUTINE xios(get_variable_attr) & 63 ( variable_id, name, t ype )71 ( variable_id, name, ts_target, type ) 64 72 65 73 IMPLICIT NONE … … 67 75 CHARACTER(LEN=*), INTENT(IN) ::variable_id 68 76 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 77 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 69 78 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 70 79 … … 72 81 (variable_id,variable_hdl) 73 82 CALL xios(get_variable_attr_hdl_) & 74 ( variable_hdl, name, t ype )83 ( variable_hdl, name, ts_target, type ) 75 84 76 85 END SUBROUTINE xios(get_variable_attr) 77 86 78 87 SUBROUTINE xios(get_variable_attr_hdl) & 79 ( variable_hdl, name, t ype )88 ( variable_hdl, name, ts_target, type ) 80 89 81 90 IMPLICIT NONE 82 91 TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 83 92 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 93 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 84 94 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 85 95 86 96 CALL xios(get_variable_attr_hdl_) & 87 ( variable_hdl, name, t ype )97 ( variable_hdl, name, ts_target, type ) 88 98 89 99 END SUBROUTINE xios(get_variable_attr_hdl) 90 100 91 101 SUBROUTINE xios(get_variable_attr_hdl_) & 92 ( variable_hdl, name_, t ype_ )102 ( variable_hdl, name_, ts_target_, type_ ) 93 103 94 104 IMPLICIT NONE 95 105 TYPE(txios(variable)) , INTENT(IN) :: variable_hdl 96 106 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 107 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target_ 97 108 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 98 109 … … 100 111 CALL cxios_get_variable_name & 101 112 (variable_hdl%daddr, name_, len(name_)) 113 ENDIF 114 115 IF (PRESENT(ts_target_)) THEN 116 CALL cxios_get_variable_ts_target & 117 (variable_hdl%daddr, ts_target_, len(ts_target_)) 102 118 ENDIF 103 119 … … 110 126 111 127 SUBROUTINE xios(is_defined_variable_attr) & 112 ( variable_id, name, t ype )128 ( variable_id, name, ts_target, type ) 113 129 114 130 IMPLICIT NONE … … 117 133 LOGICAL, OPTIONAL, INTENT(OUT) :: name 118 134 LOGICAL(KIND=C_BOOL) :: name_tmp 135 LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 136 LOGICAL(KIND=C_BOOL) :: ts_target_tmp 119 137 LOGICAL, OPTIONAL, INTENT(OUT) :: type 120 138 LOGICAL(KIND=C_BOOL) :: type_tmp … … 123 141 (variable_id,variable_hdl) 124 142 CALL xios(is_defined_variable_attr_hdl_) & 125 ( variable_hdl, name, t ype )143 ( variable_hdl, name, ts_target, type ) 126 144 127 145 END SUBROUTINE xios(is_defined_variable_attr) 128 146 129 147 SUBROUTINE xios(is_defined_variable_attr_hdl) & 130 ( variable_hdl, name, t ype )148 ( variable_hdl, name, ts_target, type ) 131 149 132 150 IMPLICIT NONE … … 134 152 LOGICAL, OPTIONAL, INTENT(OUT) :: name 135 153 LOGICAL(KIND=C_BOOL) :: name_tmp 154 LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 155 LOGICAL(KIND=C_BOOL) :: ts_target_tmp 136 156 LOGICAL, OPTIONAL, INTENT(OUT) :: type 137 157 LOGICAL(KIND=C_BOOL) :: type_tmp 138 158 139 159 CALL xios(is_defined_variable_attr_hdl_) & 140 ( variable_hdl, name, t ype )160 ( variable_hdl, name, ts_target, type ) 141 161 142 162 END SUBROUTINE xios(is_defined_variable_attr_hdl) 143 163 144 164 SUBROUTINE xios(is_defined_variable_attr_hdl_) & 145 ( variable_hdl, name_, t ype_ )165 ( variable_hdl, name_, ts_target_, type_ ) 146 166 147 167 IMPLICIT NONE … … 149 169 LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 150 170 LOGICAL(KIND=C_BOOL) :: name__tmp 171 LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target_ 172 LOGICAL(KIND=C_BOOL) :: ts_target__tmp 151 173 LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 152 174 LOGICAL(KIND=C_BOOL) :: type__tmp … … 156 178 (variable_hdl%daddr) 157 179 name_ = name__tmp 180 ENDIF 181 182 IF (PRESENT(ts_target_)) THEN 183 ts_target__tmp = cxios_is_defined_variable_ts_target & 184 (variable_hdl%daddr) 185 ts_target_ = ts_target__tmp 158 186 ENDIF 159 187 -
XIOS/trunk/src/interface/fortran_attr/ivariablegroup_attr.F90
r966 r1041 12 12 13 13 SUBROUTINE xios(set_variablegroup_attr) & 14 ( variablegroup_id, group_ref, name, t ype )14 ( variablegroup_id, group_ref, name, ts_target, type ) 15 15 16 16 IMPLICIT NONE … … 19 19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 20 20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 21 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 22 23 … … 24 25 (variablegroup_id,variablegroup_hdl) 25 26 CALL xios(set_variablegroup_attr_hdl_) & 26 ( variablegroup_hdl, group_ref, name, t ype )27 ( variablegroup_hdl, group_ref, name, ts_target, type ) 27 28 28 29 END SUBROUTINE xios(set_variablegroup_attr) 29 30 30 31 SUBROUTINE xios(set_variablegroup_attr_hdl) & 31 ( variablegroup_hdl, group_ref, name, t ype )32 ( variablegroup_hdl, group_ref, name, ts_target, type ) 32 33 33 34 IMPLICIT NONE … … 35 36 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref 36 37 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name 38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target 37 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 38 40 39 41 CALL xios(set_variablegroup_attr_hdl_) & 40 ( variablegroup_hdl, group_ref, name, t ype )42 ( variablegroup_hdl, group_ref, name, ts_target, type ) 41 43 42 44 END SUBROUTINE xios(set_variablegroup_attr_hdl) 43 45 44 46 SUBROUTINE xios(set_variablegroup_attr_hdl_) & 45 ( variablegroup_hdl, group_ref_, name_, t ype_ )47 ( variablegroup_hdl, group_ref_, name_, ts_target_, type_ ) 46 48 47 49 IMPLICIT NONE … … 49 51 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref_ 50 52 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ 53 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_target_ 51 54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 52 55 … … 61 64 ENDIF 62 65 66 IF (PRESENT(ts_target_)) THEN 67 CALL cxios_set_variablegroup_ts_target & 68 (variablegroup_hdl%daddr, ts_target_, len(ts_target_)) 69 ENDIF 70 63 71 IF (PRESENT(type_)) THEN 64 72 CALL cxios_set_variablegroup_type & … … 69 77 70 78 SUBROUTINE xios(get_variablegroup_attr) & 71 ( variablegroup_id, group_ref, name, t ype )79 ( variablegroup_id, group_ref, name, ts_target, type ) 72 80 73 81 IMPLICIT NONE … … 76 84 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 77 85 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 86 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 78 87 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 79 88 … … 81 90 (variablegroup_id,variablegroup_hdl) 82 91 CALL xios(get_variablegroup_attr_hdl_) & 83 ( variablegroup_hdl, group_ref, name, t ype )92 ( variablegroup_hdl, group_ref, name, ts_target, type ) 84 93 85 94 END SUBROUTINE xios(get_variablegroup_attr) 86 95 87 96 SUBROUTINE xios(get_variablegroup_attr_hdl) & 88 ( variablegroup_hdl, group_ref, name, t ype )97 ( variablegroup_hdl, group_ref, name, ts_target, type ) 89 98 90 99 IMPLICIT NONE … … 92 101 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref 93 102 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name 103 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target 94 104 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 95 105 96 106 CALL xios(get_variablegroup_attr_hdl_) & 97 ( variablegroup_hdl, group_ref, name, t ype )107 ( variablegroup_hdl, group_ref, name, ts_target, type ) 98 108 99 109 END SUBROUTINE xios(get_variablegroup_attr_hdl) 100 110 101 111 SUBROUTINE xios(get_variablegroup_attr_hdl_) & 102 ( variablegroup_hdl, group_ref_, name_, t ype_ )112 ( variablegroup_hdl, group_ref_, name_, ts_target_, type_ ) 103 113 104 114 IMPLICIT NONE … … 106 116 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: group_ref_ 107 117 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_ 118 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: ts_target_ 108 119 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 109 120 … … 118 129 ENDIF 119 130 131 IF (PRESENT(ts_target_)) THEN 132 CALL cxios_get_variablegroup_ts_target & 133 (variablegroup_hdl%daddr, ts_target_, len(ts_target_)) 134 ENDIF 135 120 136 IF (PRESENT(type_)) THEN 121 137 CALL cxios_get_variablegroup_type & … … 126 142 127 143 SUBROUTINE xios(is_defined_variablegroup_attr) & 128 ( variablegroup_id, group_ref, name, t ype )144 ( variablegroup_id, group_ref, name, ts_target, type ) 129 145 130 146 IMPLICIT NONE … … 135 151 LOGICAL, OPTIONAL, INTENT(OUT) :: name 136 152 LOGICAL(KIND=C_BOOL) :: name_tmp 153 LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 154 LOGICAL(KIND=C_BOOL) :: ts_target_tmp 137 155 LOGICAL, OPTIONAL, INTENT(OUT) :: type 138 156 LOGICAL(KIND=C_BOOL) :: type_tmp … … 141 159 (variablegroup_id,variablegroup_hdl) 142 160 CALL xios(is_defined_variablegroup_attr_hdl_) & 143 ( variablegroup_hdl, group_ref, name, t ype )161 ( variablegroup_hdl, group_ref, name, ts_target, type ) 144 162 145 163 END SUBROUTINE xios(is_defined_variablegroup_attr) 146 164 147 165 SUBROUTINE xios(is_defined_variablegroup_attr_hdl) & 148 ( variablegroup_hdl, group_ref, name, t ype )166 ( variablegroup_hdl, group_ref, name, ts_target, type ) 149 167 150 168 IMPLICIT NONE … … 154 172 LOGICAL, OPTIONAL, INTENT(OUT) :: name 155 173 LOGICAL(KIND=C_BOOL) :: name_tmp 174 LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target 175 LOGICAL(KIND=C_BOOL) :: ts_target_tmp 156 176 LOGICAL, OPTIONAL, INTENT(OUT) :: type 157 177 LOGICAL(KIND=C_BOOL) :: type_tmp 158 178 159 179 CALL xios(is_defined_variablegroup_attr_hdl_) & 160 ( variablegroup_hdl, group_ref, name, t ype )180 ( variablegroup_hdl, group_ref, name, ts_target, type ) 161 181 162 182 END SUBROUTINE xios(is_defined_variablegroup_attr_hdl) 163 183 164 184 SUBROUTINE xios(is_defined_variablegroup_attr_hdl_) & 165 ( variablegroup_hdl, group_ref_, name_, t ype_ )185 ( variablegroup_hdl, group_ref_, name_, ts_target_, type_ ) 166 186 167 187 IMPLICIT NONE … … 171 191 LOGICAL, OPTIONAL, INTENT(OUT) :: name_ 172 192 LOGICAL(KIND=C_BOOL) :: name__tmp 193 LOGICAL, OPTIONAL, INTENT(OUT) :: ts_target_ 194 LOGICAL(KIND=C_BOOL) :: ts_target__tmp 173 195 LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 174 196 LOGICAL(KIND=C_BOOL) :: type__tmp … … 186 208 ENDIF 187 209 210 IF (PRESENT(ts_target_)) THEN 211 ts_target__tmp = cxios_is_defined_variablegroup_ts_target & 212 (variablegroup_hdl%daddr) 213 ts_target_ = ts_target__tmp 214 ENDIF 215 188 216 IF (PRESENT(type_)) THEN 189 217 type__tmp = cxios_is_defined_variablegroup_type & -
XIOS/trunk/src/interface/fortran_attr/variable_interface_attr.F90
r581 r1041 31 31 32 32 33 SUBROUTINE cxios_set_variable_ts_target(variable_hdl, ts_target, ts_target_size) BIND(C) 34 USE ISO_C_BINDING 35 INTEGER (kind = C_INTPTR_T), VALUE :: variable_hdl 36 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: ts_target 37 INTEGER (kind = C_INT) , VALUE :: ts_target_size 38 END SUBROUTINE cxios_set_variable_ts_target 39 40 SUBROUTINE cxios_get_variable_ts_target(variable_hdl, ts_target, ts_target_size) BIND(C) 41 USE ISO_C_BINDING 42 INTEGER (kind = C_INTPTR_T), VALUE :: variable_hdl 43 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: ts_target 44 INTEGER (kind = C_INT) , VALUE :: ts_target_size 45 END SUBROUTINE cxios_get_variable_ts_target 46 47 FUNCTION cxios_is_defined_variable_ts_target(variable_hdl) BIND(C) 48 USE ISO_C_BINDING 49 LOGICAL(kind=C_BOOL) :: cxios_is_defined_variable_ts_target 50 INTEGER (kind = C_INTPTR_T), VALUE :: variable_hdl 51 END FUNCTION cxios_is_defined_variable_ts_target 52 53 33 54 SUBROUTINE cxios_set_variable_type(variable_hdl, type, type_size) BIND(C) 34 55 USE ISO_C_BINDING -
XIOS/trunk/src/interface/fortran_attr/variablegroup_interface_attr.F90
r581 r1041 52 52 53 53 54 SUBROUTINE cxios_set_variablegroup_ts_target(variablegroup_hdl, ts_target, ts_target_size) BIND(C) 55 USE ISO_C_BINDING 56 INTEGER (kind = C_INTPTR_T), VALUE :: variablegroup_hdl 57 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: ts_target 58 INTEGER (kind = C_INT) , VALUE :: ts_target_size 59 END SUBROUTINE cxios_set_variablegroup_ts_target 60 61 SUBROUTINE cxios_get_variablegroup_ts_target(variablegroup_hdl, ts_target, ts_target_size) BIND(C) 62 USE ISO_C_BINDING 63 INTEGER (kind = C_INTPTR_T), VALUE :: variablegroup_hdl 64 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: ts_target 65 INTEGER (kind = C_INT) , VALUE :: ts_target_size 66 END SUBROUTINE cxios_get_variablegroup_ts_target 67 68 FUNCTION cxios_is_defined_variablegroup_ts_target(variablegroup_hdl) BIND(C) 69 USE ISO_C_BINDING 70 LOGICAL(kind=C_BOOL) :: cxios_is_defined_variablegroup_ts_target 71 INTEGER (kind = C_INTPTR_T), VALUE :: variablegroup_hdl 72 END FUNCTION cxios_is_defined_variablegroup_ts_target 73 74 54 75 SUBROUTINE cxios_set_variablegroup_type(variablegroup_hdl, type, type_size) BIND(C) 55 76 USE ISO_C_BINDING -
XIOS/trunk/src/node/context.cpp
r1033 r1041 1002 1002 CFile* file = allFiles[i]; 1003 1003 1004 std::vector<CVariable*> fileVars, fieldVars, vars = file->getAllVariables(); 1005 for (size_t k = 0; k < vars.size(); k++) 1006 { 1007 CVariable* var = vars[k]; 1008 1009 if (var->ts_target.isEmpty() 1010 || var->ts_target == CVariable::ts_target_attr::file || var->ts_target == CVariable::ts_target_attr::both) 1011 fileVars.push_back(var); 1012 1013 if (!var->ts_target.isEmpty() 1014 && (var->ts_target == CVariable::ts_target_attr::field || var->ts_target == CVariable::ts_target_attr::both)) 1015 fieldVars.push_back(var); 1016 } 1017 1004 1018 if (!file->timeseries.isEmpty() && file->timeseries != CFile::timeseries_attr::none) 1005 1019 { … … 1015 1029 CFile* tsFile = CFile::create(); 1016 1030 tsFile->duplicateAttributes(file); 1017 tsFile->setVirtualVariableGroup(file->getVirtualVariableGroup()); 1031 1032 // Add variables originating from file and targeted to timeserie file 1033 for (size_t k = 0; k < fileVars.size(); k++) 1034 tsFile->getVirtualVariableGroup()->addChild(fileVars[k]); 1018 1035 1019 1036 tsFile->name = tsPrefix + "_"; … … 1030 1047 CField* tsField = tsFile->addField(); 1031 1048 tsField->field_ref = field->getId(); 1032 tsField->setVirtualVariableGroup(field->getVirtualVariableGroup()); 1049 1050 // Add variables originating from file and targeted to timeserie field 1051 for (size_t k = 0; k < fieldVars.size(); k++) 1052 tsField->getVirtualVariableGroup()->addChild(fieldVars[k]); 1053 1054 vars = field->getAllVariables(); 1055 for (size_t k = 0; k < vars.size(); k++) 1056 { 1057 CVariable* var = vars[k]; 1058 1059 // Add variables originating from field and targeted to timeserie field 1060 if (var->ts_target.isEmpty() 1061 || var->ts_target == CVariable::ts_target_attr::field || var->ts_target == CVariable::ts_target_attr::both) 1062 tsField->getVirtualVariableGroup()->addChild(var); 1063 1064 // Add variables originating from field and targeted to timeserie file 1065 if (!var->ts_target.isEmpty() 1066 && (var->ts_target == CVariable::ts_target_attr::file || var->ts_target == CVariable::ts_target_attr::both)) 1067 tsFile->getVirtualVariableGroup()->addChild(var); 1068 } 1033 1069 1034 1070 tsFile->solveFieldRefInheritance(true); -
XIOS/trunk/src/node/variable.hpp
r773 r1041 9 9 #include "attribute_enum.hpp" 10 10 #include "attribute_enum_impl.hpp" 11 #include "declare_attribute.hpp" 11 12 12 13 namespace xios
Note: See TracChangeset
for help on using the changeset viewer.