- Timestamp:
- 01/21/14 10:25:14 (11 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/config/field_attribute.conf
r369 r463 19 19 20 20 DECLARE_ATTRIBUTE(double, default_value) 21 DECLARE_ATTRIBUTE(double, valid_min) 22 DECLARE_ATTRIBUTE(double, valid_max) -
XIOS/trunk/src/interface/c_attr/icfield_attr.cpp
r445 r463 402 402 403 403 404 void cxios_set_field_valid_max(field_Ptr field_hdl, double valid_max) 405 { 406 CTimer::get("XIOS").resume(); 407 field_hdl->valid_max.setValue(valid_max); 408 field_hdl->sendAttributToServer(field_hdl->valid_max); 409 CTimer::get("XIOS").suspend(); 410 } 411 412 void cxios_get_field_valid_max(field_Ptr field_hdl, double* valid_max) 413 { 414 *valid_max = field_hdl->valid_max.getInheritedValue(); 415 } 416 417 bool cxios_is_defined_field_valid_max(field_Ptr field_hdl ) 418 { 419 CTimer::get("XIOS").resume(); 420 return field_hdl->valid_max.hasInheritedValue(); 421 CTimer::get("XIOS").suspend(); 422 } 423 424 425 426 void cxios_set_field_valid_min(field_Ptr field_hdl, double valid_min) 427 { 428 CTimer::get("XIOS").resume(); 429 field_hdl->valid_min.setValue(valid_min); 430 field_hdl->sendAttributToServer(field_hdl->valid_min); 431 CTimer::get("XIOS").suspend(); 432 } 433 434 void cxios_get_field_valid_min(field_Ptr field_hdl, double* valid_min) 435 { 436 *valid_min = field_hdl->valid_min.getInheritedValue(); 437 } 438 439 bool cxios_is_defined_field_valid_min(field_Ptr field_hdl ) 440 { 441 CTimer::get("XIOS").resume(); 442 return field_hdl->valid_min.hasInheritedValue(); 443 CTimer::get("XIOS").suspend(); 444 } 445 446 447 404 448 405 449 } -
XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp
r445 r463 429 429 430 430 431 void cxios_set_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl, double valid_max) 432 { 433 CTimer::get("XIOS").resume(); 434 fieldgroup_hdl->valid_max.setValue(valid_max); 435 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->valid_max); 436 CTimer::get("XIOS").suspend(); 437 } 438 439 void cxios_get_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl, double* valid_max) 440 { 441 *valid_max = fieldgroup_hdl->valid_max.getInheritedValue(); 442 } 443 444 bool cxios_is_defined_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl ) 445 { 446 CTimer::get("XIOS").resume(); 447 return fieldgroup_hdl->valid_max.hasInheritedValue(); 448 CTimer::get("XIOS").suspend(); 449 } 450 451 452 453 void cxios_set_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl, double valid_min) 454 { 455 CTimer::get("XIOS").resume(); 456 fieldgroup_hdl->valid_min.setValue(valid_min); 457 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->valid_min); 458 CTimer::get("XIOS").suspend(); 459 } 460 461 void cxios_get_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl, double* valid_min) 462 { 463 *valid_min = fieldgroup_hdl->valid_min.getInheritedValue(); 464 } 465 466 bool cxios_is_defined_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl ) 467 { 468 CTimer::get("XIOS").resume(); 469 return fieldgroup_hdl->valid_min.hasInheritedValue(); 470 CTimer::get("XIOS").suspend(); 471 } 472 473 474 431 475 432 476 } -
XIOS/trunk/src/interface/fortran_attr/field_interface_attr.f90
r432 r463 316 316 317 317 318 SUBROUTINE cxios_set_field_valid_max(field_hdl, valid_max) BIND(C) 319 USE ISO_C_BINDING 320 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 321 REAL (KIND=C_DOUBLE) , VALUE :: valid_max 322 END SUBROUTINE cxios_set_field_valid_max 323 324 SUBROUTINE cxios_get_field_valid_max(field_hdl, valid_max) BIND(C) 325 USE ISO_C_BINDING 326 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 327 REAL (KIND=C_DOUBLE) :: valid_max 328 END SUBROUTINE cxios_get_field_valid_max 329 330 FUNCTION cxios_is_defined_field_valid_max(field_hdl ) BIND(C) 331 USE ISO_C_BINDING 332 LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_valid_max 333 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 334 END FUNCTION cxios_is_defined_field_valid_max 335 336 337 SUBROUTINE cxios_set_field_valid_min(field_hdl, valid_min) BIND(C) 338 USE ISO_C_BINDING 339 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 340 REAL (KIND=C_DOUBLE) , VALUE :: valid_min 341 END SUBROUTINE cxios_set_field_valid_min 342 343 SUBROUTINE cxios_get_field_valid_min(field_hdl, valid_min) BIND(C) 344 USE ISO_C_BINDING 345 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 346 REAL (KIND=C_DOUBLE) :: valid_min 347 END SUBROUTINE cxios_get_field_valid_min 348 349 FUNCTION cxios_is_defined_field_valid_min(field_hdl ) BIND(C) 350 USE ISO_C_BINDING 351 LOGICAL(kind=C_BOOL) :: cxios_is_defined_field_valid_min 352 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl 353 END FUNCTION cxios_is_defined_field_valid_min 354 355 318 356 END INTERFACE 319 357 -
XIOS/trunk/src/interface/fortran_attr/fieldgroup_interface_attr.f90
r432 r463 337 337 338 338 339 SUBROUTINE cxios_set_fieldgroup_valid_max(fieldgroup_hdl, valid_max) BIND(C) 340 USE ISO_C_BINDING 341 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 342 REAL (KIND=C_DOUBLE) , VALUE :: valid_max 343 END SUBROUTINE cxios_set_fieldgroup_valid_max 344 345 SUBROUTINE cxios_get_fieldgroup_valid_max(fieldgroup_hdl, valid_max) BIND(C) 346 USE ISO_C_BINDING 347 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 348 REAL (KIND=C_DOUBLE) :: valid_max 349 END SUBROUTINE cxios_get_fieldgroup_valid_max 350 351 FUNCTION cxios_is_defined_fieldgroup_valid_max(fieldgroup_hdl ) BIND(C) 352 USE ISO_C_BINDING 353 LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_valid_max 354 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 355 END FUNCTION cxios_is_defined_fieldgroup_valid_max 356 357 358 SUBROUTINE cxios_set_fieldgroup_valid_min(fieldgroup_hdl, valid_min) BIND(C) 359 USE ISO_C_BINDING 360 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 361 REAL (KIND=C_DOUBLE) , VALUE :: valid_min 362 END SUBROUTINE cxios_set_fieldgroup_valid_min 363 364 SUBROUTINE cxios_get_fieldgroup_valid_min(fieldgroup_hdl, valid_min) BIND(C) 365 USE ISO_C_BINDING 366 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 367 REAL (KIND=C_DOUBLE) :: valid_min 368 END SUBROUTINE cxios_get_fieldgroup_valid_min 369 370 FUNCTION cxios_is_defined_fieldgroup_valid_min(fieldgroup_hdl ) BIND(C) 371 USE ISO_C_BINDING 372 LOGICAL(kind=C_BOOL) :: cxios_is_defined_fieldgroup_valid_min 373 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl 374 END FUNCTION cxios_is_defined_fieldgroup_valid_min 375 376 339 377 END INTERFACE 340 378 -
XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90
r432 r463 13 13 SUBROUTINE xios(set_field_attr) & 14 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 )15 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 16 16 17 17 IMPLICIT NONE … … 34 34 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 35 35 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit 36 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max 37 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min 36 38 37 39 CALL xios(get_field_handle)(field_id,field_hdl) 38 40 CALL xios(set_field_attr_hdl_) & 39 41 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 40 , level, long_name, name, operation, prec, standard_name, unit )42 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 41 43 42 44 END SUBROUTINE xios(set_field_attr) … … 44 46 SUBROUTINE xios(set_field_attr_hdl) & 45 47 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 46 , level, long_name, name, operation, prec, standard_name, unit )48 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 47 49 48 50 IMPLICIT NONE … … 64 66 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 65 67 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit 68 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max 69 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min 66 70 67 71 CALL xios(set_field_attr_hdl_) & 68 72 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 69 , level, long_name, name, operation, prec, standard_name, unit )73 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 70 74 71 75 END SUBROUTINE xios(set_field_attr_hdl) … … 73 77 SUBROUTINE xios(set_field_attr_hdl_) & 74 78 ( field_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_ & 75 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_ ) 79 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_, valid_max_ & 80 , valid_min_ ) 76 81 77 82 IMPLICIT NONE … … 93 98 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 94 99 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ 100 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max_ 101 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min_ 95 102 96 103 IF (PRESENT(axis_ref_)) THEN … … 155 162 ENDIF 156 163 164 IF (PRESENT(valid_max_)) THEN 165 CALL cxios_set_field_valid_max(field_hdl%daddr, valid_max_) 166 ENDIF 167 168 IF (PRESENT(valid_min_)) THEN 169 CALL cxios_set_field_valid_min(field_hdl%daddr, valid_min_) 170 ENDIF 171 157 172 158 173 … … 161 176 SUBROUTINE xios(get_field_attr) & 162 177 ( field_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 163 , level, long_name, name, operation, prec, standard_name, unit )178 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 164 179 165 180 IMPLICIT NONE … … 182 197 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 183 198 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit 199 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max 200 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min 184 201 185 202 CALL xios(get_field_handle)(field_id,field_hdl) 186 203 CALL xios(get_field_attr_hdl_) & 187 204 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 188 , level, long_name, name, operation, prec, standard_name, unit )205 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 189 206 190 207 END SUBROUTINE xios(get_field_attr) … … 192 209 SUBROUTINE xios(get_field_attr_hdl) & 193 210 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 194 , level, long_name, name, operation, prec, standard_name, unit )211 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 195 212 196 213 IMPLICIT NONE … … 212 229 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 213 230 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit 231 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max 232 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min 214 233 215 234 CALL xios(get_field_attr_hdl_) & 216 235 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 217 , level, long_name, name, operation, prec, standard_name, unit )236 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 218 237 219 238 END SUBROUTINE xios(get_field_attr_hdl) … … 221 240 SUBROUTINE xios(get_field_attr_hdl_) & 222 241 ( field_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_ & 223 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_ ) 242 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_, valid_max_ & 243 , valid_min_ ) 224 244 225 245 IMPLICIT NONE … … 241 261 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 242 262 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_ 263 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max_ 264 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min_ 243 265 244 266 IF (PRESENT(axis_ref_)) THEN … … 303 325 ENDIF 304 326 327 IF (PRESENT(valid_max_)) THEN 328 CALL cxios_get_field_valid_max(field_hdl%daddr, valid_max_) 329 ENDIF 330 331 IF (PRESENT(valid_min_)) THEN 332 CALL cxios_get_field_valid_min(field_hdl%daddr, valid_min_) 333 ENDIF 334 305 335 306 336 … … 309 339 SUBROUTINE xios(is_defined_field_attr) & 310 340 ( field_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 311 , level, long_name, name, operation, prec, standard_name, unit )341 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 312 342 313 343 IMPLICIT NONE … … 344 374 LOGICAL, OPTIONAL, INTENT(OUT) :: unit 345 375 LOGICAL(KIND=C_BOOL) :: unit_tmp 376 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max 377 LOGICAL(KIND=C_BOOL) :: valid_max_tmp 378 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min 379 LOGICAL(KIND=C_BOOL) :: valid_min_tmp 346 380 347 381 CALL xios(get_field_handle)(field_id,field_hdl) 348 382 CALL xios(is_defined_field_attr_hdl_) & 349 383 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 350 , level, long_name, name, operation, prec, standard_name, unit )384 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 351 385 352 386 END SUBROUTINE xios(is_defined_field_attr) … … 354 388 SUBROUTINE xios(is_defined_field_attr_hdl) & 355 389 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 356 , level, long_name, name, operation, prec, standard_name, unit )390 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 357 391 358 392 IMPLICIT NONE … … 388 422 LOGICAL, OPTIONAL, INTENT(OUT) :: unit 389 423 LOGICAL(KIND=C_BOOL) :: unit_tmp 424 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max 425 LOGICAL(KIND=C_BOOL) :: valid_max_tmp 426 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min 427 LOGICAL(KIND=C_BOOL) :: valid_min_tmp 390 428 391 429 CALL xios(is_defined_field_attr_hdl_) & 392 430 ( field_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op, grid_ref & 393 , level, long_name, name, operation, prec, standard_name, unit )431 , level, long_name, name, operation, prec, standard_name, unit, valid_max, valid_min ) 394 432 395 433 END SUBROUTINE xios(is_defined_field_attr_hdl) … … 397 435 SUBROUTINE xios(is_defined_field_attr_hdl_) & 398 436 ( field_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_ & 399 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_ ) 437 , grid_ref_, level_, long_name_, name_, operation_, prec_, standard_name_, unit_, valid_max_ & 438 , valid_min_ ) 400 439 401 440 IMPLICIT NONE … … 431 470 LOGICAL, OPTIONAL, INTENT(OUT) :: unit_ 432 471 LOGICAL(KIND=C_BOOL) :: unit__tmp 472 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max_ 473 LOGICAL(KIND=C_BOOL) :: valid_max__tmp 474 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min_ 475 LOGICAL(KIND=C_BOOL) :: valid_min__tmp 433 476 434 477 IF (PRESENT(axis_ref_)) THEN … … 507 550 ENDIF 508 551 552 IF (PRESENT(valid_max_)) THEN 553 valid_max__tmp=cxios_is_defined_field_valid_max(field_hdl%daddr) 554 valid_max_=valid_max__tmp 555 ENDIF 556 557 IF (PRESENT(valid_min_)) THEN 558 valid_min__tmp=cxios_is_defined_field_valid_min(field_hdl%daddr) 559 valid_min_=valid_min__tmp 560 ENDIF 561 509 562 510 563 -
XIOS/trunk/src/interface/fortran_attr/ifieldgroup_attr.F90
r432 r463 13 13 SUBROUTINE xios(set_fieldgroup_attr) & 14 14 ( fieldgroup_id, axis_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 ) 15 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 16 , valid_min ) 16 17 17 18 IMPLICIT NONE … … 35 36 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 36 37 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit 38 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max 39 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min 37 40 38 41 CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 39 42 CALL xios(set_fieldgroup_attr_hdl_) & 40 43 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 41 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 44 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 45 , valid_min ) 42 46 43 47 END SUBROUTINE xios(set_fieldgroup_attr) … … 45 49 SUBROUTINE xios(set_fieldgroup_attr_hdl) & 46 50 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 47 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 51 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 52 , valid_min ) 48 53 49 54 IMPLICIT NONE … … 66 71 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name 67 72 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit 73 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max 74 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min 68 75 69 76 CALL xios(set_fieldgroup_attr_hdl_) & 70 77 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 71 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 78 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 79 , valid_min ) 72 80 73 81 END SUBROUTINE xios(set_fieldgroup_attr_hdl) … … 76 84 ( fieldgroup_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ & 77 85 , freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_ & 78 , unit_ )86 , unit_, valid_max_, valid_min_ ) 79 87 80 88 IMPLICIT NONE … … 97 105 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ 98 106 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ 107 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max_ 108 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min_ 99 109 100 110 IF (PRESENT(axis_ref_)) THEN … … 163 173 ENDIF 164 174 175 IF (PRESENT(valid_max_)) THEN 176 CALL cxios_set_fieldgroup_valid_max(fieldgroup_hdl%daddr, valid_max_) 177 ENDIF 178 179 IF (PRESENT(valid_min_)) THEN 180 CALL cxios_set_fieldgroup_valid_min(fieldgroup_hdl%daddr, valid_min_) 181 ENDIF 182 165 183 166 184 … … 169 187 SUBROUTINE xios(get_fieldgroup_attr) & 170 188 ( fieldgroup_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 171 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 189 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 190 , valid_min ) 172 191 173 192 IMPLICIT NONE … … 191 210 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 192 211 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit 212 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max 213 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min 193 214 194 215 CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 195 216 CALL xios(get_fieldgroup_attr_hdl_) & 196 217 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 197 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 218 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 219 , valid_min ) 198 220 199 221 END SUBROUTINE xios(get_fieldgroup_attr) … … 201 223 SUBROUTINE xios(get_fieldgroup_attr_hdl) & 202 224 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 203 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 225 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 226 , valid_min ) 204 227 205 228 IMPLICIT NONE … … 222 245 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name 223 246 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit 247 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max 248 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min 224 249 225 250 CALL xios(get_fieldgroup_attr_hdl_) & 226 251 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 227 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 252 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 253 , valid_min ) 228 254 229 255 END SUBROUTINE xios(get_fieldgroup_attr_hdl) … … 232 258 ( fieldgroup_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ & 233 259 , freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_ & 234 , unit_ )260 , unit_, valid_max_, valid_min_ ) 235 261 236 262 IMPLICIT NONE … … 253 279 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_ 254 280 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_ 281 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max_ 282 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min_ 255 283 256 284 IF (PRESENT(axis_ref_)) THEN … … 319 347 ENDIF 320 348 349 IF (PRESENT(valid_max_)) THEN 350 CALL cxios_get_fieldgroup_valid_max(fieldgroup_hdl%daddr, valid_max_) 351 ENDIF 352 353 IF (PRESENT(valid_min_)) THEN 354 CALL cxios_get_fieldgroup_valid_min(fieldgroup_hdl%daddr, valid_min_) 355 ENDIF 356 321 357 322 358 … … 325 361 SUBROUTINE xios(is_defined_fieldgroup_attr) & 326 362 ( fieldgroup_id, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 327 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 363 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 364 , valid_min ) 328 365 329 366 IMPLICIT NONE … … 362 399 LOGICAL, OPTIONAL, INTENT(OUT) :: unit 363 400 LOGICAL(KIND=C_BOOL) :: unit_tmp 401 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max 402 LOGICAL(KIND=C_BOOL) :: valid_max_tmp 403 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min 404 LOGICAL(KIND=C_BOOL) :: valid_min_tmp 364 405 365 406 CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl) 366 407 CALL xios(is_defined_fieldgroup_attr_hdl_) & 367 408 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 368 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 409 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 410 , valid_min ) 369 411 370 412 END SUBROUTINE xios(is_defined_fieldgroup_attr) … … 372 414 SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) & 373 415 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 374 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 416 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 417 , valid_min ) 375 418 376 419 IMPLICIT NONE … … 408 451 LOGICAL, OPTIONAL, INTENT(OUT) :: unit 409 452 LOGICAL(KIND=C_BOOL) :: unit_tmp 453 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max 454 LOGICAL(KIND=C_BOOL) :: valid_max_tmp 455 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min 456 LOGICAL(KIND=C_BOOL) :: valid_min_tmp 410 457 411 458 CALL xios(is_defined_fieldgroup_attr_hdl_) & 412 459 ( fieldgroup_hdl, axis_ref, default_value, domain_ref, enabled, field_ref, freq_offset, freq_op & 413 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit ) 460 , grid_ref, group_ref, level, long_name, name, operation, prec, standard_name, unit, valid_max & 461 , valid_min ) 414 462 415 463 END SUBROUTINE xios(is_defined_fieldgroup_attr_hdl) … … 418 466 ( fieldgroup_hdl, axis_ref_, default_value_, domain_ref_, enabled_, field_ref_, freq_offset_ & 419 467 , freq_op_, grid_ref_, group_ref_, level_, long_name_, name_, operation_, prec_, standard_name_ & 420 , unit_ )468 , unit_, valid_max_, valid_min_ ) 421 469 422 470 IMPLICIT NONE … … 454 502 LOGICAL, OPTIONAL, INTENT(OUT) :: unit_ 455 503 LOGICAL(KIND=C_BOOL) :: unit__tmp 504 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max_ 505 LOGICAL(KIND=C_BOOL) :: valid_max__tmp 506 LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min_ 507 LOGICAL(KIND=C_BOOL) :: valid_min__tmp 456 508 457 509 IF (PRESENT(axis_ref_)) THEN … … 535 587 ENDIF 536 588 589 IF (PRESENT(valid_max_)) THEN 590 valid_max__tmp=cxios_is_defined_fieldgroup_valid_max(fieldgroup_hdl%daddr) 591 valid_max_=valid_max__tmp 592 ENDIF 593 594 IF (PRESENT(valid_min_)) THEN 595 valid_min__tmp=cxios_is_defined_fieldgroup_valid_min(fieldgroup_hdl%daddr) 596 valid_min_=valid_min__tmp 597 ENDIF 598 537 599 538 600 -
XIOS/trunk/src/output/nc4_data_output.cpp
r454 r463 620 620 SuperClassWriter::addAttribute 621 621 ("units", field->unit.getValue(), &fieldid); 622 622 623 if (!field->valid_min.isEmpty()) 624 SuperClassWriter::addAttribute 625 ("valid_min", field->valid_min.getValue(), &fieldid); 626 627 if (!field->valid_max.isEmpty()) 628 SuperClassWriter::addAttribute 629 ("valid_max", field->valid_max.getValue(), &fieldid); 630 623 631 SuperClassWriter::addAttribute 624 632 ("online_operation", field->operation.getValue(), &fieldid);
Note: See TracChangeset
for help on using the changeset viewer.