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