Set
Set entries of MatrixField.
Calling example:
Set( 
  MatrixField_::obj
  int::globalNode(:)
  real::value(:,:)
  int::storageFMT
  <real::scale>
  <bool::addContribution> 
)
CALL Set(
MatrixField_::obj
<int::globalNode(:)>
real::value 
<int::scale >
<bool::addContribution>
)
CALL Set(
  MatrixField_ :: obj
  int :: iNodeNum
  int :: jNodeNum
  int :: idof
  int :: jdof
  real :: value
  <real :: scale>
  <bool :: addContribution>
)
Set( 
  MatrixField_ :: obj
  int :: iNodeNum(:)
  int ::  jNodeNum(:)
  int ::  ivar
  int :: jvar
  real::  value(:,:)
  <real:: scale>
  <bool:: addContribution>
)
CALL Set( 
  MatrixField_ :: obj
  int :: iNodeNum(:)
  int :: jNodeNum(:)
  int :: ivar
  int :: jvar
  int :: idof
  int :: jdof
  real:: value(:,:)
  <real:: scale>
  <bool:: addContribution>
)
CALL Set( 
  MatrixField_:: obj
  int :: iNodeNum(:)
  int :: jNodeNum(:)
  int :: ivar
  int :: jvar
  int :: idof
  int :: jdof
  real :: value(:,:)
  <real :: scale>
  <bool :: addContribution>
  )
Interface 1β
- π Set 1
 
