• No se han encontrado resultados

INICIAL

ANEXO 1 ANEXO 1

93

94

95

96

97

98

99

100

101

DIAGRAMA DE PRECIPITACIÓN DEL HIERRO, COBRE, ZINC Y MANGANESO

102

ANEXO 2

PROGRAMA EN FORTRAN POWER STATION PARA LA DETERMINACIÓN DE LA ALTURA DE SEDIMENTO

103

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

C RECUPERACION DE LOS METALES PESADOS PRESENTES EN EL DRENAJE ACIDO DE MINA C MEDIANTE LA PRECIPITACION SELECTIVA PARA SU POSTERIOR UTILIZACION

C MODELAMIENTO DE ESPESADOR CONTINUO C DETERMINACION DE LA ALTURA DEL SEDIMENTO

C REFERENCIA: DAMASCENO J.J.R. LIRA J.R., ARAUCA F.O. OLIVERA-LOPES L.C.

C MODELING OF THE HEIGT OF SEDIMENT IN A CONTIUNUOUS THICKENER C MATERIALS SCIENCE FURUM PAG. 1812-1817

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

C========================================================================

C DEFINICION DE VARIABLES Y PARAMETROS

C RL = ALTURA DEL SEDIMENTO

C M

C C0 = FRACCION VOLUMETRICA DEL SOLIDO EN LA ALIMENTACION

C = M**3 DE SOLIDO/M**3 TOTALES

C CU = FRACCION VOLUMETRICA DEL SOLIDO EN EL LODO

C = M**3 DE SOLIDO/M**3 TOTALES

C QS = FLUJO VOLUMETRICO DEL SOLIDO POR AREA TRANSVERSAL

C M**3 DE SOLIDO/(M**2 DE SUPERFICIE * SEG)

C DRO = DIFERENCIA DE DENSIDAD DEL SOLIDO MENOS EL FLUIDO

C KG/M**3

C G = ACELERACION DE LA GRAVEDAD

C M/SEG**2

C VISC = VISCOSIDAD DEL FLUIDO

C KG/(M*SEG)

C

C PSU = PRESION EN EL SOLIDO

C KG/(M*SEG**2)

C PA = CONSTANTE PARA LA DETERMINACION DE PSU

C KG/(M*SEG**2)

C BETA = CONSTANTE PARA LA DETERMINACION DE PSU

C PK = PERMEABILIDAD DEL MEDIO POROSO

C M**2

C PKO = CONSTANTE PARA LA DETERMINACION DE PK

C M**2

C DELTA = CONSTANTE PARA LA DETERMINACION DE PK

C=======================================================================

PROGRAM ESPECON

IMPLICIT DOUBLE PRECISION (A-H,O-Z) PARAMETER(ND = 20)

DIMENSION PESO(ND),Y(ND),ROOT(ND) DIMENSION DIF1(ND),DIF2(ND),DIF3(ND) COMMON /AREA1/ QS,DRO,G,VISC,CU,PSU COMMON /AREA2/ C0,PK0,BETA,DELTA,PA WRITE(*,*)

WRITE(*,*) 'PARAMETROS OPERACIONALES' DRO=2120

G=9.81 VISC=0.001

WRITE(*,2)DRO, G, VISC 2 FORMAT(8X,'DATOS'//

& 8X,'densidad del solido - densidad del liquido (kg/m3): ',F7.0//

& 8X,'aceleracion de la gravedad (m/s2) : ',F7.3//

& 8X,'Viscosdiad del liquido (kg/m.s) : ',F7.4) WRITE(*,*)

WRITE(*,*) 'PARAMETROS CONSTITUTIVOS' C0=4.8e-5

PK0= 1.15E-12 BETA= 0.55 DELTA = 4.1 PA = 7.0

WRITE(*,4)C0,PK0,BETA,DELTA,PA 4 FORMAT(8X,'DATOS'//

& 8X,'fraccion volumetrica del solido en la aliment. : ',F10.6//

& 8X,'pk0 (m2) : ',E12.3//

& 8X,'Beta : ',F7.4//

& 8X,'Delta : ',F7.1//

& 8X,'Pa (kg/m.s2) : ',F7.1) WRITE(*,*)

