File: chcm.f

package info (click to toggle)
scilab 4.0-12
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 100,640 kB
  • ctags: 57,333
  • sloc: ansic: 377,889; fortran: 242,862; xml: 179,819; tcl: 42,062; sh: 10,593; ml: 9,441; makefile: 4,377; cpp: 1,354; java: 621; csh: 260; yacc: 247; perl: 130; lex: 126; asm: 72; lisp: 30
file content (44 lines) | stat: -rw-r--r-- 1,063 bytes parent folder | download | duplicates (5)
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
      subroutine chcm(capa,i0,la1,lp1,ls1,m,n,pcap,pcapi)
      implicit integer (a-z)
      dimension lp1(*),ls1(m),pcap(n),la1(m)
      doubleprecision capa(m),pcapi(n),infr,x,y
      infe=32700
      infr=10.e6
      if (i0 .lt. 0 .or. i0 .gt. n) then
         call erro('bad internal node number')
         return
      endif
      do 10 i=1,n
         pcapi(i)=0.
         pcap(i)= - infe
 10   continue
      pcapi(i0)= infr
      pcap(i0)=0
      j=i0
 100  continue
      if(lp1(j).eq.lp1(j+1))goto 130
      do 120 ll = lp1(j),lp1(j+1)-1
         i=ls1(ll)
         u=la1(ll)
         if(pcap(i).gt.0) goto 120
         x=pcapi(i)
         if(pcapi(j).le.capa(u)) go to 110
         y=capa(u)
         go to 115
 110     y=pcapi(j)
 115     if (x.ge.y) go to 120
         pcap(i)= -j
         pcapi(i)=y
 120  continue
 130  continue
      pcap(j) = -pcap(j)
      j=0
      x=0.
      do 200 i=1,n
         if(pcap(i).ge.0) goto 200
         if(pcapi(i).le.x) goto 200
         j=i
         x=pcapi(i)
 200  continue
      if(j.gt.0) goto 100
      end