INTERFACE
MODULE SUBROUTINE Set( obj, globalNode, value, storageFMT, scale,  &
  & addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: globalNode(:)
  REAL( DFP ), INTENT( IN ) :: value(:,:)
  INTEGER( I4B ), INTENT( IN ) :: storageFMT
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
IF addContribution and scale is ABSENT then:
- This subroutine sets a block of data to matrix.
 - This block data is contained in 
value(:,:) - The size of 
valueshould betdof *size( globalNode ), wheretdofis the total degrees of freedom globalNodecontains the global node numberstorageFMTis the storage format ofvalue(:,:), it can beDOF_FMT, orFMT_NODES.
If addContribution and scale are present then:
- This subroutine adds a block of data to matrix.
 - This block data is contained in 
value(:,:) - The size of 
valueshould betdof* size( globalNode ) globalNodecontains the global node numberstorageFMTis the storage format ofvalue(:,:), it can beDOF_FMT, orFMT_NODES.scaleis scaling used for value.
This method cannot be called for Rectangle MatrixField
Interface 2β
- π Set 2
 
INTERFACE
MODULE SUBROUTINE Set( obj, globalNode, value, scale, &
  & addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), OPTIONAL, INTENT( IN ) :: globalNode(:)
  REAL( DFP ), INTENT( IN ) :: value
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
IF addContribution and scale are ABSENT then:
- This subroutine sets a scalar value 
valueto all or selected the entries of the matrix. - If 
globalNodeis present then this routine sets a scalar valuevalueto select the entries of the matrix. These entries are spacified by theglobalNode(:)vector, which denotes the global node numbers. Then, symbolically, we performobj(glocalNode)=value. - If 
globalNodeis absent then all entries are set to the scalar values. Then, symbolically, we peformobj=value 
IF addContribution and scale NOT PRESENT
- If 
globalNodeis not present then, this subroutine adds a scalar valuevalueto all the entries of the matrix. Symbolically, we performobj=obj+scale*value - If 
globalNodeis present then, This subroutine adds a scalar valuevalueto select the entries of the matrix. These entries are spacified by theglobalNode(:)vector, which denotes the global node numbers. Symbolically, we performobj(glocalNode)=obj(globalNode)+scale*value 
globalNode is present, then this method cannot be called for Rectangle MatrixField.Interface 3β
- π Set 3
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, idof, &
  & jdof, value, scale, addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum
  INTEGER( I4B ), INTENT( IN ) :: idof
  INTEGER( I4B ), INTENT( IN ) :: jdof
  REAL( DFP ), INTENT( IN ) :: value
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
This routine can be called for rectangle matrix.
- If addContribution and scale not present then
- This subroutine sets a scalar value 
valueto a single entry of the matrix. - This entry is specified by the 
iNodeNumandjNodeNum, which are global node number. - The exact location of the entry is computed using 
iNodeNum,iDOF,jNodeNumandjDOF. 
 - This subroutine sets a scalar value 
 - If addContribution and scale present then:
- This subroutine adds a scalar value 
valueto a single entry of the matrix. - This entry is specified by the 
iNodeNumandjNodeNum. - The exact location of the entry is computed using 
iNodeNum,iDOF,jNodeNumandjDOF. 
 - This subroutine adds a scalar value 
 
Interface 4β
- π Set 4
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, ivar, &
  & jvar, value, scale, addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: ivar
  INTEGER( I4B ), INTENT( IN ) :: jvar
  REAL( DFP ), INTENT( IN ) :: value(:,:)
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
This routine can be called for rectangle matrix.
- If addContribution and scale not present then
- This subroutine sets a block of data to matrix.
 - This block data is contained in 
value(:,:). - The number of rows in 
valueshould beSIZE( iNodeNum ) * itdof, whereitdofis the total degrees of freedom in row dimension. - The number of columns in 
valueshould beSIZE( jNodeNum ) * jtdof, wherejtdofis the total degrees of freedom in column dimension. - globalNode contains the global node number
 - This entry is specified by the 
iNodeNumandjNodeNum, which are global node number. - The exact location of the entry is computed using 
iNodeNum,ivar,jNodeNumandjvar. 
 - If addContribution and scale present then we add contribution to matrix, instead of setting the value.
 
Storage format of value should be FMT_NODES because the storage format of MatrixField_ is FMT_NODES.
Interface 5β
- π Set 5
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, ivar, &
  & jvar, idof, jdof, value, scale, addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: ivar
  INTEGER( I4B ), INTENT( IN ) :: jvar
  INTEGER( I4B ), INTENT( IN ) :: idof
  INTEGER( I4B ), INTENT( IN ) :: jdof
  REAL( DFP ), INTENT( IN ) :: value(:,:)
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
This routine can be called for rectangle matrix.
- If addContribution and scale not present then
- This subroutine sets a block of data to matrix.
 - This block data is contained in 
value(:,:) - The size of 
valueshould beSIZE(iNodeNum),SIZE(jNodeNum) - globalNode contains the global node number
 - This entry is specified by the 
iNodeNumandjNodeNum, which are global node number. - The exact location of the entry is computed using 
iNodeNum,ivar,idof,jNodeNumandjvar,jdof. 
 - If addContribution and scale present then we add contribution to matrix, instead of setting the value.
 
Interface 6β
- π Set 6
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, ivar, jvar, &
  & idof, jdof, value, scale, addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum
  INTEGER( I4B ), INTENT( IN ) :: ivar
  INTEGER( I4B ), INTENT( IN ) :: jvar
  INTEGER( I4B ), INTENT( IN ) :: idof
  INTEGER( I4B ), INTENT( IN ) :: jdof
  REAL( DFP ), INTENT( IN ) :: value
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
If addContribution and scale NOT PRESENT, then:
- This subroutine sets a scalar value 
valueto a single entry of the matrix. - This entry is specified by the 
iNodeNumandjNodeNum. - The exact location of the entry is computed using 
iNodeNum,idof,ivar, andjNodeNum,jdof,jvar. 
If addContribution and scale are PRESENT then:
- This subroutine adds a scalar value 
valueto a single entry of the matrix. - This entry is specified by the 
iNodeNumandjNodeNum. - The exact location of the entry is computed using 
iNodeNum,idof,ivar, andjNodeNum,jdof,jvar. 
Interface 7β
- π Set 7
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, ivar, jvar, &
  & ispacecompo, itimecompo, jspacecompo, jtimecompo, value, scale, &
  & addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum
  INTEGER( I4B ), INTENT( IN ) :: ivar
  INTEGER( I4B ), INTENT( IN ) :: jvar
  INTEGER( I4B ), INTENT( IN ) :: ispacecompo
  INTEGER( I4B ), INTENT( IN ) :: itimecompo
  INTEGER( I4B ), INTENT( IN ) :: jspacecompo
  INTEGER( I4B ), INTENT( IN ) :: jtimecompo
  REAL( DFP ), INTENT( IN ) :: value
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
If addContribution and scale are not present then:
- This subroutine sets a scalar value 
valueto a single entry of the matrix. - This entry is specified by the 
iNodeNumandjNodeNum. - The exact location of the entry is computed using (
iNodeNum,ivar,ispacecompo,itimecompo) and (jNodeNum,jvar,jspacecompo,jtimecompo). 
If addContribution and scale present, then this subroutine adds a scalar value value to a single entry of the matrix.
Interface 8β
- π Set 8
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, ivar, jvar, &
  & ispacecompo, itimecompo, jspacecompo, jtimecompo, value, scale, &
  & addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: ivar
  INTEGER( I4B ), INTENT( IN ) :: jvar
  INTEGER( I4B ), INTENT( IN ) :: ispacecompo
  INTEGER( I4B ), INTENT( IN ) :: itimecompo
  INTEGER( I4B ), INTENT( IN ) :: jspacecompo
  INTEGER( I4B ), INTENT( IN ) :: jtimecompo
  REAL( DFP ), INTENT( IN ) :: value
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
If addContribution and scale are not present then:
- This subroutine sets 
valueto the matrix. - This entry is specified by the 
iNodeNumandjNodeNum. - The exact location of the entry is computed using (
iNodeNum,ivar,ispacecompo,itimecompo) and (jNodeNum,jvar,jspacecompo,jtimecompo). 
If addContribution and scale present, then this subroutine adds value to the matrix.
Interface 9β
- π Set 9
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, ivar, jvar, &
  & ispacecompo, itimecompo, jspacecompo, jtimecompo, value, scale, &
  & addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: ivar
  INTEGER( I4B ), INTENT( IN ) :: jvar
  INTEGER( I4B ), INTENT( IN ) :: ispacecompo
  INTEGER( I4B ), INTENT( IN ) :: itimecompo(:)
  INTEGER( I4B ), INTENT( IN ) :: jspacecompo
  INTEGER( I4B ), INTENT( IN ) :: jtimecompo(:)
  REAL( DFP ), INTENT( IN ) :: value
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
If addContribution and scale are not present then:
- This subroutine sets 
valueto the matrix. - This entry is specified by the 
iNodeNumandjNodeNum. - The exact location of the entry is computed using (
iNodeNum,ivar,ispacecompo,itimecompo) and (jNodeNum,jvar,jspacecompo,jtimecompo). 
If addContribution and scale present, then this subroutine adds value to the matrix.
Interface 10β
- π Set 10
 
INTERFACE
MODULE SUBROUTINE Set( obj, iNodeNum, jNodeNum, ivar, jvar, &
  & ispacecompo, itimecompo, jspacecompo, jtimecompo, value, scale, &
  & addContribution )
  CLASS( MatrixField_ ), INTENT( INOUT ) :: obj
  INTEGER( I4B ), INTENT( IN ) :: iNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: jNodeNum(:)
  INTEGER( I4B ), INTENT( IN ) :: ivar
  INTEGER( I4B ), INTENT( IN ) :: jvar
  INTEGER( I4B ), INTENT( IN ) :: ispacecompo(:)
  INTEGER( I4B ), INTENT( IN ) :: itimecompo
  INTEGER( I4B ), INTENT( IN ) :: jspacecompo(:)
  INTEGER( I4B ), INTENT( IN ) :: jtimecompo
  REAL( DFP ), INTENT( IN ) :: value
  REAL( DFP ), OPTIONAL, INTENT( IN ) :: scale
  LOGICAL( LGT ), OPTIONAL, INTENT( IN ) :: addContribution
END SUBROUTINE Set
END INTERFACE
If addContribution and scale are not present then:
- This subroutine sets 
valueto the matrix. - This entry is specified by the 
iNodeNumandjNodeNum. - The exact location of the entry is computed using (
iNodeNum,ivar,ispacecompo,itimecompo) and (jNodeNum,jvar,jspacecompo,jtimecompo). 
If addContribution and scale present, then this subroutine adds value to the matrix.