Initiate
This routine Initiates the bounding box.
note
Initiate by specifying the limits:
CALL Initiate(obj, nsd, lim)
You can also use the function called BoundingBox
.
ans = BoundingBox(nsd, lim)
note
Initiate by copying:
CALL Initiate(obj, Anotherobj)
You can also use the function called BoundingBox.
ans = BoundingBox(Anotherobj)
note
You can also pass the node coordiantes xij
to BoundingBox function.
ans = BoundingBox(xij)
note
You can also use BoundingBox_Pointer to get the pointer to a bounding box.
Interface 1
Initiate by limit.
- Interface
- example
- ↢ close
INTERFACE
MODULE PURE SUBROUTINE Initiate(obj, nsd, lim)
CLASS(BoundingBox_), INTENT(INOUT) :: obj
!! Instance of bounding box
INTEGER(I4B), INTENT(IN) :: NSD
!! Spatial dimension
REAL(DFP), INTENT(IN) :: lim(6)
!! Extent of bounding box
END SUBROUTINE Initiate
END INTERFACE
PROGRAM main
USE easifemBase
IMPLICIT NONE
TYPE(BoundingBox_) :: obj
CALL initiate(obj, nsd=2, &
lim=[0.0_DFP, 1.0_DFP, 0.0_DFP, 1.0_DFP, 0.0_DFP, 0.0_DFP])
CALL display(obj, msg="test1")
END PROGRAM main
Interface 2
- Interface
- example
- ↢ close
INTERFACE
MODULE PURE SUBROUTINE Initiate(obj, Anotherobj)
CLASS(BoundingBox_), INTENT(INOUT) :: obj
CLASS(BoundingBox_), INTENT(IN) :: Anotherobj
END SUBROUTINE Initiate
END INTERFACE
PROGRAM main
USE easifemBase
IMPLICIT NONE
TYPE(BoundingBox_) :: obj, obj2
CALL initiate(obj, 2, &
[0.0_DFP, 1.0_DFP, 0.0_DFP, 1.0_DFP, 0.0_DFP, 0.0_DFP])
CALL initiate(obj2, obj)
CALL display(obj2, msg="test2")
END PROGRAM main
Interface 3
- Interface
- example
- ↢ close
INTERFACE
MODULE PURE FUNCTION BoundingBox(nsd, lim) RESULT(ans)
TYPE(BoundingBox_) :: ans
INTEGER(I4B), INTENT(IN) :: nsd
REAL(DFP), INTENT(IN) :: lim(6)
END FUNCTION BoundingBox
END INTERFACE
PROGRAM main
USE easifemBase
IMPLICIT NONE
TYPE(BoundingBox_) :: obj
obj = BoundingBox(nsd=2, &
lim=[0.0_DFP, 1.0_DFP, 0.0_DFP, 1.0_DFP, 0.0_DFP, 0.0_DFP])
CALL display(obj, msg="test3")
END PROGRAM main
Interface 4
- Interface
- example
- ↢ close
INTERFACE
MODULE PURE FUNCTION BoundingBox(Anotherobj) RESULT(ans)
TYPE(BoundingBox_) :: ans
CLASS(BoundingBox_), INTENT(IN) :: Anotherobj
END FUNCTION BoundingBox
END INTERFACE
PROGRAM main
USE easifemBase
IMPLICIT NONE
TYPE(BoundingBox_) :: obj, obj2
CALL initiate(obj, 2, &
[0.0_DFP, 1.0_DFP, 0.0_DFP, 1.0_DFP, 0.0_DFP, 0.0_DFP])
obj2 = BoundingBox(obj)
CALL display(obj2, msg="test4")
END PROGRAM main
Interface 5
- Interface
- example
- ↢ close
INTERFACE
MODULE PURE FUNCTION BoundingBox(xij) RESULT(ans)
REAL(DFP), INTENT(IN) :: xij(:, :)
!! Nodal coordinates xij( 1:nsd, 1:tnodes )
TYPE(BoundingBox_) :: ans
!!
END FUNCTION BoundingBox
END INTERFACE
PROGRAM main
USE easifemBase
IMPLICIT NONE
TYPE(BoundingBox_) :: obj
obj = boundingBox( &
RESHAPE([0.0_DFP, 1.0_DFP, 0.0_DFP, 1.0_DFP, 0.0_DFP, 0.0_DFP], [2, 3]))
CALL display(obj, "test5")
END PROGRAM main
Interface 6
- Interface
- example
- ↢ close
INTERFACE
MODULE FUNCTION BoundingBox_Pointer(nsd, lim) RESULT(ans)
CLASS(BoundingBox_), POINTER :: ans
INTEGER(I4B), INTENT(IN) :: nsd
REAL(DFP), INTENT(IN) :: lim(6)
END FUNCTION BoundingBox_Pointer
END INTERFACE
PROGRAM main
USE easifemBase
IMPLICIT NONE
TYPE(BoundingBox_), POINTER :: obj
obj => BoundingBox_Pointer(2, [0.0_DFP, 1.0_DFP, 0.0_DFP, 1.0_DFP, 0.0_DFP, 0.0_DFP])
CALL display(obj, msg="test6")
END PROGRAM main
Interface 7
- Interface
- example
- ↢ close
INTERFACE
MODULE FUNCTION BoundingBox_Pointer(Anotherobj) RESULT(ans)
CLASS(BoundingBox_), POINTER :: ans
CLASS(BoundingBox_), INTENT(IN) :: Anotherobj
END FUNCTION BoundingBox_Pointer
END INTERFACE
PROGRAM main
USE easifemBase
IMPLICIT NONE
TYPE(BoundingBox_) :: obj
TYPE(BoundingBox_), POINTER :: obj2
CALL initiate(obj, 2, [0.0_DFP, 1.0_DFP, 0.0_DFP, 1.0_DFP, 0.0_DFP, 0.0_DFP])
obj2 => BoundingBox_Pointer(obj)
CALL display(obj2, msg="test6")
END PROGRAM main