Special Vector manipulations

From LIBISIS
Revision as of 08:55, 4 April 2008 by Dean Whittaker (talk | contribs) (→‎[[IXFtimes_X]])
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

IXFplus_X

This is an interface to the IXFarray_X_plus_dataset_2d and IXFdataset_1d_X_plus_dataset_2d methods.

These subroutines will either add together a scalar 1-D array or an IXTdataset_1d object to every row of an IXTdataset_2d object. The order of the arguments is fixed, and for hte case of the IXTdataset_1d operation no checks are made on the units compatibility


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d,d2d_1, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:

!using interface
call IXFplus_X(wres,d2d,scalar1d,status) ! wres=d2d+scalar1d
call IXFplus_X(wres,d2d,d2d_1,status) ! wres=d2d(n,m)+d2d_1(n,1)
call IXFplus_X(wres,d2d,d1d,status) ! wres=d2d+d1d


!using specific methods
call IXFarray_X_plus_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d+scalar1d
call IXFdataset_1d_X_plus_dataset_2d(wres,d2d,d1d,status) ! wres=d2d+d1d
call IXFdataset_2d_X_plus_dataset_2d(wres,d2d,d2d_1,status)  ! wres=d2d(n,m)+d2d_1(n,1)

IXFplus_Y

This is an interface to the IXFarray_Y_plus_dataset_2d and IXFdataset_1d_Y_plus_dataset_2d methods.

These subroutines will either add together a scalar 1-D array or an IXTdataset_1d object to every column of an IXTdataset_2d object. The order of the arguments is fixed.


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:
!using interface
call IXFplus_Y(wres,d2d,scalar1d,status) ! wres=d2d+scalar1d
call IXFplus_Y(wres,d2d,d1d,status) ! wres=d2d+d1d

!using specific methods
call IXFarray_Y_plus_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d+scalar1d
call IXFdataset_1d_Y_plus_dataset_2d(wres,d2d,d1d,status) ! wres=d2d+d1d

IXFminus_X

This is an interface to the IXFarray_X_minus_dataset_2d and IXFdataset_1d_X_minus_dataset_2d methods.

These subroutines will either subtract a scalar 1-D array or an IXTdataset_1d object from every row of an IXTdataset_2d object. The order of the arguments is fixed.


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:
!using interface
call IXFminus_X(wres,d2d,scalar1d,status) ! wres=d2d-scalar1d
call IXFminus_X(wres,d2d,d1d,status) ! wres=d2d-d1d

!using specific methods
call IXFarray_X_minus_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d-scalar1d
call IXFdataset_1d_X_minus_dataset_2d(wres,d2d,d1d,status) ! wres=d2d-d1d

IXFminus_Y

This is an interface to the IXFarray_Y_minus_dataset_2d and IXFdataset_1d_Y_minus_dataset_2d methods.

These subroutines will either subtract a scalar 1-D array or an IXTdataset_1d object from every column of an IXTdataset_2d object. The order of the arguments is fixed.


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:
!using interface
call IXFminus_Y(wres,d2d,scalar1d,status) ! wres=d2d-scalar1d
call IXFminus_Y(wres,d2d,d1d,status) ! wres=d2d-d1d

!using specific methods
call IXFarray_Y_minus_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d-scalar1d
call IXFdataset_1d_Y_minus_dataset_2d(wres,d2d,d1d,status) ! wres=d2d-d1d

IXFtimes_X

This is an interface to the IXFarray_X_times_dataset_2d and IXFdataset_1d_X_times_dataset_2d methods.

These subroutines will either multiply a scalar 1-D array or an IXTdataset_1d object with every row of an IXTdataset_2d object. The order of the arguments is fixed.


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:
!using interface
call IXFtimes_X(wres,d2d,scalar1d,status) ! wres=d2d*scalar1d
call IXFtimes_X(wres,d2d,d1d,status) ! wres=d2d*d1d

!using specific methods
call IXFarray_X_times_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d*scalar1d
call IXFdataset_1d_X_times_dataset_2d(wres,d2d,d1d,status) ! wres=d2d*d1d

IXFtimes_Y

This is an interface to the IXFarray_X_times_dataset_2d and IXFdataset_1d_X_times_dataset_2d methods.

These subroutines will either multiply a scalar 1-D array or an IXTdataset_1d object with every column of an IXTdataset_2d object. The order of the arguments is fixed.


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:
!using interface
call IXFtimes_Y(wres,d2d,scalar1d,status) ! wres=d2d*scalar1d
call IXFtimes_Y(wres,d2d,d1d,status) ! wres=d2d*d1d

!using specific methods
call IXFarray_Y_times_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d*scalar1d
call IXFdataset_1d_Y_times_dataset_2d(wres,d2d,d1d,status) ! wres=d2d*d1d

IXFdivide_X

This is an interface to the IXFarray_X_divide_dataset_2d and IXFdataset_1d_X_divide_dataset_2d methods.

These subroutines will divide every row of an IXTdataset_2d object by either a scalar 1-D array or an IXTdataset_1d object. The order of the arguments is fixed.


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:
!using interface
call IXFdivide_X(wres,d2d,scalar1d,status) ! wres=d2d/scalar1d
call IXFdivide_X(wres,d2d,d1d,status) ! wres=d2d/d1d

!using specific methods
call IXFarray_X_divide_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d/scalar1d
call IXFdataset_1d_X_divide_dataset_2d(wres,d2d,d1d,status) ! wres=d2d/d1d

IXFdivide_Y

This is an interface to the IXFarray_Y_divide_dataset_2d and IXFdataset_1d_Y_divide_dataset_2d methods.

These subroutines will divide every column of an IXTdataset_2d object by either a scalar 1-D array or an IXTdataset_1d object. The order of the arguments is fixed.


F90 syntax

use IXMdataset_2d
use IXMdataset_1d
type(IXTdataset_2d):: d2d, wres
type(IXTdataset_1d):: d1d
real(dp)::scalar1d(:)
type(IXTstatus)::status
:
!using interface
call IXFdivide_Y(wres,d2d,scalar1d,status) ! wres=d2d/scalar1d
call IXFdivide_Y(wres,d2d,d1d,status) ! wres=d2d/d1d

!using specific methods
call IXFarray_Y_divide_dataset_2d(wres,d2d,scalar1d,status) ! wres=d2d/scalar1d
call IXFdataset_1d_Y_divide_dataset_2d(wres,d2d,d1d,status) ! wres=d2d/d1d