C C****** NEW WING PROGRAM CONVERTS WING GEOMETRY ****** C TO HWING LIBRARY FORMAT C USE IFQWIN INCLUDE 'BAS.CMN' CHARACTER*20 FNMI,FNMOO,FNMO CHARACTER*3 HWG CHARACTER*1 ANS DATA HWG/'HWG'/ CALL SETWHT CALL NEWPAG CALL CURSON R = 57.29578 WRITE(*,1) 1 FORMAT( 1 ' **********************************************************',/, 4 ' * *',/, 5 ' * NEW WING GEOMETRY CONVERSION TO HWING *',/, 6 ' * LIBRARY FORMAT *',/, 9 ' * *',/, 1 ' **********************************************************'/) WRITE(*,'(A\)') ' ENTER INPUT GEOMETRY filename.ext ' READ(*,'(A)') FNMI WRITE(*,'(A\)') ' ENTER OUTPUT GEOMETRY filename (NO .EXT) ' READ(*,'(A)') FNMOO CALL FNAM(FNMOO,HWG,FNMO) OPEN(5,FILE=FNMI) IST=0 I=1 J=0 10 READ(5,2,END=50) XX,YY,ZZ,IST 2 FORMAT(3F10.0,I1) IF(IST.EQ.0) GOTO 20 IF(IST.EQ.1) GOTO 30 IF(IST.EQ.2) GOTO 30 IF(IST.EQ.3) GOTO 40 WRITE(*,3) IST 3 FORMAT(//,' STATUS FLAG ERROR * IST = ',I4) STOP 50 NC=I-1 NS=J GOTO 60 20 X(I,J)=XX Y(I,J)=YY Z(I,J)=ZZ I=I+1 GOTO 10 30 I=1 J=J+1 X(I,J)=XX Y(I,J)=YY Z(I,J)=ZZ I=I+1 GOTO 10 40 NS=J NC=I X(I,J)=XX Y(I,J)=YY Z(I,J)=ZZ 60 WRITE(*,4) NC,NS 4 FORMAT(//,' INPUT FILE READ * NC = ',I3,' NS = ',I3) WRITE(*,5) 5 FORMAT(/,' ENTER WING GEOMETRY TITLE') READ(*,8) TITLE 8 FORMAT(20A4) WRITE(*,'(A/)') ' REFERENCE QUANTITIES DETERMINATION' WRITE(*,'(A,A/)') ' REFERENCE QUANTITIES CAN BE ENTERED OR ', 1 'CALCULATED AUTOMATICALLY' WRITE(*,'(A\)') ' ENTER Y FOR AUTOMATIC CALCULATION ' READ(*,'(A)') ANS IF(ANS.EQ.'Y') GOTO 90 WRITE(*,6) 6 FORMAT(/' ENTER SREF/2,CREF,XREF,YREF,ZREF,B/2') READ(*,*) SRO2,CR,XR,YR,ZR,BO2 GOTO 100 90 WRITE(*,'(A,A)') ' EQUAL UPPER AND LOWER SURFACE POINT NUMBER ', 1 'ASSUMED IN INPUT GEOMETRY' 80 WRITE(*,'(A\)') ' ENTER INBD STA. NO. FOR REF. TRAPEZOID ' READ(*,*) NI WRITE(*,'(A\)')' ENTER OUTBD STA. NO. FOR REF. TRAPEZOID ' READ(*,*) NO NLE = (NC+1)/2 XL1 = X(NLE,NI) XL2 = X(NLE,NO) XT1 = 0.5*(X(1,NI)+X(NC,NI)) XT2 = 0.5*(X(1,NO)+X(NC,NO)) Y1 = Y(1,NI) Y2 = Y(1,NO) BO2 = Y(1,NS) ZR = 0. DY = Y2-Y1 IF(DY.GT.0.) GOTO 70 WRITE(*,'(A)') ' STA. NO. ERROR' GOTO 80 70 SL = (XL2-XL1)/DY XL0 = XL1-Y1*SL ST = (XT2-XT1)/DY XT0 = XT1-Y1*ST CR = XT0-XL0 XLT = XL2+(BO2-Y2)*SL XTT = XT2+(BO2-Y2)*ST CT = XTT-XLT SRO2 = 0.5*(CR+CT)*BO2 TR = CT/CR AR = (2.*BO2)**2/(2.*SRO2) CR = 2.*SRO2/BO2/(1.+TR) T4 = (XLT+.25*CT-XL0-.25*CR)/BO2 TL = T4 - (TR-1.)/(TR+1.)/AR CB = (1.+TR+TR**2)/(1.+TR) XB = (1.+2.*TR)*AR*TL + 2.*CB CB = 2.*CB/3.*CR XB = XB/12.*CR YB = (1.+2.*TR)/(1.+TR)/3. YB = YB*BO2 CR = CB XR = XB YR = YB FLAM4 = R*ATAN(T4) WRITE(*,11) SRO2,CR,XR,YR,ZR,BO2,AR,TR,FLAM4 11 FORMAT(/,' ****** CALCULATED REFERENCE QUANTITIES ******',/, 1 /,' SREF/2 = ',F15.3,/, 2 ' CREF = ',F15.5,/, 3 ' XREF = ',F15.5,/, 4 ' YREF = ',F15.5,/, 5 ' ZREF = ',F15.5,/, 6 ' SPAN/2 = ',F15.5,/, 7 ' ASPECT RATIO = ',F15.5,/, 8 ' TAPER RATIO = ',F15.5,/, 9 ' C/4 SWEEP = ',F15.5,' DEG.',//) 100 CALL DATES(CREATD) OPEN(11,FILE=FNMO,STATUS='NEW',FORM='UNFORMATTED') WRITE(11) TITLE,CREATD,SRO2,CR,XR,YR,ZR,BO2,NS,NC WRITE(11) ((X(I,J),Y(I,J),Z(I,J),I=1,NC),J=1,NS) CLOSE(11) CLOSE(5) WRITE(*,7) 7 FORMAT(' OUTPUT HWING GEOMETRY LIBRARY FILE CREATED') STOP END