1 |
|
2 |
#include "ctrparam.h" |
3 |
|
4 |
subroutine senint(s) |
5 |
parameter(nsen=200) |
6 |
common/cldfdb/coefcl(3),CLDFEED,SEN_dat |
7 |
logical CLDFEED |
8 |
character * 120 SEN_dat |
9 |
dimension sens(nsen),cfcl(nsen) |
10 |
data ifisrt /0/ |
11 |
if(ifirst.eq.0) then |
12 |
open (543,file=SEN_dat,form='formatted',status='old') |
13 |
do i=1,nsen |
14 |
read (543,*,end=500),cfcl(i),sens(i) |
15 |
c read (543,100),cfcl(i),sens(i) |
16 |
enddo |
17 |
500 continue |
18 |
nsenr=i-1 |
19 |
ifirst=1 |
20 |
print *,' Number of points in SEN_dat file ',nsenr |
21 |
endif |
22 |
if(s.lt.sens(1))then |
23 |
ip=2 |
24 |
go to 200 |
25 |
elseif(s.ge.sens(nsenr))then |
26 |
ip=nsenr |
27 |
go to 200 |
28 |
endif |
29 |
do i=1,nsenr |
30 |
if(s.lt.sens(i))then |
31 |
ip=i |
32 |
go to 200 |
33 |
endif |
34 |
enddo |
35 |
200 continue |
36 |
im=ip-1 |
37 |
cf=(cfcl(im)*(sens(ip)-s)+cfcl(ip)*(s-sens(im))) |
38 |
& /(sens(ip)-sens(im)) |
39 |
do i=1,3 |
40 |
coefcl(i)=cf |
41 |
enddo |
42 |
100 format(f9.6,f5.2) |
43 |
return |
44 |
end |