Newer
Older
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
program find_alpha
print*,'Enter phi and phib'
read*,phi,phib
phi=phi/45.*atan(1.)
phib=phib/45.*atan(1.)
psib=asin(sin(phib)/sin(phi))/2.-phib/2.
sig=1.
nint=100
start=-phib
end=phib
n=0
1 n=n+1
do i=1,nint
alpha=start+(end-start)*float(i-1)/(nint-1)
psi0=asin(sin(alpha)/sin(phi))/2.-alpha/2.
beta=psib-psi0-alpha
if (beta*sig.lt.0.) then
start=alpha-(end-start)/(nint-1)
end=alpha
if (n.le.3) goto 1
print*,beta,alpha*45./atan(1.)
goto 2
endif
enddo
2 continue
sig=-1.
nint=100
start=phib
end=-phib
n=0
3 n=n+1
do i=1,nint
alpha=start+(end-start)*float(i-1)/(nint-1)
psi0=asin(sin(alpha)/sin(phi))/2.-alpha/2.
beta=psib-psi0-alpha
if (beta*sig.lt.0.) then
start=alpha-(end-start)/(nint-1)
end=alpha
if (n.le.3) goto 3
print*,beta,alpha*45./atan(1.)
stop
endif
enddo
end