C C C ****************************************************************** C C fusei 11 FEB 97 C C FAULKNER C C ****************************************************************** C C THIS FORTRAN 5 PROGRAM ESTIMATES THE MOMENTS OF INERTIA OF AN C AIRPLANE FUSELAGE. IT USES A SERIES OF SHELLS ALONG THE X AXIS, C THE FRONT ONE BEING A PARABALOID OF REVOLUTION AND ALL THE REST C BEING ELLIPTICAL CYLINDERS. C C DATA IS ENTERED INTERACTIVELY AT THE TERMINAL. C C SUMMARY RESULTS ARE WRITTEN TO THE SCREEN AND TO A FILE NAMED C fuseout C C COMPLETE RESULTS ARE WRITTEN TO FILES NAMED fusedat1 AND C fusedat2 C C ****************************************************************** C PROGRAM FUSEI C REAL LENGTH, LASTX, LI, * KXG, KYG, KZG, KXZG, KX2REF, KY2REF, KZ2REF, * KXNORM, KYNORM, KZNORM, KX, KY, KZ, KX2, KY2, KZ2 C CHARACTER IND*1, HDG*50 C OPEN (UNIT=1,FILE='fuseout',TYPE='UNKNOWN') OPEN (UNIT=2,FILE='fusedat1',TYPE='UNKNOWN') OPEN (UNIT=3,FILE='fusedat2',TYPE='UNKNOWN') C WRITE (6,*) ' ' WRITE (6,*) ' ENTER A STRING FOR IDENTIFICATION, 50 CHARACTERS M *AX.' WRITE (6,*) ' ' READ (5,105) HDG C WRITE (6,*) ' ' WRITE (6,*) ' ' WRITE (6,*) ' THIS PROGRAM ESTIMATES THE RADII OF GYRATION OF A * FUSELAGE.' WRITE (6,*) ' ' WRITE (6,*) ' THE MASS DISTRIBUTION OF THE FUSELAGE IS APPROXIMA *TED BY A SERIES' WRITE (6,*) ' OF SHELLS, EACH SYMMETRIC WITH RESPECT TO A FORE A *ND AFT AXIS.' WRITE (6,*) ' ' WRITE (6,*) ' ENTER THE LENGTH OF THE FUSELAGE IN FEET.' WRITE (6,*) ' ' READ (5,*) LENGTH WRITE (6,*) ' ' WRITE (6,*) ' THE LENGTH ALONG THE X AXIS OF ALL SEGMENTS IS THE * SAME,' WRITE (6,*) ' EXCEPT FOR THE LAST SEGMENT.' WRITE (6,*) ' ENTER YOUR SEGMENT LENGTH IN FEET.' WRITE (6,*) ' ' READ (5,*) DELTAX WRITE (6,*) ' ' C X = DELTAX C WRITE (6,*) ' THE NOSE MUST BE AT (X=0,Y=0), BUT THE VALUE OF Z * IS ARBITRARY.' WRITE (6,*) ' ' C WRITE (6,*) ' THE FRONT SHELL IS AN PARABOLOID OF REVOLUTION AND *' WRITE (6,*) ' THE REST ARE SHORT ELLIPTICAL CYLINDERS.' WRITE (6,*) ' ' WRITE (6,*) ' YOU MUST CONSIDER YOUR ACTUAL MASS DISTRIBUTION VI *S-A-VIS THE SHELLS' WRITE (6,*) ' WITH THE OUTSIDE FUSELAGE DIMENSIONS AND ARRIVE AT * A FACTOR TO RELATE' WRITE (6,*) ' YOUR MASS DISTRIBUTION TO THE SHELL.' WRITE (6,*) ' ' WRITE (6,*) ' YOU MAY USE THE SAME FACTOR FOR ALL OF THE FUSELAG +E' WRITE (6,*) ' OR ENTER A FACTOR FOR EACH SEGMENT.' WRITE (6,*) ' ' WRITE (6,*) ' DO YOU WANT TO USE THE SAME FACTOR FOR ALL SEGMENT +S ? ... Y OR N ...' WRITE (6,*) ' ' READ (5,101) IND WRITE (6,*) ' ' C IF (IND.EQ.'N'.OR.IND.EQ.'n') THEN C WRITE (6,*) ' YOU MUST ENTER FOUR NUMBERS FOR EACH SEGMENT:' WRITE (6,*) ' ' WRITE (6,*) ' THREE MEASUREMENTS IN FEET:' WRITE (6,*) ' ' WRITE (6,*) ' THE FIRST TWO ARE THE MEASUREMENTS FROM YOUR RE *FERENCE X AXIS' WRITE (6,*) ' TO THE TOP OF THE FUSELAGE AND TO THE BOTTOM,' WRITE (6,*) ' DECIMAL VALUES, POSITIVE UP AND NEGATIVE DOWN.' WRITE (6,*) ' ' WRITE (6,*) ' THE THIRD IS THE WIDTH OF THE FUSELAGE. ' WRITE (6,*) ' ' WRITE (6,*) ' THE FOURTH NUMBER IS YOUR FACTOR.' WRITE (6,*) ' ' C ELSE C WRITE (6,*) ' ENTER YOUR FACTOR.' WRITE (6,*) ' ' READ (5,*) FACTOR WRITE (6,*) ' ' WRITE (6,*) ' YOU MUST ENTER THREE MEASUREMENTS IN FEET FOR EACH + SEGMENT:' WRITE (6,*) ' ' WRITE (6,*) ' THE FIRST TWO ARE THE MEASUREMENTS FROM YOUR RE *FERENCE X AXIS' WRITE (6,*) ' TO THE TOP OF THE FUSELAGE AND TO THE BOTTOM,' WRITE (6,*) ' DECIMAL VALUES, POSITIVE UP AND NEGATIVE DOWN.' WRITE (6,*) ' ' WRITE (6,*) ' THE THIRD IS THE WIDTH OF THE FUSELAGE. ' WRITE (6,*) ' ' WRITE (6,*) ' ' C ENDIF C M = INT (LENGTH/DELTAX) LI = M*DELTAX DELTA = .000001 C IF ((LI+DELTA).GT.LENGTH.AND.(LI-DELTA).LT.LENGTH) THEN LASTX = DELTAX N=M ELSE LASTX = LENGTH-LI N = M+1 ENDIF C C **** CALCULATE NOSE SEGMENT **** C WRITE (6,*) ' FOR THE NOSE SEGMENT:' WRITE (6,*) ' ' C IF (IND.EQ.'N'.OR.IND.EQ.'n') THEN C WRITE (6,*) ' ENTER THE THREE DIMENSIONS IN FEET FOR THE AFT END * OF THE NOSE SEGMENT,' WRITE (6,*) ' AND YOUR FACTOR (N0 C0MMAS).' WRITE (6,*) ' ' WRITE (6,*) ' ' READ (5,*) ZT, ZB, W, FACTOR WRITE (6,*) ' ' C ELSE C WRITE (6,*) ' ENTER THE THREE DIMENSIONS IN FEET FOR THE AFT END * OF THE NOSE SEGMENT' WRITE (6,*) ' (NO C0MMAS).' WRITE (6,*) ' ' READ (5,*) ZT, ZB, W WRITE (6,*) ' ' C ENDIF C PI = 3.14159 C H = ZT-ZB HX = DELTAX C R = ((ZT-ZB)+W)/4*FACTOR C P = (4*HX**2+R**2)**1.5 S = (PI*R)/(6*HX**2)*(P-R**3) X = (P*(6*HX**2-R**2)+R**5)/(10*HX*(P-R**3)) Z = (ZT+ZB)/2 C SX = S*X SZ = S*Z C KX2 = R**2*X/HX KY2 = (1/(28*HX**2))*(P*(12*HX**4+6*R**2*HX**2-R**4)+R**7)/ *(P-R**3)-(1/(100*HX**2))*((P*(6*HX**2-R**2)+R**5)/(P-R**3))**2 KZ2 = KY2 C KX = KX2**0.5 KY = KY2**0.5 KZ = KZ2**0.5 C SKX2 = S*KX2 SKY2 = S*KY2 SKZ2 = S*KZ2 C SX2 = S*X**2 SZ2 = S*Z**2 SXZ = S*X*Z C AS = S ASX = SX ASZ = SZ ASX2 = SX2 ASZ2 = SZ2 ASKX2 = SKX2 ASKY2 = SKY2 ASKZ2 = SKZ2 ASXZ = SXZ C WRITE (2,*) ' ' WRITE (3,*) ' ' WRITE (2,109) WRITE (3,109) WRITE (2,110) WRITE (3,111) WRITE (2,112) HDG WRITE (3,112) HDG WRITE (2,109) WRITE (3,109) WRITE (2,113) WRITE (2,114) C I = 1 WRITE (2,115) I, X, Z, H, W, FACTOR, S, SX, SZ, KX, KY, KZ C WRITE (3,117) WRITE (3,118) C WRITE (3,119) I, SX2, SZ2, SKX2, SKY2, SKZ2, SXZ C C **** CALCULATE SEGMENTS 2 - N **** C X = DELTAX/2 HMAX = 0 WMAX = 0 C WRITE (6,*) ' ' WRITE (6,*) ' FOR THE REST OF THE SEGMENTS MEASUREMENTS ARE TAKEN + AT THE MID POINT.' WRITE (6,*) ' ' C DO 1 I=2,N C X = X+DELTAX C WRITE (6,102) I C IF (I.EQ.N) THEN X = X-DELTAX/2+LASTX/2 DELTAX = LASTX WRITE (6,103) LASTX ENDIF C WRITE (6,104) X WRITE (6,*) ' ' C IF (IND.EQ.'N'.OR.IND.EQ.'n') THEN C WRITE (6,*) ' ENTER THE THREE DIMENSIONS IN FEET AND YOUR FACT +OR (NO C0MMAS).' WRITE (6,*) ' ' READ (5,*) ZT, ZB, W, FACTOR WRITE (6,*) ' ' C ELSE C WRITE (6,*) ' ENTER THE THREE DIMENSIONS IN FEET (NO COMMAS).' WRITE (6,*) ' ' READ (5,*) ZT, ZB, W WRITE (6,*) ' ' C ENDIF C H = (ZT-ZB)*FACTOR Z = (ZT+ZB)/2 W = W*FACTOR C IF (H.GT.HMAX) HMAX=H IF (W.GT.WMAX) WMAX=W C A=H/2 B = W/2 C S = PI*DELTAX*(3*A**2+B**2)/(2*A) C KY2 = A**2/4*((7*B**2+A**2)/(3*A**2+B**2))+DELTAX**2/12 KZ2 = B**2/4*((7*A**2+B**2)/(3*A**2+B**2))+DELTAX**2/12 KX2 = KY2+KZ2-2*(DELTAX**2/12) C KX = KX2**0.5 KY = KY2**0.5 KZ = KZ2**0.5 C SKX2 = S*KX2 SKY2 = S*KY2 SKZ2 = S*KZ2 C SX = S*X SZ = S*Z C SX2 = S*X**2 SZ2 = S*Z**2 SXZ = S*X*Z C AS = AS + S ASX = ASX + SX ASZ = ASZ + SZ ASX2 = ASX2 + SX2 ASZ2 = ASZ2 + SZ2 ASKX2 = ASKX2 + SKX2 ASKY2 = ASKY2 + SKY2 ASKZ2 = ASKZ2 + SKZ2 ASXZ = ASXZ + SXZ C WRITE (2,115) I, X, Z, H, W, FACTOR, S, SX, SZ, KX, KY, KZ WRITE (3,119) I, SX2, SZ2, SKX2, SKY2, SKZ2, SXZ 1 CONTINUE C C **** CALCULATE AND PRINT SUMMARY RESULTS **** C XG = ASX/AS ZG = ASZ/AS C KX2REF = ( ASZ2+ASKX2)/AS KY2REF = (ASX2+ASZ2+ASKY2)/AS KZ2REF = (ASX2 +ASKZ2)/AS C KXG = (KX2REF -ZG**2)**0.5 KYG = (KY2REF-XG**2-ZG**2)**0.5 KZG = (KZ2REF-XG**2 )**0.5 KXZG = (ASXZ-AS*(XG*ZG))/AS C KXNORM = KXG/(HMAX**2+WMAX**2 )**0.5 KYNORM = KYG/(HMAX**2 +LENGTH**2)**0.5 KZNORM = KZG/( +WMAX**2+LENGTH**2)**0.5 C WRITE (2,116) AS, ASX, ASZ WRITE (3,120) ASX2,ASZ2,ASKX2,ASKY2,ASKZ2,ASXZ C WRITE (6,*) ' ' WRITE (1,*) ' ' WRITE (6,109) WRITE (1,109) WRITE (6,145) HDG WRITE (1,145) HDG WRITE (6,130) WRITE (1,130) WRITE (6,131) WRITE (1,131) WRITE (6,132) LENGTH WRITE (1,132) LENGTH WRITE (6,133) HMAX WRITE (1,133) HMAX WRITE (6,134) WMAX WRITE (1,134) WMAX WRITE (6,135) WRITE (1,135) WRITE (6,136) XG, ZG WRITE (1,136) XG, ZG WRITE (6,137) WRITE (1,137) WRITE (6,138) KXG, KYG, KZG WRITE (1,138) KXG, KYG, KZG WRITE (6,143) WRITE (1,143) WRITE (6,144) KXZG WRITE (1,144) KXZG WRITE (6,139) WRITE (1,139) WRITE (6,140) KXNORM WRITE (1,140) KXNORM WRITE (6,141) KYNORM WRITE (1,141) KYNORM WRITE (6,142) KZNORM WRITE (1,142) KZNORM WRITE (6,109) WRITE (1,109) WRITE (6,*) ' ' WRITE (6,*) ' THE ABOVE IS IN FILE fuseout' WRITE (6,*) ' ' WRITE (6,*) ' COMPLETE RESULTS ARE IN fusedat1 AND fusedat2' WRITE (6,*) ' ' WRITE (6,109) C STOP C C **** FORMATS **** C 101 FORMAT (A1) 102 FORMAT (/,' THIS IS SEGMENT # ', I2,'.') 103 FORMAT (/' THIS IS THE LAST SEGMENT; LENGTH=',F5.2,' FT.') 104 FORMAT (/,' THE MID POINT OF THE SEGMENT IS AT X =',F6.2,' FT.') 105 FORMAT (A50) C 109 FORMAT (/,2X,77('*')) 110 FORMAT (/,10X,'FUSELAGE MOMENTS OF INERTIA, DATA 1') 111 FORMAT (/,10X,'FUSELAGE MOMENTS OF INERTIA, DATA 2') 112 FORMAT (/,10X,A50) 113 FORMAT (/,' SEG X Z H W FACTOR S SX + SZ KX KY KZ') 114 FORMAT ( ' FT FT FT FT FT**2 FT**3 3 FT**# FT', + FT**3 FT FT FT') 115 FORMAT (/,I4,F8.2,F7.2,F7.2,F6.2,F6.3,F7.1,F8.1,F8.1,3(F6.2)) 116 FORMAT (//,' SUM',33X, F7.1,F8.1,F8.1,//) 117 FORMAT (/,5X,'SEG S(X(SQ)) S(Z(SQ)) S(KX(SQ)) S(KY(SQ)) S +(KZ(SQ)) SXZ') 118 FORMAT (10X,3(' FT**4'),2(' FT**4'),' FT**4') 119 FORMAT (/, I7, F14.1,F11.1,F11.1,2(F10.1),F13.1) 120 FORMAT (//,' SUM',F13.1,F11.1,F11.1,2(F10.1),F13.1,//) C 130 FORMAT (/,15X,'FUSELAGE MOMENTS OF INERTIA') 131 FORMAT (/,15X,'INPUT DATA') 132 FORMAT (/,20X,'LENGTH =',F6.2,' FT') 133 FORMAT ( 20X,'HMAX =',F6.2,' FT (FACTOR APPLIED)') 134 FORMAT ( 20X,'WMAX =',F6.2,' FT (FACTOR APPLIED)') 135 FORMAT (/,15X,'LOCATION OF CG') 136 FORMAT (/,20X,'XG =',F6.2,' FT, YG = ZERO, ZG =',F6.2,' FT') 137 FORMAT (/,15X,'RADII OF GYRATION ABOUT THE CG') 138 FORMAT (/,20X,'KX =',F6.2,' FT, KY =',F6.2,' FT, KZ =',F6.2,' FT *') 139 FORMAT (/,15X,'NORMALIZED RADII OF GYRATION') 140 FORMAT (/,20X,'KX =',F6.4,' ( SQRT( HMAX SQ + WMAX SQ *))') 141 FORMAT (/,20X,'KY =',F6.4,' ( SQRT( HMAX SQ + LENGHT SQ *))') 142 FORMAT (/,20X,'KZ =',F6.4,' ( SQRT( WMAX SQ + LENGHT SQ *))') 143 FORMAT (/,15X,'PRODUCT OF INERTIA') 144 FORMAT (/,20X,'IXZ / MASS =',F6.2,' FT SQ') 145 FORMAT (/,15X,A50) C END