load_optimizedpower_damping_api Function

public function load_optimizedpower_damping_api(verror, charptr, atm) result(vparam) bind(C, name=namespace//"load_optimizedpower_damping")

Load optimized power damping parameters from internal storage

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: verror
character(kind=c_char, len=1), intent(in) :: charptr(*)
logical(kind=c_bool), intent(in), value :: atm

Return Value type(c_ptr)


Source Code

function load_optimizedpower_damping_api(verror, charptr, atm) &
      & result(vparam) &
      & bind(C, name=namespace//"load_optimizedpower_damping")
   type(c_ptr), value :: verror
   type(vp_error), pointer :: error
   character(kind=c_char), intent(in) :: charptr(*)
   logical(c_bool), value, intent(in) :: atm
   character(len=:, kind=c_char), allocatable :: method
   type(c_ptr) :: vparam
   type(optimizedpower_damping_param), allocatable :: tmp
   type(vp_param), pointer :: param
   type(d3_param) :: inp
   real(wp), allocatable :: s9

   vparam = c_null_ptr

   if (.not.c_associated(verror)) return
   call c_f_pointer(verror, error)

   call c_f_character(charptr, method)

   if (atm) s9 = 1.0_wp
   call get_optimizedpower_damping(inp, method, error%ptr, s9)
   if (allocated(error%ptr)) return

   allocate(tmp)
   call new_optimizedpower_damping(tmp, inp)

   allocate(param)
   call move_alloc(tmp, param%ptr)
   vparam = c_loc(param)

end function load_optimizedpower_damping_api