QS=0.04E-10

104

WRITE(*,5)QS

5 FORMAT (8X 'flujo del solido (m/s) :'E12.3) CU=1.6e-4

WRITE(*,6)CU

6 FORMAT (8X, 'concentracion de lodo :'F10.4) WRITE(*,*)

PSU = PA*((CU/C0)**(1./BETA)-1.) N = 4

N0 = 1 N1 = 1

NT = N + N0 + N1

CALL JCOBI(NT,N,N0,N1,1.D0,1.D0,DIF1,DIF2,DIF3,ROOT) DO 50 I = 1,NT

CALL FUNCION(ROOT(I),Y(I))

50 CONTINUE

CALL RADAU(NT,N,N0,N1,3,0.,0.,ROOT,DIF1,PESO) RL = 0.D0

DO 80 I = 1,NT

RL = RL + PESO(I)*Y(I)

80 CONTINUE

RL=PSU*RL QU = QS/CU WRITE(*,*) WRITE(*,*)

WRITE(*,3) QS, QU, CU, RL

3 FORMAT(8X,'RESULTADOS DA QUADRATURA DE LOBATTO'//

& 8X,'Fluxo de solidos (m/s) : ',E10.3/

& 8X,'Fluxo de lama (m/s) : ',E10.3/

& 8X,'Concentracao de lama : ',F7.4/

& 8X,'Altura do sedimento (m) : ',F7.4) WRITE(*,*)

WRITE(*,*) WRITE(*,*) WRITE(*,*) CLOSE(1) CLOSE(2) STOP END

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

C SUBRUTINA PARA EL CALCULO DE LA ALTURA DEL SEDIMENTO C***********************************************************************

SUBROUTINE FUNCION(X,Y)

IMPLICIT DOUBLE PRECISION (A-H,O-Z) COMMON /AREA1/ QS,DRO,G,VISC,CU,PSU COMMON /AREA2/ C0,PK0,BETA,DELTA,PA PS=PSU*X

CC=(1.+PS/PA)**BETA C=C0*CC

DC=C0*BETA/PA*(1.+PS/PA)**(BETA-1.) PK=PK0*(CC)**(-DELTA)

Y=(1.-(DRO+1000.)*(QS/C)**2*DC)/(DRO*G*C-VISC*QS/PK*(1./C-1./CU)) RETURN

END

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

C SUBRUTINA POLINOMIAL DE JACOBI

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

SUBROUTINE JCOBI (ND, N, N0, N1, ALPHA, BETA, DIF1, DIF2, DIF3, ROOT) INTEGER ND, N, N0, N1

DOUBLE PRECISION ALPHA, BETA, DIF1(ND), DIF2(ND), DIF3(ND), ROOT(ND) C***********************************************************************

C JACOBI

INTEGER I,J,NT,IER

DOUBLE PRECISION AB,AD,AP,Z1,Z,Y,X,XD,XN,XD1,XN1,XP,XP1,ZC DOUBLE PRECISION ZERO,ONE,TWO

LOGICAL LSTOP

PARAMETER ( ZERO = 0.0D+00, ONE = 1.0D+00, TWO = 2.0D+00 ) IF ((N0 .NE. 0) .AND. (N0 .NE. 1)) THEN

IER = 1 LSTOP = .TRUE.

CALL VILERR(IER,LSTOP)

105

ELSE END IF

IF ((N1 .NE. 0) .AND. (N1 .NE. 1)) THEN IER = 2

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF (ND .LT. (N + N0 + N1)) THEN IER = 3

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF ((N + N0 + N1) .LT. 1) THEN IER = 7

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

C – EVALUACION DEL COEFICIENTE AB = ALPHA + BETA

AD = BETA - ALPHA AP = BETA*ALPHA

DIF1(1) = (AD/(AB + TWO) + ONE)/TWO DIF2(1) = ZERO

IF(N .GE. 2) THEN DO 10 I = 2,N

