libsim Versione 7.2.4
|
◆ fnregister()
Register a function object in the vector function object. If called without argoments allocate vectors to (0) if order is present force the order of added function
Definizione alla linea 389 del file alchimia.F03. 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)
399 tmpbin(firsttrue(.not. c_e(tmpbin)))=vfn%fnds(i)%bout(k)
400 newbout(firsttrue(.not. c_e(newbout)))=vfn%fnds(i)%bout(k)
401 end do
402 somefoundin = .true.
403 end if
404end do
405
406do i = 1, count(c_e(tmpbin))
407 newbin(firsttrue(.not. c_e(newbin)))=tmpbin(i)
408end do
409
410! here bin and bout are bigger (newbin, newbout)
411! by the output of applicable functions
412
413
414!check if we can work anymore
415stat = .false.
416if (.not. somefoundin) return
417if (num == count(c_e(maybefn%fnds))) return
418
419!check if we have finish
420allfoundout = .true.
421do i=1, count(c_e(mybout))
422 foundout = .false.
423 do j =1, count(c_e(newbout))
424 if (newbout(j) == mybout(i)) foundout = .true.
|