Difference between revisions of "Interfaces"
m |
m |
||
Line 1: | Line 1: | ||
− | |||
These are general interfaces for similar operations which can be performed on a variety of classes. For example the 'plus' routine can be performed on: [[IXTdatum]], [[IXTdatum_array]], [[IXTdataset_1d]] and [[IXTdataset_2d]]. | These are general interfaces for similar operations which can be performed on a variety of classes. For example the 'plus' routine can be performed on: [[IXTdatum]], [[IXTdatum_array]], [[IXTdataset_1d]] and [[IXTdataset_2d]]. | ||
Line 140: | Line 139: | ||
Classes for which operations are overloaded: | Classes for which operations are overloaded: | ||
+ | |||
dataset_structures | dataset_structures | ||
Line 148: | Line 148: | ||
*[[IXTdataset_2d]] | *[[IXTdataset_2d]] | ||
− | instrument related structures | + | |
− | IXTshape | + | instrument related structures: |
− | IXTtranslation | + | |
− | IXTmoderator | + | *[[IXTshape]] |
− | IXTattenuator | + | *[[IXTtranslation]] |
− | IXTfermi_chopper | + | *[[IXTmoderator]] |
− | IXTaperture | + | *[[IXTattenuator]] |
− | IXTsource | + | *[[IXTfermi_chopper]] |
− | F90 syntax | + | *[[IXTaperture]] |
− | use IXMclass | + | *[[IXTsource]] |
+ | |||
+ | |||
+ | |||
+ | ===F90 syntax=== | ||
+ | |||
+ | |||
+ | <pre>use IXMclass | ||
type(IXTclass)::object | type(IXTclass)::object | ||
Line 164: | Line 171: | ||
type(IXTstatus)::status | type(IXTstatus)::status | ||
− | call IXFcreate(object,element_1,element_2,...,element_N,status) | + | call IXFcreate(object,element_1,element_2,...,element_N,status)</pre> |
+ | |||
==CheckInterface== | ==CheckInterface== | ||
+ | |||
+ | |||
+ | The CheckOperation can also be called through an interface. The subroutine which is called is determined by the class of the arguments. | ||
+ | |||
+ | |||
+ | The general calling syntax of the subroutine is (see below for further details): | ||
+ | |||
+ | |||
+ | <pre> call IXFcheck(object,options, status)</pre> | ||
+ | |||
+ | |||
+ | ===F90 syntax=== | ||
+ | |||
+ | |||
+ | <pre>use IXMclass | ||
+ | type(IXTclass)::object | ||
+ | |||
+ | type(IXTstatus)::status | ||
+ | |||
+ | call IXFcheck(object,status)</pre> | ||
+ | |||
+ | |||
+ | |||
==DestroyInterface== | ==DestroyInterface== | ||
+ | |||
+ | |||
+ | The DestroyOperation can also be called through an interface. The subroutine which is called is determined by the class of the arguments. | ||
+ | |||
+ | |||
+ | ===F90 syntax=== | ||
+ | |||
+ | |||
+ | use IXMclass | ||
+ | type(IXTclass)::object | ||
+ | |||
+ | type(IXTstatus)::status | ||
+ | |||
+ | call IXFdestroy(object,status)</pre> | ||
+ | |||
+ | |||
==CopyInterface== | ==CopyInterface== | ||
+ | |||
+ | |||
+ | The CopyOperation can also be called through an interface. The subroutine which is called is determined by the class of the arguments. | ||
+ | |||
+ | |||
+ | ===F90 syntax=== | ||
+ | |||
+ | <pre>use IXMclass | ||
+ | type(IXTclass)::object_orig,object_copy | ||
+ | |||
+ | type(IXTstatus)::status | ||
+ | |||
+ | call IXFcopy(object_orig,object_copy,status)</pre> |
Latest revision as of 14:47, 3 April 2008
These are general interfaces for similar operations which can be performed on a variety of classes. For example the 'plus' routine can be performed on: IXTdatum, IXTdatum_array, IXTdataset_1d and IXTdataset_2d.
The appropriate subroutine will be called depending on the class of the argument which is passed to it.
UnaryOperationsInterface
e UnaryOperations can also be called through an interface. The subroutine which is called is determined by the class of the arguments.
The general calling syntax of the subroutine is (see below for further details): call IXFoperation(result, object, status)
Operations
- log - takes the natural logarithm of an object
- exp - takes the exponential of an object
- sin - takes the sine of an object
- cos - takes the cosine of an object
- tan - takes the tangent of an object
- sinh - takes the hyperbolic sine of an object
- cosh - takes the hyperbolic cosine of an object
- tanh - takes the hyperbolic tangent of an object
Valid Classes
Classes for which operations are vaild and overloaded:
F90 syntax
use IXMclass type(IXTclass)::object,result type(IXTstatus)::status call IXFoperation(result,object,status)
For example with operation=sinh class=dataset_1d
use IXMdataset_1d type(IXTdataset_1d):: w1, wres type(IXTstatus)::status call IXFsinh(wres,w1,status)
BinaryOperationsInterface
The BinaryOperations can also be called through an interface. The subroutine which is called is determined by the class of the arguments.
The general calling syntax of the subroutine is (see below for further details):
call IXFoperation(result, object1, object2,status)
Operations
- plus - adds two objects together
- minus - subtracts one object from the other
- times - multiplies one object by the other
- divide - divides one object by the other
- power - raises one object to the power of the other
Valid Classes
Classes for which operations are valid and overloaded:
F90 syntax
use IXMclass type(IXTclass)::object1,object2,result real(dp)::scalar=5.0d0 type(IXTstatus)::status call IXFoperation(result,object1,object2,status) call IXFoperation(result,object1,scalar,status) call IXFoperation(result,scalar,object1,status)
For example with operation=plus class=dataset_2d
use IXMdataset_2d type(IXTdataset_2d):: w1, w2, wres real(dp)::scalar=5.0d0 type(IXTstatus)::status call IXFplus(wres,w1,w2,status) call IXFplus(wres,w1,scalar,status) call IXFplus(wres,3.0d0,w1,status)
CreateInterface
The CreateOperation can also be called through an interface. The subroutine which is called is determined by the class of the arguments.
The general calling syntax of the subroutine is (see below for further details):
call IXFcreate(object,element_1,element_2,...,element_N, status)
Valid Classes
Classes for which operations are overloaded:
dataset_structures
instrument related structures:
F90 syntax
use IXMclass type(IXTclass)::object type(IXTstatus)::status call IXFcreate(object,element_1,element_2,...,element_N,status)
CheckInterface
The CheckOperation can also be called through an interface. The subroutine which is called is determined by the class of the arguments.
The general calling syntax of the subroutine is (see below for further details):
call IXFcheck(object,options, status)
F90 syntax
use IXMclass type(IXTclass)::object type(IXTstatus)::status call IXFcheck(object,status)
DestroyInterface
The DestroyOperation can also be called through an interface. The subroutine which is called is determined by the class of the arguments.
F90 syntax
use IXMclass type(IXTclass)::object
type(IXTstatus)::status
call IXFdestroy(object,status)
CopyInterface
The CopyOperation can also be called through an interface. The subroutine which is called is determined by the class of the arguments.
F90 syntax
use IXMclass type(IXTclass)::object_orig,object_copy type(IXTstatus)::status call IXFcopy(object_orig,object_copy,status)