Z1 = DBLE(I) - ONE Z = AB + 2*Z1

DIF1(I) = (AB*AD/Z/(Z + TWO) + ONE)/TWO IF (I .EQ. 2) THEN

DIF2(I) = (AB + AP + Z1)/Z/Z/(Z + ONE) ELSE

Z = Z*Z

Y = Z1*(AB + Z1) Y = Y*(AP + Y) DIF2(I) = Y/Z/(Z - ONE) END IF

10 CONTINUE ELSE END IF

C – DETERMINACION DE LA RAIZ POR EL METODO DE NEWTON X = ZERO

DO 20 I = 1,N 25 CONTINUE XD = ZERO XN = ONE XD1 = ZERO XN1 = ZERO DO 30 J = 1,N

XP = (DIF1(J) - X)*XN - DIF2(J)*XD XP1 = (DIF1(J) - X)*XN1 - DIF2(J)*XD1 - XN XD = XN

XD1 = XN1 XN = XP XN1 = XP1 30 CONTINUE ZC = ONE Z = XN/XN1 IF (I .NE. 1) THEN DO 22 J = 2,I

ZC = ZC - Z/(X - ROOT(J-1)) 22 CONTINUE

ELSE END IF Z = Z/ZC X = X - Z

IF (DABS(Z) .GT. 1.D-09) THEN GO TO 25

106

ELSE END IF ROOT(I) = X X = X + 0.0001D0 20 CONTINUE NT = N + N0 + N1 IF (N0 .NE. 0) THEN DO 31 I = 1,N J = N + 1 - I

ROOT(J+1) = ROOT(J) 31 CONTINUE

ROOT(1) = ZERO ELSE

END IF

IF (N1 .EQ. 1) THEN ROOT(NT) = ONE ELSE

END IF

CALL DIF ( NT, ROOT, DIF1, DIF2, DIF3 ) RETURN

END

SUBROUTINE DIF ( NT, ROOT, DIF1, DIF2, DIF3 ) INTEGER NT

DOUBLE PRECISION ROOT(NT), DIF1(NT), DIF2(NT), DIF3(NT) C***********************************************************************

C SUBROUTINE DIF

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

INTEGER I,J,IER DOUBLE PRECISION X,Y

DOUBLE PRECISION ZERO,ONE,TWO,THREE LOGICAL LSTOP

PARAMETER ( ZERO = 0.0D+00, ONE = 1.0D+00,TWO = 2.0D+00, THREE = 3.0D+00 ) IF (NT .LT. 1) THEN

IER = 7 LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

C – EVALUACION DE LA DERIVADA DO 40 I = 1,NT

X = ROOT(I) DIF1(I) = ONE DIF2(I) = ZERO DIF3(I) = ZERO DO 30 J = 1,NT IF (J .NE. I) THEN Y = X - ROOT(J)

DIF3(I) = Y*DIF3(I) + THREE*DIF2(I) DIF2(I) = Y*DIF2(I) + TWO *DIF1(I) DIF1(I) = Y*DIF1(I)

ELSE END IF 30 CONTINUE 40 CONTINUE RETURN END

SUBROUTINE VILERR ( IER, LSTOP ) INTEGER IER

LOGICAL LSTOP

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

WRITE(*,*) '** VILERR : VALOR NO CORRECTO N0 ' ELSE IF ( IER .EQ. 2) THEN

WRITE(*,*) '** VILERR : VALOR NO CORRECTO N1 ' ELSE IF ( IER .EQ. 3 ) THEN

WRITE(*,*) '** VILERR : DIMENSION INSUFICIENTE ' ELSE IF ( IER .EQ. 4 ) THEN

WRITE(*,*) '** VILERR : INDICE, DFOPR ' ELSE IF ( IER .EQ. 5 ) THEN

WRITE(*,*) '** VILERR : NTOTAL in DFOPR '

107

ELSE IF ( IER .EQ. 6 ) THEN

WRITE(*,*) '** VILERR : VALOR NO CORRECTO ID in DFOPR ' ELSE IF ( IER .EQ. 7 ) THEN

