- Timestamp:
- 01/21/14 15:28:59 (10 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/array_new.hpp
r404 r464 7 7 #include "buffer_out.hpp" 8 8 #include "message.hpp" 9 #include <cmath> 9 10 10 11 using namespace blitz ; 12 BZ_DECLARE_FUNCTION(round) 11 13 namespace xios 12 14 { 13 14 15 15 16 template <typename T_numtype,int N_rank> -
XIOS/trunk/src/config/field_attribute.conf
r463 r464 21 21 DECLARE_ATTRIBUTE(double, valid_min) 22 22 DECLARE_ATTRIBUTE(double, valid_max) 23 DECLARE_ATTRIBUTE(double, add_offset) 24 DECLARE_ATTRIBUTE(double, scale_factor) -
XIOS/trunk/src/interface/c_attr/icfield_attr.cpp
r463 r464 17 17 typedef xios::CField* field_Ptr; 18 18 19 void cxios_set_field_add_offset(field_Ptr field_hdl, double add_offset) 20 { 21 CTimer::get("XIOS").resume(); 22 field_hdl->add_offset.setValue(add_offset); 23 field_hdl->sendAttributToServer(field_hdl->add_offset); 24 CTimer::get("XIOS").suspend(); 25 } 26 27 void cxios_get_field_add_offset(field_Ptr field_hdl, double* add_offset) 28 { 29 *add_offset = field_hdl->add_offset.getInheritedValue(); 30 } 31 32 bool cxios_is_defined_field_add_offset(field_Ptr field_hdl ) 33 { 34 CTimer::get("XIOS").resume(); 35 return field_hdl->add_offset.hasInheritedValue(); 36 CTimer::get("XIOS").suspend(); 37 } 38 39 40 19 41 void cxios_set_field_axis_ref(field_Ptr field_hdl, const char * axis_ref, int axis_ref_size) 20 42 { … … 348 370 349 371 372 void cxios_set_field_scale_factor(field_Ptr field_hdl, double scale_factor) 373 { 374 CTimer::get("XIOS").resume(); 375 field_hdl->scale_factor.setValue(scale_factor); 376 field_hdl->sendAttributToServer(field_hdl->scale_factor); 377 CTimer::get("XIOS").suspend(); 378 } 379 380 void cxios_get_field_scale_factor(field_Ptr field_hdl, double* scale_factor) 381 { 382 *scale_factor = field_hdl->scale_factor.getInheritedValue(); 383 } 384 385 bool cxios_is_defined_field_scale_factor(field_Ptr field_hdl ) 386 { 387 CTimer::get("XIOS").resume(); 388 return field_hdl->scale_factor.hasInheritedValue(); 389 CTimer::get("XIOS").suspend(); 390 } 391 392 393 350 394 void cxios_set_field_standard_name(field_Ptr field_hdl, const char * standard_name, int standard_name_size) 351 395 { -
XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp
r463 r464 17 17 typedef xios::CFieldGroup* fieldgroup_Ptr; 18 18 19 void cxios_set_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl, double add_offset) 20 { 21 CTimer::get("XIOS").resume(); 22 fieldgroup_hdl->add_offset.setValue(add_offset); 23 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->add_offset); 24 CTimer::get("XIOS").suspend(); 25 } 26 27 void cxios_get_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl, double* add_offset) 28 { 29 *add_offset = fieldgroup_hdl->add_offset.getInheritedValue(); 30 } 31 32 bool cxios_is_defined_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl ) 33 { 34 CTimer::get("XIOS").resume(); 35 return fieldgroup_hdl->add_offset.hasInheritedValue(); 36 CTimer::get("XIOS").suspend(); 37 } 38 39 40 19 41 void cxios_set_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl, const char * axis_ref, int axis_ref_size) 20 42 { … … 375 397 376 398 399 void cxios_set_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl, double scale_factor) 400 { 401 CTimer::get("XIOS").resume(); 402 fieldgroup_hdl->scale_factor.setValue(scale_factor); 403 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->scale_factor); 404 CTimer::get("XIOS").suspend(); 405 } 406 407 void cxios_get_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl, double* scale_factor) 408 { 409 *scale_factor = fieldgroup_hdl->scale_factor.getInheritedValue(); 410 } 411 412 bool cxios_is_defined_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl ) 413 { 414 CTimer::get("XIOS").resume(); 415 return fieldgroup_hdl->scale_factor.hasInheritedValue(); 416 CTimer::get("XIOS").suspend(); 417 } 418 419 420 377 421 void cxios_set_fieldgroup_standard_name(fieldgroup_Ptr fieldgroup_hdl, const char * standard_name, int standard_name_size) 378 422 { -
XIOS/trunk/src/interface/fortran_attr/field_interface_attr.f90
r463 r464 9 9 10 10 11 SUBROUTINE cxios_set_field_add_offset(field_hdl, add_offset) BIND(C) 12 USE ISO_C_BINDING 13 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 14 REAL (KIND=C_DOUBLE) , VALUE :: add_offset 15 END SUBROUTINE cxios_set_field_add_offset 16 17 SUBROUTINE cxios_get_field_add_offset(field_hdl, add_offset) BIND(C) 18 USE ISO_C_BINDING 19 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 20 REAL (KIND=C_DOUBLE) :: add_offset 21 END SUBROUTINE cxios_get_field_add_offset 22 23 FUNCTION cxios_is_defined_field_add_offset(field_hdl ) BIND(C) 24 USE ISO_C_BINDING 25 LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_add_offset 26 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 27 END FUNCTION cxios_is_defined_field_add_offset 28 29 11 30 SUBROUTINE cxios_set_field_axis_ref(field_hdl, axis_ref, axis_ref_size) BIND(C) 12 31 USE ISO_C_BINDING … … 274 293 275 294 295 SUBROUTINE cxios_set_field_scale_factor(field_hdl, scale_factor) BIND(C) 296 USE ISO_C_BINDING 297 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 298 REAL (KIND=C_DOUBLE) , VALUE :: scale_factor 299 END SUBROUTINE cxios_set_field_scale_factor 300 301 SUBROUTINE cxios_get_field_scale_factor(field_hdl, scale_factor) BIND(C) 302 USE ISO_C_BINDING 303 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 304 REAL (KIND=C_DOUBLE) :: scale_factor 305 END SUBROUTINE cxios_get_field_scale_factor 306 307 FUNCTION cxios_is_defined_field_scale_factor(field_hdl ) BIND(C) 308 USE ISO_C_BINDING 309 LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_scale_factor 310 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 311 END FUNCTION cxios_is_defined_field_scale_factor 312 313 276 314 SUBROUTINE cxios_set_field_standard_name(field_hdl, standard_name, standard_name_size) BIND(C) 277 315 USE ISO_C_BINDING -
XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.f90
r463 r464 9 9 10 10 11 SUBROUTINE cxios_set_fieldgroup_add_offset(fieldgroup_hdl, add_offset) BIND(C) 12 USE ISO_C_BINDING 13 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 14 REAL (KIND=C_DOUBLE) , VALUE :: add_offset 15 END SUBROUTINE cxios_set_fieldgroup_add_offset 16 17 SUBROUTINE cxios_get_fieldgroup_add_offset(fieldgroup_hdl, add_offset) BIND(C) 18 USE ISO_C_BINDING 19 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 20 REAL (KIND=C_DOUBLE) :: add_offset 21 END SUBROUTINE cxios_get_fieldgroup_add_offset 22 23 FUNCTION cxios_is_defined_fieldgroup_add_offset(fieldgroup_hdl ) BIND(C) 24 USE ISO_C_BINDING 25 LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_add_offset 26 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 27 END FUNCTION cxios_is_defined_fieldgroup_add_offset 28 29 11 30 SUBROUTINE cxios_set_fieldgroup_axis_ref(fieldgroup_hdl, axis_ref, axis_ref_size) BIND(C) 12 31 USE ISO_C_BINDING … … 295 314 296 315 316 SUBROUTINE cxios_set_fieldgroup_scale_factor(fieldgroup_hdl, scale_factor) BIND(C) 317 USE ISO_C_BINDING 318 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 319 REAL (KIND=C_DOUBLE) , VALUE :: scale_factor 320 END SUBROUTINE cxios_set_fieldgroup_scale_factor 321 322 SUBROUTINE cxios_get_fieldgroup_scale_factor(fieldgroup_hdl, scale_factor) BIND(C) 323 USE ISO_C_BINDING 324 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 325 REAL (KIND=C_DOUBLE) :: scale_factor 326 END SUBROUTINE cxios_get_fieldgroup_scale_factor 327 328 FUNCTION cxios_is_defined_fieldgroup_scale_factor(fieldgroup_hdl ) BIND(C) 329 USE ISO_C_BINDING 330 LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_scale_factor 331 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 332 END FUNCTION cxios_is_defined_fieldgroup_scale_factor 333 334 297 335 SUBROUTINE cxios_set_fieldgroup_standard_name(fieldgroup_hdl, standard_name, standard_name_size) BIND(C) 298 336 USE ISO_C_BINDING -
XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90
r463 r464 12 12 13 13 SUBROUTINE xios(set_field_attr) & 14 ( field_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 15 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 14 ( field_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 15 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 16 , valid_max, valid_min ) 16 17 17 18 IMPLICIT NONE 18 19 TYPE(txios(field)) :: field_hdl 19 20 CHARACTER(LEN=*), INTENT(IN) ::field_id 21 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset 20 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 21 23 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 32 34 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 33 35 INTEGER , OPTIONAL, INTENT(IN) :: prec 36 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 34 37 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 35 38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit … … 39 42 CALL xios(get_field_handle)(field_id,field_hdl) 40 43 CALL xios(set_field_attr_hdl_) & 41 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 42 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 44 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 45 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 46 , valid_max, valid_min ) 43 47 44 48 END SUBROUTINE xios(set_field_attr) 45 49 46 50 SUBROUTINE xios(set_field_attr_hdl) & 47 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 48 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 51 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 52 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 53 , valid_max, valid_min ) 49 54 50 55 IMPLICIT NONE 51 56 TYPE(txios(field)) , INTENT(IN) :: field_hdl 57 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset 52 58 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 53 59 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 64 70 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 65 71 INTEGER , OPTIONAL, INTENT(IN) :: prec 72 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 66 73 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 67 74 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit … … 70 77 71 78 CALL xios(set_field_attr_hdl_) & 72 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 73 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 79 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 80 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 81 , valid_max, valid_min ) 74 82 75 83 END SUBROUTINE xios(set_field_attr_hdl) 76 84 77 85 SUBROUTINE xios(set_field_attr_hdl_) & 78 ( field_hdl, a xis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_ &79 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_, valid_max_ &80 , valid_min_ )86 ( field_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ & 87 , freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_, scale_factor_, standard_name_ & 88 , unit_, valid_max_, valid_min_ ) 81 89 82 90 IMPLICIT NONE 83 91 TYPE(txios(field)) , INTENT(IN) :: field_hdl 92 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_ 84 93 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 85 94 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ … … 96 105 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_ 97 106 INTEGER , OPTIONAL, INTENT(IN) :: prec_ 107 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor_ 98 108 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 99 109 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ … … 101 111 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min_ 102 112 113 IF (PRESENT(add_offset_)) THEN 114 CALL cxios_set_field_add_offset(field_hdl%daddr, add_offset_) 115 ENDIF 116 103 117 IF (PRESENT(axis_ref_)) THEN 104 118 CALL cxios_set_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_)) … … 154 168 ENDIF 155 169 170 IF (PRESENT(scale_factor_)) THEN 171 CALL cxios_set_field_scale_factor(field_hdl%daddr, scale_factor_) 172 ENDIF 173 156 174 IF (PRESENT(standard_name_)) THEN 157 175 CALL cxios_set_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_)) … … 175 193 176 194 SUBROUTINE xios(get_field_attr) & 177 ( field_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 178 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 195 ( field_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 196 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 197 , valid_max, valid_min ) 179 198 180 199 IMPLICIT NONE 181 200 TYPE(txios(field)) :: field_hdl 182 201 CHARACTER(LEN=*), INTENT(IN) ::field_id 202 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset 183 203 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 184 204 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 195 215 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 196 216 INTEGER , OPTIONAL, INTENT(OUT) :: prec 217 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 197 218 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 198 219 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit … … 202 223 CALL xios(get_field_handle)(field_id,field_hdl) 203 224 CALL xios(get_field_attr_hdl_) & 204 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 205 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 225 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 226 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 227 , valid_max, valid_min ) 206 228 207 229 END SUBROUTINE xios(get_field_attr) 208 230 209 231 SUBROUTINE xios(get_field_attr_hdl) & 210 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 211 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 232 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 233 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 234 , valid_max, valid_min ) 212 235 213 236 IMPLICIT NONE 214 237 TYPE(txios(field)) , INTENT(IN) :: field_hdl 238 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset 215 239 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 216 240 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 227 251 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 228 252 INTEGER , OPTIONAL, INTENT(OUT) :: prec 253 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 229 254 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 230 255 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit … … 233 258 234 259 CALL xios(get_field_attr_hdl_) & 235 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 236 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 260 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 261 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 262 , valid_max, valid_min ) 237 263 238 264 END SUBROUTINE xios(get_field_attr_hdl) 239 265 240 266 SUBROUTINE xios(get_field_attr_hdl_) & 241 ( field_hdl, a xis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_ &242 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_, valid_max_ &243 , valid_min_ )267 ( field_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ & 268 , freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_, scale_factor_, standard_name_ & 269 , unit_, valid_max_, valid_min_ ) 244 270 245 271 IMPLICIT NONE 246 272 TYPE(txios(field)) , INTENT(IN) :: field_hdl 273 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_ 247 274 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 248 275 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ … … 259 286 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_ 260 287 INTEGER , OPTIONAL, INTENT(OUT) :: prec_ 288 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor_ 261 289 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 262 290 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_ … … 264 292 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min_ 265 293 294 IF (PRESENT(add_offset_)) THEN 295 CALL cxios_get_field_add_offset(field_hdl%daddr, add_offset_) 296 ENDIF 297 266 298 IF (PRESENT(axis_ref_)) THEN 267 299 CALL cxios_get_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_)) … … 317 349 ENDIF 318 350 351 IF (PRESENT(scale_factor_)) THEN 352 CALL cxios_get_field_scale_factor(field_hdl%daddr, scale_factor_) 353 ENDIF 354 319 355 IF (PRESENT(standard_name_)) THEN 320 356 CALL cxios_get_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_)) … … 338 374 339 375 SUBROUTINE xios(is_defined_field_attr) & 340 ( field_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 341 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 376 ( field_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 377 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 378 , valid_max, valid_min ) 342 379 343 380 IMPLICIT NONE 344 381 TYPE(txios(field)) :: field_hdl 345 382 CHARACTER(LEN=*), INTENT(IN) ::field_id 383 LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset 384 LOGICAL(KIND=C_BOOL) :: add_offset_tmp 346 385 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 347 386 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp … … 370 409 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 371 410 LOGICAL(KIND=C_BOOL) :: prec_tmp 411 LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 412 LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 372 413 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 373 414 LOGICAL(KIND=C_BOOL) :: standard_name_tmp … … 381 422 CALL xios(get_field_handle)(field_id,field_hdl) 382 423 CALL xios(is_defined_field_attr_hdl_) & 383 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 384 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 424 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 425 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 426 , valid_max, valid_min ) 385 427 386 428 END SUBROUTINE xios(is_defined_field_attr) 387 429 388 430 SUBROUTINE xios(is_defined_field_attr_hdl) & 389 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 390 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 431 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 432 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 433 , valid_max, valid_min ) 391 434 392 435 IMPLICIT NONE 393 436 TYPE(txios(field)) , INTENT(IN) :: field_hdl 437 LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset 438 LOGICAL(KIND=C_BOOL) :: add_offset_tmp 394 439 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 395 440 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp … … 418 463 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 419 464 LOGICAL(KIND=C_BOOL) :: prec_tmp 465 LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 466 LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 420 467 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 421 468 LOGICAL(KIND=C_BOOL) :: standard_name_tmp … … 428 475 429 476 CALL xios(is_defined_field_attr_hdl_) & 430 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 431 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 477 ( field_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 478 , freq_op, grid_ref, level, long_name, name, operation, prec, scale_factor, standard_name, unit & 479 , valid_max, valid_min ) 432 480 433 481 END SUBROUTINE xios(is_defined_field_attr_hdl) 434 482 435 483 SUBROUTINE xios(is_defined_field_attr_hdl_) & 436 ( field_hdl, a xis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_ &437 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_, valid_max_ &438 , valid_min_ )484 ( field_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ & 485 , freq_op_, grid_ref_, level_, long_name_, name_, operation_, prec_, scale_factor_, standard_name_ & 486 , unit_, valid_max_, valid_min_ ) 439 487 440 488 IMPLICIT NONE 441 489 TYPE(txios(field)) , INTENT(IN) :: field_hdl 490 LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset_ 491 LOGICAL(KIND=C_BOOL) :: add_offset__tmp 442 492 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_ 443 493 LOGICAL(KIND=C_BOOL) :: axis_ref__tmp … … 466 516 LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 467 517 LOGICAL(KIND=C_BOOL) :: prec__tmp 518 LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor_ 519 LOGICAL(KIND=C_BOOL) :: scale_factor__tmp 468 520 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_ 469 521 LOGICAL(KIND=C_BOOL) :: standard_name__tmp … … 475 527 LOGICAL(KIND=C_BOOL) :: valid_min__tmp 476 528 529 IF (PRESENT(add_offset_)) THEN 530 add_offset__tmp=cxios_is_defined_field_add_offset(field_hdl%daddr) 531 add_offset_=add_offset__tmp 532 ENDIF 533 477 534 IF (PRESENT(axis_ref_)) THEN 478 535 axis_ref__tmp=cxios_is_defined_field_axis_ref(field_hdl%daddr) … … 540 597 ENDIF 541 598 599 IF (PRESENT(scale_factor_)) THEN 600 scale_factor__tmp=cxios_is_defined_field_scale_factor(field_hdl%daddr) 601 scale_factor_=scale_factor__tmp 602 ENDIF 603 542 604 IF (PRESENT(standard_name_)) THEN 543 605 standard_name__tmp=cxios_is_defined_field_standard_name(field_hdl%daddr) -
XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90
r463 r464 12 12 13 13 SUBROUTINE xios(set_fieldgroup_attr) & 14 ( fieldgroup_id, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&15 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&16 , valid_min )14 ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 15 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 16 , unit, valid_max, valid_min ) 17 17 18 18 IMPLICIT NONE 19 19 TYPE(txios(fieldgroup)) :: fieldgroup_hdl 20 20 CHARACTER(LEN=*), INTENT(IN) ::fieldgroup_id 21 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset 21 22 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 22 23 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 34 35 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 35 36 INTEGER , OPTIONAL, INTENT(IN) :: prec 37 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 36 38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 37 39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit … … 41 43 CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 42 44 CALL xios(set_fieldgroup_attr_hdl_) & 43 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&44 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&45 , valid_min )45 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 46 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 47 , unit, valid_max, valid_min ) 46 48 47 49 END SUBROUTINE xios(set_fieldgroup_attr) 48 50 49 51 SUBROUTINE xios(set_fieldgroup_attr_hdl) & 50 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&51 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&52 , valid_min )52 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 53 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 54 , unit, valid_max, valid_min ) 53 55 54 56 IMPLICIT NONE 55 57 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl 58 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset 56 59 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref 57 60 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value … … 69 72 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation 70 73 INTEGER , OPTIONAL, INTENT(IN) :: prec 74 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor 71 75 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 72 76 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit … … 75 79 76 80 CALL xios(set_fieldgroup_attr_hdl_) & 77 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&78 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&79 , valid_min )81 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 82 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 83 , unit, valid_max, valid_min ) 80 84 81 85 END SUBROUTINE xios(set_fieldgroup_attr_hdl) 82 86 83 87 SUBROUTINE xios(set_fieldgroup_attr_hdl_) & 84 ( fieldgroup_hdl, a xis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ &85 , freq_o p_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_ &86 , unit_, valid_max_, valid_min_ )88 ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_ & 89 , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_ & 90 , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 87 91 88 92 IMPLICIT NONE 89 93 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl 94 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_ 90 95 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_ 91 96 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_ … … 103 108 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_ 104 109 INTEGER , OPTIONAL, INTENT(IN) :: prec_ 110 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor_ 105 111 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 106 112 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ … … 108 114 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min_ 109 115 116 IF (PRESENT(add_offset_)) THEN 117 CALL cxios_set_fieldgroup_add_offset(fieldgroup_hdl%daddr, add_offset_) 118 ENDIF 119 110 120 IF (PRESENT(axis_ref_)) THEN 111 121 CALL cxios_set_fieldgroup_axis_ref(fieldgroup_hdl%daddr, axis_ref_, len(axis_ref_)) … … 165 175 ENDIF 166 176 177 IF (PRESENT(scale_factor_)) THEN 178 CALL cxios_set_fieldgroup_scale_factor(fieldgroup_hdl%daddr, scale_factor_) 179 ENDIF 180 167 181 IF (PRESENT(standard_name_)) THEN 168 182 CALL cxios_set_fieldgroup_standard_name(fieldgroup_hdl%daddr, standard_name_, len(standard_name_)) … … 186 200 187 201 SUBROUTINE xios(get_fieldgroup_attr) & 188 ( fieldgroup_id, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&189 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&190 , valid_min )202 ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 203 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 204 , unit, valid_max, valid_min ) 191 205 192 206 IMPLICIT NONE 193 207 TYPE(txios(fieldgroup)) :: fieldgroup_hdl 194 208 CHARACTER(LEN=*), INTENT(IN) ::fieldgroup_id 209 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset 195 210 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 196 211 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 208 223 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 209 224 INTEGER , OPTIONAL, INTENT(OUT) :: prec 225 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 210 226 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 211 227 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit … … 215 231 CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 216 232 CALL xios(get_fieldgroup_attr_hdl_) & 217 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&218 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&219 , valid_min )233 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 234 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 235 , unit, valid_max, valid_min ) 220 236 221 237 END SUBROUTINE xios(get_fieldgroup_attr) 222 238 223 239 SUBROUTINE xios(get_fieldgroup_attr_hdl) & 224 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&225 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&226 , valid_min )240 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 241 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 242 , unit, valid_max, valid_min ) 227 243 228 244 IMPLICIT NONE 229 245 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl 246 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset 230 247 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref 231 248 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value … … 243 260 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation 244 261 INTEGER , OPTIONAL, INTENT(OUT) :: prec 262 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor 245 263 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 246 264 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit … … 249 267 250 268 CALL xios(get_fieldgroup_attr_hdl_) & 251 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&252 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&253 , valid_min )269 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 270 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 271 , unit, valid_max, valid_min ) 254 272 255 273 END SUBROUTINE xios(get_fieldgroup_attr_hdl) 256 274 257 275 SUBROUTINE xios(get_fieldgroup_attr_hdl_) & 258 ( fieldgroup_hdl, a xis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ &259 , freq_o p_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_ &260 , unit_, valid_max_, valid_min_ )276 ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_ & 277 , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_ & 278 , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 261 279 262 280 IMPLICIT NONE 263 281 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl 282 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_ 264 283 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_ 265 284 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_ … … 277 296 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_ 278 297 INTEGER , OPTIONAL, INTENT(OUT) :: prec_ 298 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor_ 279 299 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 280 300 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_ … … 282 302 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min_ 283 303 304 IF (PRESENT(add_offset_)) THEN 305 CALL cxios_get_fieldgroup_add_offset(fieldgroup_hdl%daddr, add_offset_) 306 ENDIF 307 284 308 IF (PRESENT(axis_ref_)) THEN 285 309 CALL cxios_get_fieldgroup_axis_ref(fieldgroup_hdl%daddr, axis_ref_, len(axis_ref_)) … … 339 363 ENDIF 340 364 365 IF (PRESENT(scale_factor_)) THEN 366 CALL cxios_get_fieldgroup_scale_factor(fieldgroup_hdl%daddr, scale_factor_) 367 ENDIF 368 341 369 IF (PRESENT(standard_name_)) THEN 342 370 CALL cxios_get_fieldgroup_standard_name(fieldgroup_hdl%daddr, standard_name_, len(standard_name_)) … … 360 388 361 389 SUBROUTINE xios(is_defined_fieldgroup_attr) & 362 ( fieldgroup_id, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&363 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&364 , valid_min )390 ( fieldgroup_id, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 391 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 392 , unit, valid_max, valid_min ) 365 393 366 394 IMPLICIT NONE 367 395 TYPE(txios(fieldgroup)) :: fieldgroup_hdl 368 396 CHARACTER(LEN=*), INTENT(IN) ::fieldgroup_id 397 LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset 398 LOGICAL(KIND=C_BOOL) :: add_offset_tmp 369 399 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 370 400 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp … … 395 425 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 396 426 LOGICAL(KIND=C_BOOL) :: prec_tmp 427 LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 428 LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 397 429 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 398 430 LOGICAL(KIND=C_BOOL) :: standard_name_tmp … … 406 438 CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 407 439 CALL xios(is_defined_fieldgroup_attr_hdl_) & 408 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&409 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&410 , valid_min )440 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 441 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 442 , unit, valid_max, valid_min ) 411 443 412 444 END SUBROUTINE xios(is_defined_fieldgroup_attr) 413 445 414 446 SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) & 415 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&416 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&417 , valid_min )447 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 448 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 449 , unit, valid_max, valid_min ) 418 450 419 451 IMPLICIT NONE 420 452 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl 453 LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset 454 LOGICAL(KIND=C_BOOL) :: add_offset_tmp 421 455 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref 422 456 LOGICAL(KIND=C_BOOL) :: axis_ref_tmp … … 447 481 LOGICAL, OPTIONAL, INTENT(OUT) :: prec 448 482 LOGICAL(KIND=C_BOOL) :: prec_tmp 483 LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor 484 LOGICAL(KIND=C_BOOL) :: scale_factor_tmp 449 485 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name 450 486 LOGICAL(KIND=C_BOOL) :: standard_name_tmp … … 457 493 458 494 CALL xios(is_defined_fieldgroup_attr_hdl_) & 459 ( fieldgroup_hdl, a xis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op&460 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max&461 , valid_min )495 ( fieldgroup_hdl, add_offset, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset & 496 , freq_op, grid_ref, group_ref, level, long_name, name, operation, prec, scale_factor, standard_name & 497 , unit, valid_max, valid_min ) 462 498 463 499 END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) 464 500 465 501 SUBROUTINE xios(is_defined_fieldgroup_attr_hdl_) & 466 ( fieldgroup_hdl, a xis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ &467 , freq_o p_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_ &468 , unit_, valid_max_, valid_min_ )502 ( fieldgroup_hdl, add_offset_, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_ & 503 , freq_offset_, freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_ & 504 , scale_factor_, standard_name_, unit_, valid_max_, valid_min_ ) 469 505 470 506 IMPLICIT NONE 471 507 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl 508 LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset_ 509 LOGICAL(KIND=C_BOOL) :: add_offset__tmp 472 510 LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_ 473 511 LOGICAL(KIND=C_BOOL) :: axis_ref__tmp … … 498 536 LOGICAL, OPTIONAL, INTENT(OUT) :: prec_ 499 537 LOGICAL(KIND=C_BOOL) :: prec__tmp 538 LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor_ 539 LOGICAL(KIND=C_BOOL) :: scale_factor__tmp 500 540 LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_ 501 541 LOGICAL(KIND=C_BOOL) :: standard_name__tmp … … 507 547 LOGICAL(KIND=C_BOOL) :: valid_min__tmp 508 548 549 IF (PRESENT(add_offset_)) THEN 550 add_offset__tmp=cxios_is_defined_fieldgroup_add_offset(fieldgroup_hdl%daddr) 551 add_offset_=add_offset__tmp 552 ENDIF 553 509 554 IF (PRESENT(axis_ref_)) THEN 510 555 axis_ref__tmp=cxios_is_defined_fieldgroup_axis_ref(fieldgroup_hdl%daddr) … … 577 622 ENDIF 578 623 624 IF (PRESENT(scale_factor_)) THEN 625 scale_factor__tmp=cxios_is_defined_fieldgroup_scale_factor(fieldgroup_hdl%daddr) 626 scale_factor_=scale_factor__tmp 627 ENDIF 628 579 629 IF (PRESENT(standard_name_)) THEN 580 630 standard_name__tmp=cxios_is_defined_fieldgroup_standard_name(fieldgroup_hdl%daddr) -
XIOS/trunk/src/node/field.cpp
r460 r464 621 621 } 622 622 623 void CField::scaleFactorAddOffset(double scaleFactor, double addOffset) 624 { 625 map<int, CArray<double,1>* >::iterator it; 626 for(it=data_srv.begin();it!=data_srv.end();it++) *it->second = (*it->second -addOffset) * 1./scaleFactor ; 627 } 628 623 629 void CField::outputField(CArray<double,3>& fieldOut) 624 630 { -
XIOS/trunk/src/node/field.hpp
r460 r464 135 135 void outputField(CArray<double,3>& fieldOut) ; 136 136 void outputField(CArray<double,2>& fieldOut) ; 137 void scaleFactorAddOffset(double scaleFactor, double addOffset) ; 137 138 void parse(xml::CXMLNode & node) ; 138 139 CArray<double,1>* getInstantData(void) ; -
XIOS/trunk/src/output/nc4_data_output.cpp
r463 r464 566 566 // bool isCurvilinear = domain->isCurvilinear ; 567 567 568 nc_type type = (!field->prec.isEmpty() && 569 ( field->prec.getValue() == 4)) 570 ? NC_FLOAT : NC_DOUBLE; 568 nc_type type ; 569 if (field->prec.isEmpty()) type = NC_FLOAT ; 570 else 571 { 572 if (field->prec==2) type = NC_SHORT ; 573 else if (field->prec==4) type = NC_FLOAT ; 574 else if (field->prec==8) type = NC_DOUBLE ; 575 } 576 571 577 bool wtime = !(!field->operation.isEmpty() && field->foperation->timeType() == func::CFunctor::once); 572 578 … … 628 634 SuperClassWriter::addAttribute 629 635 ("valid_max", field->valid_max.getValue(), &fieldid); 636 637 if (!field->scale_factor.isEmpty()) 638 SuperClassWriter::addAttribute 639 ("scale_factor", field->scale_factor.getValue(), &fieldid); 640 641 if (!field->add_offset.isEmpty()) 642 SuperClassWriter::addAttribute 643 ("add_offset", field->add_offset.getValue(), &fieldid); 630 644 631 645 SuperClassWriter::addAttribute … … 765 779 if (server->intraCommRank==0) isRoot=true ; 766 780 else isRoot=false ; 767 781 782 if (!field->scale_factor.isEmpty() || !field->add_offset.isEmpty()) 783 { 784 double scaleFactor=1. ; 785 double addOffset=0. ; 786 if (!field->scale_factor.isEmpty()) scaleFactor=field->scale_factor ; 787 if (!field->add_offset.isEmpty()) addOffset=field->add_offset ; 788 field->scaleFactorAddOffset(scaleFactor,addOffset) ; 789 } 790 768 791 if (grid->hasAxis()) // 3D 769 792 { … … 771 794 CArray<double,3> field_data3D(domain->zoom_ni_srv,domain->zoom_nj_srv,axis->zoom_size) ; 772 795 if (!field->default_value.isEmpty()) field_data3D = field->default_value ; 796 773 797 field->outputField(field_data3D); 798 799 if (field->prec==2) field_data3D=round(field_data3D) ; 800 774 801 switch (SuperClass::type) 775 802 { … … 815 842 if (!field->default_value.isEmpty()) field_data2D = field->default_value ; 816 843 field->outputField(field_data2D); 844 if (field->prec==2) field_data2D=round(field_data2D) ; 817 845 switch (SuperClass::type) 818 846 {
Note: See TracChangeset
for help on using the changeset viewer.