C SUBROUTINE UPSD(PSD,PSDR,PSDI,FREQ,KSTEP) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*8 PSDT(21) CHARACTER*80 PSD C DATA PSDT/'PSD1 ','PSD2 ','PSD3 ','PSD4 ', 1 'PSD5 ','PSD6 ','PSD7 ','PSD8 ', 2 'PSD9 ','PSD10 ','PSD11 ','PSD12 ', 3 'PSD13 ','PSD14 ','PSD15 ','PSD16 ', 4 'PSD17 ','PSD18 ','PSD19 ','PSD20 ', 5 'PSD21 '/ C PI=3.141592654 CONV=2.*PI DO 10 K1=1,21 K2=K1 IF(PSD(1:8).EQ.PSDT(K1)) GO TO 11 10 CONTINUE 11 CONTINUE TK=DBLE(K2-1)/24. PSDR=CONV*COS(FREQ*TK) PSDI=-CONV*SIN(FREQ*TK) RETURN END SUBROUTINE UCORR(PSD,CORRR,CORRI,KSTEP,LCASE,JNOD1,JDOF1, 1 JNOD2,JDOF2,COOR1,COOR2) C INCLUDE 'ABA_PARAM.INC' C DIMENSION COOR1(3),COOR2(3) CHARACTER*8 PSDT(21) CHARACTER*80 PSD C DATA PSDT/'PSD1 ','PSD2 ','PSD3 ','PSD4 ', 1 'PSD5 ','PSD6 ','PSD7 ','PSD8 ', 2 'PSD9 ','PSD10 ','PSD11 ','PSD12 ', 3 'PSD13 ','PSD14 ','PSD15 ','PSD16 ', 4 'PSD17 ','PSD18 ','PSD19 ','PSD20 ', 5 'PSD21 '/ C CORRR=0. CORRI=0. IF(JDOF1.NE.2) GO TO 900 IF(JDOF2.NE.2) GO TO 900 IF(JNOD1.EQ.JNOD2) GO TO 900 DO 10 K1=1,21 K2=K1 IF(PSD(1:8).EQ.PSDT(K1)) GO TO 11 10 CONTINUE 11 CONTINUE TK=DBLE(K2-1)/4. DIST=0.0 DO 20 K1=1,3 DIST=DIST+(COOR1(K1)-COOR2(K1))**2 20 CONTINUE DIST=SQRT(DIST) IF(ABS(TK-DIST).LT.0.01) CORRR=1. 900 CONTINUE RETURN END