Initializes a collection of solids.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(solid_set), | intent(inout) | :: | this |
A collection of solids |
||
| character(len=*), | intent(in) | :: | name |
Name of variable |
||
| integer, | intent(in) | :: | nobj |
Number of solid_obj |
||
| type(block_obj), | intent(in), | target | :: | block |
A block object |
|
| type(parallel_obj), | intent(in), | target | :: | parallel |
Parallel structure to link with |
impure subroutine solid_set_Init(this,name,nobj,block,parallel) !> Initializes a collection of solids. implicit none class(solid_set), intent(inout) :: this !! A collection of solids character(len=*), intent(in) :: name !! Name of variable integer, intent(in) :: nobj !! Number of solid_obj type(block_obj), intent(in), & target :: block !! A block object type(parallel_obj), intent(in), & target :: parallel !! Parallel structure to link with ! Work variables integer :: n character(len=str64) :: my_name ! Associate this%block => block this%parallel => parallel this%name = trim(adjustl(name)) ! Set default values for IO files call this%SetWriteFileName(this%name) call this%SetReadFileName(this%name) call this%SetOverwrite(.true.) ! Set number of solids this%count=nobj allocate(this%p(this%count)) ! Store name do n=1,this%count write(my_name,fmt='(a,i6.6)') trim(adjustl(name))//'_',n call this%p(n)%Initialize(trim(adjustl(my_name)), this%block,this%parallel) end do return end subroutine solid_set_Init