C C-------------------------------------------------------------TIP_INT--- C C SUBRUTINA TIP_INT C C GENERA LOS DATOS CORRESPONDIENTES AL TIPO DE INTEGRACION C SUBROUTINE TIP_INT(INTEGR,TIP) C IMPLICIT NONE INCLUDE '_param.for' INCLUDE '_struct.for' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES EXTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C INTEGR : Tipo de integracion RECORD /S_intgr/ INTEGR C TIP : Codigo del tipo INTEGER TIP C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C VARIABLES INTERNAS CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C NPG : Numero de puntos de Gauss INTEGER NPG C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C TIPOS DE INTEGRACION CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C SELECT CASE (TIP) C C INTEGRACION NUMERICA C CASE(1) INTEGR.TIP=1 INTEGR.TXT='Integracion numerica.' READ(F_E,*) NPG IF(NPG.LT.2.OR.NPG.GT.N_MAX_NPG) THEN WRITE(F_W,02302) NPG WRITE (*,02302) NPG STOP ELSE INTEGR.NPG=NPG CALL GAUSS_QN(NPG,INTEGR.S,INTEGR.W) ENDIF C C INTEGRACION ANALITICA C CASE(2) INTEGR.TIP=2 INTEGR.TXT='Integracion analitica.' C C INTEGRACION MIXTA C CASE(3) INTEGR.TIP=3 INTEGR.TXT='Integracion mixta.' READ(F_E,*) NPG IF(NPG.LT.2.OR.NPG.GT.N_MAX_NPG) THEN WRITE(F_W,02302) NPG WRITE (*,02302) NPG STOP ELSE INTEGR.NPG=NPG CALL GAUSS_QN(NPG,INTEGR.S,INTEGR.W) ENDIF CASE DEFAULT WRITE(F_W,02301) TIP WRITE (*,02301) TIP STOP END SELECT C C FIN DE LA RUTINA C RETURN C C FORMATOS DE ESCRITURA. C 02302 FORMAT(/,2x,'ERROR 02302 - TIP_INT - ',/,2x,'Numero de puntos ', @ 'de Gauss (',i2,') fuera del rango permitido.') 02301 FORMAT(/,2x,'ERROR 02301 - TIP_INT - Tipo de integracion (', @ i2,') errornea.') C END C