Está en la página 1de 3

C ****************************************************************

C RUTINA DE ANALISIS DE VIGAS RECTANGULARES SIMPLE


PROGRAM ANALDISVIGA
REAL h,b,d,As,Fc,Fy,Mn,Mu,a,c,Es,Muton,Mpos,Mneg,Pmax,w,comp
Real l,m,n,disc,w1,w2,Ppos,Pneg,Apos,Aneg
CHARACTER(1) RUTA1,sec
B1 = 0.85
Fi = 0.9
WRITE(*,*)'BIENVENIDO A ANALISIS Y DISEO DE VIGAS '
13 WRITE(*,*)'Favor indicar en mayusculas; Diseo(D) o Analisis(A)'
READ(*,*) RUTA1
IF (RUTA1.eq.'A') THEN
Write(*,*) ''
WRITE (*,*) 'BIENVENIDO A ANALISIS DE VIGAS RECTANGULARES'
WRITE(*,*)'SIMPLEMENTE REFORZADAS. INGRESE LOS PARAMETROS'
Write(*,*) ''
10 WRITE(*,*)'INGRESE ALTURA DE LA VIGA (CM)'
READ(*,*) h
WRITE(*,*)'INGRESE BASE DE LA VIGA (CM)'
READ(*,*) b
WRITE(*,*)'INGRESE REST. ACERO DE REFUERZO A USAR(KG/CM2)'
READ(*,*) Fy
WRITE(*,*)'INGRESE REST. CONCRETO A USAR(KG/CM2)'
READ(*,*) Fc
WRITE(*,*)'INGRESE AREA DE ACERO EN VIGA (CM2)'
READ(*,*) As
d=h-6
a=(As*Fy)/(0.85*Fc*b)
c=a/B1
Write(*,*) ''
WRITE(*,*)'Se obtienen los siguientes parametros d=',d
WRITE(*,*)'a=',a
WRITE(*,*)'c=?',c
WRITE(*,*)'Se comprobara la ductilidad de la viga'
Es=(0.003*(d-c))/c
If (Es.lt.0.005) THEN
Write(*,*) ''
WRITE(*,*) 'LA VIGA TIENE COMPORTAMIENTO FRAGIL'
WRITE(*,*) 'INGRESE VALORES PARA COMPORTAMIENTO DUCTIL'
GOTO 10
ELSE
Mn = As*Fy*(d-(a/2))
Mu = Fi*Mn
Write(*,*) ''
WRITE(*,*) 'EL momento de diseo es (Kg/cm2) Mu=',Mu
Muton = Mu/100000
WRITE(*,*) 'EL momento de diseo es (Ton/M) Mu=',Muton
STOP
END IF
ELSE
IF (RUTA1.eq.'D') THEN
Write(*,*) ''
WRITE (*,*)'BIENVENIDO A DISEO DE VIGAS RECTANGULARES'
WRITE(*,*)'SIMPLE REFORZADAS Y APOYADAS. INGRESE LOS PARAMETROS:'
WRITE(*,*)'(ESTA VERSION NO INCLUYE REF. TRANSVERSAL)'
Write(*,*) ''
WRITE(*,*)'INGRESE MOMENTO DE DISEO POSITIVO(Ton/m)'
READ(*,*) Mpos
WRITE(*,*)'INGRESE MOMENTO DE DISEO NEGATIVO(Ton/m)'
READ(*,*) Mneg
WRITE(*,*)'INGRESE REST. ACERO DE REFUERZO A USAR(KG/CM2)'
READ(*,*) Fy
WRITE(*,*)'INGRESE REST. CONCRETO A USAR(KG/CM2)'
READ(*,*) Fc
WRITE(*,*)'INGRESE DE ACUERDO A COMBINACIN ANTERIOR'
WRITE(*,*)'EL PORCENTAJE DE REFUERZO MAXIMO (Pmax)'
READ(*,*) Pmax
Write(*,*) ''
WRITE(*,*)'CALCULANDO SECCIN DE CONCRETO'
w=(Pmax*Fy)/Fc
11 WRITE(*,*)'Introduzca el valor de base (b) para la viga'
READ(*,*) b
IF(Mpos.lt.Mneg) THEN
d=sqrt((Mneg*100000)/(fi*Fc*(w-(0.59*w*w))*b))
ELSE
d=sqrt((Mpos*100000)/(fi*Fc*(w-(0.59*w*w))*b))
END IF
h=d+6
comp=h/b
Write(*,*) ''
WRITE(*,*)'El area de concreto esta determinada por b=',b
WRITE(*,*)' y (cms) h=',h
Write(*,*) ''
15 write(*,*) 'Desea probar con otro valor de b? (S/N)'
Read(*,*)sec
C En esta seccion se hara la seleccin de b y h truncados
if (sec.eq.'S') then
GOTO 11
else if (sec.eq.'N') then
Write(*,*) ''
WRITE(*,*) 'Introduzca combinacin final (BxH) elegida'
WRITE(*,*) 'Favor utilizar solo enteros multiplos de 5'
Read(*,*)b, h
Else
GOTO 15
End if
Write(*,*) ''
WRITE(*,*)'Determinando cantidades de Acero Longitudinal:'
C A partir de aqui se calculara el refuerzo positivo
d=h-6
l=0.59
m=1
n=((Mpos*100000)/(fi*Fc*b*d*d))
disc = (m**2)-(4*l*n)
if (disc.lt.0) GOTO 12
w1=(m+sqrt(disc))/(2*l)
w2=(m-sqrt(disc))/(2*l)
if(w2.lt.0.AND.w1.gt.w2)then
Ppos=(w1*Fc)/Fy
Apos=Ppos*b*d
else
Ppos=(w2*Fc)/Fy
Apos=Ppos*b*d
end if
C A partir de aqui se calculara el refuerzo negativo
l=0.59
m=1
n=((Mneg*100000)/(fi*Fc*b*d*d))
disc = (m**2)-(4*l*n)
if (disc.lt.0) GOTO 12
w1=(m+sqrt(disc))/(2*l)
w2=(m-sqrt(disc))/(2*l)
if(w2.lt.0.AND.w1.gt.w2)then
Pneg=(w1*Fc)/Fy
Aneg=Ppos*b*d
else
Ppos=(w2*Fc)/Fy
Aneg=Ppos*b*d
end if
Write(*,*) ''
WRITE(*,*)'El Acero de ref. positivo sera de(cm2):',Apos
WRITE(*,*)'El Acero de ref. negativo sera de(cm2):',Aneg
STOP
ELSE
GOTO 13
END IF
END IF
STOP
12 END

También podría gustarte