size_3d Function

private pure function size_3d(me) result(s)

Actual size of a bspline_3d structure in bits.

Type Bound

bspline_3d

Arguments

Type IntentOptional Attributes Name
class(bspline_3d), intent(in) :: me

Return Value integer(kind=ip)

size of the structure in bits


Source Code

    pure function size_3d(me) result(s)

    implicit none

    class(bspline_3d),intent(in) :: me
    integer(ip) :: s !! size of the structure in bits

    s = 2_ip*int_size + logical_size + 10_ip*int_size

    if (allocated(me%bcoef))      s = s + real_size*size(me%bcoef,1_ip,kind=ip)*&
                                                    size(me%bcoef,2_ip,kind=ip)*&
                                                    size(me%bcoef,3_ip,kind=ip)
    if (allocated(me%tx))         s = s + real_size*size(me%tx,kind=ip)
    if (allocated(me%ty))         s = s + real_size*size(me%ty,kind=ip)
    if (allocated(me%tz))         s = s + real_size*size(me%tz,kind=ip)
    if (allocated(me%work_val_1)) s = s + real_size*size(me%work_val_1,1_ip,kind=ip)*&
                                                    size(me%work_val_1,2_ip,kind=ip)
    if (allocated(me%work_val_2)) s = s + real_size*size(me%work_val_2,kind=ip)
    if (allocated(me%work_val_3)) s = s + real_size*size(me%work_val_3,kind=ip)

    end function size_3d