subroutine zcross(flag,nevprt,t,xd,x,nx,z,nz,tvec,ntvec, & rpar,nrpar,ipar,nipar,u,nu,g,ng) c Copyright INRIA c Scicos block simulator c zero crossing block c double precision t,xd(*),x(*),z(*),tvec(*),rpar(*),u(*),g(*) integer flag,nevprt,nx,nz,ntvec,nrpar,ipar(*) integer nipar,nu,ng c if ((flag.eq.3).and.(nevprt.lt.0)) then kev=0 do 44 j = 1,ng kev=2*kev+abs(g(ng+1-j)) 44 continue do 45 j = 1,ng kev=2*kev if (g(ng+1-j).eq.-1) kev=kev+1 45 continue l=kev*ntvec do 10 i=1,ntvec tvec(i)=rpar(l+i)+t 10 continue elseif(flag.eq.9) then do 20 i=1,ng g(i)=u(i) 20 continue endif end