Initial revision
This commit is contained in:
50
difrac/eulkap.f
Normal file
50
difrac/eulkap.f
Normal file
@@ -0,0 +1,50 @@
|
||||
C-----------------------------------------------------------------------
|
||||
C Convert Euler angles to Kappa (IEK = 0) or vice-versa (IEK = 1)
|
||||
C-----------------------------------------------------------------------
|
||||
SUBROUTINE EULKAP (IEK,OME,CHE,PHE,OMK,RKA,PHK,ISTTUS)
|
||||
COMMON /CADCON/ ALPHA,APMIN,APMAX,MAXVAR,MINVAR,
|
||||
$ IHOLE,IVSLIT,IHSLIT,INEG45,IPOS45,IUPHAF,ILOHAF,
|
||||
$ VUTHT,VUOME,VUCHI,VUPHI,IPORT,IBAUD
|
||||
PARAMETER (RA = 57.2958)
|
||||
C ALPHA = 49.98907
|
||||
C ALPHA = ALPHA/RA
|
||||
SALPHA = SIN(ALPHA/RA)
|
||||
CALPHA = COS(ALPHA/RA)
|
||||
ISTTUS = 0
|
||||
C-----------------------------------------------------------------------
|
||||
C IEK = 0 Euler to Kappa
|
||||
C-----------------------------------------------------------------------
|
||||
IF (IEK .EQ. 0) THEN
|
||||
SCO2 = SIN(ONE80(CHE)/(2.0*RA))
|
||||
BOT = SALPHA*SALPHA - SCO2*SCO2
|
||||
IF (BOT .LE. 0.0) THEN
|
||||
ISTTUS = 1
|
||||
RETURN
|
||||
ENDIF
|
||||
RKAO2 = ATAN(SCO2/SQRT(BOT))
|
||||
RKA = ONE80(2.0*RA*RKAO2)
|
||||
DELTA = RA*ATAN(CALPHA*SIN(RKAO2)/COS(RKAO2))
|
||||
OMK = ONE80(OME - DELTA)
|
||||
PHK = ONE80(PHE - DELTA)
|
||||
C-----------------------------------------------------------------------
|
||||
C IEK = 1 Kappa to Euler
|
||||
C-----------------------------------------------------------------------
|
||||
ELSE
|
||||
RKAO2 = RKA/(2.0*RA)
|
||||
CHE = ONE80(2.0*RA*ASIN(SALPHA*SIN(RKAO2)))
|
||||
DELTA = RA*ATAN(CALPHA*SIN(RKAO2)/COS(RKAO2))
|
||||
OME = ONE80(OMK + DELTA)
|
||||
PHE = ONE80(PHK + DELTA)
|
||||
ENDIF
|
||||
RETURN
|
||||
END
|
||||
C-----------------------------------------------------------------------
|
||||
C Function to put angles in the range -180 to 180
|
||||
C-----------------------------------------------------------------------
|
||||
REAL FUNCTION ONE80 (X)
|
||||
XX = X
|
||||
IF (X .LT. -180.00) XX = X + 360.00
|
||||
IF (X .GT. 180.00) XX = X - 360.00
|
||||
ONE80 = XX
|
||||
RETURN
|
||||
END
|
||||
Reference in New Issue
Block a user