WRITE(*,*) '** VILERR : PUNTOS DE INTERPOLACION ' WRITE(*,*) ' less than 1 '

ELSE IF ( IER .EQ. 8 ) THEN

WRITE(*,*) '** VILERR : VALOR NO CORRECTO ID EN RADAU ' ELSE IF ( IER .EQ. 9 ) THEN

WRITE(*,*) '** VILERR : ID = 1 EN RADAU ' ELSE IF ( IER .EQ. 10 ) THEN

WRITE(*,*) '** VILERR : ID = 2 EN RADAU ' ELSE IF ( IER .EQ. 11 ) THEN

WRITE(*,*) '** VILERR : ID = 3 '

WRITE(*,*) ' N1 NO IGUAL A 1 EN RADAU ' ELSE

WRITE(*,*) 'VALOR NO RECONOCIDO PARA VILERR ' END IF

IF ( LSTOP ) THEN C -- PROGRAM EJECUTADO CCCC CALL XSTOPX (' ') ELSE

END IF RETURN END

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

C SUBRUTINA CUADRATURA DE GAUSS - LOBATTO C***********************************************************************

SUBROUTINE RADAU + (

+ ND, N, N0, N1, ID, ALPHA, BETA, ROOT, DIF1, VECT + )

INTEGER ND, N, N0, N1, ID

DOUBLE PRECISION ALPHA, BETA, ROOT(ND), DIF1(ND), VECT(ND) C***********************************************************************

C RADAU OR LOBATTO QUADRATURE

C VILLADSEN AND MICHELSEN, PAGES 133-135, 419 INTEGER I,NT,IER

DOUBLE PRECISION AX,S,X DOUBLE PRECISION ZERO,ONE LOGICAL LSTOP

PARAMETER ( ZERO = 0.0D+00, ONE = 1.0D+00 ) C -- ERROR

IF ((N0 .NE. 0) .AND. (N0 .NE. 1)) THEN IER = 1

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF ((N1 .NE. 0) .AND. (N1 .NE. 1)) THEN IER = 2

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF (ND .LT. (N + N0 + N1)) THEN IER = 3

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF ((N + N0 + N1) .LT. 1) THEN IER = 7

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF ((ID .NE. 1) .AND. (ID.NE. 2) .AND. (ID .NE. 3)) THEN IER = 8

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP)

108

ELSE END IF

IF ((ID .EQ. 1) .AND. (N1 .NE. 1)) THEN IER = 9

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF ((ID .EQ. 2) .AND. (N0 .NE. 1)) THEN IER = 10

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

IF ((ID .EQ. 3) .AND. ((N0 .NE. 1) .OR. (N1 .NE. 1))) THEN IER = 11

LSTOP = .TRUE.

CALL VILERR(IER,LSTOP) ELSE

END IF

C – EVALUACION DE RADAU S = ZERO

NT = N + N0 + N1 DO 40 I = 1,NT X = ROOT(I)

IF (ID .EQ. 1) THEN AX = X

IF (N0 .EQ. 0) THEN AX = ONE/AX ELSE END IF

ELSE IF (ID .EQ. 2) THEN AX = ONE - X

IF (N1 .EQ. 0) THEN AX = ONE/AX ELSE END IF

ELSE IF (ID .EQ. 3) THEN AX = ONE

ELSE END IF

VECT(I) = AX/DIF1(I)**2 40 CONTINUE

IF (ID .NE. 2) THEN

VECT(NT) = VECT(NT)/(ONE + ALPHA) ELSE

END IF

IF (ID .GT. 1) THEN

VECT(1) = VECT( 1)/(ONE + BETA) ELSE

END IF DO 50 I = 1,NT S = S + VECT(I) 50 CONTINUE DO 60 I = 1,NT VECT(I) = VECT(I)/S 60 CONTINUE

RETURN END

109

ANEXO 3

CONSTANCIA DE ANALISIS

110

111

112

ANEXO 4

ESPECTROSCOPÍA DE INFRARROJOS CON TRANSFORMADA DE FOURIER

113

114

115