Changeset 313
- Timestamp:
- 02/18/12 22:43:24 (12 years ago)
- Location:
- XIOS/trunk
- Files:
-
- 7 added
- 41 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/bld.cfg
r300 r313 28 28 bld::target libxios.a 29 29 #bld::target main_server.exe test_xios.exe 30 bld::target server_main.exe test_cs.exe30 bld::target generate_fortran_interface.exe server_main.exe test_cs.exe 31 31 bld::exe_dep 32 32 -
XIOS/trunk/make_xios
r301 r313 4 4 compil_full="false" 5 5 use_oasis="false" 6 job="1" 6 7 7 8 # Traitement de la ligne de commande … … 17 18 "--debug") compil_mode="debug" ; shift ;; 18 19 "--arch") arch=$2 ; shift ; shift ;; 19 "--full") compil_full="true" ; shift ; shift ;;20 "--full") compil_full="true" ; shift ;; 20 21 "--use_oasis") use_oasis="true" ; shift ;; 21 22 "--doc") doc="true" ; shift ;; 23 "--job") job=$2 ; shift ; shift ;; 22 24 *) code="$1" ; shift ;; 23 25 esac … … 117 119 if [[ "$compil_full" == "true" ]] 118 120 then 119 fcm build -f 121 fcm build -f -j $job 120 122 else 121 fcm build 123 fcm build -j $job 122 124 fi 123 125 -
XIOS/trunk/src/attribute.hpp
r300 r313 53 53 virtual void toBinary (StdOStream & os) const = 0; 54 54 virtual void fromBinary(StdIStream & is) = 0; 55 virtual void generateCInterface(ostream& oss, const string& className) = 0 ; 56 virtual void generateFortran2003Interface(ostream& oss, const string& className) = 0 ; 57 virtual void generateFortranInterfaceDeclaration_(ostream& oss,const string& className) = 0 ; 58 virtual void generateFortranInterfaceDeclaration(ostream& oss,const string& className) = 0 ; 59 virtual void generateFortranInterfaceBody_(ostream& oss,const string& className) = 0 ; 60 virtual void generateFortranInterfaceGetDeclaration_(ostream& oss,const string& className) = 0 ; 61 virtual void generateFortranInterfaceGetDeclaration(ostream& oss,const string& className) = 0 ; 62 virtual void generateFortranInterfaceGetBody_(ostream& oss,const string& className) = 0 ; 55 63 64 65 56 66 protected : 57 67 -
XIOS/trunk/src/attribute_map.cpp
r278 r313 1 1 #include "attribute_map.hpp" 2 #include "indent.hpp" 2 3 3 4 namespace xmlioserver … … 186 187 } 187 188 189 void CAttributeMap::generateCInterface(ostream& oss, const string& className) 190 { 191 SuperClassMap::const_iterator it = SuperClassMap::begin(), end = SuperClassMap::end(); 192 for (; it != end; it++) 193 { 194 it->second->generateCInterface(oss,className) ; 195 oss<<iendl<<iendl ; 196 } 197 } 198 199 void CAttributeMap::generateFortran2003Interface(ostream& oss, const string& className) 200 { 201 SuperClassMap::const_iterator it = SuperClassMap::begin(), end = SuperClassMap::end(); 202 for (; it != end; it++) 203 { 204 it->second->generateFortran2003Interface(oss,className) ; 205 oss<<iendl<<iendl ; 206 } 207 } 208 188 209 ///-------------------------------------------------------------- 210 211 void CAttributeMap::generateFortranInterface_hdl_(ostream& oss, const string& className) 212 { 213 oss<<"SUBROUTINE xios(set_"<<className<<"_attr_hdl_) &"<<iendl++ ; 214 ostringstream* oss2 ; 215 SuperClassMap::const_iterator it ; 216 SuperClassMap::const_iterator begin = SuperClassMap::begin(), end = SuperClassMap::end(); 217 218 oss2=new ostringstream ; 219 220 *oss2<<"( "<<className<<"_hdl" ; 221 222 for ( it=begin ; it != end; it++) 223 { 224 *oss2<<", "<<it->second->getName()<<"_" ; 225 if (oss2->str().size()>90) 226 { 227 oss<<oss2->str()<<" &"<<iendl ; 228 delete oss2 ; 229 oss2=new ostringstream ; 230 } 231 } 232 *oss2<<" )" ; 233 oss<<oss2->str()<<iendl ; 234 oss<<iendl ; 235 delete oss2 ; 236 237 oss<<"IMPLICIT NONE"<<iendl++ ; 238 oss<<"TYPE(txios("<<className<<")) , INTENT(IN) :: "<<className<<"_hdl"<<iendl ; 239 240 for (it=begin; it != end; it++) 241 { 242 it->second->generateFortranInterfaceDeclaration_(oss,className) ; 243 } 244 245 oss<<iendl ; 246 247 for (it=begin; it != end; it++) 248 { 249 it->second->generateFortranInterfaceBody_(oss,className) ; 250 oss<<iendl ; 251 } 252 253 oss<<iendl--<<iendl-- ; 254 oss<<"END SUBROUTINE xios(set_"<<className<<"_attr_hdl_)"<<iendl ; 255 256 } 257 258 void CAttributeMap::generateFortranInterfaceGet_hdl_(ostream& oss, const string& className) 259 { 260 oss<<"SUBROUTINE xios(get_"<<className<<"_attr_hdl_) &"<<iendl++ ; 261 ostringstream* oss2 ; 262 SuperClassMap::const_iterator it ; 263 SuperClassMap::const_iterator begin = SuperClassMap::begin(), end = SuperClassMap::end(); 264 265 oss2=new ostringstream ; 266 267 *oss2<<"( "<<className<<"_hdl" ; 268 269 for ( it=begin ; it != end; it++) 270 { 271 *oss2<<", "<<it->second->getName()<<"_" ; 272 if (oss2->str().size()>90) 273 { 274 oss<<oss2->str()<<" &"<<iendl ; 275 delete oss2 ; 276 oss2=new ostringstream ; 277 } 278 } 279 *oss2<<" )" ; 280 oss<<oss2->str()<<iendl ; 281 oss<<iendl ; 282 delete oss2 ; 283 284 oss<<"IMPLICIT NONE"<<iendl++ ; 285 oss<<"TYPE(txios("<<className<<")) , INTENT(IN) :: "<<className<<"_hdl"<<iendl ; 286 287 for (it=begin; it != end; it++) 288 { 289 it->second->generateFortranInterfaceGetDeclaration_(oss,className) ; 290 } 291 292 oss<<iendl ; 293 294 for (it=begin; it != end; it++) 295 { 296 it->second->generateFortranInterfaceGetBody_(oss,className) ; 297 oss<<iendl ; 298 } 299 300 oss<<iendl--<<iendl-- ; 301 oss<<"END SUBROUTINE xios(get_"<<className<<"_attr_hdl_)"<<iendl ; 302 303 } 304 305 void CAttributeMap::generateFortranInterface_hdl(ostream& oss, const string& className) 306 { 307 oss<<"SUBROUTINE xios(set_"<<className<<"_attr_hdl) &"<<iendl++ ; 308 ostringstream* oss2 ; 309 SuperClassMap::const_iterator it ; 310 SuperClassMap::const_iterator begin = SuperClassMap::begin(), end = SuperClassMap::end(); 311 312 oss2=new ostringstream ; 313 *oss2<<"( "<<className<<"_hdl" ; 314 for ( it=begin ; it != end; it++) 315 { 316 *oss2<<", "<<it->second->getName() ; 317 if (oss2->str().size()>90) 318 { 319 oss<<oss2->str()<<" &"<<iendl ; 320 delete oss2 ; 321 oss2=new ostringstream ; 322 } 323 } 324 *oss2<<" )" ; 325 oss<<oss2->str()<<iendl ; 326 oss<<iendl ; 327 delete oss2 ; 328 oss2=new ostringstream ; 329 330 oss<<"IMPLICIT NONE"<<iendl++ ; 331 oss<<"TYPE(txios("<<className<<")) , INTENT(IN) :: "<<className<<"_hdl"<<iendl ; 332 333 for (it=begin; it != end; it++) 334 { 335 it->second->generateFortranInterfaceDeclaration(oss,className) ; 336 } 337 338 oss<<iendl ; 339 340 oss<<"CALL xios(set_"<<className<<"_attr_hdl_) &"<<iendl ; 341 342 *oss2<<"( "<<className<<"_hdl" ; 343 for ( it=begin ; it != end; it++) 344 { 345 *oss2<<", "<<it->second->getName() ; 346 if (oss2->str().size()>90) 347 { 348 oss<<oss2->str()<<" &"<<iendl ; 349 delete oss2 ; 350 oss2=new ostringstream ; 351 } 352 } 353 *oss2<<" )" ; 354 oss<<oss2->str() ; 355 delete oss2 ; 356 357 oss<<iendl--<<iendl-- ; 358 oss<<"END SUBROUTINE xios(set_"<<className<<"_attr_hdl)"<<iendl ; 359 } 360 361 362 void CAttributeMap::generateFortranInterfaceGet_hdl(ostream& oss, const string& className) 363 { 364 oss<<"SUBROUTINE xios(get_"<<className<<"_attr_hdl) &"<<iendl++ ; 365 ostringstream* oss2 ; 366 SuperClassMap::const_iterator it ; 367 SuperClassMap::const_iterator begin = SuperClassMap::begin(), end = SuperClassMap::end(); 368 369 oss2=new ostringstream ; 370 *oss2<<"( "<<className<<"_hdl" ; 371 for ( it=begin ; it != end; it++) 372 { 373 *oss2<<", "<<it->second->getName() ; 374 if (oss2->str().size()>90) 375 { 376 oss<<oss2->str()<<" &"<<iendl ; 377 delete oss2 ; 378 oss2=new ostringstream ; 379 } 380 } 381 *oss2<<" )" ; 382 oss<<oss2->str()<<iendl ; 383 oss<<iendl ; 384 delete oss2 ; 385 oss2=new ostringstream ; 386 387 oss<<"IMPLICIT NONE"<<iendl++ ; 388 oss<<"TYPE(txios("<<className<<")) , INTENT(IN) :: "<<className<<"_hdl"<<iendl ; 389 390 for (it=begin; it != end; it++) 391 { 392 it->second->generateFortranInterfaceGetDeclaration(oss,className) ; 393 } 394 395 oss<<iendl ; 396 397 oss<<"CALL xios(get_"<<className<<"_attr_hdl_) &"<<iendl ; 398 399 *oss2<<"( "<<className<<"_hdl" ; 400 for ( it=begin ; it != end; it++) 401 { 402 *oss2<<", "<<it->second->getName() ; 403 if (oss2->str().size()>90) 404 { 405 oss<<oss2->str()<<" &"<<iendl ; 406 delete oss2 ; 407 oss2=new ostringstream ; 408 } 409 } 410 *oss2<<" )" ; 411 oss<<oss2->str() ; 412 delete oss2 ; 413 414 oss<<iendl--<<iendl-- ; 415 oss<<"END SUBROUTINE xios(get_"<<className<<"_attr_hdl)"<<iendl ; 416 } 417 418 void CAttributeMap::generateFortranInterface_id(ostream& oss, const string& className) 419 { 420 oss<<"SUBROUTINE xios(set_"<<className<<"_attr) &"<<iendl++ ; 421 ostringstream* oss2 ; 422 SuperClassMap::const_iterator it ; 423 SuperClassMap::const_iterator begin = SuperClassMap::begin(), end = SuperClassMap::end(); 424 425 oss2=new ostringstream ; 426 *oss2<<"( "<<className<<"_id" ; 427 for ( it=begin ; it != end; it++) 428 { 429 *oss2<<", "<<it->second->getName() ; 430 if (oss2->str().size()>90) 431 { 432 oss<<oss2->str()<<" &"<<iendl ; 433 delete oss2 ; 434 oss2=new ostringstream ; 435 } 436 } 437 *oss2<<" )" ; 438 oss<<oss2->str()<<iendl ; 439 oss<<iendl ; 440 delete oss2 ; 441 oss2=new ostringstream ; 442 443 oss<<"IMPLICIT NONE"<<iendl++ ; 444 445 oss<<"TYPE(txios("<<className<<")) :: "<<className<<"_hdl"<<iendl ; 446 oss<<"CHARACTER(LEN=*), INTENT(IN) ::"<<className<<"_id"<<iendl ; 447 448 for (it=begin; it != end; it++) 449 { 450 it->second->generateFortranInterfaceDeclaration(oss,className) ; 451 } 452 453 oss<<iendl ; 454 oss<<"CALL xios(get_"<<className<<"_handle)("<<className<<"_id,"<<className<<"_hdl)"<<iendl ; 455 oss<<"CALL xios(set_"<<className<<"_attr_hdl_) &"<<iendl ; 456 *oss2<<"( "<<className<<"_hdl" ; 457 for ( it=begin ; it != end; it++) 458 { 459 *oss2<<", "<<it->second->getName() ; 460 if (oss2->str().size()>90) 461 { 462 oss<<oss2->str()<<" &"<<iendl ; 463 delete oss2 ; 464 oss2=new ostringstream ; 465 } 466 } 467 *oss2<<" )" ; 468 oss<<oss2->str() ; 469 delete oss2 ; 470 471 oss<<iendl--<<iendl-- ; 472 oss<<"END SUBROUTINE xios(set_"<<className<<"_attr)"<<iendl ; 473 474 } 475 476 void CAttributeMap::generateFortranInterfaceGet_id(ostream& oss, const string& className) 477 { 478 oss<<"SUBROUTINE xios(get_"<<className<<"_attr) &"<<iendl++ ; 479 ostringstream* oss2 ; 480 SuperClassMap::const_iterator it ; 481 SuperClassMap::const_iterator begin = SuperClassMap::begin(), end = SuperClassMap::end(); 482 483 oss2=new ostringstream ; 484 *oss2<<"( "<<className<<"_id" ; 485 for ( it=begin ; it != end; it++) 486 { 487 *oss2<<", "<<it->second->getName() ; 488 if (oss2->str().size()>90) 489 { 490 oss<<oss2->str()<<" &"<<iendl ; 491 delete oss2 ; 492 oss2=new ostringstream ; 493 } 494 } 495 *oss2<<" )" ; 496 oss<<oss2->str()<<iendl ; 497 oss<<iendl ; 498 delete oss2 ; 499 oss2=new ostringstream ; 500 501 oss<<"IMPLICIT NONE"<<iendl++ ; 502 503 oss<<"TYPE(txios("<<className<<")) :: "<<className<<"_hdl"<<iendl ; 504 oss<<"CHARACTER(LEN=*), INTENT(IN) ::"<<className<<"_id"<<iendl ; 505 506 for (it=begin; it != end; it++) 507 { 508 it->second->generateFortranInterfaceGetDeclaration(oss,className) ; 509 } 510 511 oss<<iendl ; 512 oss<<"CALL xios(get_"<<className<<"_handle)("<<className<<"_id,"<<className<<"_hdl)"<<iendl ; 513 oss<<"CALL xios(get_"<<className<<"_attr_hdl_) &"<<iendl ; 514 *oss2<<"( "<<className<<"_hdl" ; 515 for ( it=begin ; it != end; it++) 516 { 517 *oss2<<", "<<it->second->getName() ; 518 if (oss2->str().size()>90) 519 { 520 oss<<oss2->str()<<" &"<<iendl ; 521 delete oss2 ; 522 oss2=new ostringstream ; 523 } 524 } 525 *oss2<<" )" ; 526 oss<<oss2->str() ; 527 delete oss2 ; 528 529 oss<<iendl--<<iendl-- ; 530 oss<<"END SUBROUTINE xios(get_"<<className<<"_attr)"<<iendl ; 531 532 } 533 ///-------------------------------------------------------------- 534 189 535 190 536 } // namespace tree -
XIOS/trunk/src/attribute_map.hpp
r219 r313 48 48 virtual void toBinary (StdOStream & os) const; 49 49 virtual void fromBinary(StdIStream & is); 50 virtual void generateCInterface(ostream& oss, const string& className) ; 51 virtual void generateFortran2003Interface(ostream& oss, const string& className) ; 52 virtual void generateFortranInterface_hdl_(ostream& oss, const string& className) ; 53 virtual void generateFortranInterface_hdl(ostream& oss, const string& className) ; 54 virtual void generateFortranInterface_id(ostream& oss, const string& className) ; 55 virtual void generateFortranInterfaceGet_hdl_(ostream& oss, const string& className) ; 56 virtual void generateFortranInterfaceGet_hdl(ostream& oss, const string& className) ; 57 virtual void generateFortranInterfaceGet_id(ostream& oss, const string& className) ; 50 58 51 59 protected : -
XIOS/trunk/src/attribute_template.hpp
r300 r313 64 64 virtual bool fromBuffer(CBufferIn& buffer) ; 65 65 virtual size_t size(void) const; 66 66 virtual void generateCInterface(ostream& oss,const string& className) ; 67 virtual void generateFortran2003Interface(ostream& oss,const string& className) ; 68 virtual void generateFortranInterfaceDeclaration_(ostream& oss,const string& className) ; 69 virtual void generateFortranInterfaceBody_(ostream& oss,const string& className) ; 70 virtual void generateFortranInterfaceDeclaration(ostream& oss,const string& className) ; 71 virtual void generateFortranInterfaceGetDeclaration_(ostream& oss,const string& className) ; 72 virtual void generateFortranInterfaceGetBody_(ostream& oss,const string& className) ; 73 virtual void generateFortranInterfaceGetDeclaration(ostream& oss,const string& className) ; 67 74 75 68 76 protected : 69 77 -
XIOS/trunk/src/attribute_template_impl.hpp
r300 r313 6 6 #include "buffer_in.hpp" 7 7 #include "buffer_out.hpp" 8 8 #include "generate_interface_impl.hpp" 9 10 11 9 12 namespace xmlioserver 10 13 { 14 11 15 namespace tree 12 16 { … … 181 185 } 182 186 187 template <typename T> 188 void CAttributeTemplate<T>::generateCInterface(ostream& oss,const string& className) 189 { 190 CInterface::AttributeCInterface<T>(oss, className, this->getName()) ; 191 } 192 193 template <typename T> 194 void CAttributeTemplate<T>::generateFortran2003Interface(ostream& oss,const string& className) 195 { 196 CInterface::AttributeFortran2003Interface<T>(oss, className, this->getName()) ; 197 } 198 199 template <typename T> 200 void CAttributeTemplate<T>::generateFortranInterfaceDeclaration_(ostream& oss,const string& className) 201 { 202 CInterface::AttributeFortranInterfaceDeclaration<T>(oss, className, this->getName()+"_") ; 203 } 204 205 template <typename T> 206 void CAttributeTemplate<T>::generateFortranInterfaceBody_(ostream& oss,const string& className) 207 { 208 CInterface::AttributeFortranInterfaceBody<T>(oss, className, this->getName()) ; 209 } 210 211 template <typename T> 212 void CAttributeTemplate<T>::generateFortranInterfaceDeclaration(ostream& oss,const string& className) 213 { 214 CInterface::AttributeFortranInterfaceDeclaration<T>(oss, className, this->getName()) ; 215 } 216 217 template <typename T> 218 void CAttributeTemplate<T>::generateFortranInterfaceGetDeclaration_(ostream& oss,const string& className) 219 { 220 CInterface::AttributeFortranInterfaceGetDeclaration<T>(oss, className, this->getName()+"_") ; 221 } 222 223 template <typename T> 224 void CAttributeTemplate<T>::generateFortranInterfaceGetBody_(ostream& oss,const string& className) 225 { 226 CInterface::AttributeFortranInterfaceGetBody<T>(oss, className, this->getName()) ; 227 } 228 229 template <typename T> 230 void CAttributeTemplate<T>::generateFortranInterfaceGetDeclaration(ostream& oss,const string& className) 231 { 232 CInterface::AttributeFortranInterfaceGetDeclaration<T>(oss, className, this->getName()) ; 233 } 234 235 183 236 //--------------------------------------------------------------- 184 237 -
XIOS/trunk/src/config/axis_attribute.conf
r219 r313 6 6 7 7 DECLARE_ATTRIBUTE(int, size) 8 DECLARE_ATTRIBUTE(ARRAY(double, 1), zvalue)8 DECLARE_ATTRIBUTE(ARRAY(double, 1), value) 9 9 10 10 -
XIOS/trunk/src/fortran/axis_interface.f90
r286 r313 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 5 6 SUBROUTINE cxios_set_axis_name(axis_hdl, name, name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_axis_name12 13 SUBROUTINE cxios_set_axis_standard_name(axis_hdl, standard_name, standard_name_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: standard_name17 INTEGER (kind = C_INT) , VALUE :: standard_name_size18 END SUBROUTINE cxios_set_axis_standard_name19 20 SUBROUTINE cxios_set_axis_long_name(axis_hdl, long_name, long_name_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: long_name24 INTEGER (kind = C_INT) , VALUE :: long_name_size25 END SUBROUTINE cxios_set_axis_long_name26 27 SUBROUTINE cxios_set_axis_unit(axis_hdl, unit, unit_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: unit31 INTEGER (kind = C_INT) , VALUE :: unit_size32 END SUBROUTINE cxios_set_axis_unit33 34 SUBROUTINE cxios_set_axis_size(axis_hdl, size) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl37 INTEGER (kind = C_INT) , VALUE :: size38 END SUBROUTINE cxios_set_axis_size39 40 SUBROUTINE cxios_set_axis_zvalue(axis_hdl, zvalue, zvalue_extent1) BIND(C)41 USE ISO_C_BINDING42 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl43 REAL (kind = C_DOUBLE) , DIMENSION(*) :: zvalue44 INTEGER (kind = C_INT) , VALUE :: zvalue_extent145 END SUBROUTINE cxios_set_axis_zvalue46 47 6 SUBROUTINE cxios_axis_handle_create(ret, idt, idt_size) BIND(C) 48 7 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/axisgroup_interface.f90
r286 r313 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 5 6 SUBROUTINE cxios_set_axisgroup_name(axisgroup_hdl, name, name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_axisgroup_name12 13 SUBROUTINE cxios_set_axisgroup_standard_name(axisgroup_hdl, standard_name, standard_name_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: standard_name17 INTEGER (kind = C_INT) , VALUE :: standard_name_size18 END SUBROUTINE cxios_set_axisgroup_standard_name19 20 SUBROUTINE cxios_set_axisgroup_long_name(axisgroup_hdl, long_name, long_name_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: long_name24 INTEGER (kind = C_INT) , VALUE :: long_name_size25 END SUBROUTINE cxios_set_axisgroup_long_name26 27 SUBROUTINE cxios_set_axisgroup_unit(axisgroup_hdl, unit, unit_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: unit31 INTEGER (kind = C_INT) , VALUE :: unit_size32 END SUBROUTINE cxios_set_axisgroup_unit33 34 SUBROUTINE cxios_set_axisgroup_size(axisgroup_hdl, size) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl37 INTEGER (kind = C_INT) , VALUE :: size38 END SUBROUTINE cxios_set_axisgroup_size39 40 SUBROUTINE cxios_set_axisgroup_zvalue(axisgroup_hdl, zvalue, zvalue_extent1) BIND(C)41 USE ISO_C_BINDING42 INTEGER (kind = C_INTPTR_T), VALUE :: axisgroup_hdl43 REAL (kind = C_DOUBLE) , DIMENSION(*) :: zvalue44 INTEGER (kind = C_INT) , VALUE :: zvalue_extent145 END SUBROUTINE cxios_set_axisgroup_zvalue46 6 47 7 SUBROUTINE cxios_axisgroup_handle_create(ret, idt, idt_size) BIND(C) -
XIOS/trunk/src/fortran/context_interface.f90
r312 r313 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 5 6 SUBROUTINE cxios_set_context_calendar_type(context_hdl, calendar_type ,calendar_type_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: calendar_type10 INTEGER (kind = C_INT) , VALUE :: calendar_type_size11 END SUBROUTINE cxios_set_context_calendar_type12 13 SUBROUTINE cxios_set_context_start_date(context_hdl, start_date ,start_date_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: start_date17 INTEGER (kind = C_INT) , VALUE :: start_date_size18 END SUBROUTINE cxios_set_context_start_date19 20 SUBROUTINE cxios_set_context_output_dir(context_hdl, output_dir ,output_dir_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: output_dir24 INTEGER (kind = C_INT) , VALUE :: output_dir_size25 END SUBROUTINE cxios_set_context_output_dir26 27 6 SUBROUTINE cxios_context_handle_create(ret, idt, idt_size) BIND(C) 28 7 import C_CHAR, C_INTPTR_T, C_INT -
XIOS/trunk/src/fortran/domain_interface.f90
r312 r313 3 3 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 6 SUBROUTINE cxios_set_domain_name(domain_hdl, name, name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_domain_name12 13 SUBROUTINE cxios_set_domain_standard_name(domain_hdl, standard_name, standard_name_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: standard_name17 INTEGER (kind = C_INT) , VALUE :: standard_name_size18 END SUBROUTINE cxios_set_domain_standard_name19 20 SUBROUTINE cxios_set_domain_long_name(domain_hdl, long_name, long_name_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: long_name24 INTEGER (kind = C_INT) , VALUE :: long_name_size25 END SUBROUTINE cxios_set_domain_long_name26 27 SUBROUTINE cxios_set_domain_domain_group_ref(domain_hdl, domain_group_ref, domain_group_ref_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: domain_group_ref31 INTEGER (kind = C_INT) , VALUE :: domain_group_ref_size32 END SUBROUTINE cxios_set_domain_domain_group_ref33 34 SUBROUTINE cxios_set_domain_ni_glo(domain_hdl, ni_glo) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl37 INTEGER (kind = C_INT) , VALUE :: ni_glo38 END SUBROUTINE cxios_set_domain_ni_glo39 40 SUBROUTINE cxios_set_domain_nj_glo(domain_hdl, nj_glo) BIND(C)41 USE ISO_C_BINDING42 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl43 INTEGER (kind = C_INT) , VALUE :: nj_glo44 END SUBROUTINE cxios_set_domain_nj_glo45 46 SUBROUTINE cxios_set_domain_ibegin(domain_hdl, ibegin) BIND(C)47 USE ISO_C_BINDING48 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl49 INTEGER (kind = C_INT) , VALUE :: ibegin50 END SUBROUTINE cxios_set_domain_ibegin51 52 SUBROUTINE cxios_set_domain_iend(domain_hdl, iend) BIND(C)53 USE ISO_C_BINDING54 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl55 INTEGER (kind = C_INT) , VALUE :: iend56 END SUBROUTINE cxios_set_domain_iend57 58 SUBROUTINE cxios_set_domain_ni(domain_hdl, ni) BIND(C)59 USE ISO_C_BINDING60 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl61 INTEGER (kind = C_INT) , VALUE :: ni62 END SUBROUTINE cxios_set_domain_ni63 64 SUBROUTINE cxios_set_domain_jbegin(domain_hdl, jbegin) BIND(C)65 USE ISO_C_BINDING66 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl67 INTEGER (kind = C_INT) , VALUE :: jbegin68 END SUBROUTINE cxios_set_domain_jbegin69 70 SUBROUTINE cxios_set_domain_jend(domain_hdl, jend) BIND(C)71 USE ISO_C_BINDING72 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl73 INTEGER (kind = C_INT) , VALUE :: jend74 END SUBROUTINE cxios_set_domain_jend75 76 SUBROUTINE cxios_set_domain_nj(domain_hdl, nj) BIND(C)77 USE ISO_C_BINDING78 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl79 INTEGER (kind = C_INT) , VALUE :: nj80 END SUBROUTINE cxios_set_domain_nj81 82 SUBROUTINE cxios_set_domain_mask(domain_hdl, mask, mask_extent1, mask_extent2) BIND(C)83 USE ISO_C_BINDING84 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl85 LOGICAL(kind = C_BOOL) , DIMENSION(*) :: mask86 INTEGER (kind = C_INT) , VALUE :: mask_extent187 INTEGER (kind = C_INT) , VALUE :: mask_extent288 END SUBROUTINE cxios_set_domain_mask89 90 SUBROUTINE cxios_set_domain_data_dim(domain_hdl, data_dim) BIND(C)91 USE ISO_C_BINDING92 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl93 INTEGER (kind = C_INT) , VALUE :: data_dim94 END SUBROUTINE cxios_set_domain_data_dim95 96 SUBROUTINE cxios_set_domain_data_ni(domain_hdl, data_ni) BIND(C)97 USE ISO_C_BINDING98 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl99 INTEGER (kind = C_INT) , VALUE :: data_ni100 END SUBROUTINE cxios_set_domain_data_ni101 102 SUBROUTINE cxios_set_domain_data_nj(domain_hdl, data_nj) BIND(C)103 USE ISO_C_BINDING104 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl105 INTEGER (kind = C_INT) , VALUE :: data_nj106 END SUBROUTINE cxios_set_domain_data_nj107 108 SUBROUTINE cxios_set_domain_data_ibegin(domain_hdl, data_ibegin) BIND(C)109 USE ISO_C_BINDING110 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl111 INTEGER (kind = C_INT) , VALUE :: data_ibegin112 END SUBROUTINE cxios_set_domain_data_ibegin113 114 SUBROUTINE cxios_set_domain_data_jbegin(domain_hdl, data_jbegin) BIND(C)115 USE ISO_C_BINDING116 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl117 INTEGER (kind = C_INT) , VALUE :: data_jbegin118 END SUBROUTINE cxios_set_domain_data_jbegin119 120 SUBROUTINE cxios_set_domain_zoom_ni(domain_hdl, zoom_ni) BIND(C)121 USE ISO_C_BINDING122 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl123 INTEGER (kind = C_INT) , VALUE :: zoom_ni124 END SUBROUTINE cxios_set_domain_zoom_ni125 126 SUBROUTINE cxios_set_domain_zoom_nj(domain_hdl, zoom_nj) BIND(C)127 USE ISO_C_BINDING128 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl129 INTEGER (kind = C_INT) , VALUE :: zoom_nj130 END SUBROUTINE cxios_set_domain_zoom_nj131 132 SUBROUTINE cxios_set_domain_zoom_ibegin(domain_hdl, zoom_ibegin) BIND(C)133 USE ISO_C_BINDING134 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl135 INTEGER (kind = C_INT) , VALUE :: zoom_ibegin136 END SUBROUTINE cxios_set_domain_zoom_ibegin137 138 SUBROUTINE cxios_set_domain_zoom_jbegin(domain_hdl, zoom_jbegin) BIND(C)139 USE ISO_C_BINDING140 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl141 INTEGER (kind = C_INT) , VALUE :: zoom_jbegin142 END SUBROUTINE cxios_set_domain_zoom_jbegin143 144 SUBROUTINE cxios_set_domain_data_n_index(domain_hdl, data_n_index) BIND(C)145 USE ISO_C_BINDING146 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl147 INTEGER (kind = C_INT) , VALUE :: data_n_index148 END SUBROUTINE cxios_set_domain_data_n_index149 150 SUBROUTINE cxios_set_domain_data_i_index(domain_hdl, data_i_index, data_i_index_extent1) BIND(C)151 USE ISO_C_BINDING152 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl153 INTEGER (kind = C_INT) , DIMENSION(*) :: data_i_index154 INTEGER (kind = C_INT) , VALUE :: data_i_index_extent1155 END SUBROUTINE cxios_set_domain_data_i_index156 157 SUBROUTINE cxios_set_domain_data_j_index(domain_hdl, data_j_index, data_j_index_extent1) BIND(C)158 USE ISO_C_BINDING159 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl160 INTEGER (kind = C_INT) , DIMENSION(*) :: data_j_index161 INTEGER (kind = C_INT) , VALUE :: data_j_index_extent1162 END SUBROUTINE cxios_set_domain_data_j_index163 164 SUBROUTINE cxios_set_domain_lonvalue(domain_hdl, lonvalue, lonvalue_extent1) BIND(C)165 USE ISO_C_BINDING166 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl167 REAL (kind = C_DOUBLE) , DIMENSION(*) :: lonvalue168 INTEGER (kind = C_INT) , VALUE :: lonvalue_extent1169 END SUBROUTINE cxios_set_domain_lonvalue170 171 SUBROUTINE cxios_set_domain_latvalue(domain_hdl, latvalue, latvalue_extent1) BIND(C)172 USE ISO_C_BINDING173 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl174 REAL (kind = C_DOUBLE) , DIMENSION(*) :: latvalue175 INTEGER (kind = C_INT) , VALUE :: latvalue_extent1176 END SUBROUTINE cxios_set_domain_latvalue177 5 178 6 SUBROUTINE cxios_domain_handle_create(ret, idt, idt_size) BIND(C) -
XIOS/trunk/src/fortran/domaingroup_interface.f90
r312 r313 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 5 6 SUBROUTINE cxios_set_domaingroup_name(domaingroup_hdl, name, name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_domaingroup_name12 13 SUBROUTINE cxios_set_domaingroup_standard_name(domaingroup_hdl, standard_name, standard_name_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: standard_name17 INTEGER (kind = C_INT) , VALUE :: standard_name_size18 END SUBROUTINE cxios_set_domaingroup_standard_name19 20 SUBROUTINE cxios_set_domaingroup_long_name(domaingroup_hdl, long_name, long_name_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: long_name24 INTEGER (kind = C_INT) , VALUE :: long_name_size25 END SUBROUTINE cxios_set_domaingroup_long_name26 27 SUBROUTINE cxios_set_domaingroup_domain_group_ref(domaingroup_hdl, domain_group_ref, domain_group_ref_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: domain_group_ref31 INTEGER (kind = C_INT) , VALUE :: domain_group_ref_size32 END SUBROUTINE cxios_set_domaingroup_domain_group_ref33 34 SUBROUTINE cxios_set_domaingroup_ni_glo(domaingroup_hdl, ni_glo) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl37 INTEGER (kind = C_INT) , VALUE :: ni_glo38 END SUBROUTINE cxios_set_domaingroup_ni_glo39 40 SUBROUTINE cxios_set_domaingroup_nj_glo(domaingroup_hdl, nj_glo) BIND(C)41 USE ISO_C_BINDING42 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl43 INTEGER (kind = C_INT) , VALUE :: nj_glo44 END SUBROUTINE cxios_set_domaingroup_nj_glo45 46 SUBROUTINE cxios_set_domaingroup_ibegin(domaingroup_hdl, ibegin) BIND(C)47 USE ISO_C_BINDING48 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl49 INTEGER (kind = C_INT) , VALUE :: ibegin50 END SUBROUTINE cxios_set_domaingroup_ibegin51 52 SUBROUTINE cxios_set_domaingroup_iend(domaingroup_hdl, iend) BIND(C)53 USE ISO_C_BINDING54 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl55 INTEGER (kind = C_INT) , VALUE :: iend56 END SUBROUTINE cxios_set_domaingroup_iend57 58 SUBROUTINE cxios_set_domaingroup_ni(domaingroup_hdl, ni) BIND(C)59 USE ISO_C_BINDING60 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl61 INTEGER (kind = C_INT) , VALUE :: ni62 END SUBROUTINE cxios_set_domaingroup_ni63 64 SUBROUTINE cxios_set_domaingroup_jbegin(domaingroup_hdl, jbegin) BIND(C)65 USE ISO_C_BINDING66 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl67 INTEGER (kind = C_INT) , VALUE :: jbegin68 END SUBROUTINE cxios_set_domaingroup_jbegin69 70 SUBROUTINE cxios_set_domaingroup_jend(domaingroup_hdl, jend) BIND(C)71 USE ISO_C_BINDING72 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl73 INTEGER (kind = C_INT) , VALUE :: jend74 END SUBROUTINE cxios_set_domaingroup_jend75 76 SUBROUTINE cxios_set_domaingroup_nj(domaingroup_hdl, nj) BIND(C)77 USE ISO_C_BINDING78 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl79 INTEGER (kind = C_INT) , VALUE :: nj80 END SUBROUTINE cxios_set_domaingroup_nj81 82 SUBROUTINE cxios_set_domaingroup_mask(domaingroup_hdl, mask, mask_extent1, mask_extent2) BIND(C)83 USE ISO_C_BINDING84 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl85 LOGICAL(kind = C_BOOL) , DIMENSION(*) :: mask86 INTEGER (kind = C_INT) , VALUE :: mask_extent187 INTEGER (kind = C_INT) , VALUE :: mask_extent288 END SUBROUTINE cxios_set_domaingroup_mask89 90 SUBROUTINE cxios_set_domaingroup_data_dim(domaingroup_hdl, data_dim) BIND(C)91 USE ISO_C_BINDING92 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl93 INTEGER (kind = C_INT) , VALUE :: data_dim94 END SUBROUTINE cxios_set_domaingroup_data_dim95 96 SUBROUTINE cxios_set_domaingroup_data_ni(domaingroup_hdl, data_ni) BIND(C)97 USE ISO_C_BINDING98 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl99 INTEGER (kind = C_INT) , VALUE :: data_ni100 END SUBROUTINE cxios_set_domaingroup_data_ni101 102 SUBROUTINE cxios_set_domaingroup_data_nj(domaingroup_hdl, data_nj) BIND(C)103 USE ISO_C_BINDING104 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl105 INTEGER (kind = C_INT) , VALUE :: data_nj106 END SUBROUTINE cxios_set_domaingroup_data_nj107 108 SUBROUTINE cxios_set_domaingroup_data_ibegin(domaingroup_hdl, data_ibegin) BIND(C)109 USE ISO_C_BINDING110 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl111 INTEGER (kind = C_INT) , VALUE :: data_ibegin112 END SUBROUTINE cxios_set_domaingroup_data_ibegin113 114 SUBROUTINE cxios_set_domaingroup_data_jbegin(domaingroup_hdl, data_jbegin) BIND(C)115 USE ISO_C_BINDING116 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl117 INTEGER (kind = C_INT) , VALUE :: data_jbegin118 END SUBROUTINE cxios_set_domaingroup_data_jbegin119 120 SUBROUTINE cxios_set_domaingroup_zoom_ni(domaingroup_hdl, zoom_ni) BIND(C)121 USE ISO_C_BINDING122 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl123 INTEGER (kind = C_INT) , VALUE :: zoom_ni124 END SUBROUTINE cxios_set_domaingroup_zoom_ni125 126 SUBROUTINE cxios_set_domaingroup_zoom_nj(domaingroup_hdl, zoom_nj) BIND(C)127 USE ISO_C_BINDING128 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl129 INTEGER (kind = C_INT) , VALUE :: zoom_nj130 END SUBROUTINE cxios_set_domaingroup_zoom_nj131 132 SUBROUTINE cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl, zoom_ibegin) BIND(C)133 USE ISO_C_BINDING134 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl135 INTEGER (kind = C_INT) , VALUE :: zoom_ibegin136 END SUBROUTINE cxios_set_domaingroup_zoom_ibegin137 138 SUBROUTINE cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl, zoom_jbegin) BIND(C)139 USE ISO_C_BINDING140 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl141 INTEGER (kind = C_INT) , VALUE :: zoom_jbegin142 END SUBROUTINE cxios_set_domaingroup_zoom_jbegin143 144 SUBROUTINE cxios_set_domaingroup_data_n_index(domaingroup_hdl, data_n_index) BIND(C)145 USE ISO_C_BINDING146 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl147 INTEGER (kind = C_INT) , VALUE :: data_n_index148 END SUBROUTINE cxios_set_domaingroup_data_n_index149 150 SUBROUTINE cxios_set_domaingroup_data_i_index(domaingroup_hdl, data_i_index, data_i_index_extent1) BIND(C)151 USE ISO_C_BINDING152 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl153 INTEGER (kind = C_INT) , DIMENSION(*) :: data_i_index154 INTEGER (kind = C_INT) , VALUE :: data_i_index_extent1155 END SUBROUTINE cxios_set_domaingroup_data_i_index156 157 SUBROUTINE cxios_set_domaingroup_data_j_index(domaingroup_hdl, data_j_index, data_j_index_extent1) BIND(C)158 USE ISO_C_BINDING159 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl160 INTEGER (kind = C_INT) , DIMENSION(*) :: data_j_index161 INTEGER (kind = C_INT) , VALUE :: data_j_index_extent1162 END SUBROUTINE cxios_set_domaingroup_data_j_index163 164 SUBROUTINE cxios_set_domaingroup_lonvalue(domaingroup_hdl, lonvalue, lonvalue_extent1) BIND(C)165 USE ISO_C_BINDING166 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl167 REAL (kind = C_DOUBLE) , DIMENSION(*) :: lonvalue168 INTEGER (kind = C_INT) , VALUE :: lonvalue_extent1169 END SUBROUTINE cxios_set_domaingroup_lonvalue170 171 SUBROUTINE cxios_set_domaingroup_latvalue(domaingroup_hdl, latvalue, latvalue_extent1) BIND(C)172 USE ISO_C_BINDING173 INTEGER (kind = C_INTPTR_T), VALUE :: domaingroup_hdl174 REAL (kind = C_DOUBLE) , DIMENSION(*) :: latvalue175 INTEGER (kind = C_INT) , VALUE :: latvalue_extent1176 END SUBROUTINE cxios_set_domaingroup_latvalue177 178 6 SUBROUTINE cxios_domaingroup_handle_create(ret, idt, idt_size) BIND(C) 179 7 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/field_interface.f90
r310 r313 3 3 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 6 SUBROUTINE cxios_set_field_name(field_hdl, name ,name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_field_name12 13 SUBROUTINE cxios_set_field_standard_name(field_hdl, standard_name ,standard_name_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: standard_name17 INTEGER (kind = C_INT) , VALUE :: standard_name_size18 END SUBROUTINE cxios_set_field_standard_name19 20 SUBROUTINE cxios_set_field_long_name(field_hdl, long_name ,long_name_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: long_name24 INTEGER (kind = C_INT) , VALUE :: long_name_size25 END SUBROUTINE cxios_set_field_long_name26 27 SUBROUTINE cxios_set_field_unit(field_hdl, unit ,unit_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: unit31 INTEGER (kind = C_INT) , VALUE :: unit_size32 END SUBROUTINE cxios_set_field_unit33 34 SUBROUTINE cxios_set_field_operation(field_hdl, operation ,operation_size) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl37 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: operation38 INTEGER (kind = C_INT) , VALUE :: operation_size39 END SUBROUTINE cxios_set_field_operation40 41 SUBROUTINE cxios_set_field_freq_op(field_hdl, freq_op ,freq_op_size) BIND(C)42 USE ISO_C_BINDING43 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl44 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: freq_op45 INTEGER (kind = C_INT) , VALUE :: freq_op_size46 END SUBROUTINE cxios_set_field_freq_op47 48 SUBROUTINE cxios_set_field_level(field_hdl, level) BIND(C)49 USE ISO_C_BINDING50 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl51 INTEGER (kind = C_INT) , VALUE :: level52 END SUBROUTINE cxios_set_field_level53 54 SUBROUTINE cxios_set_field_prec(field_hdl, prec) BIND(C)55 USE ISO_C_BINDING56 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl57 INTEGER (kind = C_INT) , VALUE :: prec58 END SUBROUTINE cxios_set_field_prec59 60 SUBROUTINE cxios_set_field_enabled(field_hdl, enabled) BIND(C)61 USE ISO_C_BINDING62 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl63 LOGICAL (kind = C_BOOL) , VALUE :: enabled64 END SUBROUTINE cxios_set_field_enabled65 66 SUBROUTINE cxios_set_field_domain_ref(field_hdl, domain_ref ,domain_ref_size) BIND(C)67 USE ISO_C_BINDING68 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl69 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: domain_ref70 INTEGER (kind = C_INT) , VALUE :: domain_ref_size71 END SUBROUTINE cxios_set_field_domain_ref72 73 SUBROUTINE cxios_set_field_axis_ref(field_hdl, axis_ref ,axis_ref_size) BIND(C)74 USE ISO_C_BINDING75 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl76 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: axis_ref77 INTEGER (kind = C_INT) , VALUE :: axis_ref_size78 END SUBROUTINE cxios_set_field_axis_ref79 80 SUBROUTINE cxios_set_field_grid_ref(field_hdl, grid_ref ,grid_ref_size) BIND(C)81 USE ISO_C_BINDING82 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl83 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: grid_ref84 INTEGER (kind = C_INT) , VALUE :: grid_ref_size85 END SUBROUTINE cxios_set_field_grid_ref86 87 SUBROUTINE cxios_set_field_field_ref(field_hdl, field_ref ,field_ref_size) BIND(C)88 USE ISO_C_BINDING89 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl90 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: field_ref91 INTEGER (kind = C_INT) , VALUE :: field_ref_size92 END SUBROUTINE cxios_set_field_field_ref93 94 SUBROUTINE cxios_set_field_default_value(field_hdl, default_value) BIND(C)95 USE ISO_C_BINDING96 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl97 REAL (kind = C_DOUBLE) , VALUE :: default_value98 END SUBROUTINE cxios_set_field_default_value99 5 100 6 SUBROUTINE cxios_field_handle_create(ret, idt, idt_size) BIND(C) -
XIOS/trunk/src/fortran/fieldgroup_interface.f90
r286 r313 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 5 6 SUBROUTINE cxios_set_fieldgroup_name(fieldgroup_hdl, name ,name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_fieldgroup_name12 13 SUBROUTINE cxios_set_fieldgroup_standard_name(fieldgroup_hdl, standard_name ,standard_name_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: standard_name17 INTEGER (kind = C_INT) , VALUE :: standard_name_size18 END SUBROUTINE cxios_set_fieldgroup_standard_name19 20 SUBROUTINE cxios_set_fieldgroup_long_name(fieldgroup_hdl, long_name ,long_name_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: long_name24 INTEGER (kind = C_INT) , VALUE :: long_name_size25 END SUBROUTINE cxios_set_fieldgroup_long_name26 27 SUBROUTINE cxios_set_fieldgroup_unit(fieldgroup_hdl, unit ,unit_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: unit31 INTEGER (kind = C_INT) , VALUE :: unit_size32 END SUBROUTINE cxios_set_fieldgroup_unit33 34 SUBROUTINE cxios_set_fieldgroup_operation(fieldgroup_hdl, operation ,operation_size) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl37 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: operation38 INTEGER (kind = C_INT) , VALUE :: operation_size39 END SUBROUTINE cxios_set_fieldgroup_operation40 41 SUBROUTINE cxios_set_fieldgroup_freq_op(fieldgroup_hdl, freq_op ,freq_op_size) BIND(C)42 USE ISO_C_BINDING43 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl44 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: freq_op45 INTEGER (kind = C_INT) , VALUE :: freq_op_size46 END SUBROUTINE cxios_set_fieldgroup_freq_op47 48 SUBROUTINE cxios_set_fieldgroup_level(fieldgroup_hdl, level) BIND(C)49 USE ISO_C_BINDING50 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl51 INTEGER (kind = C_INT) , VALUE :: level52 END SUBROUTINE cxios_set_fieldgroup_level53 54 SUBROUTINE cxios_set_fieldgroup_prec(fieldgroup_hdl, prec) BIND(C)55 USE ISO_C_BINDING56 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl57 INTEGER (kind = C_INT) , VALUE :: prec58 END SUBROUTINE cxios_set_fieldgroup_prec59 60 SUBROUTINE cxios_set_fieldgroup_enabled(fieldgroup_hdl, enabled) BIND(C)61 USE ISO_C_BINDING62 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl63 LOGICAL (kind = C_BOOL) , VALUE :: enabled64 END SUBROUTINE cxios_set_fieldgroup_enabled65 66 SUBROUTINE cxios_set_fieldgroup_domain_ref(fieldgroup_hdl, domain_ref ,domain_ref_size) BIND(C)67 USE ISO_C_BINDING68 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl69 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: domain_ref70 INTEGER (kind = C_INT) , VALUE :: domain_ref_size71 END SUBROUTINE cxios_set_fieldgroup_domain_ref72 73 SUBROUTINE cxios_set_fieldgroup_axis_ref(fieldgroup_hdl, axis_ref ,axis_ref_size) BIND(C)74 USE ISO_C_BINDING75 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl76 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: axis_ref77 INTEGER (kind = C_INT) , VALUE :: axis_ref_size78 END SUBROUTINE cxios_set_fieldgroup_axis_ref79 80 SUBROUTINE cxios_set_fieldgroup_grid_ref(fieldgroup_hdl, grid_ref ,grid_ref_size) BIND(C)81 USE ISO_C_BINDING82 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl83 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: grid_ref84 INTEGER (kind = C_INT) , VALUE :: grid_ref_size85 END SUBROUTINE cxios_set_fieldgroup_grid_ref86 87 SUBROUTINE cxios_set_fieldgroup_field_ref(fieldgroup_hdl, field_ref ,field_ref_size) BIND(C)88 USE ISO_C_BINDING89 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl90 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: field_ref91 INTEGER (kind = C_INT) , VALUE :: field_ref_size92 END SUBROUTINE cxios_set_fieldgroup_field_ref93 94 SUBROUTINE cxios_set_fieldgroup_default_value(fieldgroup_hdl, default_value) BIND(C)95 USE ISO_C_BINDING96 INTEGER (kind = C_INTPTR_T), VALUE :: fieldgroup_hdl97 REAL (kind = C_DOUBLE) , VALUE :: default_value98 END SUBROUTINE cxios_set_fieldgroup_default_value99 100 6 SUBROUTINE cxios_fieldgroup_handle_create(ret, idt, idt_size) BIND(C) 101 7 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/file_interface.f90
r300 r313 3 3 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 6 SUBROUTINE cxios_set_file_name(file_hdl, name, name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_file_name12 13 SUBROUTINE cxios_set_file_description(file_hdl, description, description_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: description17 INTEGER (kind = C_INT) , VALUE :: description_size18 END SUBROUTINE cxios_set_file_description19 20 SUBROUTINE cxios_set_file_name_suffix(file_hdl, name_suffix, name_suffix_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name_suffix24 INTEGER (kind = C_INT) , VALUE :: name_suffix_size25 END SUBROUTINE cxios_set_file_name_suffix26 27 SUBROUTINE cxios_set_file_output_freq(file_hdl, output_freq, output_freq_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: output_freq31 INTEGER (kind = C_INT) , VALUE :: output_freq_size32 END SUBROUTINE cxios_set_file_output_freq33 34 SUBROUTINE cxios_set_file_output_level(file_hdl, output_level) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl37 INTEGER (kind = C_INT) , VALUE :: output_level38 END SUBROUTINE cxios_set_file_output_level39 40 SUBROUTINE cxios_set_file_enabled(file_hdl, enabled) BIND(C)41 USE ISO_C_BINDING42 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl43 LOGICAL (kind = C_BOOL) , VALUE :: enabled44 END SUBROUTINE cxios_set_file_enabled45 5 46 6 SUBROUTINE cxios_file_handle_create(ret, idt, idt_size) BIND(C) … … 58 18 END SUBROUTINE cxios_file_valid_id 59 19 60 SUBROUTINE cxios_set_file_type(file_hdl, type, type_size) BIND(C)61 USE ISO_C_BINDING62 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl63 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: type64 INTEGER (kind = C_INT) , VALUE :: type_size65 END SUBROUTINE cxios_set_file_type66 67 20 END INTERFACE 68 21 -
XIOS/trunk/src/fortran/filegroup_interface.f90
r300 r313 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 5 6 SUBROUTINE cxios_set_filegroup_name(filegroup_hdl, name ,name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_filegroup_name12 13 SUBROUTINE cxios_set_filegroup_description(filegroup_hdl, description ,description_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: description17 INTEGER (kind = C_INT) , VALUE :: description_size18 END SUBROUTINE cxios_set_filegroup_description19 20 SUBROUTINE cxios_set_filegroup_name_suffix(filegroup_hdl, name_suffix ,name_suffix_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name_suffix24 INTEGER (kind = C_INT) , VALUE :: name_suffix_size25 END SUBROUTINE cxios_set_filegroup_name_suffix26 27 SUBROUTINE cxios_set_filegroup_output_freq(filegroup_hdl, output_freq ,output_freq_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: output_freq31 INTEGER (kind = C_INT) , VALUE :: output_freq_size32 END SUBROUTINE cxios_set_filegroup_output_freq33 34 SUBROUTINE cxios_set_filegroup_output_level(filegroup_hdl, output_level) BIND(C)35 USE ISO_C_BINDING36 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl37 INTEGER (kind = C_INT) , VALUE :: output_level38 END SUBROUTINE cxios_set_filegroup_output_level39 40 SUBROUTINE cxios_set_filegroup_enabled(filegroup_hdl, enabled) BIND(C)41 USE ISO_C_BINDING42 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl43 LOGICAL (kind = C_BOOL) , VALUE :: enabled44 END SUBROUTINE cxios_set_filegroup_enabled45 46 6 SUBROUTINE cxios_filegroup_handle_create(ret, idt, idt_size) BIND(C) 47 7 USE ISO_C_BINDING … … 58 18 END SUBROUTINE cxios_filegroup_valid_id 59 19 60 SUBROUTINE cxios_set_filegroup_type(filegroup_hdl, type ,type_size) BIND(C)61 USE ISO_C_BINDING62 INTEGER (kind = C_INTPTR_T), VALUE :: filegroup_hdl63 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: type64 INTEGER (kind = C_INT) , VALUE :: type_size65 END SUBROUTINE cxios_set_filegroup_type66 67 20 END INTERFACE 68 21 -
XIOS/trunk/src/fortran/grid_interface.f90
r286 r313 3 3 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 6 SUBROUTINE cxios_set_grid_name(grid_hdl, name, name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_grid_name12 5 13 SUBROUTINE cxios_set_grid_description(grid_hdl, description, description_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: description17 INTEGER (kind = C_INT) , VALUE :: description_size18 END SUBROUTINE cxios_set_grid_description19 20 SUBROUTINE cxios_set_grid_domain_ref(grid_hdl, domain_ref, domain_ref_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: domain_ref24 INTEGER (kind = C_INT) , VALUE :: domain_ref_size25 END SUBROUTINE cxios_set_grid_domain_ref26 27 SUBROUTINE cxios_set_grid_axis_ref(grid_hdl, axis_ref, axis_ref_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: axis_ref31 INTEGER (kind = C_INT) , VALUE :: axis_ref_size32 END SUBROUTINE cxios_set_grid_axis_ref33 34 6 SUBROUTINE cxios_grid_handle_create(ret, idt, idt_size) BIND(C) 35 7 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/gridgroup_interface.f90
r286 r313 4 4 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 5 5 6 SUBROUTINE cxios_set_gridgroup_name(gridgroup_hdl, name, name_size) BIND(C)7 USE ISO_C_BINDING8 INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl9 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: name10 INTEGER (kind = C_INT) , VALUE :: name_size11 END SUBROUTINE cxios_set_gridgroup_name12 13 SUBROUTINE cxios_set_gridgroup_description(gridgroup_hdl, description, description_size) BIND(C)14 USE ISO_C_BINDING15 INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl16 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: description17 INTEGER (kind = C_INT) , VALUE :: description_size18 END SUBROUTINE cxios_set_gridgroup_description19 20 SUBROUTINE cxios_set_gridgroup_domain_ref(gridgroup_hdl, domain_ref, domain_ref_size) BIND(C)21 USE ISO_C_BINDING22 INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl23 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: domain_ref24 INTEGER (kind = C_INT) , VALUE :: domain_ref_size25 END SUBROUTINE cxios_set_gridgroup_domain_ref26 27 SUBROUTINE cxios_set_gridgroup_axis_ref(gridgroup_hdl, axis_ref, axis_ref_size) BIND(C)28 USE ISO_C_BINDING29 INTEGER (kind = C_INTPTR_T), VALUE :: gridgroup_hdl30 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: axis_ref31 INTEGER (kind = C_INT) , VALUE :: axis_ref_size32 END SUBROUTINE cxios_set_gridgroup_axis_ref33 34 6 SUBROUTINE cxios_domaingroup_handle_create(ret, idt, idt_size) BIND(C) 35 7 USE ISO_C_BINDING -
XIOS/trunk/src/fortran/iaxis.F90
r312 r313 5 5 USE AXIS_INTERFACE 6 6 USE AXISGROUP_INTERFACE 7 7 8 8 TYPE txios(axis) 9 9 INTEGER(kind = C_INTPTR_T) :: daddr … … 17 17 18 18 CONTAINS ! Fonctions disponibles pour les utilisateurs. 19 20 21 22 SUBROUTINE xios(set_axis_attr)(axis_id, name, standard_name, long_name, unit, size, value)23 IMPLICIT NONE24 TYPE(txios(axis)) :: axis_hdl25 CHARACTER(len = *) , INTENT(IN) :: axis_id26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name29 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit30 INTEGER , OPTIONAL, INTENT(IN) :: size31 REAL(kind=8), dimension(*), OPTIONAL, INTENT(IN) :: value(:)32 33 CALL xios(get_axis_handle)(axis_id,axis_hdl)34 CALL xios(set_axis_attr_hdl_)(axis_hdl, name, standard_name, long_name, unit, size, value)35 36 END SUBROUTINE xios(set_axis_attr)37 38 39 SUBROUTINE xios(set_axis_attr_hdl)(axis_hdl, name, standard_name, long_name, unit, size, value)40 IMPLICIT NONE41 TYPE(txios(axis)) , INTENT(IN) :: axis_hdl42 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name43 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name44 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name45 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit46 INTEGER , OPTIONAL, INTENT(IN) :: size47 REAL(kind=8), dimension(*), OPTIONAL, INTENT(IN) :: value(:)48 49 CALL xios(set_axis_attr_hdl_)(axis_hdl, name, standard_name, long_name, unit, size, value)50 51 END SUBROUTINE xios(set_axis_attr_hdl)52 53 54 SUBROUTINE xios(set_axis_attr_hdl_)(axis_hdl, name_, standard_name_, long_name_, unit_, size_, value_)55 IMPLICIT NONE56 TYPE(txios(axis)) , INTENT(IN) :: axis_hdl57 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_58 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_59 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_60 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_61 INTEGER , OPTIONAL, INTENT(IN) :: size_62 REAL(kind=8), dimension(*), OPTIONAL, INTENT(IN) :: value_(:)63 64 IF (PRESENT(name_)) THEN65 CALL cxios_set_axis_name(axis_hdl%daddr, name_, len(name_))66 END IF67 IF (PRESENT(standard_name_)) THEN68 CALL cxios_set_axis_standard_name(axis_hdl%daddr, standard_name_, len(standard_name_))69 END IF70 IF (PRESENT(long_name_)) THEN71 CALL cxios_set_axis_long_name(axis_hdl%daddr, long_name_, len(long_name_))72 END IF73 IF (PRESENT(unit_)) THEN74 CALL cxios_set_axis_unit(axis_hdl%daddr, unit_, len(unit_))75 END IF76 IF (PRESENT(size_)) THEN77 CALL cxios_set_axis_size(axis_hdl%daddr, size_)78 END IF79 IF (PRESENT(value_)) THEN80 CALL cxios_set_axis_zvalue(axis_hdl%daddr, value_, size(value_, 1))81 END IF82 83 END SUBROUTINE xios(set_axis_attr_hdl_)84 85 86 SUBROUTINE xios(set_axisgroup_attr)(axisgroup_id, name, standard_name, long_name, unit, size, value)87 IMPLICIT NONE88 TYPE(txios(axisgroup)) :: axisgroup_hdl89 CHARACTER(len = *) , INTENT(IN) :: axisgroup_id90 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name91 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name92 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name93 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit94 INTEGER , OPTIONAL, INTENT(IN) :: size95 REAL(kind=8), dimension(*), OPTIONAL, INTENT(IN) :: value(:)96 97 CALL xios(get_axisgroup_handle)(axisgroup_id,axisgroup_hdl)98 CALL xios(set_axisgroup_attr_hdl_)(axisgroup_hdl, name, standard_name, long_name, unit, size, value)99 100 END SUBROUTINE xios(set_axisgroup_attr)101 102 103 SUBROUTINE xios(set_axisgroup_attr_hdl)(axisgroup_hdl, name, standard_name, long_name, unit, size, value)104 IMPLICIT NONE105 TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl106 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name107 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name108 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name109 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit110 INTEGER , OPTIONAL, INTENT(IN) :: size111 REAL(kind=8), dimension(*), OPTIONAL, INTENT(IN) :: value(:)112 113 CALL xios(set_axisgroup_attr_hdl_)(axisgroup_hdl, name, standard_name, long_name, unit, size, value)114 115 END SUBROUTINE xios(set_axisgroup_attr_hdl)116 117 118 SUBROUTINE xios(set_axisgroup_attr_hdl_)(axisgroup_hdl, name_, standard_name_, long_name_, unit_, size_, value_)119 IMPLICIT NONE120 TYPE(txios(axisgroup)) , INTENT(IN) :: axisgroup_hdl121 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_122 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_123 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_124 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_125 INTEGER , OPTIONAL, INTENT(IN) :: size_126 REAL(kind=8), dimension(*), OPTIONAL, INTENT(IN) :: value_(:)127 128 IF (PRESENT(name_)) THEN129 CALL cxios_set_axisgroup_name(axisgroup_hdl%daddr, name_, len(name_))130 END IF131 IF (PRESENT(standard_name_)) THEN132 CALL cxios_set_axisgroup_standard_name(axisgroup_hdl%daddr, standard_name_, len(standard_name_))133 END IF134 IF (PRESENT(long_name_)) THEN135 CALL cxios_set_axisgroup_long_name(axisgroup_hdl%daddr, long_name_, len(long_name_))136 END IF137 IF (PRESENT(unit_)) THEN138 CALL cxios_set_axisgroup_unit(axisgroup_hdl%daddr, unit_, len(unit_))139 END IF140 IF (PRESENT(size_)) THEN141 CALL cxios_set_axisgroup_size(axisgroup_hdl%daddr, size_)142 END IF143 IF (PRESENT(value_)) THEN144 CALL cxios_set_axisgroup_zvalue(axisgroup_hdl%daddr, value_, size(value_, 1))145 END IF146 END SUBROUTINE xios(set_axisgroup_attr_hdl_)147 148 19 149 20 SUBROUTINE xios(get_axis_handle)(idt,ret) -
XIOS/trunk/src/fortran/icaxis.cpp
r300 r313 23 23 typedef xmlioserver::tree::CAxisGroup * XAxisGroupPtr; 24 24 25 // ------------------------- Attributs des axes -----------------------------26 void cxios_set_axis_name27 (XAxisPtr axis_hdl, const char * name , int name_size)28 {29 std::string name_str;30 if (!cstr2string(name, name_size, name_str)) return;31 32 axis_hdl->name.setValue(name_str);33 axis_hdl->sendAttributToServer(axis_hdl->name) ;34 }35 36 void cxios_set_axis_standard_name37 (XAxisPtr axis_hdl, const char * standard_name , int standard_name_size)38 {39 std::string standard_name_str;40 if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;41 42 axis_hdl->standard_name.setValue(standard_name_str);43 axis_hdl->sendAttributToServer(axis_hdl->standard_name);44 }45 46 void cxios_set_axis_long_name47 (XAxisPtr axis_hdl, const char * long_name , int long_name_size)48 {49 std::string long_name_str;50 if (!cstr2string(long_name, long_name_size, long_name_str)) return;51 52 axis_hdl->long_name.setValue(long_name_str);53 axis_hdl->sendAttributToServer(axis_hdl->long_name) ;54 }55 56 void cxios_set_axis_unit57 (XAxisPtr axis_hdl, const char * unit , int unit_size)58 {59 std::string unit_str;60 if (!cstr2string(unit, unit_size, unit_str)) return;61 62 axis_hdl->unit.setValue(unit_str);63 axis_hdl->sendAttributToServer(axis_hdl->unit) ;64 }65 66 void cxios_set_axis_size(XAxisPtr axis_hdl, int size)67 {68 axis_hdl->size.setValue(size);69 axis_hdl->sendAttributToServer(axis_hdl->size) ;70 }71 72 void cxios_set_axis_zvalue73 (XAxisPtr axis_hdl, const double * zvalue , int zvalue_extent1)74 {75 ARRAY(double, 1) zvalue_val(new CArray<double, 1>(boost::extents [zvalue_extent1]));76 std::copy(zvalue, &(zvalue[zvalue_val->num_elements()]), zvalue_val->data());77 78 axis_hdl->zvalue.setValue(zvalue_val);79 axis_hdl->sendAttributToServer(axis_hdl->zvalue) ;80 81 }82 83 // -------------------- Attributs des groupes d'axes -------------------------84 85 void cxios_set_axisgroup_name86 (XAxisGroupPtr axisgroup_hdl, const char * name , int name_size)87 {88 std::string name_str;89 if (!cstr2string(name, name_size, name_str)) return;90 91 axisgroup_hdl->name.setValue(name_str);92 axisgroup_hdl->sendAttributToServer(axisgroup_hdl->name) ;93 }94 95 void cxios_set_axisgroup_standard_name96 (XAxisGroupPtr axisgroup_hdl, const char * standard_name , int standard_name_size)97 {98 std::string standard_name_str;99 if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;100 101 axisgroup_hdl->standard_name.setValue(standard_name_str);102 axisgroup_hdl->sendAttributToServer(axisgroup_hdl->standard_name) ;103 }104 105 void cxios_set_axisgroup_long_name106 (XAxisGroupPtr axisgroup_hdl, const char * long_name , int long_name_size)107 {108 std::string long_name_str;109 if (!cstr2string(long_name, long_name_size, long_name_str)) return;110 111 axisgroup_hdl->long_name.setValue(long_name_str);112 axisgroup_hdl->sendAttributToServer(axisgroup_hdl->long_name) ;113 }114 115 void cxios_set_axisgroup_unit116 (XAxisGroupPtr axisgroup_hdl, const char * unit , int unit_size)117 {118 std::string unit_str;119 if (!cstr2string(unit, unit_size, unit_str)) return;120 121 axisgroup_hdl->unit.setValue(unit_str);122 axisgroup_hdl->sendAttributToServer(axisgroup_hdl->unit) ;123 }124 125 void cxios_set_axisgroup_size(XAxisGroupPtr axisgroup_hdl, int size)126 {127 axisgroup_hdl->size.setValue(size);128 axisgroup_hdl->sendAttributToServer(axisgroup_hdl->size) ;129 }130 131 void cxios_set_axisgroup_zvalue132 (XAxisGroupPtr axisgroup_hdl, const double * zvalue , int zvalue_extent1)133 {134 ARRAY(double, 1) zvalue_val(new CArray<double, 1>(boost::extents [zvalue_extent1]));135 std::copy(zvalue, &(zvalue[zvalue_val->num_elements()]), zvalue_val->data());136 137 axisgroup_hdl->zvalue.setValue(zvalue_val);138 axisgroup_hdl->sendAttributToServer(axisgroup_hdl->zvalue) ;139 }140 141 25 // ------------------------ Création des handle ----------------------------- 142 26 -
XIOS/trunk/src/fortran/iccontext.cpp
r312 r313 26 26 typedef xmlioserver::tree::CContext * XContextPtr; 27 27 28 // ------------------------- Attributs des contextes ------------------------29 30 31 void cxios_set_context_calendar_type(XContextPtr context_hdl, const char * calendar_type, int calendar_type_size)32 {33 std::string calendar_type_str;34 if (!cstr2string(calendar_type, calendar_type_size, calendar_type_str)) return;35 context_hdl->calendar_type.setValue(calendar_type_str);36 context_hdl->sendAttributToServer(context_hdl->calendar_type) ;37 }38 39 void cxios_set_context_start_date(XContextPtr context_hdl, const char * start_date, int start_date_size)40 {41 std::string start_date_str;42 if (!cstr2string(start_date, start_date_size, start_date_str)) return;43 44 context_hdl->start_date.setValue(start_date_str);45 context_hdl->sendAttributToServer(context_hdl->start_date) ;46 }47 48 void cxios_set_context_output_dir(XContextPtr context_hdl, const char * output_dir, int output_dir_size)49 {50 std::string output_dir_str;51 if (!cstr2string(output_dir, output_dir_size, output_dir_str)) return;52 53 context_hdl->output_dir.setValue(output_dir_str);54 context_hdl->sendAttributToServer(context_hdl->output_dir) ;55 }56 57 28 // ------------------------ Création des handle ----------------------------- 58 29 … … 71 42 return; 72 43 } 73 // Lever une exec ption ici44 // Lever une exeception ici 74 45 } 75 46 -
XIOS/trunk/src/fortran/icdomain.cpp
r312 r313 23 23 typedef xmlioserver::tree::CDomainGroup * XDomainGroupPtr; 24 24 25 // ------------------------- Attributs des axes -----------------------------26 27 void cxios_set_domain_name(XDomainPtr domain_hdl, const char * name, int name_size)28 {29 std::string name_str;30 if (!cstr2string(name, name_size, name_str)) return;31 32 domain_hdl->name.setValue(name_str);33 domain_hdl->sendAttributToServer(domain_hdl->name) ;34 }35 36 void cxios_set_domain_standard_name(XDomainPtr domain_hdl, const char * standard_name, int standard_name_size)37 {38 std::string standard_name_str;39 if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;40 41 domain_hdl->standard_name.setValue(standard_name_str);42 domain_hdl->sendAttributToServer(domain_hdl->standard_name) ;43 }44 45 void cxios_set_domain_long_name(XDomainPtr domain_hdl, const char * long_name, int long_name_size)46 {47 std::string long_name_str;48 if (!cstr2string(long_name, long_name_size, long_name_str)) return;49 50 domain_hdl->long_name.setValue(long_name_str);51 domain_hdl->sendAttributToServer(domain_hdl->long_name) ;52 }53 54 void cxios_set_domain_domain_group_ref(XDomainPtr domain_hdl, const char * domain_group_ref, int domain_group_ref_size)55 {56 std::string domain_group_ref_str;57 if (!cstr2string(domain_group_ref, domain_group_ref_size, domain_group_ref_str)) return;58 59 domain_hdl->domain_group_ref.setValue(domain_group_ref_str);60 domain_hdl->sendAttributToServer(domain_hdl->domain_group_ref) ;61 }62 63 void cxios_set_domain_ni_glo(XDomainPtr domain_hdl, int ni_glo)64 {65 domain_hdl->ni_glo.setValue(ni_glo);66 domain_hdl->sendAttributToServer(domain_hdl->ni_glo) ;67 }68 69 void cxios_set_domain_nj_glo(XDomainPtr domain_hdl, int nj_glo)70 {71 domain_hdl->nj_glo.setValue(nj_glo);72 domain_hdl->sendAttributToServer(domain_hdl->nj_glo) ;73 }74 75 void cxios_set_domain_ibegin(XDomainPtr domain_hdl, int ibegin)76 {77 domain_hdl->ibegin.setValue(ibegin);78 domain_hdl->sendAttributToServer(domain_hdl->ibegin) ;79 }80 81 void cxios_set_domain_iend(XDomainPtr domain_hdl, int iend)82 {83 domain_hdl->iend.setValue(iend);84 domain_hdl->sendAttributToServer(domain_hdl->iend) ;85 }86 87 void cxios_set_domain_ni(XDomainPtr domain_hdl, int ni)88 {89 domain_hdl->ni.setValue(ni);90 domain_hdl->sendAttributToServer(domain_hdl->ni) ;91 }92 93 void cxios_set_domain_jbegin(XDomainPtr domain_hdl, int jbegin)94 {95 domain_hdl->jbegin.setValue(jbegin);96 domain_hdl->sendAttributToServer(domain_hdl->jbegin) ;97 }98 99 void cxios_set_domain_jend(XDomainPtr domain_hdl, int jend)100 {101 domain_hdl->jend.setValue(jend);102 domain_hdl->sendAttributToServer(domain_hdl->jend) ;103 }104 105 void cxios_set_domain_nj(XDomainPtr domain_hdl, int nj)106 {107 domain_hdl->nj.setValue(nj);108 domain_hdl->sendAttributToServer(domain_hdl->nj) ;109 }110 111 void cxios_set_domain_mask(XDomainPtr domain_hdl, bool * mask, int mask_extent1, int mask_extent2)112 {113 ARRAY(bool, 2) mask_val(new CArray<bool, 2>(boost::extents [mask_extent1][mask_extent2]));114 std::copy(mask, &(mask[mask_val->num_elements()]), mask_val->data());115 116 domain_hdl->mask.setValue(mask_val);117 domain_hdl->sendAttributToServer(domain_hdl->mask) ;118 }119 120 void cxios_set_domain_data_dim(XDomainPtr domain_hdl, int data_dim)121 {122 domain_hdl->data_dim.setValue(data_dim);123 domain_hdl->sendAttributToServer(domain_hdl->data_dim) ;124 }125 126 void cxios_set_domain_data_ni(XDomainPtr domain_hdl, int data_ni)127 {128 domain_hdl->data_ni.setValue(data_ni);129 domain_hdl->sendAttributToServer(domain_hdl->data_ni) ;130 }131 132 void cxios_set_domain_data_nj(XDomainPtr domain_hdl, int data_nj)133 {134 domain_hdl->data_nj.setValue(data_nj);135 domain_hdl->sendAttributToServer(domain_hdl->data_nj) ;136 }137 138 void cxios_set_domain_data_ibegin(XDomainPtr domain_hdl, int data_ibegin)139 {140 domain_hdl->data_ibegin.setValue(data_ibegin);141 domain_hdl->sendAttributToServer(domain_hdl->data_ibegin) ;142 }143 144 void cxios_set_domain_data_jbegin(XDomainPtr domain_hdl, int data_jbegin)145 {146 domain_hdl->data_jbegin.setValue(data_jbegin);147 domain_hdl->sendAttributToServer(domain_hdl->data_jbegin) ;148 }149 150 void cxios_set_domain_zoom_ni(XDomainPtr domain_hdl, int zoom_ni)151 {152 domain_hdl->zoom_ni.setValue(zoom_ni);153 domain_hdl->sendAttributToServer(domain_hdl->zoom_ni) ;154 }155 156 void cxios_set_domain_zoom_nj(XDomainPtr domain_hdl, int zoom_nj)157 {158 domain_hdl->zoom_nj.setValue(zoom_nj);159 domain_hdl->sendAttributToServer(domain_hdl->zoom_nj) ;160 }161 162 void cxios_set_domain_zoom_ibegin(XDomainPtr domain_hdl, int zoom_ibegin)163 {164 domain_hdl->zoom_ibegin.setValue(zoom_ibegin);165 domain_hdl->sendAttributToServer(domain_hdl->zoom_ibegin) ;166 }167 168 void cxios_set_domain_zoom_jbegin(XDomainPtr domain_hdl, int zoom_jbegin)169 {170 domain_hdl->zoom_jbegin.setValue(zoom_jbegin);171 domain_hdl->sendAttributToServer(domain_hdl->zoom_jbegin) ;172 }173 174 void cxios_set_domain_data_n_index(XDomainPtr domain_hdl, int data_n_index)175 {176 domain_hdl->data_n_index.setValue(data_n_index);177 domain_hdl->sendAttributToServer(domain_hdl->data_n_index) ;178 }179 180 void cxios_set_domain_data_i_index(XDomainPtr domain_hdl, int * data_i_index, int data_i_index_extent1)181 {182 ARRAY(int, 1) data_i_index_val(new CArray<int, 1>(boost::extents [data_i_index_extent1]));183 std::copy(data_i_index, &(data_i_index[data_i_index_val->num_elements()]), data_i_index_val->data());184 185 domain_hdl->data_i_index.setValue(data_i_index_val);186 domain_hdl->sendAttributToServer(domain_hdl->data_i_index) ;187 }188 189 void cxios_set_domain_data_j_index(XDomainPtr domain_hdl, int * data_j_index, int data_j_index_extent1)190 {191 ARRAY(int, 1) data_j_index_val(new CArray<int, 1>(boost::extents [data_j_index_extent1]));192 std::copy(data_j_index, &(data_j_index[data_j_index_val->num_elements()]), data_j_index_val->data());193 194 domain_hdl->data_j_index.setValue(data_j_index_val);195 domain_hdl->sendAttributToServer(domain_hdl->data_j_index) ;196 }197 198 void cxios_set_domain_lonvalue(XDomainPtr domain_hdl, double * lonvalue, int lonvalue_extent1)199 {200 ARRAY(double, 1) lonvalue_val(new CArray<double, 1>(boost::extents [lonvalue_extent1]));201 std::copy(lonvalue, &(lonvalue[lonvalue_val->num_elements()]), lonvalue_val->data());202 203 domain_hdl->lonvalue.setValue(lonvalue_val);204 domain_hdl->sendAttributToServer(domain_hdl->lonvalue) ;205 }206 207 void cxios_set_domain_latvalue(XDomainPtr domain_hdl, double * latvalue, int latvalue_extent1)208 {209 ARRAY(double, 1) latvalue_val(new CArray<double, 1>(boost::extents [latvalue_extent1]));210 std::copy(latvalue, &(latvalue[latvalue_val->num_elements()]), latvalue_val->data());211 212 domain_hdl->latvalue.setValue(latvalue_val);213 domain_hdl->sendAttributToServer(domain_hdl->latvalue) ;214 }215 216 // -------------------- Attributs des groupes de domaine ------------------------217 218 219 void cxios_set_domaingroup_name(XDomainGroupPtr domaingroup_hdl, const char * name, int name_size)220 {221 std::string name_str;222 if (!cstr2string(name, name_size, name_str)) return;223 224 domaingroup_hdl->name.setValue(name_str);225 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->name) ;226 227 }228 229 void cxios_set_domaingroup_standard_name(XDomainGroupPtr domaingroup_hdl, const char * standard_name, int standard_name_size)230 {231 std::string standard_name_str;232 if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;233 234 domaingroup_hdl->standard_name.setValue(standard_name_str);235 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->standard_name) ;236 }237 238 void cxios_set_domaingroup_long_name(XDomainGroupPtr domaingroup_hdl, const char * long_name, int long_name_size)239 {240 std::string long_name_str;241 if (!cstr2string(long_name, long_name_size, long_name_str)) return;242 243 domaingroup_hdl->long_name.setValue(long_name_str);244 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->long_name) ;245 }246 247 void cxios_set_domaingroup_domain_group_ref(XDomainGroupPtr domaingroup_hdl, const char * domain_group_ref, int domain_group_ref_size)248 {249 std::string domain_group_ref_str;250 if (!cstr2string(domain_group_ref, domain_group_ref_size, domain_group_ref_str)) return;251 252 domaingroup_hdl->domain_group_ref.setValue(domain_group_ref_str);253 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->domain_group_ref) ;254 }255 256 void cxios_set_domaingroup_ni_glo(XDomainGroupPtr domaingroup_hdl, int ni_glo)257 {258 domaingroup_hdl->ni_glo.setValue(ni_glo);259 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->ni_glo) ;260 }261 262 void cxios_set_domaingroup_nj_glo(XDomainGroupPtr domaingroup_hdl, int nj_glo)263 {264 domaingroup_hdl->nj_glo.setValue(nj_glo);265 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->nj_glo) ;266 }267 268 void cxios_set_domaingroup_ibegin(XDomainGroupPtr domaingroup_hdl, int ibegin)269 {270 domaingroup_hdl->ibegin.setValue(ibegin);271 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->ibegin) ;272 }273 274 void cxios_set_domaingroup_iend(XDomainGroupPtr domaingroup_hdl, int iend)275 {276 domaingroup_hdl->iend.setValue(iend);277 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->iend) ;278 }279 280 void cxios_set_domaingroup_ni(XDomainGroupPtr domaingroup_hdl, int ni)281 {282 domaingroup_hdl->ni.setValue(ni);283 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->ni) ;284 }285 286 void cxios_set_domaingroup_jbegin(XDomainGroupPtr domaingroup_hdl, int jbegin)287 {288 domaingroup_hdl->jbegin.setValue(jbegin);289 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->jbegin) ;290 }291 292 void cxios_set_domaingroup_jend(XDomainGroupPtr domaingroup_hdl, int jend)293 {294 domaingroup_hdl->jend.setValue(jend);295 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->jend) ;296 }297 298 void cxios_set_domaingroup_nj(XDomainGroupPtr domaingroup_hdl, int nj)299 {300 domaingroup_hdl->nj.setValue(nj);301 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->nj) ;302 }303 304 void cxios_set_domaingroup_mask(XDomainGroupPtr domaingroup_hdl, bool * mask, int mask_extent1, int mask_extent2)305 {306 ARRAY(bool, 2) mask_val(new CArray<bool, 2>(boost::extents [mask_extent1][mask_extent2]));307 std::copy(mask, &(mask[mask_val->num_elements()]), mask_val->data());308 309 domaingroup_hdl->mask.setValue(mask_val);310 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->mask) ;311 }312 313 void cxios_set_domaingroup_data_dim(XDomainGroupPtr domaingroup_hdl, int data_dim)314 {315 domaingroup_hdl->data_dim.setValue(data_dim);316 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_dim) ;317 }318 319 void cxios_set_domaingroup_data_ni(XDomainGroupPtr domaingroup_hdl, int data_ni)320 {321 domaingroup_hdl->data_ni.setValue(data_ni);322 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_ni) ;323 }324 325 void cxios_set_domaingroup_data_nj(XDomainGroupPtr domaingroup_hdl, int data_nj)326 {327 domaingroup_hdl->data_nj.setValue(data_nj);328 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_nj) ;329 }330 331 void cxios_set_domaingroup_data_ibegin(XDomainGroupPtr domaingroup_hdl, int data_ibegin)332 {333 domaingroup_hdl->data_ibegin.setValue(data_ibegin);334 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_ibegin) ;335 }336 337 void cxios_set_domaingroup_data_jbegin(XDomainGroupPtr domaingroup_hdl, int data_jbegin)338 {339 domaingroup_hdl->data_jbegin.setValue(data_jbegin);340 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_jbegin) ;341 }342 343 void cxios_set_domaingroup_zoom_ni(XDomainGroupPtr domaingroup_hdl, int zoom_ni)344 {345 domaingroup_hdl->zoom_ni.setValue(zoom_ni);346 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_ni) ;347 }348 349 void cxios_set_domaingroup_zoom_nj(XDomainGroupPtr domaingroup_hdl, int zoom_nj)350 {351 domaingroup_hdl->zoom_nj.setValue(zoom_nj);352 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_nj) ;353 }354 355 void cxios_set_domaingroup_zoom_ibegin(XDomainGroupPtr domaingroup_hdl, int zoom_ibegin)356 {357 domaingroup_hdl->zoom_ibegin.setValue(zoom_ibegin);358 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_ibegin) ;359 }360 361 void cxios_set_domaingroup_zoom_jbegin(XDomainGroupPtr domaingroup_hdl, int zoom_jbegin)362 {363 domaingroup_hdl->zoom_jbegin.setValue(zoom_jbegin);364 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->zoom_jbegin) ;365 }366 367 void cxios_set_domaingroup_data_n_index(XDomainGroupPtr domaingroup_hdl, int data_n_index)368 {369 domaingroup_hdl->data_n_index.setValue(data_n_index);370 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_n_index) ;371 }372 373 void cxios_set_domaingroup_data_i_index(XDomainGroupPtr domaingroup_hdl, int * data_i_index, int data_i_index_extent1)374 {375 ARRAY(int, 1) data_i_index_val(new CArray<int, 1>(boost::extents [data_i_index_extent1]));376 std::copy(data_i_index, &(data_i_index[data_i_index_val->num_elements()]), data_i_index_val->data());377 378 domaingroup_hdl->data_i_index.setValue(data_i_index_val);379 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_i_index) ;380 }381 382 void cxios_set_domaingroup_data_j_index(XDomainGroupPtr domaingroup_hdl, int * data_j_index, int data_j_index_extent1)383 {384 ARRAY(int, 1) data_j_index_val(new CArray<int, 1>(boost::extents [data_j_index_extent1]));385 std::copy(data_j_index, &(data_j_index[data_j_index_val->num_elements()]), data_j_index_val->data());386 387 domaingroup_hdl->data_j_index.setValue(data_j_index_val);388 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_j_index) ;389 }390 391 void cxios_set_domaingroup_lonvalue(XDomainGroupPtr domaingroup_hdl, double * lonvalue, int lonvalue_extent1)392 {393 ARRAY(double, 1) lonvalue_val(new CArray<double, 1>(boost::extents [lonvalue_extent1]));394 std::copy(lonvalue, &(lonvalue[lonvalue_val->num_elements()]), lonvalue_val->data());395 396 domaingroup_hdl->lonvalue.setValue(lonvalue_val);397 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->lonvalue) ;398 }399 400 void cxios_set_domaingroup_latvalue(XDomainGroupPtr domaingroup_hdl, double * latvalue, int latvalue_extent1)401 {402 ARRAY(double, 1) latvalue_val(new CArray<double, 1>(boost::extents [latvalue_extent1]));403 std::copy(latvalue, &(latvalue[latvalue_val->num_elements()]), latvalue_val->data());404 405 domaingroup_hdl->latvalue.setValue(latvalue_val);406 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->latvalue) ;407 }408 409 25 // ------------------------ Création des handle ----------------------------- 410 26 -
XIOS/trunk/src/fortran/icfield.cpp
r310 r313 22 22 typedef xmlioserver::tree::CField * XFieldPtr; 23 23 typedef xmlioserver::tree::CFieldGroup * XFieldGroupPtr; 24 25 // ------------------------- Attributs des champs ---------------------------26 24 27 void cxios_set_field_name(XFieldPtr field_hdl, const char * name, int name_size) 28 { 29 std::string name_str; 30 if (!cstr2string(name, name_size, name_str)) return; 31 32 field_hdl->name.setValue(name_str); 33 field_hdl->sendAttributToServer(field_hdl->name) ; 34 } 35 36 void cxios_set_field_standard_name(XFieldPtr field_hdl, const char * standard_name, int standard_name_size) 37 { 38 std::string standard_name_str; 39 if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return; 40 41 field_hdl->standard_name.setValue(standard_name_str); 42 field_hdl->sendAttributToServer(field_hdl->standard_name) ; 43 } 44 45 void cxios_set_field_long_name(XFieldPtr field_hdl, const char * long_name, int long_name_size) 46 { 47 std::string long_name_str; 48 if (!cstr2string(long_name, long_name_size, long_name_str)) return; 49 50 field_hdl->long_name.setValue(long_name_str); 51 field_hdl->sendAttributToServer(field_hdl->long_name) ; 52 } 53 54 void cxios_set_field_unit(XFieldPtr field_hdl, const char * unit, int unit_size) 55 { 56 std::string unit_str; 57 if (!cstr2string(unit, unit_size, unit_str)) return; 58 59 field_hdl->unit.setValue(unit_str); 60 field_hdl->sendAttributToServer(field_hdl->unit) ; 61 62 } 63 64 void cxios_set_field_operation(XFieldPtr field_hdl, const char * operation, int operation_size) 65 { 66 std::string operation_str; 67 if (!cstr2string(operation, operation_size, operation_str)) return; 68 69 field_hdl->operation.setValue(operation_str); 70 field_hdl->sendAttributToServer(field_hdl->operation) ; 71 } 72 73 void cxios_set_field_freq_op(XFieldPtr field_hdl, const char * freq_op, int freq_op_size) 74 { 75 std::string freq_op_str; 76 if (!cstr2string(freq_op, freq_op_size, freq_op_str)) return; 77 78 field_hdl->freq_op.setValue(freq_op_str); 79 field_hdl->sendAttributToServer(field_hdl->freq_op) ; 80 } 81 82 void cxios_set_field_level(XFieldPtr field_hdl, int level) 83 { 84 field_hdl->level.setValue(level); 85 field_hdl->sendAttributToServer(field_hdl->level) ; 86 } 87 88 void cxios_set_field_prec(XFieldPtr field_hdl, int prec) 89 { 90 field_hdl->prec.setValue(prec); 91 field_hdl->sendAttributToServer(field_hdl->prec) ; 92 } 93 94 void cxios_set_field_enabled(XFieldPtr field_hdl, bool enabled) 95 { 96 field_hdl->enabled.setValue(enabled); 97 field_hdl->sendAttributToServer(field_hdl->enabled) ; 98 } 99 100 void cxios_set_field_domain_ref(XFieldPtr field_hdl, const char * domain_ref, int domain_ref_size) 101 { 102 std::string domain_ref_str; 103 if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return; 104 105 field_hdl->domain_ref.setValue(domain_ref_str); 106 field_hdl->sendAttributToServer(field_hdl->domain_ref) ; 107 } 108 109 void cxios_set_field_axis_ref(XFieldPtr field_hdl, const char * axis_ref, int axis_ref_size) 110 { 111 std::string axis_ref_str; 112 if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return; 113 114 field_hdl->axis_ref.setValue(axis_ref_str); 115 field_hdl->sendAttributToServer(field_hdl->axis_ref) ; 116 } 117 118 void cxios_set_field_grid_ref(XFieldPtr field_hdl, const char * grid_ref, int grid_ref_size) 119 { 120 std::string grid_ref_str; 121 if (!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return; 122 123 field_hdl->grid_ref.setValue(grid_ref_str); 124 field_hdl->sendAttributToServer(field_hdl->grid_ref) ; 125 } 126 127 void cxios_set_field_field_ref(XFieldPtr field_hdl, const char * field_ref, int field_ref_size) 128 { 129 std::string field_ref_str; 130 if (!cstr2string(field_ref, field_ref_size, field_ref_str)) return; 131 132 field_hdl->field_ref.setValue(field_ref_str); 133 field_hdl->sendAttributToServer(field_hdl->field_ref) ; 134 } 135 136 void cxios_set_field_default_value(XFieldPtr field_hdl, double default_value) 137 { 138 field_hdl->default_value.setValue(default_value); 139 field_hdl->sendAttributToServer(field_hdl->default_value) ; 140 } 141 142 // -------------------- Attributs des groupes de champs --------------------- 143 144 void cxios_set_fieldgroup_name(XFieldGroupPtr fieldgroup_hdl, const char * name, int name_size) 145 { 146 std::string name_str; 147 if (!cstr2string(name, name_size, name_str)) return; 148 149 fieldgroup_hdl->name.setValue(name_str); 150 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->name); 151 } 152 153 void cxios_set_fieldgroup_standard_name(XFieldGroupPtr fieldgroup_hdl, const char * standard_name, int standard_name_size) 154 { 155 std::string standard_name_str; 156 if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return; 157 158 fieldgroup_hdl->standard_name.setValue(standard_name_str); 159 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->standard_name); 160 } 161 162 void cxios_set_fieldgroup_long_name(XFieldGroupPtr fieldgroup_hdl, const char * long_name, int long_name_size) 163 { 164 std::string long_name_str; 165 if (!cstr2string(long_name, long_name_size, long_name_str)) return; 166 167 fieldgroup_hdl->long_name.setValue(long_name_str); 168 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->long_name); 169 } 170 171 void cxios_set_fieldgroup_unit(XFieldGroupPtr fieldgroup_hdl, const char * unit, int unit_size) 172 { 173 std::string unit_str; 174 if (!cstr2string(unit, unit_size, unit_str)) return; 175 176 fieldgroup_hdl->unit.setValue(unit_str); 177 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->unit); 178 } 179 180 void cxios_set_fieldgroup_operation(XFieldGroupPtr fieldgroup_hdl, const char * operation, int operation_size) 181 { 182 std::string operation_str; 183 if (!cstr2string(operation, operation_size, operation_str)) return; 184 185 fieldgroup_hdl->operation.setValue(operation_str); 186 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->operation); 187 } 188 189 void cxios_set_fieldgroup_freq_op(XFieldGroupPtr fieldgroup_hdl, const char * freq_op, int freq_op_size) 190 { 191 std::string freq_op_str; 192 if (!cstr2string(freq_op, freq_op_size, freq_op_str)) return; 193 194 fieldgroup_hdl->freq_op.setValue(freq_op_str); 195 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->freq_op); 196 } 197 198 void cxios_set_fieldgroup_level(XFieldGroupPtr fieldgroup_hdl, int level) 199 { 200 fieldgroup_hdl->level.setValue(level); 201 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->level); 202 } 203 204 void cxios_set_fieldgroup_prec(XFieldGroupPtr fieldgroup_hdl, int prec) 205 { 206 fieldgroup_hdl->prec.setValue(prec); 207 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->prec); 208 } 209 210 void cxios_set_fieldgroup_enabled(XFieldGroupPtr fieldgroup_hdl, bool enabled) 211 { 212 fieldgroup_hdl->enabled.setValue(enabled); 213 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->enabled); 214 } 215 216 void cxios_set_fieldgroup_domain_ref(XFieldGroupPtr fieldgroup_hdl, const char * domain_ref, int domain_ref_size) 217 { 218 std::string domain_ref_str; 219 if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return; 220 221 fieldgroup_hdl->domain_ref.setValue(domain_ref_str); 222 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->domain_ref); 223 } 224 225 void cxios_set_fieldgroup_axis_ref(XFieldGroupPtr fieldgroup_hdl, const char * axis_ref, int axis_ref_size) 226 { 227 std::string axis_ref_str; 228 if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return; 229 230 fieldgroup_hdl->axis_ref.setValue(axis_ref_str); 231 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->axis_ref); 232 } 233 234 void cxios_set_fieldgroup_grid_ref(XFieldGroupPtr fieldgroup_hdl, const char * grid_ref, int grid_ref_size) 235 { 236 std::string grid_ref_str; 237 if (!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return; 238 239 fieldgroup_hdl->grid_ref.setValue(grid_ref_str); 240 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->grid_ref); 241 } 242 243 void cxios_set_fieldgroup_field_ref(XFieldGroupPtr fieldgroup_hdl, const char * field_ref, int field_ref_size) 244 { 245 std::string field_ref_str; 246 if (!cstr2string(field_ref, field_ref_size, field_ref_str)) return; 247 248 fieldgroup_hdl->field_ref.setValue(field_ref_str); 249 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->field_ref); 250 } 251 252 void cxios_set_fieldgroup_default_value(XFieldGroupPtr fieldgroup_hdl, double default_value) 253 { 254 fieldgroup_hdl->default_value.setValue(default_value); 255 fieldgroup_hdl->sendAttributToServer(fieldgroup_hdl->default_value); 256 } 257 258 // ------------------------ Création des handle ----------------------------- 25 // -------------------------------------------------------------------------- 26 // ------------------------ Création des handle ----------------------------- 27 // -------------------------------------------------------------------------- 259 28 260 29 void cxios_field_handle_create (XFieldPtr * _ret, const char * _id, int _id_len) … … 292 61 *_ret = xmlioserver::CObjectFactory::HasObject<xmlioserver::tree::CFieldGroup>(id); 293 62 } 294 295 void cxios_field_is_active (XFieldPtr field_hdl, bool* ret) 296 { 297 *ret = field_hdl->isActive(); 298 } 63 64 // ----------------------------------------------------------------------------------------------------- 65 // ------------------------- other function---------- --------------------------- --------------------- 66 // ----------------------------------------------------------------------------------------------------- 67 68 void cxios_field_is_active (XFieldPtr field_hdl, bool* ret) 69 { 70 *ret = field_hdl->isActive(); 71 } 299 72 300 73 } // extern "C" -
XIOS/trunk/src/fortran/icfile.cpp
r300 r313 23 23 typedef xmlioserver::tree::CFileGroup * XFileGroupPtr; 24 24 25 // ------------------------- Attributs des axes -----------------------------26 27 void cxios_set_file_name(XFilePtr file_hdl, const char * name, int name_size)28 {29 std::string name_str;30 if (!cstr2string(name, name_size, name_str)) return;31 32 file_hdl->name.setValue(name_str);33 file_hdl->sendAttributToServer(file_hdl->name) ;34 }35 36 void cxios_set_file_description(XFilePtr file_hdl, const char * description, int description_size)37 {38 std::string description_str;39 if (!cstr2string(description, description_size, description_str)) return;40 41 file_hdl->description.setValue(description_str);42 file_hdl->sendAttributToServer(file_hdl->description) ;43 }44 45 void cxios_set_file_name_suffix(XFilePtr file_hdl, const char * name_suffix, int name_suffix_size)46 {47 std::string name_suffix_str;48 if (!cstr2string(name_suffix, name_suffix_size, name_suffix_str)) return;49 50 file_hdl->name_suffix.setValue(name_suffix_str);51 file_hdl->sendAttributToServer(file_hdl->name_suffix) ;52 }53 54 void cxios_set_file_output_freq(XFilePtr file_hdl, const char * output_freq, int output_freq_size)55 {56 std::string output_freq_str;57 if (!cstr2string(output_freq, output_freq_size, output_freq_str)) return;58 59 file_hdl->output_freq.setValue(output_freq_str);60 file_hdl->sendAttributToServer(file_hdl->output_freq) ;61 }62 63 void cxios_set_file_output_level(XFilePtr file_hdl, int output_level)64 {65 file_hdl->output_level.setValue(output_level);66 file_hdl->sendAttributToServer(file_hdl->output_level) ;67 }68 69 void cxios_set_file_enabled(XFilePtr file_hdl, bool enabled)70 {71 file_hdl->enabled.setValue(enabled);72 file_hdl->sendAttributToServer(file_hdl->enabled) ;73 }74 75 void cxios_set_file_type(XFilePtr file_hdl, const char * type, int type_size)76 {77 std::string type_str;78 if (!cstr2string(type, type_size, type_str)) return;79 80 file_hdl->type.setValue(type_str);81 file_hdl->sendAttributToServer(file_hdl->type) ;82 }83 84 // -------------------- Attributs des groupes d'axes ------------------------85 86 void cxios_set_filegroup_name(XFileGroupPtr filegroup_hdl, const char * name, int name_size)87 {88 std::string name_str;89 if (!cstr2string(name, name_size, name_str)) return;90 91 filegroup_hdl->name.setValue(name_str);92 filegroup_hdl->sendAttributToServer(filegroup_hdl->name) ;93 }94 95 void cxios_set_filegroup_description(XFileGroupPtr filegroup_hdl, const char * description, int description_size)96 {97 std::string description_str;98 if (!cstr2string(description, description_size, description_str)) return;99 100 filegroup_hdl->description.setValue(description_str);101 filegroup_hdl->sendAttributToServer(filegroup_hdl->description) ;102 }103 104 void cxios_set_filegroup_name_suffix(XFileGroupPtr filegroup_hdl, const char * name_suffix, int name_suffix_size)105 {106 std::string name_suffix_str;107 if (!cstr2string(name_suffix, name_suffix_size, name_suffix_str)) return;108 109 filegroup_hdl->name_suffix.setValue(name_suffix_str);110 filegroup_hdl->sendAttributToServer(filegroup_hdl->name_suffix) ;111 }112 113 void cxios_set_filegroup_output_freq(XFileGroupPtr filegroup_hdl, const char * output_freq, int output_freq_size)114 {115 std::string output_freq_str;116 if (!cstr2string(output_freq, output_freq_size, output_freq_str)) return;117 118 filegroup_hdl->output_freq.setValue(output_freq_str);119 filegroup_hdl->sendAttributToServer(filegroup_hdl->output_freq) ;120 }121 122 void cxios_set_filegroup_output_level(XFileGroupPtr filegroup_hdl, int output_level)123 {124 filegroup_hdl->output_level.setValue(output_level);125 filegroup_hdl->sendAttributToServer(filegroup_hdl->output_level) ;126 }127 128 void cxios_set_filegroup_enabled(XFileGroupPtr filegroup_hdl, bool enabled)129 {130 filegroup_hdl->enabled.setValue(enabled);131 filegroup_hdl->sendAttributToServer(filegroup_hdl->enabled) ;132 }133 134 void cxios_set_filegroup_type(XFileGroupPtr filegroup_hdl, const char * type, int type_size)135 {136 std::string type_str;137 if (!cstr2string(type, type_size, type_str)) return;138 139 filegroup_hdl->type.setValue(type_str);140 filegroup_hdl->sendAttributToServer(filegroup_hdl->type) ;141 }142 143 25 // ------------------------ Création des handle ----------------------------- 144 26 -
XIOS/trunk/src/fortran/icgrid.cpp
r300 r313 23 23 typedef xmlioserver::tree::CGridGroup * XGridGroupPtr; 24 24 25 // ------------------------- Attributs des axes -----------------------------26 27 void cxios_set_grid_name(XGridPtr grid_hdl, const char * name, int name_size)28 {29 std::string name_str;30 if (!cstr2string(name, name_size, name_str)) return;31 32 grid_hdl->name.setValue(name_str);33 grid_hdl->sendAttributToServer(name_str) ;34 }35 36 void cxios_set_grid_description(XGridPtr grid_hdl, const char * description, int description_size)37 {38 std::string description_str;39 if (!cstr2string(description, description_size, description_str)) return;40 41 grid_hdl->description.setValue(description_str);42 grid_hdl->sendAttributToServer(description_str) ;43 }44 45 void cxios_set_grid_domain_ref(XGridPtr grid_hdl, const char * domain_ref, int domain_ref_size)46 {47 std::string domain_ref_str;48 if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return;49 50 grid_hdl->domain_ref.setValue(domain_ref_str);51 grid_hdl->sendAttributToServer(domain_ref_str) ;52 }53 54 void cxios_set_grid_axis_ref(XGridPtr grid_hdl, const char * axis_ref, int axis_ref_size)55 {56 std::string axis_ref_str;57 if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return;58 59 grid_hdl->axis_ref.setValue(axis_ref_str);60 grid_hdl->sendAttributToServer(axis_ref_str) ;61 }62 63 // -------------------- Attributs des groupes de grilles --------------------64 65 void cxios_set_gridgroup_name(XGridGroupPtr gridgroup_hdl, const char * name, int name_size)66 {67 std::string name_str;68 if (!cstr2string(name, name_size, name_str)) return;69 70 gridgroup_hdl->name.setValue(name_str);71 gridgroup_hdl->sendAttributToServer(gridgroup_hdl->name) ;72 }73 74 void cxios_set_gridgroup_description(XGridGroupPtr gridgroup_hdl, const char * description, int description_size)75 {76 std::string description_str;77 if (!cstr2string(description, description_size, description_str)) return;78 79 gridgroup_hdl->description.setValue(description_str);80 gridgroup_hdl->sendAttributToServer(gridgroup_hdl->description) ;81 }82 83 void cxios_set_gridgroup_domain_ref(XGridGroupPtr gridgroup_hdl, const char * domain_ref, int domain_ref_size)84 {85 std::string domain_ref_str;86 if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return;87 88 gridgroup_hdl->domain_ref.setValue(domain_ref_str);89 gridgroup_hdl->sendAttributToServer(gridgroup_hdl->domain_ref) ;90 }91 92 void cxios_set_gridgroup_axis_ref(XGridGroupPtr gridgroup_hdl, const char * axis_ref, int axis_ref_size)93 {94 std::string axis_ref_str;95 if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return;96 97 gridgroup_hdl->axis_ref.setValue(axis_ref_str);98 gridgroup_hdl->sendAttributToServer(gridgroup_hdl->axis_ref) ;99 }100 101 25 // ------------------------ Création des handle ----------------------------- 102 26 -
XIOS/trunk/src/fortran/icontext.F90
r312 r313 4 4 USE, INTRINSIC :: ISO_C_BINDING 5 5 USE CONTEXT_INTERFACE 6 ! USE icontext_attr 6 7 USE IDATE 7 8 … … 14 15 CONTAINS ! Fonctions disponibles pour les utilisateurs. 15 16 16 SUBROUTINE xios(set_context_attr)( context_id, calendar_type, start_date, output_dir)17 IMPLICIT NONE18 CHARACTER(len = *) , INTENT(IN) :: context_id19 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type20 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date21 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir22 23 CALL xios(set_context_attr_)( context_id, calendar_type, start_date, output_dir)24 END SUBROUTINE xios(set_context_attr)25 26 27 SUBROUTINE xios(set_context_attr_)( context_id, calendar_type_, start_date_, output_dir_)28 IMPLICIT NONE29 CHARACTER(len = *) , INTENT(IN) :: context_id30 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type_31 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_32 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_33 TYPE(txios(context)) :: context_hdl34 35 CALL xios(get_context_handle)(context_id,context_hdl)36 CALL xios(set_context_attr_hdl_)( context_hdl, calendar_type_, start_date_, output_dir_)37 END SUBROUTINE xios(set_context_attr_)38 39 40 SUBROUTINE xios(set_context_attr_hdl)( context_hdl, calendar_type, start_date, output_dir)41 IMPLICIT NONE42 TYPE(txios(context)) , INTENT(IN) :: context_hdl43 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type44 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date45 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir46 47 CALL xios(set_context_attr_hdl_)( context_hdl, calendar_type, start_date, output_dir)48 49 END SUBROUTINE xios(set_context_attr_hdl)50 51 SUBROUTINE xios(set_context_attr_hdl_)( context_hdl, calendar_type_, start_date_, output_dir_)52 IMPLICIT NONE53 TYPE(txios(context)) , INTENT(IN) :: context_hdl54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: calendar_type_55 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_56 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: output_dir_57 58 IF (PRESENT(calendar_type_)) THEN59 CALL cxios_set_context_calendar_type(context_hdl%daddr, calendar_type_, len(calendar_type_))60 END IF61 IF (PRESENT(start_date_)) THEN62 CALL cxios_set_context_start_date(context_hdl%daddr, start_date_, len(start_date_))63 END IF64 IF (PRESENT(output_dir_)) THEN65 CALL cxios_set_context_output_dir(context_hdl%daddr, output_dir_, len(output_dir_))66 END IF67 END SUBROUTINE xios(set_context_attr_hdl_)68 69 70 71 17 SUBROUTINE xios(get_context_handle)(idt,ret) 72 18 IMPLICIT NONE -
XIOS/trunk/src/fortran/icutil.hpp
r274 r313 8 8 9 9 #include <string> 10 10 #include <string.h> 11 11 // ///////////////////////// Définitions/Déclarations /////////////////////// // 12 12 … … 29 29 } 30 30 31 inline bool string_copy(const string& str, char* cstr,int cstr_size) 32 { 33 34 if (str.size()>cstr_size) return false ; 35 else 36 { 37 std::memset (cstr,' ',cstr_size); 38 str.copy(cstr,cstr_size) ; 39 return true ; 40 } 41 } 42 template<class T> 43 inline bool array_copy(ARRAY(T,1) array_in, T* array_out, size_t extent1) 44 { 45 if (array_in->num_elements() != extent1) return false ; 46 std::copy(array_in->data(), array_in->data() + array_in->num_elements(), array_out); 47 return true ; 48 } 49 50 template<class T> 51 inline bool array_copy(ARRAY(T,2) array_in, T* array_out, size_t extent1, size_t extent2) 52 { 53 if (array_in->num_elements() != extent1*extent2) return false ; 54 std::copy(array_in->data(), array_in->data() + array_in->num_elements(), array_out); 55 return true ; 56 } 57 58 template<class T> 59 inline bool array_copy(ARRAY(T,3) array_in, T* array_out, size_t extent1, size_t extent2, size_t extent3) 60 { 61 if (array_in->num_elements() != extent1*extent2*extent3) return false ; 62 std::copy(array_in->data(), array_in->data() + array_in->num_elements(), array_out); 63 return true ; 64 } 65 66 31 67 #endif // __ICUTIL_HPP__ -
XIOS/trunk/src/fortran/idomain.F90
r312 r313 5 5 USE DOMAIN_INTERFACE 6 6 USE DOMAINGROUP_INTERFACE 7 7 ! USE IDOMAIN_ATTR 8 ! USE IDOMAINGROUP_ATTR 9 8 10 TYPE txios(domain) 9 11 INTEGER(kind = C_INTPTR_T) :: daddr … … 17 19 CONTAINS ! Fonctions disponibles pour les utilisateurs. 18 20 19 20 SUBROUTINE xios(set_domaingroup_attr) &21 ( domaingroup_id, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &22 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &23 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, &24 lonvalue, latvalue)25 IMPLICIT NONE26 TYPE(txios(domaingroup)) :: domaingroup_hdl27 CHARACTER(len = *) , INTENT(IN) :: domaingroup_id28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name29 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name30 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name31 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref32 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo33 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo34 INTEGER , OPTIONAL, INTENT(IN) :: ibegin35 INTEGER , OPTIONAL, INTENT(IN) :: iend36 INTEGER , OPTIONAL, INTENT(IN) :: ni37 INTEGER , OPTIONAL, INTENT(IN) :: jbegin38 INTEGER , OPTIONAL, INTENT(IN) :: jend39 INTEGER , OPTIONAL, INTENT(IN) :: nj40 LOGICAL , dimension(*), OPTIONAL, INTENT(IN) :: mask(:,:)41 INTEGER , OPTIONAL, INTENT(IN) :: data_dim42 INTEGER , OPTIONAL, INTENT(IN) :: data_ni43 INTEGER , OPTIONAL, INTENT(IN) :: data_nj44 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin45 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin46 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni47 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj48 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin49 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin50 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index51 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:)52 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index(:)53 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue(:)54 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue(:)55 56 CALL xios(get_domaingroup_handle)(domaingroup_id,domaingroup_hdl)57 CALL xios(set_domaingroup_attr_hdl_) &58 ( domaingroup_hdl, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &59 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &60 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, &61 lonvalue, latvalue)62 63 END SUBROUTINE xios(set_domaingroup_attr)64 65 SUBROUTINE xios(set_domaingroup_attr_hdl) &66 ( domaingroup_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &67 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &68 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, &69 data_j_index, lonvalue, latvalue)70 IMPLICIT NONE71 TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl72 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name73 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name74 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name75 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref76 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo77 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo78 INTEGER , OPTIONAL, INTENT(IN) :: ibegin79 INTEGER , OPTIONAL, INTENT(IN) :: iend80 INTEGER , OPTIONAL, INTENT(IN) :: ni81 INTEGER , OPTIONAL, INTENT(IN) :: jbegin82 INTEGER , OPTIONAL, INTENT(IN) :: jend83 INTEGER , OPTIONAL, INTENT(IN) :: nj84 LOGICAL , dimension(*) , OPTIONAL, INTENT(IN) :: mask(:,:)85 INTEGER , OPTIONAL, INTENT(IN) :: data_dim86 INTEGER , OPTIONAL, INTENT(IN) :: data_ni87 INTEGER , OPTIONAL, INTENT(IN) :: data_nj88 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin89 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin90 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni91 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj92 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin93 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin94 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index95 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:)96 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index(:)97 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue(:)98 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue(:)99 100 CALL xios(set_domaingroup_attr_hdl_) &101 ( domaingroup_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &102 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &103 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, &104 lonvalue, latvalue)105 106 END SUBROUTINE xios(set_domaingroup_attr_hdl)107 108 SUBROUTINE xios(set_domaingroup_attr_hdl_) &109 ( domaingroup_hdl, name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &110 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &111 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, data_n_index_, data_i_index_, data_j_index_, &112 lonvalue_, latvalue_)113 IMPLICIT NONE114 TYPE(txios(domaingroup)) , INTENT(IN) :: domaingroup_hdl115 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_116 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_117 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_118 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_119 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo_120 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_121 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_122 INTEGER , OPTIONAL, INTENT(IN) :: iend_123 INTEGER , OPTIONAL, INTENT(IN) :: ni_124 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_125 INTEGER , OPTIONAL, INTENT(IN) :: jend_126 INTEGER , OPTIONAL, INTENT(IN) :: nj_127 LOGICAL , dimension(*) , OPTIONAL, INTENT(IN) :: mask_(:,:)128 LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE :: mask__! (size(mask_,1),size(mask,2))129 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_130 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_131 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_132 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin_133 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin_134 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_135 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_136 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_137 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_138 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_139 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:)140 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index_(:)141 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue_(:)142 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue_(:)143 144 IF (PRESENT(name_)) THEN145 CALL cxios_set_domaingroup_name(domaingroup_hdl%daddr, name_, len(name_))146 END IF147 IF (PRESENT(standard_name_)) THEN148 CALL cxios_set_domaingroup_standard_name(domaingroup_hdl%daddr, standard_name_, len(standard_name_))149 END IF150 IF (PRESENT(long_name_)) THEN151 CALL cxios_set_domaingroup_long_name(domaingroup_hdl%daddr, long_name_, len(long_name_))152 END IF153 IF (PRESENT(domain_group_ref_)) THEN154 CALL cxios_set_domaingroup_domain_group_ref(domaingroup_hdl%daddr, domain_group_ref_, len(domain_group_ref_))155 END IF156 IF (PRESENT(ni_glo_)) THEN157 CALL cxios_set_domaingroup_ni_glo(domaingroup_hdl%daddr, ni_glo_)158 END IF159 IF (PRESENT(nj_glo_)) THEN160 CALL cxios_set_domaingroup_nj_glo(domaingroup_hdl%daddr, nj_glo_)161 END IF162 IF (PRESENT(ibegin_)) THEN163 CALL cxios_set_domaingroup_ibegin(domaingroup_hdl%daddr, ibegin_)164 END IF165 IF (PRESENT(iend_)) THEN166 CALL cxios_set_domaingroup_iend(domaingroup_hdl%daddr, iend_)167 END IF168 IF (PRESENT(ni_)) THEN169 CALL cxios_set_domaingroup_ni(domaingroup_hdl%daddr, ni_)170 END IF171 IF (PRESENT(jbegin_)) THEN172 CALL cxios_set_domaingroup_jbegin(domaingroup_hdl%daddr, jbegin_)173 END IF174 IF (PRESENT(jend_)) THEN175 CALL cxios_set_domaingroup_jend(domaingroup_hdl%daddr, jend_)176 END IF177 IF (PRESENT(nj_)) THEN178 CALL cxios_set_domaingroup_nj(domaingroup_hdl%daddr, nj_)179 END IF180 IF (PRESENT(mask_)) THEN181 ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))182 mask__(:,:) = mask_(:,:)183 CALL cxios_set_domaingroup_mask(domaingroup_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))184 DEALLOCATE(mask__)185 END IF186 IF (PRESENT(data_dim_)) THEN187 CALL cxios_set_domaingroup_data_dim(domaingroup_hdl%daddr, data_dim_)188 END IF189 IF (PRESENT(data_ni_)) THEN190 CALL cxios_set_domaingroup_data_ni(domaingroup_hdl%daddr, data_ni_)191 END IF192 IF (PRESENT(data_nj_)) THEN193 CALL cxios_set_domaingroup_data_nj(domaingroup_hdl%daddr, data_nj_)194 END IF195 IF (PRESENT(data_ibegin_)) THEN196 CALL cxios_set_domaingroup_data_ibegin(domaingroup_hdl%daddr, data_ibegin_)197 END IF198 IF (PRESENT(data_jbegin_)) THEN199 CALL cxios_set_domaingroup_data_jbegin(domaingroup_hdl%daddr, data_jbegin_)200 END IF201 IF (PRESENT(zoom_ni_)) THEN202 CALL cxios_set_domaingroup_zoom_ni(domaingroup_hdl%daddr, zoom_ni_)203 END IF204 IF (PRESENT(zoom_nj_)) THEN205 CALL cxios_set_domaingroup_zoom_nj(domaingroup_hdl%daddr, zoom_nj_)206 END IF207 IF (PRESENT(zoom_ibegin_)) THEN208 CALL cxios_set_domaingroup_zoom_ibegin(domaingroup_hdl%daddr, zoom_ibegin_)209 END IF210 IF (PRESENT(zoom_jbegin_)) THEN211 CALL cxios_set_domaingroup_zoom_jbegin(domaingroup_hdl%daddr, zoom_jbegin_)212 END IF213 214 IF (PRESENT(data_n_index_)) THEN215 CALL cxios_set_domaingroup_data_n_index(domaingroup_hdl%daddr, data_n_index_)216 END IF217 IF (PRESENT(data_i_index_)) THEN218 CALL cxios_set_domaingroup_data_i_index(domaingroup_hdl%daddr, data_i_index_, size(data_i_index_, 1))219 END IF220 IF (PRESENT(data_j_index_)) THEN221 CALL cxios_set_domaingroup_data_j_index(domaingroup_hdl%daddr, data_j_index_, size(data_j_index_, 1))222 END IF223 IF (PRESENT(lonvalue_)) THEN224 CALL cxios_set_domaingroup_lonvalue(domaingroup_hdl%daddr, lonvalue_, size(lonvalue_, 1))225 END IF226 IF (PRESENT(latvalue_)) THEN227 CALL cxios_set_domaingroup_latvalue(domaingroup_hdl%daddr, latvalue_, size(latvalue_, 1))228 END IF229 230 END SUBROUTINE xios(set_domaingroup_attr_hdl_)231 232 233 SUBROUTINE xios(set_domain_attr) &234 ( domain_id, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &235 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &236 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, &237 lonvalue, latvalue)238 IMPLICIT NONE239 240 TYPE(txios(domain)) :: domain_hdl241 CHARACTER(len = *) , INTENT(IN) :: domain_id242 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name243 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name244 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name245 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref246 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo247 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo248 INTEGER , OPTIONAL, INTENT(IN) :: ibegin249 INTEGER , OPTIONAL, INTENT(IN) :: iend250 INTEGER , OPTIONAL, INTENT(IN) :: ni251 INTEGER , OPTIONAL, INTENT(IN) :: jbegin252 INTEGER , OPTIONAL, INTENT(IN) :: jend253 INTEGER , OPTIONAL, INTENT(IN) :: nj254 LOGICAL , dimension(*), OPTIONAL, INTENT(IN) :: mask(:,:)255 INTEGER , OPTIONAL, INTENT(IN) :: data_dim256 INTEGER , OPTIONAL, INTENT(IN) :: data_ni257 INTEGER , OPTIONAL, INTENT(IN) :: data_nj258 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin259 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin260 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni261 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj262 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin263 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin264 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index265 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:)266 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index(:)267 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue(:)268 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue(:)269 270 CALL xios(get_domain_handle)(domain_id,domain_hdl)271 CALL xios(set_domain_attr_hdl_) &272 ( domain_hdl, name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &273 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &274 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, &275 lonvalue, latvalue)276 277 END SUBROUTINE xios(set_domain_attr)278 279 280 SUBROUTINE xios(set_domain_attr_hdl) &281 ( domain_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &282 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &283 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, &284 data_j_index, lonvalue, latvalue)285 IMPLICIT NONE286 287 TYPE(txios(domain)) , INTENT(IN) :: domain_hdl288 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name289 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name290 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name291 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref292 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo293 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo294 INTEGER , OPTIONAL, INTENT(IN) :: ibegin295 INTEGER , OPTIONAL, INTENT(IN) :: iend296 INTEGER , OPTIONAL, INTENT(IN) :: ni297 INTEGER , OPTIONAL, INTENT(IN) :: jbegin298 INTEGER , OPTIONAL, INTENT(IN) :: jend299 INTEGER , OPTIONAL, INTENT(IN) :: nj300 LOGICAL , dimension(*) , OPTIONAL, INTENT(IN) :: mask(:,:)301 INTEGER , OPTIONAL, INTENT(IN) :: data_dim302 INTEGER , OPTIONAL, INTENT(IN) :: data_ni303 INTEGER , OPTIONAL, INTENT(IN) :: data_nj304 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin305 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin306 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni307 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj308 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin309 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin310 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index311 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index(:)312 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index(:)313 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue(:)314 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue(:)315 316 CALL xios(set_domain_attr_hdl_) &317 ( domain_hdl,name, standard_name, long_name, domain_group_ref, ni_glo, nj_glo, ibegin, iend, &318 ni, jbegin, jend, nj, mask, data_dim, data_ni, data_nj, data_ibegin, data_jbegin, &319 zoom_ni, zoom_nj, zoom_ibegin, zoom_jbegin, data_n_index, data_i_index, data_j_index, &320 lonvalue, latvalue)321 322 END SUBROUTINE xios(set_domain_attr_hdl)323 324 SUBROUTINE xios(set_domain_attr_hdl_) &325 ( domain_hdl,name_, standard_name_, long_name_, domain_group_ref_, ni_glo_, nj_glo_, ibegin_, iend_, &326 ni_, jbegin_, jend_, nj_, mask_, data_dim_, data_ni_, data_nj_, data_ibegin_, data_jbegin_, &327 zoom_ni_, zoom_nj_, zoom_ibegin_, zoom_jbegin_, data_n_index_, data_i_index_, data_j_index_, &328 lonvalue_, latvalue_)329 330 IMPLICIT NONE331 TYPE(txios(domain)) , INTENT(IN) :: domain_hdl332 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_333 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_334 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_335 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_group_ref_336 INTEGER , OPTIONAL, INTENT(IN) :: ni_glo_337 INTEGER , OPTIONAL, INTENT(IN) :: nj_glo_338 INTEGER , OPTIONAL, INTENT(IN) :: ibegin_339 INTEGER , OPTIONAL, INTENT(IN) :: iend_340 INTEGER , OPTIONAL, INTENT(IN) :: ni_341 INTEGER , OPTIONAL, INTENT(IN) :: jbegin_342 INTEGER , OPTIONAL, INTENT(IN) :: jend_343 INTEGER , OPTIONAL, INTENT(IN) :: nj_344 LOGICAL , dimension(*) , OPTIONAL, INTENT(IN) :: mask_(:,:)345 LOGICAL(kind = 1), dimension(:,:), ALLOCATABLE :: mask__346 INTEGER , OPTIONAL, INTENT(IN) :: data_dim_347 INTEGER , OPTIONAL, INTENT(IN) :: data_ni_348 INTEGER , OPTIONAL, INTENT(IN) :: data_nj_349 INTEGER , OPTIONAL, INTENT(IN) :: data_ibegin_350 INTEGER , OPTIONAL, INTENT(IN) :: data_jbegin_351 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ni_352 INTEGER , OPTIONAL, INTENT(IN) :: zoom_nj_353 INTEGER , OPTIONAL, INTENT(IN) :: zoom_ibegin_354 INTEGER , OPTIONAL, INTENT(IN) :: zoom_jbegin_355 INTEGER , OPTIONAL, INTENT(IN) :: data_n_index_356 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_i_index_(:)357 INTEGER , dimension(*) , OPTIONAL, INTENT(IN) :: data_j_index_(:)358 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: lonvalue_(:)359 REAL(kind = 8), dimension(*) , OPTIONAL, INTENT(IN) :: latvalue_(:)360 IF (PRESENT(name_)) THEN361 CALL cxios_set_domain_name(domain_hdl%daddr, name_, len(name_))362 END IF363 IF (PRESENT(standard_name_)) THEN364 CALL cxios_set_domain_standard_name(domain_hdl%daddr, standard_name_, len(standard_name_))365 END IF366 IF (PRESENT(long_name_)) THEN367 CALL cxios_set_domain_long_name(domain_hdl%daddr, long_name_, len(long_name_))368 END IF369 IF (PRESENT(domain_group_ref_)) THEN370 CALL cxios_set_domain_domain_group_ref(domain_hdl%daddr, domain_group_ref_, len(domain_group_ref_))371 END IF372 IF (PRESENT(ni_glo_)) THEN373 CALL cxios_set_domain_ni_glo(domain_hdl%daddr, ni_glo_)374 END IF375 IF (PRESENT(nj_glo_)) THEN376 CALL cxios_set_domain_nj_glo(domain_hdl%daddr, nj_glo_)377 END IF378 IF (PRESENT(ibegin_)) THEN379 CALL cxios_set_domain_ibegin(domain_hdl%daddr, ibegin_)380 END IF381 IF (PRESENT(iend_)) THEN382 CALL cxios_set_domain_iend(domain_hdl%daddr, iend_)383 END IF384 IF (PRESENT(ni_)) THEN385 CALL cxios_set_domain_ni(domain_hdl%daddr, ni_)386 END IF387 IF (PRESENT(jbegin_)) THEN388 CALL cxios_set_domain_jbegin(domain_hdl%daddr, jbegin_)389 END IF390 IF (PRESENT(jend_)) THEN391 CALL cxios_set_domain_jend(domain_hdl%daddr, jend_)392 END IF393 IF (PRESENT(nj_)) THEN394 CALL cxios_set_domain_nj(domain_hdl%daddr, nj_)395 END IF396 IF (PRESENT(mask_)) THEN397 ALLOCATE(mask__(size(mask_, 1), size(mask_, 2)))398 mask__(:,:) = mask_(:,:)399 CALL cxios_set_domain_mask(domain_hdl%daddr, mask__, size(mask_, 1), size(mask_, 2))400 DEALLOCATE(mask__)401 END IF402 IF (PRESENT(data_dim_)) THEN403 CALL cxios_set_domain_data_dim(domain_hdl%daddr, data_dim_)404 END IF405 IF (PRESENT(data_ni_)) THEN406 CALL cxios_set_domain_data_ni(domain_hdl%daddr, data_ni_)407 END IF408 IF (PRESENT(data_nj_)) THEN409 CALL cxios_set_domain_data_nj(domain_hdl%daddr, data_nj_)410 END IF411 IF (PRESENT(data_ibegin_)) THEN412 CALL cxios_set_domain_data_ibegin(domain_hdl%daddr, data_ibegin_)413 END IF414 IF (PRESENT(data_jbegin_)) THEN415 CALL cxios_set_domain_data_jbegin(domain_hdl%daddr, data_jbegin_)416 END IF417 IF (PRESENT(zoom_ni_)) THEN418 CALL cxios_set_domain_zoom_ni(domain_hdl%daddr, zoom_ni_)419 END IF420 IF (PRESENT(zoom_nj_)) THEN421 CALL cxios_set_domain_zoom_nj(domain_hdl%daddr, zoom_nj_)422 END IF423 IF (PRESENT(zoom_ibegin_)) THEN424 CALL cxios_set_domain_zoom_ibegin(domain_hdl%daddr, zoom_ibegin_)425 END IF426 IF (PRESENT(zoom_jbegin_)) THEN427 CALL cxios_set_domain_zoom_jbegin(domain_hdl%daddr, zoom_jbegin_)428 END IF429 IF (PRESENT(data_n_index_)) THEN430 CALL cxios_set_domain_data_n_index(domain_hdl%daddr, data_n_index_)431 END IF432 IF (PRESENT(data_i_index_)) THEN433 CALL cxios_set_domain_data_i_index(domain_hdl%daddr, data_i_index_, size(data_i_index_, 1))434 END IF435 IF (PRESENT(data_j_index_)) THEN436 CALL cxios_set_domain_data_j_index(domain_hdl%daddr, data_j_index_, size(data_j_index_, 1))437 END IF438 IF (PRESENT(lonvalue_)) THEN439 CALL cxios_set_domain_lonvalue(domain_hdl%daddr, lonvalue_, size(lonvalue_, 1))440 END IF441 IF (PRESENT(latvalue_)) THEN442 CALL cxios_set_domain_latvalue(domain_hdl%daddr, latvalue_, size(latvalue_, 1))443 END IF444 445 END SUBROUTINE xios(set_domain_attr_hdl_)446 447 448 449 21 SUBROUTINE xios(get_domain_handle)(idt,ret) 450 22 IMPLICIT NONE -
XIOS/trunk/src/fortran/ifield.F90
r312 r313 5 5 USE FIELD_INTERFACE 6 6 USE FIELDGROUP_INTERFACE 7 ! USE IFIELD_ATTR 8 ! USE IFIELDGROUP_ATTR 7 9 8 10 TYPE txios(field) … … 15 17 16 18 CONTAINS ! Fonctions disponibles pour les utilisateurs. 17 18 19 SUBROUTINE xios(set_fieldgroup_attr) &20 (fieldgroup_id, name, standard_name, long_name, unit, operation, freq_op, level, &21 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)22 23 IMPLICIT NONE24 TYPE(txios(fieldgroup)) :: fieldgroup_hdl25 CHARACTER(len = *) , INTENT(IN) :: fieldgroup_id26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name29 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit30 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation31 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op32 INTEGER , OPTIONAL, INTENT(IN) :: level33 INTEGER , OPTIONAL, INTENT(IN) :: prec34 LOGICAL , OPTIONAL, INTENT(IN) :: enabled35 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref36 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref37 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref39 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value40 41 CALL xios(get_fieldgroup_handle)(fieldgroup_id,fieldgroup_hdl)42 CALL xios(set_fieldgroup_attr_hdl_) &43 (fieldgroup_hdl, name, standard_name, long_name, unit, operation, freq_op, level, &44 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)45 46 END SUBROUTINE xios(set_fieldgroup_attr)47 48 SUBROUTINE xios(set_fieldgroup_attr_hdl) &49 (fieldgroup_hdl, name, standard_name, long_name, unit, operation, freq_op, level , &50 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)51 IMPLICIT NONE52 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl53 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name55 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name56 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit57 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation58 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op59 INTEGER , OPTIONAL, INTENT(IN) :: level60 INTEGER , OPTIONAL, INTENT(IN) :: prec61 LOGICAL , OPTIONAL, INTENT(IN) :: enabled62 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref63 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref64 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref65 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref66 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value67 68 CALL xios(set_fieldgroup_attr_hdl_) &69 (fieldgroup_hdl, name, standard_name, long_name, unit, operation, freq_op, level , &70 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)71 72 END SUBROUTINE xios(set_fieldgroup_attr_hdl)73 74 75 SUBROUTINE xios(set_fieldgroup_attr_hdl_) &76 (fieldgroup_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &77 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)78 IMPLICIT NONE79 TYPE(txios(fieldgroup)) , INTENT(IN) :: fieldgroup_hdl80 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_81 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_82 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_83 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_84 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_85 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_86 INTEGER , OPTIONAL, INTENT(IN) :: level_87 INTEGER , OPTIONAL, INTENT(IN) :: prec_88 LOGICAL(kind = 1) :: enabled__89 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_90 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_91 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_92 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_93 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_94 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value_95 96 IF (PRESENT(name_)) THEN97 CALL cxios_set_fieldgroup_name(fieldgroup_hdl%daddr, name_, len(name_))98 END IF99 IF (PRESENT(standard_name_)) THEN100 CALL cxios_set_fieldgroup_standard_name(fieldgroup_hdl%daddr, standard_name_, len(standard_name_))101 END IF102 IF (PRESENT(long_name_)) THEN103 CALL cxios_set_fieldgroup_long_name(fieldgroup_hdl%daddr, long_name_, len(long_name_))104 END IF105 IF (PRESENT(unit_)) THEN106 CALL cxios_set_fieldgroup_unit(fieldgroup_hdl%daddr, unit_, len(unit_))107 END IF108 IF (PRESENT(operation_)) THEN109 CALL cxios_set_fieldgroup_operation(fieldgroup_hdl%daddr, operation_, len(operation_))110 END IF111 IF (PRESENT(freq_op_)) THEN112 CALL cxios_set_fieldgroup_freq_op(fieldgroup_hdl%daddr, freq_op_, len(freq_op_))113 END IF114 IF (PRESENT(level_)) THEN115 CALL cxios_set_fieldgroup_level(fieldgroup_hdl%daddr, level_)116 END IF117 IF (PRESENT(prec_)) THEN118 CALL cxios_set_fieldgroup_prec(fieldgroup_hdl%daddr, prec_)119 END IF120 IF (PRESENT(enabled_)) THEN121 enabled__ = enabled_122 CALL cxios_set_fieldgroup_enabled(fieldgroup_hdl%daddr, enabled__)123 END IF124 IF (PRESENT(domain_ref_)) THEN125 CALL cxios_set_fieldgroup_domain_ref(fieldgroup_hdl%daddr, domain_ref_, len(domain_ref_))126 END IF127 IF (PRESENT(axis_ref_)) THEN128 CALL cxios_set_fieldgroup_axis_ref(fieldgroup_hdl%daddr, axis_ref_, len(axis_ref_))129 END IF130 IF (PRESENT(grid_ref_)) THEN131 CALL cxios_set_fieldgroup_grid_ref(fieldgroup_hdl%daddr, grid_ref_, len(grid_ref_))132 END IF133 IF (PRESENT(field_ref_)) THEN134 CALL cxios_set_fieldgroup_field_ref(fieldgroup_hdl%daddr, field_ref_, len(field_ref_))135 END IF136 IF (PRESENT(default_value_)) THEN137 CALL cxios_set_fieldgroup_default_value(fieldgroup_hdl%daddr, default_value_)138 END IF139 140 END SUBROUTINE xios(set_fieldgroup_attr_hdl_)141 142 143 SUBROUTINE xios(set_field_attr) &144 (field_id, name, standard_name, long_name, unit, operation, freq_op, level, &145 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)146 147 IMPLICIT NONE148 TYPE(txios(field)) :: field_hdl149 CHARACTER(len = *) , INTENT(IN) :: field_id150 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name151 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name152 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name153 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit154 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation155 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op156 INTEGER , OPTIONAL, INTENT(IN) :: level157 INTEGER , OPTIONAL, INTENT(IN) :: prec158 LOGICAL , OPTIONAL, INTENT(IN) :: enabled159 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref160 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref161 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref162 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref163 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value164 165 CALL xios(get_field_handle)(field_id,field_hdl)166 CALL xios(set_field_attr_hdl_) &167 (field_hdl, name, standard_name, long_name, unit, operation, freq_op, level, &168 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)169 END SUBROUTINE xios(set_field_attr)170 171 172 SUBROUTINE xios(set_field_attr_hdl) &173 (field_hdl, name, standard_name, long_name, unit, operation, freq_op, level, &174 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)175 IMPLICIT NONE176 TYPE(txios(field)) , INTENT(IN):: field_hdl177 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name178 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name179 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name180 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit181 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation182 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op183 INTEGER , OPTIONAL, INTENT(IN) :: level184 INTEGER , OPTIONAL, INTENT(IN) :: prec185 LOGICAL , OPTIONAL, INTENT(IN) :: enabled186 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref187 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref188 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref189 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref190 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value191 192 CALL xios(set_field_attr_hdl_) &193 (field_hdl, name, standard_name, long_name, unit, operation, freq_op, level, &194 prec, enabled, domain_ref, axis_ref, grid_ref, field_ref, default_value)195 196 END SUBROUTINE xios(set_field_attr_hdl)197 198 SUBROUTINE xios(set_field_attr_hdl_) &199 (field_hdl, name_, standard_name_, long_name_, unit_, operation_, freq_op_, level_, &200 prec_, enabled_, domain_ref_, axis_ref_, grid_ref_, field_ref_, default_value_)201 IMPLICIT NONE202 TYPE(txios(field)) , INTENT(IN):: field_hdl203 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_204 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_205 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_206 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_207 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_208 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: freq_op_209 INTEGER , OPTIONAL, INTENT(IN) :: level_210 INTEGER , OPTIONAL, INTENT(IN) :: prec_211 LOGICAL(kind = 1) :: enabled__212 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_213 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_214 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_215 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_216 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_217 REAL(kind=8) , OPTIONAL, INTENT(IN) :: default_value_218 219 IF (PRESENT(name_)) THEN220 CALL cxios_set_field_name(field_hdl%daddr, name_, len(name_))221 END IF222 IF (PRESENT(standard_name_)) THEN223 CALL cxios_set_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_))224 END IF225 IF (PRESENT(long_name_)) THEN226 CALL cxios_set_field_long_name(field_hdl%daddr, long_name_, len(long_name_))227 END IF228 IF (PRESENT(unit_)) THEN229 CALL cxios_set_field_unit(field_hdl%daddr, unit_, len(unit_))230 END IF231 IF (PRESENT(operation_)) THEN232 CALL cxios_set_field_operation(field_hdl%daddr, operation_, len(operation_))233 END IF234 IF (PRESENT(freq_op_)) THEN235 CALL cxios_set_field_freq_op(field_hdl%daddr, freq_op_, len(freq_op_))236 END IF237 IF (PRESENT(level_)) THEN238 CALL cxios_set_field_level(field_hdl%daddr, level_)239 END IF240 IF (PRESENT(prec_)) THEN241 CALL cxios_set_field_prec(field_hdl%daddr, prec_)242 END IF243 IF (PRESENT(enabled_)) THEN244 enabled__ = enabled_245 CALL cxios_set_field_enabled(field_hdl%daddr, enabled__)246 END IF247 IF (PRESENT(domain_ref_)) THEN248 CALL cxios_set_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_))249 END IF250 IF (PRESENT(axis_ref_)) THEN251 CALL cxios_set_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_))252 END IF253 IF (PRESENT(grid_ref_)) THEN254 CALL cxios_set_field_grid_ref(field_hdl%daddr, grid_ref_, len(grid_ref_))255 END IF256 IF (PRESENT(field_ref_)) THEN257 CALL cxios_set_field_field_ref(field_hdl%daddr, field_ref_, len(field_ref_))258 END IF259 IF (PRESENT(default_value_)) THEN260 CALL cxios_set_field_default_value(field_hdl%daddr, default_value_)261 END IF262 263 END SUBROUTINE xios(set_field_attr_hdl_)264 265 19 266 20 SUBROUTINE xios(get_field_handle)(idt, ret) -
XIOS/trunk/src/fortran/ifile.F90
r312 r313 5 5 USE FILE_INTERFACE 6 6 USE FILEGROUP_INTERFACE 7 ! USE IFILE_ATTR 8 ! USE IFILEGROUP_ATTR 7 9 8 10 TYPE txios(file) … … 15 17 16 18 CONTAINS ! Fonctions disponibles pour les utilisateurs. 17 18 19 SUBROUTINE xios(set_file_attr)(file_id, name , description, name_suffix, output_freq, output_level, enabled, type)20 IMPLICIT NONE21 TYPE(txios(file)) :: file_hdl22 CHARACTER(len = *) , INTENT(IN) :: file_id23 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name24 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description25 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix26 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq27 INTEGER , OPTIONAL, INTENT(IN) :: output_level28 LOGICAL , OPTIONAL, INTENT(IN) :: enabled29 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: type30 31 CALL xios(get_file_handle)(file_id,file_hdl)32 CALL xios(set_file_attr_hdl_)(file_hdl, name , description, name_suffix, output_freq, output_level, enabled, type)33 34 END SUBROUTINE xios(set_file_attr)35 36 37 SUBROUTINE xios(set_file_attr_hdl)(file_hdl, name , description, name_suffix, output_freq, output_level, enabled,type)38 TYPE(txios(file)) , INTENT(IN) :: file_hdl39 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name40 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description41 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix42 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq43 INTEGER , OPTIONAL, INTENT(IN) :: output_level44 LOGICAL , OPTIONAL, INTENT(IN) :: enabled45 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: type46 47 CALL xios(set_file_attr_hdl_)(file_hdl, name , description, name_suffix, output_freq, output_level, enabled, type)48 49 END SUBROUTINE xios(set_file_attr_hdl)50 51 SUBROUTINE xios(set_file_attr_hdl_)(file_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_, type_)52 TYPE(txios(file)) , INTENT(IN) :: file_hdl53 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_54 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_55 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_56 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_57 INTEGER , OPTIONAL, INTENT(IN) :: output_level_58 LOGICAL(kind = 1) :: enabled__59 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_60 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: type_61 62 IF (PRESENT(name_)) THEN63 CALL cxios_set_file_name(file_hdl%daddr, name_, len(name_))64 END IF65 IF (PRESENT(description_)) THEN66 CALL cxios_set_file_description(file_hdl%daddr, description_, len(description_))67 END IF68 IF (PRESENT(name_suffix_)) THEN69 CALL cxios_set_file_name_suffix(file_hdl%daddr, name_suffix_, len(name_suffix_))70 END IF71 IF (PRESENT(output_freq_)) THEN72 CALL cxios_set_file_output_freq(file_hdl%daddr, output_freq_, len(output_freq_))73 END IF74 IF (PRESENT(output_level_)) THEN75 CALL cxios_set_file_output_level(file_hdl%daddr, output_level_)76 END IF77 IF (PRESENT(enabled_)) THEN78 enabled__ = enabled_79 CALL cxios_set_file_enabled(file_hdl%daddr, enabled__)80 END IF81 82 IF (PRESENT(type_)) THEN83 CALL cxios_set_file_type(file_hdl%daddr, type_, len(type_))84 END IF85 86 END SUBROUTINE xios(set_file_attr_hdl_)87 88 89 90 SUBROUTINE xios(set_filegroup_attr)(filegroup_id, name , description, name_suffix, output_freq, output_level, enabled, type)91 IMPLICIT NONE92 TYPE(txios(filegroup)) :: filegroup_hdl93 CHARACTER(len = *) , INTENT(IN) :: filegroup_id94 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name95 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description96 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix97 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq98 INTEGER , OPTIONAL, INTENT(IN) :: output_level99 LOGICAL , OPTIONAL, INTENT(IN) :: enabled100 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: type101 102 CALL xios(get_filegroup_handle)(filegroup_id,filegroup_hdl)103 CALL xios(set_filegroup_attr_hdl_)(filegroup_hdl, name , description, name_suffix, output_freq, output_level, enabled, type)104 105 END SUBROUTINE xios(set_filegroup_attr)106 107 108 SUBROUTINE xios(set_filegroup_attr_hdl)(filegroup_hdl, name , description, name_suffix, output_freq, output_level, enabled, type)109 IMPLICIT NONE110 TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl111 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name112 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description113 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix114 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq115 INTEGER , OPTIONAL, INTENT(IN) :: output_level116 LOGICAL , OPTIONAL, INTENT(IN) :: enabled117 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: type118 119 CALL xios(set_filegroup_attr_hdl_)(filegroup_hdl, name , description, name_suffix, output_freq, output_level, enabled, type)120 121 END SUBROUTINE xios(set_filegroup_attr_hdl)122 123 124 SUBROUTINE xios(set_filegroup_attr_hdl_)(filegroup_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, &125 enabled_,type_)126 IMPLICIT NONE127 TYPE(txios(filegroup)) , INTENT(IN) :: filegroup_hdl128 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_129 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_130 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_131 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_132 INTEGER , OPTIONAL, INTENT(IN) :: output_level_133 LOGICAL(kind = 1) :: enabled__134 LOGICAL , OPTIONAL, INTENT(IN) :: enabled_135 CHARACTER(len = *), OPTIONAL, INTENT(IN) :: type_136 137 IF (PRESENT(name_)) THEN138 CALL cxios_set_filegroup_name(filegroup_hdl%daddr, name_, len(name_))139 END IF140 IF (PRESENT(description_)) THEN141 CALL cxios_set_filegroup_description(filegroup_hdl%daddr, description_, len(description_))142 END IF143 IF (PRESENT(name_suffix_)) THEN144 CALL cxios_set_filegroup_name_suffix(filegroup_hdl%daddr, name_suffix_, len(name_suffix_))145 END IF146 IF (PRESENT(output_freq_)) THEN147 CALL cxios_set_filegroup_output_freq(filegroup_hdl%daddr, output_freq_, len(output_freq_))148 END IF149 IF (PRESENT(output_level_)) THEN150 CALL cxios_set_filegroup_output_level(filegroup_hdl%daddr, output_level_)151 END IF152 IF (PRESENT(enabled_)) THEN153 enabled__ = enabled_154 CALL cxios_set_filegroup_enabled(filegroup_hdl%daddr, enabled__)155 END IF156 157 IF (PRESENT(type_)) THEN158 CALL cxios_set_filegroup_type(filegroup_hdl%daddr, type_, len(type_))159 END IF160 161 END SUBROUTINE xios(set_filegroup_attr_hdl_)162 163 19 164 20 SUBROUTINE xios(get_file_handle)( idt, ret) -
XIOS/trunk/src/fortran/igrid.F90
r312 r313 5 5 USE GRID_INTERFACE 6 6 USE GRIDGROUP_INTERFACE 7 7 ! USE IGRID_ATTR 8 ! USE IGRIDGROUP_ATTR 9 8 10 TYPE txios(grid) 9 11 INTEGER(kind = C_INTPTR_T) :: daddr … … 16 18 17 19 CONTAINS ! Fonctions disponibles pour les utilisateurs. 18 19 20 21 SUBROUTINE xios(set_grid_attr)(grid_id, name, description, domain_ref, axis_ref)22 IMPLICIT NONE23 TYPE(txios(grid)) :: grid_hdl24 CHARACTER(len = *) , INTENT(IN) :: grid_id25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description27 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref29 30 CALL xios(get_grid_handle)(grid_id,grid_hdl)31 CALL xios(set_grid_attr_hdl_)(grid_hdl, name, description, domain_ref, axis_ref)32 33 END SUBROUTINE xios(set_grid_attr)34 35 SUBROUTINE xios(set_grid_attr_hdl)(grid_hdl, name, description, domain_ref, axis_ref)36 IMPLICIT NONE37 TYPE (txios(grid)) :: grid_hdl38 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name39 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description40 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref41 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref42 43 CALL xios(set_grid_attr_hdl_)(grid_hdl, name, description, domain_ref, axis_ref)44 45 END SUBROUTINE xios(set_grid_attr_hdl)46 47 48 SUBROUTINE xios(set_grid_attr_hdl_)(grid_hdl, name_, description_, domain_ref_, axis_ref_)49 IMPLICIT NONE50 TYPE (txios(grid)) :: grid_hdl51 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_52 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_53 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_54 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_55 56 IF (PRESENT(name_)) THEN57 CALL cxios_set_grid_name(grid_hdl%daddr, name_, len(name_))58 END IF59 IF (PRESENT(description_)) THEN60 CALL cxios_set_grid_description(grid_hdl%daddr, description_, len(description_))61 END IF62 IF (PRESENT(domain_ref_)) THEN63 CALL cxios_set_grid_domain_ref(grid_hdl%daddr, domain_ref_, len(domain_ref_))64 END IF65 IF (PRESENT(axis_ref_)) THEN66 CALL cxios_set_grid_axis_ref(grid_hdl%daddr, axis_ref_, len(axis_ref_))67 END IF68 END SUBROUTINE xios(set_grid_attr_hdl_)69 70 71 72 SUBROUTINE xios(set_gridgroup_attr)(gridgroup_id, name, description, domain_ref, axis_ref)73 IMPLICIT NONE74 TYPE(txios(gridgroup)) :: gridgroup_hdl75 CHARACTER(len = *) , INTENT(IN) :: gridgroup_id76 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name77 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description78 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref79 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref80 81 CALL xios(get_gridgroup_handle)(gridgroup_id, gridgroup_hdl)82 CALL xios(set_gridgroup_attr_hdl_)(gridgroup_hdl, name, description, domain_ref, axis_ref)83 84 END SUBROUTINE xios(set_gridgroup_attr)85 86 SUBROUTINE xios(set_gridgroup_attr_hdl)(gridgroup_hdl, name, description, domain_ref, axis_ref)87 IMPLICIT NONE88 TYPE (txios(gridgroup)) :: gridgroup_hdl89 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name90 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description91 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref92 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref93 94 CALL xios(set_gridgroup_attr_hdl_)(gridgroup_hdl, name, description, domain_ref, axis_ref)95 96 END SUBROUTINE xios(set_gridgroup_attr_hdl)97 98 SUBROUTINE xios(set_gridgroup_attr_hdl_)(gridgroup_hdl, name_, description_, domain_ref_, axis_ref_)99 IMPLICIT NONE100 TYPE (txios(gridgroup)) :: gridgroup_hdl101 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_102 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description_103 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_104 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_105 106 IF (PRESENT(name_)) THEN107 CALL cxios_set_gridgroup_name(gridgroup_hdl%daddr, name_, len(name_))108 END IF109 IF (PRESENT(description_)) THEN110 CALL cxios_set_gridgroup_description(gridgroup_hdl%daddr, description_, len(description_))111 END IF112 IF (PRESENT(domain_ref_)) THEN113 CALL cxios_set_gridgroup_domain_ref(gridgroup_hdl%daddr, domain_ref_, len(domain_ref_))114 END IF115 IF (PRESENT(axis_ref_)) THEN116 CALL cxios_set_gridgroup_axis_ref(gridgroup_hdl%daddr, axis_ref_, len(axis_ref_))117 END IF118 END SUBROUTINE xios(set_gridgroup_attr_hdl_)119 120 121 20 122 21 SUBROUTINE xios(get_grid_handle)(idt,ret) -
XIOS/trunk/src/fortran/ixios.F90
r310 r313 4 4 5 5 6 USE icontext, ONLY : txios(context), xios(set_context_attr), xios(set_context_attr_hdl), & 7 xios(get_context_handle), xios(set_current_context), & 6 USE icontext, ONLY : txios(context), xios(get_context_handle), xios(set_current_context), & 8 7 xios(is_valid_context) 9 8 9 USE icontext_attr, ONLY : xios(set_context_attr), xios(set_context_attr_hdl), & 10 xios(get_context_attr), xios(get_context_attr_hdl) 11 10 12 USE idata, ONLY : xios(initialize),xios(init_server), xios(finalize), xios(context_initialize), & 11 13 xios(close_context_definition), & … … 16 18 USE idate, ONLY : txios(date),txios(time), xios(set_timestep),xios(update_calendar) 17 19 18 USE idomain, ONLY : txios(domain), txios(domaingroup), xios(set_domaingroup_attr), & 19 xios(set_domaingroup_attr_hdl), xios(set_domain_attr), xios(set_domain_attr_hdl),& 20 xios(get_domain_handle), xios(get_domaingroup_handle),xios(is_valid_domain), & 20 USE idomain, ONLY : txios(domain), txios(domaingroup), xios(get_domain_handle), & 21 xios(get_domaingroup_handle),xios(is_valid_domain), & 21 22 xios(is_valid_domaingroup) 22 23 USE ifield, ONLY : txios(field), txios(fieldgroup), xios(set_fieldgroup_attr), & 24 xios(set_fieldgroup_attr_hdl),xios(set_field_attr),xios(set_field_attr_hdl), & 25 xios(get_field_handle), xios(get_fieldgroup_handle), xios(is_valid_field), & 23 24 USE idomain_attr, ONLY : xios(set_domain_attr), xios(set_domain_attr_hdl), & 25 xios(get_domain_attr), xios(get_domain_attr_hdl) 26 27 USE idomaingroup_attr, ONLY : xios(set_domaingroup_attr), xios(set_domaingroup_attr_hdl), & 28 xios(get_domaingroup_attr), xios(get_domaingroup_attr_hdl) 29 30 USE ifield, ONLY : txios(field), txios(fieldgroup), xios(get_field_handle), & 31 xios(get_fieldgroup_handle), xios(is_valid_field), & 26 32 xios(is_valid_fieldgroup),xios(field_is_active_id),xios(field_is_active_hdl) 27 28 USE ifile, ONLY : txios(file), txios(filegroup), xios(set_file_attr),xios(set_file_attr_hdl), & 29 xios(set_filegroup_attr), xios(set_filegroup_attr_hdl), xios(get_file_handle), & 33 34 USE ifield_attr, ONLY : xios(set_field_attr),xios(set_field_attr_hdl), & 35 xios(get_field_attr),xios(get_field_attr_hdl) 36 37 USE ifieldgroup_attr, ONLY : xios(set_fieldgroup_attr), xios(set_fieldgroup_attr_hdl), & 38 xios(get_fieldgroup_attr), xios(get_fieldgroup_attr_hdl) 39 40 USE ifile, ONLY : txios(file), txios(filegroup), xios(get_file_handle), & 30 41 xios(get_filegroup_handle), xios(is_valid_file), xios(is_valid_filegroup) 42 43 USE ifile_attr, ONLY : xios(set_file_attr),xios(set_file_attr_hdl), & 44 xios(get_file_attr),xios(get_file_attr_hdl) 45 46 USE ifilegroup_attr, ONLY : xios(set_filegroup_attr), xios(set_filegroup_attr_hdl), & 47 xios(get_filegroup_attr), xios(get_filegroup_attr_hdl) 31 48 32 USE igrid, ONLY : txios(grid), txios(gridgroup), xios(set_grid_attr), xios(set_grid_attr_hdl), & 33 xios(set_gridgroup_attr), xios(set_gridgroup_attr_hdl), xios(get_grid_handle), & 49 USE igrid, ONLY : txios(grid), txios(gridgroup), xios(get_grid_handle), & 34 50 xios(get_gridgroup_handle), xios(is_valid_grid), xios(is_valid_gridgroup) 35 51 36 USE iaxis, ONLY : txios(axis), txios(axisgroup), xios(set_axis_attr), xios(set_axis_attr_hdl), & 37 xios(set_axisgroup_attr), xios(set_axisgroup_attr_hdl), xios(get_axis_handle), & 52 USE igrid_attr, ONLY : xios(set_grid_attr_hdl), xios(set_grid_attr), & 53 xios(get_grid_attr_hdl), xios(get_grid_attr) 54 55 USE igridgroup_attr, ONLY : xios(set_gridgroup_attr), xios(set_gridgroup_attr_hdl), & 56 xios(get_gridgroup_attr), xios(get_gridgroup_attr_hdl) 57 58 USE iaxis, ONLY : txios(axis), txios(axisgroup), xios(get_axis_handle), & 38 59 xios(get_axisgroup_handle), xios(is_valid_axis), xios(is_valid_axisgroup) 60 61 USE iaxis_attr, ONLY : xios(set_axis_attr), xios(set_axis_attr_hdl), & 62 xios(get_axis_attr), xios(get_axis_attr_hdl) 63 64 USE iaxisgroup_attr, ONLY : xios(set_axisgroup_attr), xios(set_axisgroup_attr_hdl), & 65 xios(get_axisgroup_attr), xios(get_axisgroup_attr_hdl) 39 66 40 67 USE ixml_tree, ONLY : xios(add_axis), xios(add_file), xios(add_grid), xios(add_field), xios(add_domain), & … … 52 79 xios(set_axisgroup_attr_hdl), xios(set_context_attr_hdl) 53 80 END INTERFACE xios(set_attr) 81 82 INTERFACE xios(get_attr) 83 MODULE PROCEDURE xios(get_domaingroup_attr_hdl), xios(get_domain_attr_hdl), xios(get_fieldgroup_attr_hdl), & 84 xios(get_field_attr_hdl), xios(get_file_attr_hdl), xios(get_filegroup_attr_hdl), & 85 xios(get_grid_attr_hdl), xios(get_gridgroup_attr_hdl), xios(get_axis_attr_hdl) , & 86 xios(get_axisgroup_attr_hdl), xios(get_context_attr_hdl) 87 END INTERFACE xios(get_attr) 54 88 55 89 INTERFACE xios(get_handle) … … 84 118 xios(set_axisgroup_attr), xios(set_context_attr) 85 119 120 PUBLIC :: xios(get_attr), xios(get_domain_attr), xios(get_domaingroup_attr), xios(get_fieldgroup_attr), & 121 xios(get_field_attr), xios(get_file_attr), xios(get_filegroup_attr), & 122 xios(get_grid_attr), xios(get_gridgroup_attr), xios(get_axis_attr) , & 123 xios(get_axisgroup_attr), xios(get_context_attr) 124 86 125 PUBLIC :: xios(get_handle) 87 126 PUBLIC :: xios(add_child) -
XIOS/trunk/src/indent.cpp
r219 r313 1 1 #include "indent.hpp" 2 #include <ostream> 3 #include <iostream> 2 4 3 /// boost headers /// 4 #include <boost/algorithm/string.hpp> 5 #include <boost/algorithm/string/split.hpp> 5 using namespace std ; 6 6 7 7 namespace xmlioserver 8 8 { 9 /// ////////////////////// Définitions ////////////////////// /// 10 unsigned int CIndent::Indent = 0; 11 StdString CIndent::Increm = StdString(" "); 12 bool CIndent::WithLine = false; 9 Cindent iendl ; 10 Cindent ireset(0,true) ; 11 int Cindent::defaultIncSize=2 ; 12 int Cindent::index=ios::xalloc() ; 13 14 Cindent::Cindent(int i,bool r) : offset(i), reset(r), incSize(defaultIncSize) 15 { } 16 17 Cindent Cindent::operator++() 18 { 19 return Cindent(incSize) ; 20 } 21 22 Cindent Cindent::operator--() 23 { 24 return Cindent(-incSize) ; 25 } 13 26 14 StdOStream & CIndent::NIndent(StdOStream& out) 15 { 16 static unsigned int LineNB = 1; 17 if (CIndent::WithLine) out << LineNB++ << ". "; 18 for(unsigned int i = 0; i < CIndent::Indent; out << CIndent::Increm , i++){} 19 return (out); 20 } 27 Cindent Cindent::operator++(int) 28 { 29 return Cindent(incSize) ; 30 } 31 32 Cindent Cindent::operator--(int) 33 { 34 return Cindent(-incSize) ; 35 } 21 36 22 StdOStream & CIndent::IncIndent(StdOStream& out) 23 { CIndent::Indent++; return (CIndent::NIndent(out)); } 37 Cindent Cindent::operator+=(int i) 38 { 39 return Cindent(incSize*i) ; 40 } 24 41 25 StdOStream & CIndent::DecEndl (StdOStream& out) 26 { CIndent::Indent--; return (out); } 42 Cindent Cindent::operator-=(int i) 43 { 44 return Cindent(-incSize*i) ; 45 } 27 46 28 ///---------------------------------------- 29 30 StdString CIndentedXml::Indented(const StdString & content) 31 { 32 StdOStringStream retvalue; 33 std::vector<StdString> str; 34 boost::split(str, content, boost::is_any_of("\n")); 35 36 std::vector<StdString>::iterator it = str.begin(), end = str.end(); 37 38 for (; it != end; it++) 39 { 40 StdString & line = *it; 41 if (line.find("<? ") != StdString::npos || 42 line.find(xml::CXMLNode::GetRootName()) != StdString::npos) 43 retvalue << CIndent::NIndent << line << std::endl; 44 else if (line.find("</") != StdString::npos) 45 retvalue << CIndent::NIndent << line << CIndent::DecEndl << std::endl; 46 else if (line.find(" />") != StdString::npos) 47 retvalue << CIndent::IncIndent << line << CIndent::DecEndl << std::endl; 48 else 49 retvalue << CIndent::IncIndent << line << std::endl; 50 } 51 return (retvalue.str()); 52 } 53 } // namespace xmlioserver 47 ostream& Cindent::iendl(ostream& o) const 48 { 49 if (reset) 50 { 51 o.iword(index)=0 ; 52 return o ; 53 } 54 else 55 { 56 o.iword(index)+=offset ; 57 if (o.iword(index)<0) o.iword(index)=0 ; 58 o<<"\n" ; 59 int mem=o.width(o.iword(index)) ; 60 o<<""; 61 o.width(mem) ; 62 return o ; 63 } 64 } 65 66 ostream& operator <<(ostream& o, const Cindent& indent) 67 { 68 return indent.iendl(o) ; 69 } 70 71 } -
XIOS/trunk/src/indent.hpp
r219 r313 1 #ifndef __X MLIO_CIndent__2 #define __X MLIO_CIndent__1 #ifndef __XIOS_INDENT_HPP__ 2 #define __XIOS_INDENT_HPP__ 3 3 4 /// xmlioserver headers /// 5 #include "xmlioserver_spl.hpp" 6 #include "xml_node.hpp" 4 #include <ostream> 7 5 8 6 namespace xmlioserver 9 7 { 10 /// ////////////////////// Déclarations ////////////////////// /// 11 class CIndent 12 { 13 public : 8 class Cindent 9 { 10 public: 11 static int defaultIncSize; 12 static int index ; 13 int incSize ; 14 int offset ; 15 bool reset ; 16 public : 14 17 15 /// Méthodes statiques /// 16 static StdOStream & NIndent (StdOStream & out); 17 static StdOStream & IncIndent(StdOStream & out); 18 static StdOStream & DecEndl (StdOStream & out); 18 Cindent(int i=0, bool r=false) ; 19 Cindent operator++(int) ; 20 Cindent operator--(int) ; 21 Cindent operator++() ; 22 Cindent operator--() ; 23 Cindent operator+=(int n) ; 24 Cindent operator-=(int n) ; 25 std::ostream& iendl(std::ostream& o) const ; 26 }; 27 28 std::ostream& operator <<(std::ostream& o, const Cindent& indent) ; 19 29 20 private : 30 extern Cindent iendl; 31 extern Cindent ireset; 21 32 22 /// Propriétés statiques /// 23 static unsigned int Indent; 24 static StdString Increm; 25 static bool WithLine; 26 27 }; // class CIndent 28 29 ///-------------------------------------------------------------- 30 31 class CIndentedXml 32 { 33 public : 34 35 /// Méthode statique /// 36 static StdString Indented(const StdString & content); 37 38 }; // class CIndentedXml 39 40 ///-------------------------------------------------------------- 41 42 } // namespace xmlioserver 43 44 /// ////////////////////// Macros ////////////////////// /// 45 46 #define NIndent CIndent::NIndent 47 #define IncIndent CIndent::IncIndent 48 #define DecEndl CIndent::DecEndl 49 50 #endif // __XMLIO_CIndent__ 33 } 34 #endif -
XIOS/trunk/src/manager/tree_manager.hpp
r219 r313 6 6 #include "node_type.hpp" 7 7 #include "xml_parser.hpp" 8 #include "indent .hpp"8 #include "indent_xml.hpp" 9 9 10 10 #undef DECLARE_ATTRIBUTE -
XIOS/trunk/src/node/axis.cpp
r300 r313 53 53 if (this->isChecked) return; 54 54 StdSize size = this->size.getValue(); 55 StdSize true_size = zvalue.getValue()->num_elements();55 StdSize true_size = value.getValue()->num_elements(); 56 56 if (size != true_size) 57 57 ERROR("CAxis::checkAttributes(void)", 58 << "Le tableau \' zvalue\' a une taille différente de celle indiquée dans l'attribut \'size\'")58 << "Le tableau \'value\' a une taille différente de celle indiquée dans l'attribut \'size\'") 59 59 60 60 this->isChecked = true; -
XIOS/trunk/src/object_template.hpp
r300 r313 40 40 virtual void toBinary (StdOStream & os) const; 41 41 virtual void fromBinary(StdIStream & is); 42 42 virtual string getName(void) const ; 43 43 virtual void parse(xml::CXMLNode & node); 44 44 … … 71 71 static boost::shared_ptr<T> create(const string& id=string("")) ; 72 72 73 void generateCInterface(ostream& oss) ; 74 void generateFortran2003Interface(ostream& oss) ; 75 void generateFortranInterface(ostream& oss) ; 76 73 77 protected : 74 78 -
XIOS/trunk/src/object_template_impl.hpp
r300 r313 112 112 return (T::GetType()); 113 113 } 114 114 115 template <class T> 116 string CObjectTemplate<T>::getName(void) const 117 { 118 return (T::GetName()); 119 } 120 115 121 //--------------------------------------------------------------- 116 122 … … 238 244 } 239 245 240 246 template <typename T> 247 void CObjectTemplate<T>::generateCInterface(ostream& oss) 248 { 249 string className=getName() ; 250 int found=className.find_first_of("_") ; 251 if (found!=string::npos) className.replace(found,1,0,'x') ; 252 253 oss<<"/* ************************************************************************** *"<<iendl ; 254 oss<<" * Interface auto generated - do not modify *"<<iendl ; 255 oss<<" * ************************************************************************** */"<<iendl; 256 oss<<iendl ; 257 oss<<"#include <boost/multi_array.hpp>"<<iendl ; 258 oss<<"#include <boost/shared_ptr.hpp>"<<iendl ; 259 oss<<"#include \"xmlioserver.hpp\""<<iendl; 260 oss<<"#include \"attribute_template_impl.hpp\""<<iendl ; 261 oss<<"#include \"object_template_impl.hpp\""<<iendl; 262 oss<<"#include \"group_template_impl.hpp\""<<iendl ; 263 oss<<"#include \"icutil.hpp\""<<iendl ; 264 oss<<iendl ; 265 oss<<"extern \"C\""<<iendl ; 266 oss<<"{"<<iendl++ ; 267 oss<<"typedef xmlioserver::tree::"<<getStrType<T>()<<"* "<<className<<"_Ptr;"<<iendl; 268 oss<<iendl ; 269 SuperClassMap::generateCInterface(oss,className) ; 270 oss<<iendl-- ; 271 oss<<"}"<<iendl ; 272 } 273 274 template <typename T> 275 void CObjectTemplate<T>::generateFortran2003Interface(ostream& oss) 276 { 277 string className=getName() ; 278 int found=className.find_first_of("_") ; 279 if (found!=string::npos) className.replace(found,1,0,'x') ; 280 281 oss<<"! * ************************************************************************** *"<<iendl ; 282 oss<<"! * Interface auto generated - do not modify *"<<iendl ; 283 oss<<"! * ************************************************************************** *"<<iendl; 284 oss<<iendl ; 285 oss<<"MODULE "<<className<<"_interface_attr"<<iendl++ ; 286 oss<<"USE, INTRINSIC :: ISO_C_BINDING"<<iendl ; 287 oss<<iendl ; 288 oss<<"INTERFACE ! Do not call directly / interface FORTRAN 2003 <-> C99"<<iendl++ ; 289 oss<<iendl ; 290 oss<<iendl ; 291 SuperClassMap::generateFortran2003Interface(oss,className) ; 292 oss<<"END INTERFACE"<<iendl-- ; 293 oss<<iendl-- ; 294 oss<<"END MODULE "<<className<<"_interface_attr"<<iendl ; 295 } 241 296 297 template <typename T> 298 void CObjectTemplate<T>::generateFortranInterface(ostream& oss) 299 { 300 string className=getName() ; 301 int found=className.find_first_of('_') ; 302 if (found!=string::npos) className.erase(found,1) ; 303 string superClassName=getName(); 304 found=superClassName.find("_group") ; 305 if (found!=string::npos) superClassName.erase(found,6) ; 306 307 oss<<"! * ************************************************************************** *"<<iendl ; 308 oss<<"! * Interface auto generated - do not modify *"<<iendl ; 309 oss<<"! * ************************************************************************** *"<<iendl; 310 oss<<"#include \"xios_fortran_prefix.hpp\""<<iendl ; 311 oss<<iendl ; 312 oss<<"MODULE i"<<className<<"_attr"<<iendl++ ; 313 oss<<"USE, INTRINSIC :: ISO_C_BINDING"<<iendl ; 314 oss<<"USE i"<<superClassName<<iendl ; 315 oss<<"USE "<<className<<"_interface_attr"<<iendl ; 316 // oss<<"TYPE txios("<<className<<")"<<iendl ; 317 // oss<<" INTEGER(kind = C_INTPTR_T) :: daddr"<<iendl ; 318 // oss<<"END TYPE txios("<<className<<")"<<iendl ; 319 oss<<iendl-- ; 320 oss<<"CONTAINS"<<iendl++ ; 321 oss<<iendl ; 322 SuperClassMap::generateFortranInterface_id(oss,className) ; 323 oss<<iendl ; 324 SuperClassMap::generateFortranInterface_hdl(oss,className) ; 325 oss<<iendl ; 326 SuperClassMap::generateFortranInterface_hdl_(oss,className) ; 327 oss<<iendl ; 328 SuperClassMap::generateFortranInterfaceGet_id(oss,className) ; 329 oss<<iendl ; 330 SuperClassMap::generateFortranInterfaceGet_hdl(oss,className) ; 331 oss<<iendl ; 332 SuperClassMap::generateFortranInterfaceGet_hdl_(oss,className) ; 333 oss<<iendl-- ; 334 oss<<"END MODULE i"<<className<<"_attr"<<iendl ; 335 } 336 337 242 338 } // namespace xmlioserver 243 339 -
XIOS/trunk/src/output/nc4_data_output.cpp
r300 r313 254 254 255 255 SuperClassWriter::definition_end(); 256 SuperClassWriter::writeData(axis-> zvalue.getValue(), axisid, true, 0);256 SuperClassWriter::writeData(axis->value.getValue(), axisid, true, 0); 257 257 SuperClassWriter::definition_start(); 258 258 -
XIOS/trunk/src/test/test_cs.f90
r310 r313 39 39 40 40 DOUBLE PRECISION,DIMENSION(ni_glo,nj_glo) :: lon_glo,lat_glo,field_A_glo 41 DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_A(:,:) 41 DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_A(:,:), lonvalue(:) ; 42 42 INTEGER :: ni,ibegin,iend,nj,jbegin,jend 43 43 INTEGER :: i,j,ts,n … … 62 62 iend=ibegin+ni-1 ; jend=jbegin+nj-1 63 63 64 ALLOCATE(lon(ni,nj),lat(ni,nj),field_A(0:ni+1,-1:nj+2) )64 ALLOCATE(lon(ni,nj),lat(ni,nj),field_A(0:ni+1,-1:nj+2),lonvalue(ni*nj)) 65 65 lon(:,:)=lon_glo(ibegin:iend,jbegin:jend) 66 66 lat(:,:)=lat_glo(ibegin:iend,jbegin:jend) … … 96 96 dtime%second=3600 97 97 CALL xios_set_timestep(dtime) 98 99 ni=0 ; lonvalue(:)=0 100 CALL xios_get_domain_attr("domain_A",ni=ni,lonvalue=lonvalue) 101 102 print *,"ni",ni 103 print *,"lonvalue",lonvalue ; 98 104 99 105 CALL xios_close_context_definition()
Note: See TracChangeset
for help on using the changeset viewer.