function []= Get2D_Frame_Data(FIDI_NAME) %GetData2D(FIDI_NAME) reads input data for 2D Frames from FIDI_NAME. %FIDI_NAME (FIDI ~ File ID for Input) is the name of the input data file. %11/15/06 by TSD global nn ne nm ndim nep nqn global nq nf nwl npl global XYZ CTAB A E I REL QTAB FTAB MATERIAL WTAB PTAB global ns ANSWER = input('Input Data File Name: ', 's'); %Get typed name of FIDI if size(ANSWER) ~= 0 FIDI_NAME = ANSWER end FIDI = fopen(FIDI_NAME, 'r'); %Open input file disp(blanks(1)); %Write blanks to screen TEXT = fgets(FIDI) %Read captions, 4 lines TEXT = fgets(FIDI) TEXT = fgets(FIDI) TEXT = fgets(FIDI) DATA = str2num(fgets(FIDI)); [nn ne nm ndim nep nqn] = deal(DATA(1), DATA(2), DATA(3), DATA(4), DATA(5), DATA(6)) TEXT = fgets(FIDI) DATA = str2num(fgets(FIDI)); [nq nf nwl npl] = deal(DATA(1), DATA(2), DATA(3), DATA(4)); TEXT = fgets(FIDI) XYZ = zeros(nn,3); %make node coordinates table. XYZ(:3)=0 in 2D frames. for i=1:nn DATA = str2num(fgets(FIDI)); for j=1:ndim XYZ(DATA(1),j) = DATA(1+j); end end TEXT = fgets(FIDI) CTAB = zeros(ne,2); %make CTAB: connectivity table E = zeros(ne,1); %make E: Young's modulus A = zeros(ne,1); %make E: X-Section Area I = zeros(ne,1); %make E: X-Section moment of inertia REL = zeros(ne,2); %make E: End releases {0, 1} = {fixed, pinned} for i=1:ne DATA = str2num(fgets(FIDI)); [CTAB(DATA(1),1) CTAB(DATA(1),2) E(DATA(1)) A(DATA(1)) I(DATA(1)) REL(DATA(1),1) REL(DATA(1),2) ] = deal(DATA(2), DATA(3), DATA(4), DATA(5), DATA(6), DATA(7), DATA(8)); end TEXT = fgets(FIDI) QTAB = zeros(nq,2); %make QTAB: essential displacements table for i=1:nq DATA = str2num(fgets(FIDI)); [QTAB(i,1) QTAB(i,2)] = deal(DATA(1), DATA(2)); end TEXT = fgets(FIDI) FTAB = zeros(nf,2); %make FTAB: specified node forces table for i=1:nf DATA = str2num(fgets(FIDI)); [FTAB(i,1) FTAB(i,2)] = deal(DATA(1), DATA(2)); end TEXT = fgets(FIDI) MATERIAL = zeros(nm,2); %make MATERIAL: material properties table for i=1:nm DATA = str2num(fgets(FIDI)); nmp=1; %number of material properties for j=1:nmp MATERIAL(DATA(1),j) = DATA(1+j); end end TEXT = fgets(FIDI) WTAB = zeros(nwl,2); %make WTAB: specified uniform loads table for i=1:nwl DATA = str2num(fgets(FIDI)); [WTAB(i,1) WTAB(i,2)] = deal(DATA(1), DATA(2)); end TEXT = fgets(FIDI) PTAB = zeros(npl,3); %make PTAB: specified point forces table for i=1:npl DATA = str2num(fgets(FIDI)); [PTAB(i,1) PTAB(i,2) PTAB(i,3)] = deal(DATA(1), DATA(2), DATA(3)); end TEXT = fgets(FIDI) status = fclose('all'); ns = nn*nqn return;