C C--------------------------------------------------LEE_SOLIDO_POT--- C C SUBRUTINA LEE_SOLIDO_POT C C LECTURA DE DATOS DEL SOLIDO Y DEL MATERIAL C PROBLEMA 2-D POTENCIAL C SUBROUTINE LEE_SOLIDO_POT(csol,SOL,MAT,TM,TF) C IMPLICIT NONE INCLUDE '_param.for' INCLUDE '_struct.for' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES EXTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CSOL : Numero del solido que se va a leer INTEGER CSOL C SOL : Solidos del problema RECORD /S_solido/ SOL C MAT : Materiales RECORD /S_material/ MAT C TM : Tipos de material RECORD /S_tipmat/ TM(N_MAX_TPMT) C TF : Tipo de formulacion INTEGER TF C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES INTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C I : Contador INTEGER I aaa C APO : Condicion de apoyo INTEGER APO aaa C CCCCCCCCCCCCCCC C RUTINA CCCCCCCCCCCCCCC C C DATOS DEL SOLIDO C SELECT CASE(TF) CASE(11,12) C C PROBLEMA ELASTICO READ(F_E,*) SOL.NUM,SOL.NNOD,SOL.NCNT,SOL.NPINT,APO C CASE DEFAULT WRITE(F_W,01107) SOL.NUM , TF WRITE (*,01107) SOL.NUM , TF STOP END SELECT C C Comprobacion de lectura correcta C IF(csol.NE.SOL.NUM) THEN WRITE(F_W,01101) csol , SOL.NUM WRITE (*,01101) csol , SOL.NUM STOP END IF C C NUMERO DE NODOS C IF(SOL.NNOD.LT.1.OR.SOL.NNOD.GT.N_MAX_NOD) THEN WRITE(F_W,01102) SOL.NUM , SOL.NNOD WRITE (*,01102) SOL.NUM , SOL.NNOD STOP ENDIF C C NUMERO DE CONTORNOS C IF(SOL.NCNT.LT.1.OR.SOL.NCNT.GT.N_MAX_CNT) THEN WRITE(F_W,01103) SOL.NUM , SOL.NCNT WRITE (*,01103) SOL.NUM , SOL.NCNT STOP ENDIF C C NUMERO DE PUNTOS INTERNOS C IF(SOL.NPINT.LT.0.OR.SOL.NPINT.GT.N_MAX_PINT) THEN WRITE(F_W,01104) SOL.NUM , SOL.NPINT WRITE (*,01104) SOL.NUM , SOL.NPINT STOP ENDIF C C CONDICIONES DE APOYO TERMICO (problema de neumann) C SELECT CASE(APO) CASE(0) CONTINUE CASE(4) READ (F_E,*) SOL.APOPOT.NOD,SOL.APOPOT.TEMP SOL.APOPOT.APO=4 SOL.APOPOT.NAP=1 CASE DEFAULT WRITE(F_W,01105) SOL.NUM , APO WRITE (*,01105) SOL.NUM , APO STOP END SELECT C C DATOS DEL MATERIAL C C Lectura del tipo READ(F_E,*) MAT.TIP C i=1 DO WHILE((i.EQ.(TM(i).TIP)).AND.((TM(i).TIP).NE.(MAT.TIP))) IF(i.EQ.N_MAX_TPMT)THEN WRITE(F_W,01106) SOL.NUM , MAT.TIP WRITE (*,01106) SOL.NUM , MAT.TIP STOP END IF i=i+1 END DO C C Tipo de material erroneo C IF(MAT.TIP.NE.TM(MAT.TIP).TIP) THEN WRITE(F_W,01106) SOL.NUM , MAT.TIP WRITE (*,01106) SOL.NUM , MAT.TIP STOP END IF C C Lectura de las propiedades C READ(F_E,*) (MAT.PRP(i),i=1,TM(MAT.TIP).NPRP) C C FIN DE LA RUTINA C RETURN C C FORMATOS DE ESCRITURA C 01101 FORMAT(/,2x,'ERROR 01101 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Numero de solido errorneo (',i2,').') 01102 FORMAT(/,2x,'ERROR 01102 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Numero de nodos (',i4,') fuera del rango permitido.') 01103 FORMAT(/,2x,'ERROR 01103 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Numero de contornos (',i2,') fuera del rango permitido.') 01104 FORMAT(/,2x,'ERROR 01104 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Numero de puntos internos (',i4, @ ') fuera del rango permitido.') 01105 FORMAT(/,2x,'ERROR 01105 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Condicion de apoyo (',i2,') fuera del rango permitido.') 01106 FORMAT(/,2x,'ERROR 01106 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Tipo de material (',i2,') no implementado.') 01107 FORMAT(/,2x,'ERROR 01107 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Tipo de formulacion (',i2,') no implementada.') 01108 FORMAT(/,2x,'ERROR 01108 - LEE_SOLIDO_POT - Solido: ',i2,'.',/,2x, @ 'Error Programa.') C END C e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


ANÁLISIS DEL PROBLEMA TERMOELÁSTICO DE CONTACTO MEDIANTE EL MÉTODO DE LOS ELEMENTOS DE CONTORNO CON MALLAS CONFORMES Y NO CONFORMES

: MORALES SIERRA, DIÓGENES
: Ingeniería Industrial
Contenido del proyecto: