libsim  Versione6.3.0

◆ fn_init()

subroutine alchimia::fn_init ( type(fnds), intent(inout)  fn,
character(len=*), optional  name,
character(len=*), dimension(:), optional  bin,
character(len=*), dimension(:), optional  bout,
integer, optional  priority,
integer, optional  order,
procedure (elabora), optional  func 
)
private

Inizialize a function object.

Parametri
[in,out]fnfunction object to create
namedescription of function
binstandard table B descriptor for input parameters
boutstandard table B descriptor for output parameters
priorityrelative priority for choise from functions with same output
orderorder to execute functions
funcfunction with the abstract interface

Definizione alla linea 366 del file alchimia.F03.

366  call delete(maybefn)
367  call delete(usefullfn)
368  call delete(myvfn)
369  call fnregister(maybefn)
370  call fnregister(usefullfn)
371  call fnregister(myvfn)
372  order=0
373 end if
374 
375 CALL l4f_log(l4f_debug, "oracle: order "//t2c(order))
376 newbin=cmiss
377 newbin(:size(mybin))=mybin
378 newbout=cmiss
379 newbout(:size(mybin))=mybin
380 
381 ! order is level to put functions
382 order=order+1
383 somefoundin = .false.
384 num=count(c_e(maybefn%fnds))
385 tmpbin=cmiss
386 
387 !search for functions starting from input
388 do i =1, count(c_e(vfn%fnds))
389  foundin = .true.
390  do j = 1, count(c_e(vfn%fnds(i)%bin(:)))
391  if (.not. any(vfn%fnds(i)%bin(j) == newbin)) foundin = .false.
392 !!$ print *,"compare: ",vfn(i)%bin(j)
393 !!$ print *,"with: ",mybin
394  end do
395  if (foundin) then
396  CALL l4f_log(l4f_debug, "oracle: register "//trim(vfn%fnds(i)%name))
397  call fnregister(maybefn,vfn%fnds(i),order)
398  do k=1,size(vfn%fnds(i)%bout)

Generated with Doxygen.