1 : C DFOUR1 SOURCE AM 08/02/14 21:20:21 6050 2 : SUBROUTINE DFOUR1(ICHPO,ANGL,IRET) 3 : C==================================================================== 4 : C 5 : C ENTREES 6 : C ICHPO = CHPOINT DE TYPE FORCES OU DEPLACEMENTS 7 : C ANGL = ANGLE 8 : C SORTIES 9 : C IRET = SI SUCCES , CHPT CONTENANT LES VALEURS POUR L ANGLE DONNE 10 : C 0 SINON 11 : C 12 : C J BROCHARD MARS 87 13 : C===================================================================== 14 : IMPLICIT INTEGER(I-N) 15 : IMPLICIT REAL*8(A-H,O-Z) 16 : -INC CCOPTIO 17 : -INC CCREEL 18 : -INC CCHAMP 19 : -INC SMCHPOI 20 : CHARACTER*4 CPV 21 : C 22 : ANGL=(ANGL*XPI)/180.D0 23 : C 24 : C-------ON VERIFIE QUE IFOPOI EST BIEN EGAL A 1 25 : C 26 : MCHPO1=ICHPO 27 : SEGACT MCHPO1 28 : IF (MCHPO1.IFOPOI.NE.1) THEN 29 : MOTERR(1:8)='FOURIER' 29 : CALL ERREUR(333) 30 : IRET=0 31 : GOTO 999 32 : ENDIF 33 : C 34 : C-------BOUCLE SUR LES COMPOSANTES 35 : C ON MULTIPLIE LES VALEURS PAR COSNT POUR LES COMPOSANTES SUIVANTES 36 : C UR,UZ,RT,P,PI,FR,FZ,MT,FP,FPI ET PAR SINNT LES COMPOSANTES SUIVANTES 37 : C UT,RZ,FT,MZ.LES VALEURS SUR LES COMPOSANTES LX ET FLX SONT INCHANGEES 38 : C 39 : NSOUPO=MCHPO1.IPCHP(/1) 40 : NAT=MCHPO1.JATTRI(/1) 41 : SEGINI MCHPOI 42 : IRET=MCHPOI 43 : MTYPOI=MCHPO1.MTYPOI 44 : MOCHDE=MCHPO1.MOCHDE 45 : IFOPOI=1 46 : DO 100 IA=1,NSOUPO 47 : MSOUP1=MCHPO1.IPCHP(IA) 48 : SEGACT MSOUP1 49 : NC=MSOUP1.NOCOMP(/2) 50 : SEGINI MSOUPO 51 : IPCHP(IA)=MSOUPO 52 : IGEOC=MSOUP1.IGEOC 53 : MPOVA1=MSOUP1.IPOVAL 54 : SEGACT MPOVA1 55 : N=MPOVA1.VPOCHA(/1) 56 : SEGINI MPOVAL 57 : IPOVAL=MPOVAL 58 : DO 120 IC=1,NC 59 : NOCOMP(IC)=MSOUP1.NOCOMP(IC) 60 : NOHARM(IC)=MSOUP1.NOHARM(IC) 61 : COSNT=COS(NOHARM(IC)*ANGL) 62 : SINNT=SIN(NOHARM(IC)*ANGL) 63 : IF(NOHARM(IC).LT.0) THEN 64 : CNT=SINNT 65 : SINNT=COSNT 66 : COSNT=CNT 67 : ENDIF 68 : * 69 : * ON METS NOHARM A ZERO POUR POUVOIR ADDITIONNER DES CHPOINTS DE 70 : * SERIE DE FOURRIER DIFFERENTES.(CHARRAS) 71 : * 72 : NOHARM(IC)=0 73 : CPV=NOCOMP(IC) 74 : IF(CPV.EQ.NOMDD(7).OR.CPV.EQ.NOMDD(3).OR. 75 : S CPV.EQ.NOMDD(9).OR.CPV.EQ.NOMDD(14).OR. 76 : S CPV.EQ.NOMDD(15).OR.CPV.EQ.NOMDU(7).OR. 77 : S CPV.EQ.NOMDU(3).OR.CPV.EQ.NOMDU(9).OR. 78 : S CPV.EQ.NOMDU(14).OR.CPV.EQ.NOMDU(15)) THEN 79 : DO 130 IE=1,N 80 : VPOCHA(IE,IC)=MPOVA1.VPOCHA(IE,IC)*COSNT 81 : 130 CONTINUE 82 : ELSE IF(CPV.EQ.NOMDD(8).OR.CPV.EQ.NOMDU(8).OR. 83 : S CPV.EQ.NOMDD(6).OR.CPV.EQ.NOMDU(6)) THEN 84 : DO 131 IE=1,N 85 : VPOCHA(IE,IC)=MPOVA1.VPOCHA(IE,IC)*SINNT 86 : 131 CONTINUE 87 : ELSE IF(CPV.EQ.NOMDD(10).OR.CPV.EQ.NOMDU(10)) THEN 88 : DO 132 IE=1,N 89 : VPOCHA(IE,IC)=MPOVA1.VPOCHA(IE,IC) 90 : 132 CONTINUE 91 : ELSE 92 : MOTERR(1:8)='FOURIER' 92 : CALL ERREUR(335) 93 : IRET=0 94 : SEGSUP MPOVAL,MSOUPO,MCHPOI 95 : SEGDES MPOVA1,MSOUP1 96 : GOTO 999 97 : ENDIF 98 : 120 CONTINUE 99 : 666 CONTINUE 100 : SEGDES MPOVA1,MPOVAL 101 : SEGDES MSOUP1,MSOUPO 102 : 100 CONTINUE 103 : SEGDES MCHPOI 104 : 999 CONTINUE 105 : SEGDES MCHPO1 106 : RETURN 107 : END 108 : 109 : 110 : 111 : 112 :
© Cast3M 2003 - All rights reserved.
Disclaimer