Skip to content
Snippets Groups Projects
find_alpha.f90 782 B
Newer Older
  • Learn to ignore specific revisions
  • 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