First: You will need the free QB64 compiler for the BASIC programming language, available at https://www.thefreecountry.com/compilers/miscellaneous.shtml., in order to convert MA1.txt to MA1.BAS. Second: download MA1.txt to your computer and then upload it into the QB64 compiler and create a MA1.EXE program. The MX1.txt file is below:
' Material Properties Program
' MA1.BAS
'_FULLSCREEN _STRETCH (unlock this to get a big screen view.)
'LOCATE 12, 12:
'PRINT ; "THE JULIAN DATE IS : "; SPC(3); DATE$; SPC(3); TIME$
'PRINT: 'PRINT TAB(12); "Press any key to continue."
'149 PAUS$ = INKEY$: IF PAUS$ = "" THEN 149
'CLS
KEY OFF
OPTION BASE 1
TIME$ = "00:00:00"
10 DEFINT I-N
TYPE Parameters
E AS SINGLE
Et AS SINGLE
ETA AS SINGLE
ETOE AS SINGLE
ESOE AS SINGLE
EPP AS SINGLE
Es AS SINGLE
F7 AS SINGLE
F85 AS SINGLE
mu1 AS SINGLE
mu2 AS SINGLE
mux AS SINGLE
Fcy AS SINGLE
FI AS SINGLE
Fx AS SINGLE
Fy AS SINGLE
Fs AS SINGLE
FPL AS SINGLE
F1T AS SINGLE
PLAS AS SINGLE
ANS AS STRING * 10
FILOUT AS STRING * 10
TITLE AS STRING * 15
MATERIAL AS STRING * 25
END TYPE
DIM ANS$, FILOUT$, TITLE$, MATERIAL$
101 CLS
PRINT: PRINT TAB(33); "This is MA1.BAS,"
PRINT TAB(20); "for calculating metallic mechanical properties."
PRINT TAB(16); "Ref. Stringer Panel Analysis Methods, by G. S. JOHNTON."
PRINT: PRINT TAB(12); "Units in Ksi."
PRINT: PRINT TAB(12); "Enter Which Program You Want To Run?"
PRINT: PRINT
COLOR 14
PRINT TAB(12); "1. F.7, F.85, Proportional Limit & Column Cutoff Stress MA.BAS"
PRINT TAB(12); "2. Ramberg-Osgood n, non-dimensional RON.BAS"
PRINT TAB(12); "3. Plasticity Coefficient For Local Buckling PLAS.BAS"
PRINT TAB(12); "4. ET, Tangent & ES, Secant Modulus At Specific Stress Intensity"
PRINT TAB(12); "5.";
COLOR 12
PRINT ; " End. "
PRINT: PRINT:
COLOR 7
PRINT TAB(12); "Enter selection";: INPUT ; n%
IF n% = 5 THEN SYSTEM
SELECT CASE n%
CASE 1 ' MA.BAS (Material allowables)
CLS
PRINT: PRINT: PRINT TAB(33); "This is MA.BAS"
PRINT: PRINT TAB(12); "OUTPUT: F.7; F.85; Proportional Limit & Column Cutoff Stress."
PRINT: PRINT:
PRINT TAB(12); "Units in Ksi. Fcy may be INPUT as zero."
PRINT TAB(12); "INPUTS can be for Tension or Compression."
PRINT: PRINT TAB(12); "INPUT: Ec, Fcy, RONc = "
PRINT TAB(12); "Example: 10500, 37, 13"
PRINT:
PRINT TAB(12);: INPUT ; E, Fcy, RON
IF Fcy = 0! THEN
PRINT TAB(12); "INPUT: F.7 = ";: INPUT ; F7
Fcy = (E / 214.29) ^ (1! / RON) * F7 ^ ((RON - 1!) / RON)
ELSE
F7 = (214.29 / E) ^ (1! / (RON - 1!)) * Fcy ^ (RON / (RON - 1!))
Fcy = (E / 214.29) ^ (1! / RON) * F7 ^ ((RON - 1!) / RON)
END IF
FPL = F7 * .004676 ^ (1! / (RON - 1!))
F1T = F7 * (21! / RON) ^ (1! / (RON - 1!))
F85 = F7 / (17! / 7!) ^ (1 / (RON - 1!))
PRINT: PRINT:
PRINT TAB(12); "RONc = ";: PRINT ; RON;
PRINT: PRINT TAB(22); "Fcy Fpl F10%T"
PRINT TAB(18); USING "#####.###"; Fcy; FPL; F1T
PRINT: PRINT TAB(22); "F.7 F.85"
PRINT TAB(18); USING "#####.###"; F7; F85
PRINT: PRINT:
PRINT TAB(12); "Fpl is the Proportional Limit."
PRINT:
PRINT TAB(12); "F10%T is stress when tangent modulus is 10% of the elastic"
PRINT TAB(12); "modulus. F10%T is limiting stress for columns."
PRINT:
PRINT TAB(12); "THE JULIAN DATE IS: "; SPC(3); DATE$; SPC(3); "Time "; TIME$
PRINT:
PRINT TAB(12); "Press any key to continue."
102 PAUS$ = INKEY$: IF PAUS$ = "" THEN GOTO 102
CLS
PRINT: PRINT:
PRINT TAB(12); "Do you want to build a new OUTPUT file?"
PRINT TAB(12); "INPUT YES/yes/ or NO";: INPUT ; ANS$
IF ANS$ <> "YES" THEN 392
CLS
COLOR 14
LOCATE 6, 12: FILES "*.*"
COLOR 7
PRINT: PRINT
PRINT:
PRINT TAB(12); " What shall your OUTPUT file be called?"
INPUT ; FILOUT$
OPEN "OUTPUT", #1, FILOUT$
PRINT #1, TAB(22); "This is MA1.BAS OUTPUT"
PRINT #1, TAB(12); "THE JULIAN DATE IS: "; SPC(3); DATE$; SPC(3); "Time "; TIME$
PRINT #1,:
PRINT: PRINT ; TAB(12); "INPUT A TITLE";: INPUT ; TITLE$
PRINT #1, TAB(32); TITLE$
PRINT: PRINT TAB(12); "INPUT MATERIAL type, BASIS, THI.";: INPUT ; MATERIAL$
PRINT #1, TAB(22); MATERIAL$
PRINT #1,: PRINT #1, TAB(12); "Debug from MA1.BAS"
PRINT #1,:
PRINT #1, TAB(12); "RONc = ";: PRINT #1, ; RON;
PRINT #1,: PRINT #1, TAB(22); "Fcy Fpl F10%T"
PRINT #1, TAB(18); USING "#####.###"; Fcy; FPL; F1T
PRINT #1,: PRINT #1, TAB(22); "F.7 F.85"
PRINT #1, TAB(18); USING "#####.###"; F7; F85
PRINT #1,: PRINT #1,:
PRINT #1, TAB(12); "Fpl is the Proportional Limit."
PRINT #1,:
PRINT #1, TAB(12); "F10%T is stress when tangent modulus is 10% of the elastic"
PRINT #1, TAB(12); "modulus. F10%T is limiting stress for columns."
CLOSE #1
392 GOTO 101
CASE 2 'RON (Ramberg-Osgood "n")
CLS
PRINT: PRINT: PRINT:
PRINT TAB(12); "RON.BAS: Program calculates RAMBERG-OSGOOD's Shape factor n,"
PRINT TAB(12); "KNOWNING F.7 AND F.85. Units in Ksi."
PRINT TAB(12); "Has Case 1, MA.BAS, already been RUN?";: INPUT ; ANS$
IF ANS$ = "YES" THEN 393
PRINT: PRINT TAB(12); "RUN Case 1, MA.BAS, first.":
IF ANS$ = "YES" THEN 393
PRINT: PRINT:
IF ANS$ <> "YES" THEN 394
394 PRINT TAB(12); "INPUT: F.7, F.85";: INPUT ; F7, F85
393 PRINT: PRINT TAB(22); "F.7 F.85"
PRINT TAB(18); USING "#####.###"; F7; F85
RON = 1! + LOG(17! / 7!) / LOG(F7 / F85)
PRINT: PRINT:
PRINT TAB(12); "RON = ", RON
103 PAUS$ = INKEY$: IF PAUS$ = "" THEN GOTO 103
CASE 3 ' PLAS.BAS (for PLASticity)
CLS
PRINT: PRINT:
PRINT TAB(12); "PLAS.BAS (pg. 26): Plasticity Coefficient For Local or Shear Buckling"
PRINT: PRINT TAB(12); " RUN Case 1 for E, F.7, RON first;"
PRINT TAB(12); "muc is POISSON's Ratio, non-dim. Units in Ksi."
PRINT: PRINT:
PRINT TAB(12); "INPUT: muc";: INPUT ; Xmu
PRINT: PRINT:
PRINT TAB(12); "INPUT: Applied Stress Fx, Fy, Fs; < F10%T.";: INPUT ; FX, fy, fs
PRINT: PRINT:
E = E * 1000!: F7 = F7 * 1000!
FI = SQR(FX * 1000 ^ 2 + fy * 1000 ^ 2 - FX * 1000 * fy + 3! * fs * 1000 ^ 2)
PLAS = 3! * (FI / F7) ^ (RON - 1!) / 7! 'ratio of plastic to elastic strain
ESOE = 1! / (1! + PLAS) 'secant modulus ratio for equivalent uniaxial
EPP = (FI / E) * ESOE ' strain for uniaxial stress
ETOE = 1! / (1! + RON * PLAS) 'tangent modulus ratio for equivalent uniaxial
mu1 = 1! - Xmu ^ 2 ' muplastic = .5 (assumed)
mu2 = 1! - (.5 - (.5 - Xmu) * ESOE) ^ 2
ETA = (mu1 / mu2) * ESOE * (.5 + .25 * SQR(1! + 3! * ETOE / ESOE))
Et = E / (ETOE * 1000): Es = E / (ESOE * 1000)
PRINT TAB(12); "PLAS IS RATIO OF PLASTIC TO ELASTIC STRAIN.";
PRINT TAB(12); "PLAS = "; PLAS; "n.d."
PRINT TAB(12); "ETA IS PLASTIC BUCKLING COEFFICIENT"; ETA; "n.d."
PRINT TAB(12); "FI = "; FI; "Ksi., equivalent uniaxial stress."
PRINT: PRINT TAB(12); "Tangent Modulus Et ratio to E = "; ETOE; "n.d."
PRINT TAB(12); "Tangent Modulus Et = "; Et; "Ksi."
PRINT: PRINT TAB(12); "Secant Modulus Es ratio to E = "; ESOE; "n.d."
PRINT TAB(12); "Secant Modulus Es = "; Es; "Ksi."
PRINT TAB(12); "Plastic Coefficient, ETA = ";: PRINT ; USING "#.#####"; ETA;: PRINT " n.d."
PRINT: PRINT TAB(12); "IF ETA = 1.0, no plastic correction is needed."
104 PAUS$ = INKEY$: IF PAUS$ = "" THEN GOTO 104
CASE 4
CLS
PRINT: PRINT:
PRINT TAB(12); "Tangent & Secant Modulus at Specific Stresses."
PRINT:
PRINT TAB(12); "RUN Case 1, MA.BAS, first. Units in Ksi."
PRINT:
PRINT TAB(12); "INPUT: Applied Stress < F10%T ";: INPUT ; FX
Et = E / (1! + 3! * RON * (FX / F7) ^ (RON - 1!) / 7!)
Es = E / (1! + 3! * (FX / F7) ^ (RON - 1!) / 7!)
PRINT: PRINT:
PRINT TAB(12); "Tangent Modulus at"; FX; "is"; Et; " Ksi."
PRINT:
PRINT TAB(12); "Secant Modulus at "; FX; "is"; Es; " Ksi."
105 PAUS$ = INKEY$: IF PAUS$ = "" THEN GOTO 105
END SELECT
GOTO 101
END