File: simblk.f

package info (click to toggle)
scilab 2.2-4
  • links: PTS
  • area: non-free
  • in suites: hamm
  • size: 31,472 kB
  • ctags: 21,963
  • sloc: fortran: 110,983; ansic: 89,717; makefile: 3,016; sh: 1,892; csh: 150; cpp: 101
file content (92 lines) | stat: -rw-r--r-- 2,875 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
      subroutine simblk(neq,t,xc,xcdot)
C 
      integer neq(*)
      double precision t
      double precision xc(*)
      double precision xcdot(*)
C 
C.. External Calls .. 
      external simbl1
C 
C... Variables in Common Block ... 
      integer lrpar,lrptr,lipar,liptr,louttb,lcmat,lrhot,linppt,loutpt,
     &        lstpt,lfunpt,lihot,ljroot,lclkpt,lcord,loord,lzord
      common /cosptr/ lrpar,lrptr,lipar,liptr,louttb,lcmat,lrhot,linppt,
     &                loutpt,lstpt,lfunpt,lclkpt,lihot,ljroot,lww,lcord,
     &                loord,lzord
C 
C 
C... Variables in Common Block ... 
      integer nblk,nxblk,ncblk,ndblk,nout,ncout,ninp,ncinp,ncst,ng,nrwp,
     &     niwp,ncord,niord,noord,nzord
      common /cossiz/ nblk,nxblk,ncblk,ndblk,nout,ncout,ninp,ncinp,
     &     ncst,ng,nrwp,niwp,ncord,niord,noord,nzord
C 
C ... Executable Statements ...
C 
      call simbl1(t,nxblk,ncblk,nout,noord,neq(loord),xc(lww),xc,
     &            xc(louttb),neq(linppt),neq(loutpt),neq(lstpt),ncst,
     &            ncout,ncinp,neq(lcmat),neq(lfunpt),xc(lrpar),
     &            neq(lrptr),neq(lipar),neq(liptr),nblk,ninp,xcdot)
      end
C
C
C
      subroutine simbl1(told,nxblk,ncblk,nout,noord,oord,w,xc,outtb,
     &                  inpptr,outptr,stptr,ncst,ncout,ncinp,cmat,
     &                  funptr,rpar,rpptr,ipar,ipptr,nblk,ninp,xcdot)
C 
      double precision told
      integer ncblk,nxblk
      integer nout
      double precision xc(*),w(*)
      double precision outtb(*)
      integer inpptr(nblk+1)
      integer outptr(nblk+1)
      integer stptr(*)
      integer ncst
      integer ncout
      integer noord
      integer ncinp
      integer oord(noord)
      integer cmat(ninp)
      integer funptr(nblk)
      double precision rpar(*)
      integer rpptr(nblk+1)
      integer ipar(*)
      integer ipptr(nblk+1)
      integer nblk
      integer ninp
      double precision xcdot(ncst)
      integer iero
      common /ierode/ iero
C 
C.. Local Scalars .. 
      integer i,flag
C 
C ... Executable Statements ...
C 
      iero = 0
      call inout(told,xc,outtb,inpptr,outptr,stptr,cmat,funptr,rpar,
     &           rpptr,ipar,ipptr,ninp,nout,oord,noord,w,nblk,iero)
      if (iero .ne. 0) return
      nclock = 0
      do 100 i = 1,nxblk
        ksz = inpptr(i+1) - inpptr(i)
        do 99 j = 1,ksz
          w(j) = outtb(cmat(inpptr(i)-1+j))
 99     continue
        flag = 2
        call callf(funptr(i),told,xc(stptr(i)),stptr(i+1)-stptr(i),
     &   xc(stptr(i+nblk)),stptr(i+1+nblk)-stptr(i+nblk),w,
     &             inpptr(i+1)-inpptr(i),nclock,rpar(rpptr(i)),
     &             rpptr(i+1)-rpptr(i),ipar(ipptr(i)),
     &             ipptr(i+1)-ipptr(i),xcdot(stptr(i)),
     &             stptr(i+1)-stptr(i),flag)
        if (flag .lt. 0) then
          iero = 5 - flag
          return
        endif
 100  continue
      end