interpretaciÓn y correlaciÓn automÁticas de...

570
UNIVERSIDAD POLITÉCNICA DE MADRID TESIS DOCTORAL INTERPRETACIÓN Y CORRELACIÓN AUTOMÁTICAS DE DIAGRAFÍAS GEOFÍSICAS. APLICACIÓN A LA HIDROGEOLOGÍA EN EL SUR DE LA CUENCA DEL DUERO. – MEMORIA – JESÚS M. DÍAZ CURIEL LICENCIADO EN CIENCIAS FÍSICAS ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE MINAS 1995

Upload: others

Post on 18-Jan-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD POLITÉCNICA DE MADRID

TESIS DOCTORAL

INTERPRETACIÓN Y CORRELACIÓN AUTOMÁTICAS

DE DIAGRAFÍAS GEOFÍSICAS.

APLICACIÓN A LA HIDROGEOLOGÍA

EN EL SUR DE LA CUENCA DEL DUERO.

– MEMORIA –

JESÚS M. DÍAZ CURIEL

LICENCIADO EN CIENCIAS FÍSICAS

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS

DE MINAS

1995

DEPARTAMENTO DE INGENIERÍA GEOLÓGICA

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS

DE MINAS

INTERPRETACIÓN Y CORRELACIÓN AUTOMÁTICAS

DE DIAGRAFÍAS GEOFÍSICAS.

APLICACIÓN A LA HIDROGEOLOGÍA

EN EL SUR DE LA CUENCA DEL DUERO.

Autor:

JESÚS M. DÍAZ CURIEL

Licenciado en Ciencias Físicas

Director:

ALFONSO MALDONADO ZAMORA

Doctor Ingeniero de Minas

1995

D.12

Tribunal nombrado por el Mgfco. y Excmo. Sr. Rector de la

Universidad Politécnica de Madrid, el día ......... de ...................................

de .........

Presidente D. _______________________________________________

Vocal D. _______________________________________________

Vocal D. _______________________________________________

Vocal D. _______________________________________________

Secretario D. _______________________________________________

Realizado el acto de defensa y lectura de la Tesis el día ……….........

de ....................... de 19......

en ......................................

Calificación: .........................

EL PRESIDENTE LOS VOCALES

EL SECRETARIO

IV

R E S U M E N

El trabajo realizado en esta Tesis consiste en el desarrollo de un sistema

automático para el tratamiento, interpretación y correlación de diagrafías

geofísicas y en la aplicación de dicho sistema a un conjunto de 27 diagrafías

realizadas por el autor en el Tercio Sur-Oeste de la Cuenca del Duero.

Aunque el diseño del sistema posibilite su aplicación para cualesquiera sondas de

testificación, está específicamente encaminado a su utilización para diagrafías de

resistividades convencionales (dispositivos normal y lateral), potencial

espontáneo y radiación gamma natural en sondeos con fines hidrogeológicos.

El sistema automático está compuesto de una serie de programas que realizan

los siguientes procesos: Digitalización y grabación de registros analógicos,

corrección de decalajes, cálculo de línea base y eliminación de sus

desplazamientos, segmentación de los registros, determinación de las capas del

sondeo, cálculo del contenido en arcillas, cálculo del total de sólidos disueltos,

cálculo de la resistividad real con estimación de la permeabilidad, interpretación

litológica, correlación de capas, determinación y correlación de tramos de la

diagrafía y representación final.

Para la elaboración de los programas, ha sido necesario afrontar estos procesos

desde distintos ángulos, resolviendo y realizando una serie de pasos:

* Selección minuciosa de los ábacos y métodos más apropiados para su

utilización en la interpretación de diagrafías en sondeos para captación de

agua.

* Realización de medidas de laboratorio para obtener series de valores tanto en

procesos previos (viscosidad-temperatura, viscosidad-densidad,...) como en

los propios procesos de interpretación (Rwe/Rw, TSD/Rw,...).

* Conversión de los datos obtenidos y de los ábacos seleccionados, cuyo rango

de aplicación fuera de carácter continuo, a curvas analíticas para su utilización

automática.

V

* Resolución de problemas inconclusos tales como el cálculo de resistividad real

a partir de parámetros convencionales, aproximación de la permeabilidad a

partir de aquélla, o modelización teórica de las funciones de corrección de la

medida de gamma natural por efecto del sondeo.

* Desarrollo de algoritmos para la ejecución automática de procesos tales como

el cálculo de la línea base, la delimitación de las capas atravesadas por el

sondeo o la determinación de los tramos de la diagrafía.

* Modificación de métodos conocidos (cros-correlación, clasificación

automática, cros-asociación) para su aplicación al problema específico de

diagrafías (corrección de decalajes, interpretación litológica, correlación)

* Paralelamente y con carácter de ayuda se han realizado una serie de soportes

matemáticos, ajuste de curvas a polinomios de grado n, suavizado de series de

puntos mediante spline, ...etc.

Por último, en la aplicación del sistema, aparte de la ejecución de las diagrafías,

ha sido necesario realizar una síntesis de los conocimientos geológicos

encaminada a la determinación de ciclos o períodos coincidentes con los tramos

de las diagrafías, y una recopilación de datos (granulometrías, análisis de aguas,

...etc.) que sirvieran para contrastar la validez de los resultados obtenidos.

VI

A B S T R A C T

The work made in this Thesis consists in the development of an automatic

system for the treatment, interpretation and correlation of geophysical logs, and

it´s application to a set of 27 logs performed by the author in the south-western

part of the Duero basin.

Although the system is designed to make the former processes with any logs, it

will be intended to it´s use with the old electrical, S.P. and Gamma Ray logs into

hydrogeological open holes.

The interpretation system consists in a group of 12 computer CODES, that carry

out the following processes: Digitalization and recording of analogical registers,

shifts correction, base line correction and elimination of its displacements,

register segmentation, bore hole stratums determination, clay contents

calculations, total dissolved solid calculation, real resistivity calculation with

permeability estimation, lithologic interpretation, stratums correlation, logging

section determination and correlation and final representation.

In the developing of the programs, it has been necessary to confront the

following processes:

* Detailed selection of the most appropriated methods and charts in order to

convert it to an analytical formulation for its automatic use.

* Laboratory measures to obtain a set of values not only in the previous

processes but also in the interpretation process.

* Conversion of the obtained data and selected charts, with continuous range of

application, to analytical curves for its automatic utilization.

* Unfinished problem resolution, such as real resistivity calculation from

conventional parameter, permeability approximation from that, or theoretical

modelling of the natural gamma correction functions for borehole effect.

VII

* Algorithm development in automatic execution of processes such as base line

calculation, crossed boreholes stratums delimitation, or logging section

determination.

* Modification of well-known methods (cross-correlation, automatic

classification, cross-association) in order to apply them to the specific logs

problems (shift correction, lithologic interpretation, correlation).

* Parallel, a complete set of mathematical supports has been done with a

helping characteristic.

Finally, in the application of the system, beside the execution of the logs, it has

been necessary to synthesize the geological existing data, in order to determine

the series or periods coincident with the logs zones, and a summary of

granulometric studies, water analysis data, ... etc., to check the obtained results.

VIII

A G R A D E C I M I E N T O S

A mi familia y amigos por su paciencia y a Mª Jesús Miguel por su apoyo y

ayuda en la elaboración de esta Tesis.

A mis compañeros de trabajo Sergio Domínguez, Domingo Martín, Alejandro

Rocyzki y Javier Navas, por su ánimo y colaboración.

Al Director de Tesis D. Alfonso Maldonado Zamora, catedrático de la Cátedra de

Geofísica Aplicada de la E.T.S.I. de Minas de Madrid con cuyos medios

informáticos y equipos de testificación geofísica he realizado esta Tesis.

A la Empresa de Transformaciones Agrarias (TRAGSA), encargada del control de

los sondeos analizados en esta Tesis, y en particular a D. Francisco Mendieta.

Al Instituto de Reforma y Desarrollo Agrario (IRYDA), organismo titular de las

obras de ejecución de los sondeos estudiados en esta Tesis, y en particular a D.

Honorio Domínguez.

A la Consejería de Agricultura de la Comunidad de Castilla León, a la que le

fueron transferidas la titularidad de algunos de dichos sondeos.

A la empresa de sondeos Perforaciones y Riegos (PYRSA) encargada de la

ejecución de la mayoría de estos sondeos, por sus facilidades en la realización de

las diagrafías.

IX

Í N D I C E

CAPÍTULO 1 - INTRODUCCIÓN 1.1 OBJETIVOS ............................................................................... 2 1.1.1 Puesta a punto de Metodología e Interpretación .................. 2 1.1.2 Desarrollo del Sistema Automático ..................................... 3 1.1.3 Aplicación a una Cuenca y Evaluación de Éxitos .................. 4 1.2 ESTADO DE CONOCIMIENTO ...................................................... 6 1.2.1 Realización de Diagrafías para Hidrogeología ....................... 6 1.2.2 Estudios en otras Cuencas ................................................ 7 1.2.3 Interpretación de Diagrafías .............................................. 7 1.2.3.1 Interpretación Litológica ......................................... 7 1.2.3.2 Interpretación Cuantitativa ...................................... 9 1.2.4 Zonación ....................................................................... 12 1.2.5 Métodos de Correlación ................................................... 13 1.2.6 Aplicaciones Informáticas Comerciales .............................. 16 CAPÍTULO 2 - PRINCIPIOS GENERALES Y TERMINOLOGÍA 2.1 FACTOR DE FORMACIÓN ......................................................... 17 2.2 CONDUCTIVIDAD IÓNICA DE FLUIDOS ..................................... 19 2.2.1 Naturaleza de los Iones ................................................... 19 2.2.2 Concentración ............................................................... 21 2.2.3 Temperatura y Viscosidad ............................................... 21 2.2.4 Presión ......................................................................... 23 2.3 POROSIDAD Y PERMEABILIDAD ............................................... 23 2.3.1 Factores de Dependencia ................................................ 23 2.3.2 Permeabilidad de Detritos ............................................... 24 2.3.3 Relación Permeabilidad/Porosidad .................................... 25 2.4 CLASIFICACIÓN LITOLÓGICA EMPLEADA................................... 26 2.4.1 Arcillas ......................................................................... 27 2.4.2 Gravas, Arenas y Limos .................................................. 27 2.4.3 Litologías mixtas ........................................................... 28 2.4.4 Margas ......................................................................... 28 2.5 TESTIFICACIÓN GEOFÍSICA....................................................... 29 2.5.1 El Registro de Resistividad .............................................. 31 2.5.2 El Registro de Potencial Espontáneo ................................. 33 2.5.3 El Registro de Radiación Gamma ...................................... 34 2.6 SEGMENTACIÓN Y ZONACIÓN ................................................. 37

X

2.7 MÉTODOS DE CORRELACIÓN.................................................... 39 2.7.1 Cros-Correlación ............................................................ 40 2.7.2 Cros-Asociación ............................................................ 41 2.8 MÉTODOS DE CLASIFICACIÓN .................................................. 41 CAPÍTULO 3 - OBTENCIÓN Y TRATAMIENTO DE DATOS 3.1 ADQUISICIÓN DE DATOS.......................................................... 44 3.1.1 Instrumentación ............................................................. 44 3.1.2 Metodología de Registro ................................................. 45 3.1.3 Realización de Columnas Litológicas ................................ 47 3.2 PARÁMETROS DEL SONDEO ..................................................... 48 3.2.1 Temperatura ................................................................. 49 3.2.2 Conductividad del Filtrado de Lodo ................................... 50 3.2.3 Densidad del Lodo de Perforación ..................................... 50 3.3 ELABORACIÓN DE DATOS ........................................................ 52 3.3.1 Digitalización y Grabación ............................................... 53 3.3.2 Determinación de Línea Base ........................................... 55 3.3.3 Corrección de Decalajes ................................................. 59 3.3.4 Representación de las Diagrafías ..................................... 61 CAPÍTULO 4 - INTERPRETACIÓN Y CORRELACIÓN 4.1 DETERMINACIÓN DE LOS LÍMITES DE CAPAS............................. 63 4.1.1 Delimitación por Bandas ................................................. 63 4.1.2 Segmentación de los Registros ........................................ 64 4.1.3 Valores Aparentes de Capa.............................................. 65 4.1.4 Determinación de Capas Paramétricas ............................... 66 4.2 INTERPRETACIÓN CUANTITATIVA............................................. 70 4.2.1 Cálculo del Contenido en Arcillas ..................................... 70 4.2.2 Cálculo del Total de Sólidos Disueltos .............................. 75 4.2.3 Cálculo de Resistividad Real ............................................ 79 4.2.4 Cálculo de Porosidad y Permeabilidad ............................... 88 4.2.5 Selección de Niveles Óptimos .......................................... 91 4.3 INTERPRETACIÓN LITOLÓGICA ................................................. 92 4.3.1 Asignación Directa ......................................................... 93 4.3.2 Análisis de Agrupación ................................................... 94 ⋅ 4.3.3 Códigos Litológicos......................................................... 97 4.4 ZONACIÓN .............................................................................. 97 4.5 SISTEMA DE CORRELACIÓN .....................................................100

XI

4.5.1 Correlación de Capas .....................................................100 4.5.2 Correlación de Zonas .....................................................103 CAPÍTULO 5 - DESCRIPCIÓN Y MANEJO DE LOS PROGRAMAS 5.1 INTRODUCCIÓN .......................................................................105 5.1.1 Consideraciones Preliminares ..........................................105 5.1.2 Descripción del Sistema (Hardware) .................................106 5.1.2 Programas Realizados .....................................................107 5.2 MANEJO DE LOS PROGRAMAS .................................................110 5.2.1 ................................................................112 5.2.2 ....................................................................113 5.2.3 ......................................................................117 5.2.4 ....................................................................119 5.2.5 ..................................................................121 5.2.6 ...............................................................124 5.2.7 ........................................................................127 5.2.8 ..................................................................129 5.2.9 ...................................................................132 5.2.10 .................................................................133 5.2.11 ....................................................................135 5.2.12 ................................................................136 5.2.13 ..............................................................139 5.2.14 ..................................................................141 5.2.15 ..............................................................143 5.2.16 .....................................................................144 CAPÍTULO 6 - APLICACIÓN A LA HIDROGEOLOGÍA EN

EL SUR DE LA CUENCA DEL DUERO 6.1 SELECCIÓN DE SONDEOS ........................................................147 6.2 MARCO GEOGRÁFICO Y GEOLÓGICO ........................................150 6.2.1 Situación Geográfica ......................................................150 6.2.2 Marco Geológico ...........................................................151 6.2.3 Historia Geológica ..........................................................153 6.2.4 Hidrogeología ................................................................162 6.2.5 Calidad Química del Agua Subterránea .............................164 6.3 RESULTADOS OBTENIDOS........................................................166 6.3.1 Interpretación Litológica .................................................167 6.3.2 Calidad del Agua en las Capas Permeables.........................170

XII

6.3.3 Permeabilidad de los Niveles Productivos ...........................173 6.3.4 Sección de Correlación ...................................................177 6.3.5 Evaluación Correlación-Distancia.......................................182 CAPÍTULO 7 - CONCLUSIONES Y LÍNEAS DE FUTURO 7.1 CONCLUSIONES ......................................................................184 7.1.1 Ventajas e Inconvenientes ..............................................186 7.3 LÍNEAS DE FUTURO ................................................................187 CAPÍTULO 8 - BIBLIOGRAFÍA 8.1 ARTÍCULOS ESPECIALIZADOS ..................................................191 8.2 LIBROS DE CONSULTA ............................................................203

XIII

S I G N O S Y A B R E V I A T U R A S E M P L E A D O S a Factor de Ajuste AM Distancia Interelectródica en Sondas con Dispositivo Normal AO Distancia Interelectródica en Sondas con Dispositivo Lateral A.P.I. American Petroleum Institute D Diámetro del Sondeo F Factor de Formación Fa Factor de Formación Aparente G.N. Radiación Gamma Natural K Permeabilidad m Factor de Cementación md milidarcy N.M.R. Resonancia Nuclear Magnética P.E. Potencial Espontáneo P.E.E. Potencial Espontáneo Estático R0 Resistividad Real de la Formación Ri Resistividad de la Formación en la Zona Invadida por el Filtrado de Lodo R.LAT. Resistividad Dispositivo Lateral (AO = 1.8 m) R.M.E. Resistividad Mono-Electródica o Puntual R.N.C. Resistividad Dispositivo Normal Corta (AM = 0.4 m) R.N.L. Resistividad Dispositivo Normal Larga (AM = 1.6 m) Rw Resistividad del Agua de la Formación Rwe Resistividad Equivalente del Agua de la Formación Rm Resistividad del Lodo Rmf Resistividad del Filtrado del Lodo T Temperatura T.D.T. Tiempo de Degradación Termal T.S.D. Total de Solidos Disueltos T Tortuosidad ° Grado C Concentración δ (Delta) - Densidad φ (Fi) - Porosidad λ (Lambda) - Coeficiente de Atenuación Lineal _ (Mho) - (Inverso de Ohmio) µ (Mu) - Coeficiente de Absorción Másico Ω (Omega) - Ohmio ρ (Rho) - Resistividad σ (Sigma) - Conductividad τ (Tau) - Tiempo de Integración

1

CAPÍTULO 1 INTRODUCCIÓN

La realización e interpretación de registros geofísicos de sondeos para captación

de agua es, en la actualidad, una de las técnicas más útiles para el perfecto

desarrollo de los mismos. Además, la correlación de esos registros aporta una

información de vital importancia para el conocimiento global de las cuencas

donde se realizan dichos sondeos y no sólo en el caso de cuencas hidrológicas.

Aunque la interpretación y correlación de diagrafías "a ojo" comprende una serie

de conocimientos y criterios que difícilmente pueden programarse en un

ordenador, la realización de estos procesos de forma automática ofrece una serie

de ventajas como son, aparte de la velocidad de proceso, la consistencia entre

los resultados obtenidos para los diferentes interpretadores y el conocimiento de

los criterios empleados, a veces desconocido en los análisis individualizados.

La necesidad de crear un paquete informático para el estudio de diagrafías

convencionales (resistividades no focalizadas, potencial espontáneo y gamma

natural) nace fundamentalmente debido a dos factores: Por un lado, la posibilidad

de completar y ampliar la información de las bases de datos existentes sobre

testificaciones geofísicas de sondeos antiguos como, por ejemplo, la existente en

el Instituto Tecnológico Geominero y, por otro lado, que el bajo nivel de estudios

técnicos que se realizan dentro de los sondeos para captación de agua debido, en

parte, a la baja inversión de dichos sondeos frente a otras obras de ingeniería

civil

con rentabilidad parecida, obliga al empleo de sondas convencionales de menor

coste.

2

1.1 OBJETIVOS

El objetivo fundamental de esta Tesis consiste en lograr una serie de programas

o códigos para ordenador capaces de realizar, de forma lo más automática

posible, todos los procesos necesarios, desde la representación y el tratamiento

de datos hasta la interpretación cuantitativa, asignación litológica y correlación

de registros analógicos convencionales de testificación geofísica.

1.1.1 Puesta a punto de metodología e interpretación

En primer lugar, se realizará una recopilación bibliográfica encaminada a

seleccionar los ábacos experimentales que mejor se adapten a las características

de los sondeos con fines hidrogeológicos realizados en España. Sobre éstos

habrá que realizar las modificaciones y/o ampliaciones necesarias para resolver

todas las lagunas que puedan presentar a la hora de utilizarse sobre el conjunto

de capas de un sondeo, y efectuar la conversión de aquellos que no posean una

expresión analítica y que tengan un rango continuo de aplicación a relaciones

matemáticas.

Paralelamente a esta recopilación, se buscarán los métodos y fórmulas más

apropiados en los restantes procesos de tratamiento e interpretación de

diagrafías que no se resuelvan mediante el uso de ábacos experimentales,

desarrollando los algoritmos y fórmulas necesarios, tanto para la ampliación de

esos métodos como para su aplicación a las diagrafías. En este punto se incluyen

todos los procesos matemáticos tales como convolución, cros asociación,

clasificación automática, ajuste de funciones, spline, ...etc.

Por otro lado, se intentarán resolver todos aquellos pasos necesarios cuya

solución no se presente en la bibliografía actual, tales como la obtención de la

resistividad real a partir de registros de resistividad con dispositivos

convencionales, o la aproximación de los valores de permeabilidad a partir de

ésta.

3

En este sentido, se analizarán una serie de resultados concernientes a los

aspectos puros de interpretación obtenidos directamente en esta Cátedra, como

son los estudios de anomalías de P.E. para aguas poco salinas, o a través de los

datos de estudios externos en los sondeos de la zona de estudio, como análisis

de aguas y granulometrías de las muestras de arrastre.

Al mismo tiempo se realizarán una serie de medidas para resolución de ciertos

condicionantes del sondeo, tales como la relación de la viscosidad del lodo con la

densidad o la temperatura. Con estas series de datos deberemos efectuar

igualmente la correspondiente conversión analítica.

Por último, se deberá contar con un número suficientemente elevado de

diagrafías en este caso realizadas por el autor, con características

suficientemente complejas como para poder encontrar todo tipo de situaciones

distintas, e incluso adversas, que puedan presentarse en general.

1.1.2 Desarrollo del sistema automático

En la medida de lo posible se desarrollarán códigos que realicen los procesos de

forma lo más automática posible aún cuando se deberá dejar siempre la

posibilidad de que el usuario intervenga en todos los procesos, tanto en los que

los resultados puedan presentar dudas o ambigüedades, como en aquéllos cuyo

nivel de éxitos en el procesamiento automático sea absoluto.

La utilización del sistema sobre las diagrafías debe dar como resultado un aporte

práctico sobre la explotación de los sondeos, proporcionando un listado de los

niveles más productivos y sus características esenciales. Asimismo, deberá

presentar un columna litológica fácilmente comprensible y codificada para una

posterior correlación.

Tanto los soportes físicos informáticos, como el sistema operativo empleado

(incluido el lenguaje) no pertenecen al llamado grupo de sistemas compatibles, no

4

siendo objeto de esta tesis la optimización puramente informática, sino la

resolución automática de las posibilidades de la testificación geofísica.

1.1.3 Aplicación a una cuenca y evaluación de éxitos

Dentro del objetivo anterior, y dada la complejidad que conlleva, todavía cabría

distinguir, desde el punto de vista de los ámbitos de aplicación, distintos tipos de

enclaves geológicos. En este trabajo se ha elegido una cuenca detrítica

continental, lo que representa un grado de complejidad suficiente, tanto en

cuanto a los procesos de interpretación como, sobre todo, en los de correlación.

Los resultados obtenidos en este tipo de cuencas serán fácilmente ampliables a

cuencas de otro tipo.

El acuífero tipo elegido para este estudio, ha sido la Cuenca del Duero, donde el

autor ha realizado más de 60 diagrafías de sondeos pertenecientes a los trabajos

llevados a cabo por el Departamento de Ingeniería Geológica de la Escuela

Técnica Superior de Ingenieros de Minas para T.R.A.G.S.A. (Sociedad de

Transformaciones Agrarias) el I.R.Y.D.A., de las que se han seleccionado un total

de 27 correspondientes al sector Sur.

En el capítulo de aplicación a dicha cuenca, se realizará un marco geológico de

carácter bibliográfico encaminado, además de a presentar el necesario encuadre

geológico de carácter hidrológico, a obtener de forma simplificada el número de

ciclos geológicos que puedan tener mayor relación con lo que en este estudio se

denominan "Tramos Geofísicos".

Los resultados de la correlación deberán posibilitar, además de una sección de la

zona de estudio, una evaluación del nivel de fiabilidad de dichas correlaciones

(capas y tramos) frente a la distancia, en cuencas detríticas continentales como

la estudiada, y valorar el alcance geológico de los tramos que matemáticamente

se pueden definir sobre una diagrafía.

5

En este sentido, lo que aquí se persigue es la evaluación de las posibilidades de

correlacionar a grandes distancias, a partir de registros geofísicos, alcanzando al

mismo tiempo, un mayor conocimiento de la cuenca elegida en este estudio.

Por último, se hará una evaluación del nivel de fiabilidad de los resultados

obtenidos, tanto en los procesos de interpretación cuantitativa como en los de

asignación litológica, frente a los resultados que se obtendrían de forma

personalizada.

1.2 ESTADO DE CONOCIMIENTO

1.2.1 Realización de diagrafías en hidrogeología

La Testificación Geofísica de sondeos es una técnica desarrollada a espaldas de

las perforaciones petrolíferas, en cuyo coste la realización de estos estudios

estaba más que justificado.

Las primeras diagrafías que se realizan en España para colocación de filtros en

sondeos de captación de aguas subterráneas se remontan a finales de los años

60, con registros de gamma natural, potencial espontáneo y resistencia puntual o

monoelectródica.

En los años 70 aparecen una serie de sondas, fundamentalmente eléctricas con

dispositivos focalizados. Finalmente en los años 80 se desarrollan las sondas

espectrométricas, sondas especiales (T.D.T., N.M.R., pH, redox,...) y se

generaliza el uso de equipos digitales con los que se potencia la automática de la

interpretación.

Este progreso llevó al abandono de los parámetros convencionales, provocando

la ausencia de métodos para la interpretación exhaustiva con dichos parámetros

y por tanto de programas informáticos que realicen estos procesos. Además, en

la actualidad todavía sigue siendo muy común el empleo de sondas

6

convencionales para la medida de resistividad en sondeos con fines

hidrogeológicos.

1.2.2 Estudios parecidos en otras cuencas

En la actualidad se han realizado bastantes estudios de cuencas detríticas

continentales utilizando el apoyo de diagrafías, tanto en el ámbito internacional

(Turcan (1962), Alger (1966), Evers e Iyer (1975),...) como en España (González

(1979), Lanaja (1987), Rolandi et al (1989), Querol (1989),...).

Desde un punto de vista práctico, las prospecciones en rocas muy consolidadas

buscando petróleo o gas llegan a unas conclusiones que no se pueden generalizar

a nuestro caso, dado que ni los parámetros externos (profundidades,

temperaturas, lodos,...), ni los intrínsecos (resistividades, densidades,...), ni las

disposiciones espaciales para las correlaciones coinciden, pero si establecen una

serie de fundamentos teóricos y crean una metodología que aquí se intenta

formalizar.

1.2.3 Interpretación de diagrafías

Dentro del apartado de interpretación cabría distinguir dos procesos claramente

diferenciados, y que se exponen a continuación en orden cronológico.

1.2.3.1 Interpretación Litológica

Este proceso pasa necesariamente por la determinación de los límites de capas

atravesadas por el sondeo, siendo el término de "capa" crucial para todos los

procesos de interpretación de diagrafías.

En la tesis de licenciatura de Domínguez de la Rasilla realizada en la Cátedra de

Geofísica de la E.T.S.I.M., se realizó un compendio de las normas para la

determinación de esos límites en función del parámetro medido, y en la

descripción que se hará más adelante de las técnicas automáticas de

7

segmentación aparecen algunos de los criterios mentales que involuntariamente

ejerce el interpretador. Las distintas técnicas computerizadas empleadas en este

proceso, son análogas a las utilizadas en el apartado 1.2.4 de zonación, donde

se describirán con más detalle.

Una vez determinados dichos límites, el proceso siguiente es la asignación de la

litología a la que pertenecen las capas encontradas. En este sentido la forma

gráfica de proceder es a través de una representación n-dimensional (siendo n el

número de parámetros medidos) en la que se conocen los subdominios de cada

una de las litologías existentes. Diversos autores han establecido distintos

criterios para el proceso de asignación litológica (Poupon (1971), Besenecker

(1976), Delfiner (1984), Kassenaar (1989),...), aunque por el momento las

técnicas automáticas mas adecuadas permanecen dentro de programas

comerciales.

Las técnicas matemáticas más operativas para determinar las distintas clases o

grupos de respuesta física similar, los que representarán distintas litologías,

serían las técnicas del análisis multivariante (agrupación y discriminante).

1.2.3.2 Interpretación cuantitativa

Los aspectos de este proceso que se analizan en este estudio son la

determinación de la resistividad real, la calidad del agua de la formación y el

contenido en arcillas de cada una de las capas encontradas en cada sondeo

testificado.

RESISTIVIDAD REAL

El cálculo de la resistividad real a partir de resistividades aparentes obtenidas con

dispositivos normales, ha sido una constante a lo largo del período de aplicación

de estas sondas hasta la aparición de dispositivos focalizados. La causa de la

difícil obtención de la resistividad real radica en la indeterminación producida por

los factores que afectan a la medida, como son: la influencia del diámetro del

8

sondeo, el espesor de la capa, la conductividad del lodo de perforación y de su

costra de lodo y sus respectivos diámetros de invasión.

Es este último factor, la influencia del diámetro de invasión y de la costra de

lodo, el que queda más indeterminado. Los estudios realizados desde el principio,

en los que se intentaban evaluar aisladamente los demás factores, Alpin (1938),

Dakhnov (1941), Guyod (1945), Doll (1947), Schlumberger (1949), llegaron a

ser muy discutidos en base a principios de homología o de equivalencia (De Witte

1952). El conocimiento de dicho factor ha evolucionado desde Zinszer (1942),

que propuso el término de profundidad de penetración directamente relacionado

con la distancia entre electrodos, siguiendo por Guyod (1944), Morgan et al.

(1946), Tixier (1949) y De Witte (1950) que plantean la existencia de una zona

de transición, y Doll (1955) que estudia dicho fenómeno además en su

componente vertical. En la actualidad, aunque la modelización del problema

directo se encuentra resuelto numérica y analíticamente, el problema inverso está

aún sin resolver de manera exacta.

Recientemente se han realizado nuevos estudios (Gianzero y Anderson (1982),

Yang y Ward (1984), Zhang y Shen (1984), Tsang et al (1984),...) con la

intención de resolver este antiguo problema, pudiéndose llegar a la conclusión de

que una serie de ábacos experimentales apropiados para cada tipo de sondeo, es

la solución que, de una forma aproximada, más nos acerca al valor de

resistividad real. Entre éstos destacamos los de Guyod (1945 y 1952),

Schlumberger (1977), Welex Co. (1972) y Gearhart-Owen Ind. (1976).

CALIDAD DEL AGUA DE LA FORMACIÓN

Dada la importancia en sí de este factor, más la importancia añadida que tiene

para el cálculo de porosidades a partir de registros eléctricos, éste ha sido

también uno de los objetivos desde los comienzos de la testificación geofísica. El

registro que, a pesar de sus muchos detractores, mejores resultados ofrece para

este cálculo es el de Potencial Espontáneo (P.E.).

9

Desde que Schlumberger y Leonardon (1934) plantearan que la amplitud del

potencial espontáneo era proporcional al logaritmo del cociente de resistividades

del lodo y del agua de la formación, hasta la actualidad, dicha relación ha sufrido

diversas modificaciones. Por un lado se añadieron los factores de concentración

y actividad de los iones de ambos fluidos (Doll (1948), Wyllie (1949), Tixier

(1949),...) y por otro lado se incluyeron una serie de correcciones tanto de la

constante de proporcionalidad, como de factores que afectan a la medida

(espesor de capa, diámetro del sondeo,...). De los sucesivos trabajos realizados

(Dunlap y Hawthorne (1951), Jones y Buford (1951), Gondouin (1957),

Worthington (1959), Segesman (1962), Henty (1962), Turcan (1962), Alger

(1966), Moore (1966), Hallenburg (1971), Schlumberger (1972), ...) podemos

concluir que el registro de P.E. es suficientemente válido para la obtención de la

conductividad del agua de la formación, siempre que se conozcan el tipo de

iones en disolución tanto en el lodo como en la propia agua.

CONTENIDO EN ARCILLAS

La caracterización específica del término "arcillas" que se emplea en este trabajo,

y que se describe con detalle en el Capítulo 2, hace que su presencia quede

determinada por la emisión natural de radiación gamma cuyo registro debe

someterse a una serie de correcciones debidas a las características del detector y

al proceso de medida. Diversos autores (Scott et al (1961), Foster et al (1962),

Branisa (1974), Bristow et al (1984),...) han estudiado formas de realizar una

interpretación cuantitativa de estos registros mediante el empleo de filtros

inversos o deconvoluciones que resuelvan esos parámetros que afectan a la

medida.

No obstante si se realiza el registro de gamma a velocidad inferior a 5 m/min no

es necesario la utilización de tales correcciones, precisando unicamente efectuar

las correcciones ocasionadas por el diámetro del sondeo y la presencia de lodo.

Estos efectos se han corregido tradicionalmente mediante ábacos experimentales

pero es posible realizar una modelización teórica de estos agentes con las

consiguientes ventajas para su utilización para sondas radiactivas cualesquiera.

10

1.2.4 Zonación

A continuación se exponen algunas de las técnicas empleadas para realizar este

proceso así como el de segmentación:

- Transformada de Walsh. Empleado en diagrafías por Lanning y Johnson en

1983, consiste en la descomposición de cada uno de los registros, en un

sumatorio de funciones rectangulares, de la misma forma que en la

descomposición de Fourier y luego mediante filtros encontrar los cambios

significativos.

- Cambios espectrales. Este tipo de estudios se ha realizado con éxito en señales

genéricas por Baseville y Benveniste (a,b) en 1983. Consiste en analizar los

posibles cambios que se producen en la curva de contenido en frecuencias del

registro, (obtenida, por ejemplo, mediante la transformada rápida de Fourier)

según se avanza a lo largo del mismo. Este método, además de resultar tedioso

en el tiempo, no ha dado buenos resultados en los intentos realizados en este

trabajo en cuanto a segmentación, pero si, como veremos más adelante, en el

proceso de zonación.

- Análisis estadístico. Básicamente se han realizado dos tipos de estudios

estadísticos, definiendo zonas a partir del análisis del valor medio, o a partir de

su varianza. El criterio de variación del valor medio fue empleado por Webster y

Wong (1969) quienes utilizaron el test de Student dividiendo sucesivamente

cada registro en dos, y comparando cada mitad y que posteriormente fue

generalizado por Webster (1973) para otros parámetros utilizando la distancia de

Mahalinobis. Más tarde Shaw y Cubit (1979) modificaron este método utilizando

una ventana predefinida a lo largo del registro. El criterio de cambios en la

varianza se ha empleado por Testerman (1962) y Gill (1970) de forma que fuera

mínima dentro de las zonas y máxima entre ellas, utilizando un modelo de

regresión para los distintos tramos seleccionables hasta alcanzar un número

máximo de zonas o una diferencia predeterminada de varianza entre tramos.

Posteriormente Hawkins y Merriam (1973) modificaron el método de selección

11

de los tramos, empleando una ventana predefinida que diera un número de zonas

óptimo y estos mismos autores en 1974 junto con Hawkins y Ten Krooden

(1979) ampliaron el método para varios registros.

- Puntos de inflexión. Este método ha sido utilizado en algunos programas

comerciales de interpretación, y se ha presentado en la Tesis de Teresa Alonso

Sánchez en la Escuela Técnica Superior de Ingenieros de Minas de Oviedo.

1.2.5 Métodos de correlación

En la actualidad es posible y tiene sentido realizar correlaciones "capa a capa"

para sondeos próximos o entre capas "guía", pero la división de una diagrafía en

tramos, series, o zonas como hemos descrito anteriormente, se plantea como el

método más eficaz para encontrar correlaciones entre sondeos lejanos dentro de

una cuenca como la estudiada. A continuación se expondrán algunos de los

métodos utilizados con más éxito para la correlación de diagrafías:

El método de Cross-Correlación, aplicado a las correlaciones geológicas se

empleó a partir de los años sesenta, empezando por las correlaciones en el

dominio original del espacio (Anstey (1966), Rudman y Lankston (1973),...) y

continuando con el dominio transformado de frecuencias (Rudman, Blakely y

Henderson (1975), Mann y Dowell (1978), Kwon y Rudman (1979),...).

La utilización del primer dominio obtiene buenos resultados sólo en el caso de no

producirse variaciones de espesor de las capas o zonas, mientras que el dominio

de frecuencias es más útil para la caracterización de cada uno de los tramos de

los sondeos, aunque no está del todo claro si la relación que se encuentre será

vinculante para afirmar la existencia de correlación. En el tipo de acuífero que

aquí se trata, la diversidad y el elevado número de capas producen espectros

muy parecidos en todos los sondeos considerados de manera global.

Entrelazado - Esta técnica desarrollada por Gordon y Reyment (1979) con el

nombre de "Slotting" consiste en considerar los registros como series de

elementos, y unirlas de forma que los elementos de cada serie queden

12

intercalados entre los restantes, manteniendo el orden dentro de cada secuencia.

Este entrelazado debe realizarse de forma que elementos similares de las dos

series queden consecutivos en la nueva secuencia resultante, minimizando una

función proporcional a la diferencia entre cada elemento y sus adyacentes. Esta

técnica se "bloquea", según sus propios autores, creando zonas donde no se

produce las intercalaciones esperadas entre las dos series iniciales.

El término de Cross-Asociación se utiliza por primera vez en correlaciones

geológicas en 1965 (Sackin, Sneath y Merriam), y fue desarrollado por diversos

autores (Harbaugh y Merriam 1968, Smith y Waterman 1980, Davis 1983,

Startzman y Kuo 1987, ...).

Los siguientes intentos de optimizar estos métodos incluyen el desarrollo y

reconocimiento de patrones utilizados por Stephanou (1979), Vincent et al

(1979) y Kerzner (1983) que consiste en caracterizar, una vez segmentado un

registro, los distintos segmentos según la forma de la curva, esto es, por

ejemplo, crestas, valles, inflexiones, picos, ...etc, con sus respectivas anchuras e

intensidades.

Algunos de los autores nombrados emplean también una especie de rangos de

caracterización con los que se realizaría primero la correlación entre los

elementos de mayor rango, cuyo límite correspondería a lo que llamamos "capas

guía", para continuar después con los elementos de menor rango.

También en la línea de optimizar los procesos de correlación deben incluirse

criterios de parecido o similitud que no incluyan la identidad entre los segmentos

correlacionados. Este concepto aparece por primera vez con el término anglófono

de "Fuzzy sets" (borroso) utilizado por Zadeh (1965) con el que a base de ciertos

algoritmos se incluyen igualdades equivalentes a las realizadas "a ojo" tales

como "prácticamente iguales" o "aproximadamente iguales".

Las últimas tendencias, Lu y Fu (1977), Stockman (1978), Pavlidis (1980),

apuntan a un nuevo análisis de la forma de los registros basado en el desarrollo

13

de patrones llegando incluso a la creación de nuevos lenguajes (PROLOG: Clark y

McGabe, 1982) en la elaboración de sistemas expertos de interpretación y

correlación.

1.2.6 Aplicaciones informáticas comerciales

En la actualidad existen una serie de aplicaciones informáticas comerciales que

realizan algunos de los procesos mencionados de forma automática. Estos

aplicaciones, además de no ser de libre divulgación por su carácter comercial y

de no detallar los algoritmos y técnicas utilizados, no están concebidos para

realizar todos los procesos que aquí se pretenden.

Entre los mas conocidos, se encuentran programas de digitalización ( -

Interlink System), representación ( - Rockware) o correlación

( - IMC) y algunos que realizan ciertos procesos de

interpretación para determinadas sondas como

(Century) (Marathon Research), &

(Henderson Petrophysics) y (Sait Ismail Ozkaya) que es uno de

los más completos.

14

CAPÍTULO 2 PRINCIPIOS GENERALES

Y TERMINOLOGÍA

Hasta la fecha existen muchas publicaciones sobre las leyes que rigen los

distintos parámetros que se emplean en este estudio, sobre los métodos de

interpretación y correlación de diagrafías y sobre la aplicabilidad de esas reglas

en sondeos para captación de agua, entre las que cabe destacar el trabajo

realizado por Sergio Domínguez de la Rasilla en esta Cátedra y al que me remito

para un mayor conocimiento de dichos principios.

No obstante expondré a continuación un resumen de ciertos aspectos que he

considerado importante incluirlos en esta tesis para evitar ambigüedades, así

como una serie de conceptos y fórmulas seleccionadas para el desarrollo de la

misma.

2.1 FACTOR DE FORMACIÓN

En una primera aproximación, la resistividad R0 de una roca porosa cuya fase

sólida es muy resistiva, como es el caso que nos ocupa, puede considerarse

función de la resistividad del fluido que rellena sus poros, de su porosidad φ y de

la geometría de dichos poros. Este último factor se evalúa mediante la

tortuosidad T de forma que si el espacio intersticial se encuentra saturado de un

fluido de resistividad Rw, la relación que rige esta dependencia es:

R · F = R · T = R ww2

0 φ (Ec. 2.1)

(Archie, 1942) donde F es el llamado factor de Formación.

La relación de este factor con la porosidad puede simplificarse por la expresión :

φ m- · a = F (Ec. 2.2)

15

(Winsauer, 1952) donde el factor de ajuste "a" y el factor de cementación "m"

están condicionados por el tamaño, forma, selección, empaquetamiento,

compactación y cementación de los granos.

Aunque el hecho de que el factor de formación deba ser 1 para una porosidad del

100% obliga a que el factor de cementación sea a su vez igual a 1, en la

práctica se han dado muchos valores para estos coeficientes según el tipo de

formación de que se trate (Jackson (1978) para detríticos marinos) pudiendo

tomar para rocas sedimentarias no cementadas, encontramos los siguientes

rangos para estos coeficientes:

a ∈ (0.6 , 1) y m ∈ (1.3 , 2.15)

La relación (Ec. 2.2) es suficientemente válida cuando la resistividad del fluido

intersticial es mucho menor que la de los minerales de composición de los

granos. Cuando no se cumple este requisito, o cuando existe alguna fracción de

materiales más conductores en los poros, como son los silicatos alumínicos o los

óxidos de hierro propios de las arcillas, debemos considerar además, la

conducción superficial en arenas y la ionización de los minerales de la arcilla en

arenas arcillosas.

En estos últimos supuestos la forma más simple de considerar estos efectos es

considerar:

RwRoa = Fa y

RwRf + Fa = F (Ec. 2.3)

Dado que el mayor interés se centra en las capas con bajo o muy bajo contenido

en arcillas, vamos a considerar las expresiones para niveles de ese estilo en los

que Fa≈F, eludiendo la interpretación cuantitativa en el resto de los niveles.

2.2 CONDUCTIVIDAD IÓNICA DE FLUIDOS

Hemos visto cómo la resistividad del fluido de la formación influye en la

resistividad de ésta de forma determinante. La conductividad de un fluido es de

16

naturaleza iónica y por tanto esta afectada por una serie de factores como son la

naturaleza de los iones en disolución y su concentración, la temperatura, la

viscosidad y la presión.

2.2.1 Naturaleza de los Iones

La distinta composición química de los iones disueltos en el agua de la formación

es un factor decisivo en la conductividad que alcanza ésta. A partir de la

concentración de cada uno de los compuestos más típicamente encontrados en

las aguas subterráneas, podemos conocer el valor de concentración equivalente

de ClNa mediante curvas normalizadas como las presentadas en la figura 2.1,

proceso que no se puede realizar de forma inversa para una combinación

compleja de iones.

Figura 2.1 - (Ábaco Gen-8 de Schlumberger)

17

El término de "concentración equivalente" se refiere a la concentración de ClNa

necesaria para adquirir una conductividad de fluido igual a la conductividad del

fluido.

De esta manera, la forma más sencilla de alcanzar una estimación del total de

sólidos disueltos (T.S.D.) es simplemente considerar el caso de un ión

predominante en disolución y partir de una relación entre la concentración de

éste y la concentración equivalente de Cloruro Sódico (ClNa).

2.2.2 Concentración ClNa / Conductividad

Al igual que para el resto de los iones, existe una relación entre la concentración

de ClNa y la conductividad del fluido. Esa relación ha sido tabulada por diversos

autores, siendo la que aparece en los manuales de Schlumberger la más utilizada

dentro del mundo de las diagrafías.

Para la utilización práctica de esta relación se han realizado una serie de medidas

de laboratorio con agua desionizada y ClNa puro, las cuales se han aproximado a

una curva matemática sencilla:

RELACIÓN CONDUCTIVIDAD / CONCENTRACIÓN (ClNa)

⎪⎪⎩

⎪⎪⎨

⎟⎠⎞

⎜⎝⎛ µmho/cm 2000 < σ si

2000σ

µmho/cm 2000 > σ si 1500

500 - σ = (ClNa) 4/3C (Ec. 2.4)

σ: conductividad en µmho/cm - C(ClNa): concentración en gr/l. J.M.Díaz Curiel

Esta curva mantiene un fuerte parecido con los valores tabulados los cuales

muestran en el tramo lineal una pendiente algo menor.

18

2.2.3 Temperatura y Viscosidad

Dado el carácter de transporte que implica la conductividad iónica, estos dos

factores tienen una fuerte influencia, debido a la variación de la movilidad iónica

que representan.

La variación de la viscosidad de un fluido con la temperatura tiene la forma de

una exponencial decreciente. Dicha relación la hemos obtenido a partir de datos

tabulados para el agua en estado líquido (International Critical Tables, 1928-

1929), y se representa en la figura 2.2.

Figura 2.2 - Valores de Viscosidad/Temperatura para el agua

En esa misma figura se ha representado, en función de la temperatura, una

segunda relación de la viscosidad en segundos, aproximada a partir de los

valores obtenidos experimentalmente para el agua en estado líquido, mediante un

Embudo MARSH normalizado según norma A.P.I.. Esta expresión será utilizada

posteriormente en los procesos de cálculo.

19

Dada la complejidad que supone la evaluación aislada de la influencia de las

variaciones de viscosidad en la conductividad del fluido, consideraremos

simplemente la influencia que representan las variaciones de temperatura, y que

implícitamente conllevan variaciones de viscosidad. Esta influencia podemos

simplificarla mediante la expresión:

21.5) + (2521.5)+ (T (T) ρ = C) (25 ρ ° (Ec. 2.5)

2.2.4 Presión

Aunque la variación de la presión implique una variación de la viscosidad a

volumen constante, y por tanto una variación de resistividad, ésta es

despreciable para las variaciones de presión que podemos encontrar en un

sondeo de extracción de agua. Así, un aumento de presión de 0 a 350

atmósferas. provoca a 20 ºC un aumento de resistividad del 5%, y éste es tanto

menor cuanto mayor sea la presión.

2.3 POROSIDAD Y PERMEABILIDAD

2.3.1 Factores de dependencia

Tanto la porosidad como la permeabilidad se encuentran condicionados en rocas

detríticas y sedimentos, para una temperatura dada, por una serie de factores

como son: 1) Tamaño medio de los granos

2) Selección (Coeficiente de uniformidad)

3) Forma (esfericidad, angulosidad)

4) Empaquetamiento (Disposición)

5) Contenido en arcillas

6) Cementación

Estos factores se han intentado cuantificar con una serie de coeficientes

obtenidos de la geometría media de los granos tales como angulosidad y

20

esfericidad, otros derivados de la curva granulométrica como asimetría o

curtosis, y otros que reflejan la disposición de los granos como el índice de

empaquetamiento lineal, ...etc.

Sobre la dependencia de la permeabilidad con la temperatura y en lo que sigue,

entenderemos que los valores de permeabilidad están referidos a 25°C y, para la

corrección por variación de temperatura utilizaremos el factor v(25)/v(T)

empleando la expresión descrita en el apartado 2.2.3.

2.3.2 Permeabilidad de detritos

El tamaño de grano, considerado aisladamente, no influye en la porosidad. Esto

es, si consideramos el caso de granos esféricos del mismo tamaño, su porosidad,

en disposición cúbica (la de menor empaquetamiento) sería φ=47,64%, mientras

que en disposición rómbica sería φ=25,95%, ambas independientes del diámetro

de los granos.

El valor anterior de porosidad máxima puede superar el valor de 50% en

presencia de enlaces químicos, mientras que el valor mínimo puede bajar del

10% en función de la selección y forma de los granos y, por supuesto, del grado

de cementación.

Debido a la génesis de los materiales detríticos y a la distancia al área fuente en

nuestro caso, los factores de forma tienen una influencia relativamente menor.

Sin embargo, la distribución de los distintos tamaños de grano, conlleva una

diferencia en el empaquetamiento de los mismos y es el factor más decisivo en

su permeabilidad.

Por esta razón, algunos autores (Rogers (1961), Morrow (1969),...) han definido

relaciones directas para muestras de arenas entre algunos valores de la curva

granulométrica y la permeabilidad. Algunas más conocidas son por ejemplo:

K = 100 D2eficaz (Hazen, 1893)

21

expresión desarrollada por Hazen, donde K viene dado en cm/seg y, Deficaz en cm

para arenas uniformes.

K = 760 D2m C-1.31 σ (Krumbein-Monk, 1942)

siendo Dm el diámetro geométrico medio y σ la desviación típica.

Debemos señalar que la utilización de estas relaciones supone una simple

aproximación, pues, además de no tener en cuenta las condiciones de

confinamiento, no considera muchas de las características del apartado anterior.

2.3.3 Relación Permeabilidad/Porosidad

Para medios no cementados, esta relación depende básicamente de dos aspectos

diferenciados, por un lado del contenido en arcillas que, además de menor

tamaño de grano, conlleva cadenas de enlaces químico con agua y, por otro

lado, del resto de las características geométricas ya mencionadas.

El primero de estos factores se considera implícitamente en las definición del

factor de formación aparente, pero dado que las formaciones con un contenido

en arcillas significativo suelen despreciarse en la explotación de sondeos, solo

estudiaremos el caso de litologías no arcillosas.

Los factores geométricos, en cambio, van a quedar indeterminados desde el

punto de medida geofísico, por lo que en muchas relaciones de porosidad y

permeabilidad con la resistividad aparecen factores como la conductividad

superficial, de doble capa o intercapa, difíciles de calcular con técnicas geofísicas

de sondeos.

Algunos autores (Kozeny (1927), Pape (1985),...etc), han simplificado la relación

de permeabilidad/porosidad para medios no arcillosos, como una función de la

tortuosidad y la superficie interna específica, pero los valores de este último

término sólo se han obtenido con éxito utilizando N.M.R., técnica no considerada

en esta Tesis.

22

2.4 CLASIFICACIÓN LITOLÓGICA EMPLEADA

Debemos recordar siempre que las asignaciones litológicas que se realizan en

geofísica se basan en los valores de una serie de parámetros físicos y que, en la

mayoría de los casos por razones puramente logísticas (tiempo o presupuesto),

no se tienen todos los parámetros necesarios como para establecer una

asignación unívoca de cada uno de los medios estudiados.

Hay que decir que, a pesar de todas las salvedades y matices que señalaremos a

continuación, estas "litologías geofísicas" coinciden de manera muy satisfactoria

con las típicamente descritas en las columnas levantadas en los sondeos,

exceptuando, claro está, las apreciaciones colorimétricas.

2.4.1 Arcillas

El término Arcillas, elegido por su uso coloquial, requiere, desde un punto de

vista geofísico, una especificación muy detallada dadas las posibles distinciones

que se establecen desde un punto de vista geológico. En este trabajo, arcillas es

un término litológico que equivaldría petrológicamente al de pelita y cuya

composición mineralógica son principalmente filosilicatos.

Así, los factores más determinantes para la respuesta que una arcilla ofrece en

testificación geofísica son su tamaño de grano y su composición química. Su

granulometría provoca una porosidad elevada, su composición una fuerte

emisividad gamma debida a el contenido en Potasio y ambos, una permeabilidad

prácticamente nula.

2.4.2 Gravas, Arenas y Limos

Esta clasificación se correspondería con la granulométrica de sedimentos

(Aleuritas, Samitas y Ruditas) pero con una fuerte distinción derivada del hecho

de que en este estudio, y en los trabajos geofísicos en general, la separación

granulométrica es mucho más imprecisa. Esto es, dado que generalmente la

23

medida geofísica no fija de manera exacta los valores de tamaño de grano, esta

distinción establece simplemente un criterio de separación de tamaño de grano

en grueso, medio y fino, sin comprometerse en crear unos límites tan severos

como en las separaciones petrológicas.

A lo largo de este estudio aparecerán algunas aseveraciones mediante las que se

establecen de manera aproximada el tamaño de grano de los sedimentos o rocas

sedimentarias, pero en ellas dicha clasificación no es de índole estricta.

2.4.3 Litologías Mixtas

Al igual que en el apartado anterior, en este estudio se establece una separación

entre Arenas arcillosas y Arcillas arenosas que no tiene por qué coincidir con la

distinción que se realiza en la terminología estrictamente geológica. En este

trabajo el calificativo de arcilloso para un nivel de arenas se emplea cuando el

contenido en arcillas oscila entre un 25 % y un 50 % del total, y el calificativo

de arenoso para un nivel de arcillas se emplea cuando sus parámetros eléctricos

son en alguna medida próximos a los de los niveles permeables.

2.4.4 Margas

El término de margas suele asignarse a los materiales compuestos por arcillas y

carbonatos en una proporción entre 30 y 60%. De nuevo, la distinción que se

realiza mediante testificación geofísica convencional no caracteriza su contenido

en carbonatos de forma tan rigurosa.

Aunque esta litología rara vez aparece en los sondeos seleccionados, este

término se empleará para aquellos niveles reconocidos como impermeables, de

muy baja resistividad y con una emisividad de radiación gamma situada en el

tercio central del rango máximo entre formaciones limpias y las arcillas.

24

Esta litología presenta, pues, un grado de indeterminación elevado, que

normalmente se resuelve con la detección de carbonatos en las muestras del

sondeo tal y como se describirá en la sección 3.1.3.

2.5 TESTIFICACIÓN GEOFÍSICA

La Testificación Geofísica de sondeo, o diagrafía, es el registro continuo de uno o

varios parámetros físicos a lo largo del mismo.

Los fines principales de dichos registros son la interpretación litológica de los

materiales atravesados por el sondeo y la interpretación cuantitativa de ciertas

características intrínsecas de los mismos.

- Interpretación Litológica

Este proceso pasa por la determinación de las distintas capas o niveles

atravesados por el sondeo para asignar posteriormente, a partir de los valores

aparentes de los parámetros registrados, ciertas litologías a cada uno de esos

niveles.

La determinación de los límites de capas "a ojo" tiene una única dificultad, que

es la determinación exacta de dichos límites en función del parámetro registrado

y las características geométricas de la sonda empleada. Este proceso se realiza

mediante una serie de criterios mentales difíciles de definir y por tanto de

programar.

La equivalencia que se produce entre distintas litologías dentro del proceso de

asignación litológica a partir de un número finito de parámetros (sobre todo si

éste es pequeño) requiere, tanto si se realiza mentalmente como de forma

automática, un conocimiento de las posibles litologías existentes y del estado

físico en el que se encuentren (presión, temperatura,...). Así, para los parámetros

25

que llamamos convencionales, una Anhidrita puede presentar la misma respuesta

que una Caliza o que una Arenisca muy cementada.

- Interpretación cuantitativa

En este proceso se intenta obtener, a partir de los valores aparentes registrados,

ciertas características que definan cada uno de los niveles encontrados. Estas

características, que deben establecerse con anterioridad a la elección de los

parámetros a registrar, dependen de la finalidad que persiga el sondeo. Porosidad

y calidad de agua, por ejemplo, en el caso de sondeos de captación de aguas;

densidad y poder calorífico, por ejemplo, en el caso de sondeos de investigación

de carbón, etcétera.

2.5.1 El registro de resistividad

En función de la disposición y geometría de los electrodos, además de cambiar el

factor geométrico de conversión de ∆V/I a resistividad aparente, tendremos que

la lectura corresponde a distintos diámetros de investigación. Por esta razón, la

evolución técnica se desarrolló en torno al diseño de dispositivos que aumentaran

dicha profundidad (sondas focalizadas o laterolog) o que la redujeran (microlog).

En este trabajo se intenta, por las razones expuestas en la introducción,

optimizar las posibilidades de dos tipos de dispositivos de resistividad: lateral y

normal, que dan nombre a sus respectivos valores de resistividad medidos.

Por "resistividad normal" se entiende el valor de resistividad aparente obtenido

mediante una sonda con dos electrodos, uno de recepción -M- que mide respecto

a un electrodo -N- situado en la superficie (generalmente en la balsa de lodos), y

otro de emisión -A- que cierra el circuito con la armadura del propio cable -B-,

que es conductora y está convenientemente aislada hasta por lo menos 10 veces

la distancia AM. De esta forma, podemos considerar los electrodos -N- y -B- en

el infinito, con lo que el factor geométrico vale: k=4*Π/AM.

26

Por resistividad lateral se entiende el valor de resistividad aparente obtenido

mediante una sonda con tres electrodos, uno de emisión -A- que cierra el circuito

con el propio cable de la sonda -B- y otros dos de recepción -M- y -N-, que miden

la diferencia de potencial provocada por dicha circulación de corriente. Debido a

esta disposición, las curvas de resistividad lateral mostrarán una cierta asimetría

al atravesar capas de diferente resistividad. En estos dispositivos, cuya

resolutividad es función de la distancia MN, la longitud característica es, por su

relación con la penetración, la distancia al centro de MN, conocido como O, es

decir AO.

En hidrogeología, que no en petróleo, las longitudes que se suelen emplear son:

- AM = .4 m, comúnmente llamado dispositivo normal corto.

- AM = 1.6 m, comúnmente llamado dispositivo normal largo.

- AO = 1.8 m.

En función de esa longitud L podremos hacer las correcciones por diámetro del

sondeo (Ds), por conductividad del lodo y por espesor de capa (Ec), que irán

siempre en función de la relación L/Ds y L/Ec respectivamente. Salvando las

variaciones en cuanto a resolutividad (mayor la de AM=.4) y penetración (mayor

la de AM=1.6 si el espesor se lo permite), los dos dispositivos normales

utilizarán las mismas curvas de corrección por los efectos citados, mientras que

el lateral, necesitará sus propias curvas.

Como ya se dijo en la sección 1.2.3.2. la mejor manera de corregir esos efectos

es utilizar ábacos experimentales. Para este estudio se han seleccionado los

ábacos de Guyod, Schlumberger y Gearhart-Owen.

Sin embargo, el otro factor decisivo a la hora de obtener la resistividad real, los

fenómenos de invasión de lodo en las formaciones permeables, creando la zona

de costra de lodo y zona de invasión de filtrado de lodo, no pueden cuantificarse

tan fácilmente.

27

Las soluciones teóricas de estos fenómenos requieren el conocimiento de los

diámetros de costra y de invasión de lodo, puesto que se produce una

equivalencia para distintas relaciones de éstos. No obstante, existen algunos

juegos de ábacos que resuelven este fenómeno de forma aproximada para

distintas relaciones entre las conductividades del lodo y del agua de la formación,

pero no resultan operativos salvo en casos concretos.

2.5.2 El registro de potencial espontáneo

Por "potencial espontáneo" se entiende la diferencia de potencial entre un

electrodo situado en la sonda y un punto de la superficie. Dicha diferencia varía

con las condiciones electroquímicas próximas a la sonda y, en ausencia de

corrientes eléctricas parásitas o de elementos metálicos, son las distintas

distribuciones de iones las responsables de dichas variaciones.

El movimiento de iones, causante del fenómeno de P.E., es sólo posible en

formaciones con una permeabilidad superior a un valor mínimo que podemos

tomar como 0.2 md sin que exista, por encima de este umbral, una relación

entre la permeabilidad y el valor de P.E.

Por esa razón, los valores obtenidos al atravesar niveles impermeables definen

una línea conocida como línea base de las arcillas, que en un principio debería

mantener un valor constante. De esta forma, la anomalía aparente de P.E., sería

la diferencia entre el valor de P.E. y el valor de la línea base.

Los valores del diámetro del sondeo y de espesor de capa si que influyen en la

amplitud de anomalía, de forma que se define el potencial espontáneo estático

P.E.E. como aquél que presentarían las capas si fueran de espesor

suficientemente alto y desconsideráramos los efectos del sondeo. En la

actualidad existen diversas publicaciones en las que se tabulan dichos efectos.

28

Existe una correspondencia entre la anomalía de P.E.E. y la relación de

resistividades entre el lodo y el agua de la formación. La expresión que describe

el valor de anomalía de P.E.E. es:

⎟⎠⎞

⎜⎝⎛

RweRmfe Log (T)K - = .E.E.P PE (Ec. 2.6)

donde KPE(T) es una factor dependiente sólo de la temperatura (aunque se

utilizan algunas relaciones de variación con el factor de formación). Existen

varias relaciones para estimar la variación de esta constante con la temperatura

entre las que se ha seleccionado la siguiente:

C)0.24·T( + 65 = (T)KPE ° (Ec. 2.7)

Por último, existen diversas curvas patrones que reflejan la relación Rw/Rwe que

es distinta en cada zona geológica, pero la dependencia con las características

del lodo y del agua de la formación hace que dichas curvas representen una

aproximación demasiado somera.

2.5.3 El registro de radiación gamma

Los sensores de radiación gamma convencionales en sondeos miden el flujo de

fotones que llegan al detector por segundo (generalmente en c.p.s.). Los valores

registrados de emisión gamma están apantallados por la presencia del lodo de

perforación entre las formaciones y la sonda. Para corregir este efecto, y

suponiendo realizada la calibración del detector, debemos analizar en detalle el

sistema de medida.

La línea de energía de emisión gamma del potasio 40 (responsable de la

emisividad de las arcillas) se encuentra situada en torno a 1.460 MeV. El

coeficiente de atenuación lineal del agua para dicha energía es 0.057 cm-1, pero

este valor se ve aumentado por la mayor densidad del lodo debido a la materia

en suspensión que tiene.

29

El primer efecto que debemos considerar es la atenuación de dicha emisión en

función del diámetro y la densidad del lodo. Existen algunas curvas

experimentales como las de Gearhart-Owen Ind. (1979), pero éstas no pueden

modificarse según nos encontremos con distintas características en el sondeo.

En segundo lugar debemos recordar el carácter estadístico de la medida del flujo

de fotones. Por este motivo, aunque tuviéramos una eficiencia del detector del

100% y la sonda parada frente a un material con una determinada emisión

gamma, la lectura no sería constante en el tiempo. Este efecto adquiere tanta

más importancia cuanto menor es el valor medido y el tiempo de integración del

equipo. Para períodos de integración de 2 segundos, el error absoluto se sitúa en

torno a 2 c.p.s., lo que para unos valores típicos de arcillas entre 20 y 50 c.p.s.,

representa un error relativo del 6%.

En tercer lugar debemos considerar la distancia en vertical entre el detector y la

capa emisiva, junto con la absorción de las capas no radiantes, que aumentan la

complejidad del sistema. Estos efectos influyen decisivamente en la forma de

variación del registro con la profundidad, pero si consideramos los registros

segmentados y atendemos sólo a lo valores en el centro de las capas para capas

de más de 40 cm, podemos obviarlos.

En cuarto lugar debemos estimar la influencia de la velocidad de registro en la

curva obtenida. Si desconsideramos los efectos citados en el párrafo anterior, el

resultado de la integración del medidor de radiación sobre un registro realizado a

una velocidad determinada sería: por una lado, un retraso del punto de inflexión

sobre el límite de capa igual a (τ⋅1.7⋅v)/2 (cm) siendo τ el tiempo de integración

y v la velocidad (m/min); y por otro lado, un ensanchamiento ligeramente

asimétrico de la zona de la curva frente al límite de capa e igual a τ⋅1.7⋅v (cm).

Algunos autores (Conaway (1982),...) han propuesto una serie de coeficientes

de un filtro de deconvolución para la corrección de todos o algunos de estos

factores, entre los que destacamos el de tres coeficientes dado por Davydov

(1970) mediante la expresión:

30

] )z(

1 - , )z

2 +1 , )z(

1 [-222 ∆α∆α∆α

donde α se determina representando el neperiano de la amplitud frente a la

profundidad cuando medimos atravesando un emisor; la pendiente máxima de su

variación (o la pendiente media si consideramos una variación lineal) nos da α.

Por último debemos señalar la existencia de un fondo de radiación distinto de la

radiación ambiente, debido a la emisión de cierto contenido en arcillas del lodo

presente en el sondeo. Para eliminar dicho fondo, la forma más directa es medir

su valor en un bidón de lodo del mismo diámetro que el sondeo.

2.6 SEGMENTACIÓN Y ZONACIÓN

Segmentar registros geofísicos consiste en determinar, dentro de la curva

continua de un parámetro, las discontinuidades correspondientes a niveles con

distinto comportamiento frente al parámetro medido, esto es, las distintas capas

paramétricas del sondeo. En un proceso inverso, la curva continua es el resultado

de la convolución del sistema de medida con una serie discreta de eventos

geofísicos distintos.

Así definidos, los niveles geofísicos deben de calificarse necesariamente con el

parámetro que los define (geoeléctricos, geosísmicos,...) y en algunos casos

pueden corresponder con los distintos niveles o capas litológicas. En nuestro

caso, la conjunción mínima de parámetros elegida pretende determinar con el

conjunto de los niveles encontrados, la columna o distribución de capas

litológicas del sondeo, pero según de qué litologías se trate, podemos no resolver

ciertas equivalencias o encontrar algunos límites más (caso de aguas salinas en

niveles permeables).

La determinación de dichos segmentos o niveles mediante el cálculo de los

puntos de inflexión de un registro, se realiza a través de los puntos de segunda

derivada nula y posteriormente se modifican y/o anulan en función de una serie

31

de criterios, tanto dependientes del parámetro que se trate, como de patrones de

transición.

El punto más conflictivo de este método de segmentación lo constituyen las

inversiones de resistividad que se producen en las capas de espesor muy

parecido a la longitud del dispositivo empleado. Aunque la experiencia demuestra

que dicho fenómeno se produce muy pocas veces, para resolverlo en la práctica,

lo mejor es utilizar la comparación de los segmentos obtenidos con los distintos

dispositivos de resistividad.

Una vez determinados dichos segmentos, tenemos que asignar un valor aparente

del parámetro registrado a cada uno de ellos. El valor inicial que suele asignarse,

si se trata de segmentos donde aparece un máximo o un mínimo en el registro,

es dicho valor extremo. Si se trata de una capa delgada donde no llegue a

alcanzarse un extremo, tomaremos el valor máximo dentro del segmento si se

trata de un segmento de curvatura positiva, o el mínimo si tiene curvatura

negativa. Posteriormente deberemos corregir dicho valor, aún dentro del

concepto de valor aparente, mediante unos criterios que dependen del parámetro

de que se trate (como por ejemplo para el dispositivo lateral multiplicar por 0.8

en el caso de capas resistivas).

El proceso de zonación consiste en la determinación y clasificación de los

distintos tramos o unidades geofísicas existentes en una diagrafía. Para ello

definiremos TRAMOS o UNIDADES geofísicas como un conjunto de niveles o

capas, caracterizado por mantener dentro de cada uno de ellos, una o varias de

las siguientes propiedades: Valor de uno o varios parámetros físicos (relacionado

con la litología dominante), grado de variación (relacionado con la homogeneidad)

y espesor y secuencia de los mismos (relacionado con el proceso de formación).

Estos tramos, como conjunto de niveles o capas con esas características más o

menos uniformes y diferenciadoras de los otros tramos, pueden mantener o no

32

correspondencia con unidades o facies geológicas en función de las

características de la zona.

La determinación de dichos tramos o zonas (término empleado en la bibliografía

Anglo-sajona) tiene una gran importancia en el estudio hidrogeológico y en la

gestión de los recursos de una cuenca, así como en la información que

representa para la ubicación y planificación de sondeos en esa zona.

Por el momento, la delimitación de los tramos de un sondeo a partir de los datos

de la testificación geofísica tiene una naturaleza muy relativa, dado que su

anchura no esta determinada de forma genérica o previa, y que según los

métodos que se empleen podemos obtener soluciones distintas.

2.7 MÉTODOS DE CORRELACIÓN

Correlacionar, en testificación geofísica, es mostrar una correspondencia en

carácter, secuencia y posición entre los distintos fragmentos de dos diagrafías. A

esta definición deberíamos añadir, para llegar a obtener una correlación

litoestratigráfica, el concepto de pertenencia a una misma unidad litológica.

En la actualidad el carácter que se utiliza en dichas correlaciones puede ser su

valor paramétrico (igualdad de resistividad, de emisión gamma,...etc), la forma de

los distintos registros (Cros-correlación, patrones, ...etc) o las asignaciones

litológicas resultantes de la interpretación de las diagrafías (columna geofísica).

Entre los métodos empleados para la búsqueda de la citada correspondencia

tanto subjetivos como automáticos, destacamos el de Cros-asociación por los

buenos resultados que ofrece en cuencas detríticas multicapa, aunque

únicamente es realizable mediante apoyo informático.

No obstante, en dichas cuencas, la correlación "capa a capa" pierde parte de

significado geológico cuando tratamos de correlacionar sondeos lejanos. Es

33

entonces cuando la división de las diagrafías en tramos, series o zonas, además

de la importancia propia para caracterización de los sondeos, adquiere una mayor

relevancia.

2.7.1 Cros-Correlación

La función de cross-correlación entre dos curvas se define como la convolución

de una de ellas por el opuesto de la otra. Esta operación matemática viene

definida por la expresión:

dx λ)-f(x)g(x Cte1 = g * f = h(λ(

-∫∞

es decir, es el resultado del producto de las áreas coincidentes que forman dos

curvas cuando una de ellas va desplazándose paralelamente sobre la otra.

Para la ejecución por ordenador de este producto entre funciones finitas no se

necesita extrapolar la función convuelta hasta ±∞, sino simplemente crear una

función periódica (asimétrica) a partir de la inicial y realizar la convolución entre

±1 ciclo. Por otra parte, debemos recordar la importancia de la constante

(función de residual nula) de cara al sentido de correlación.

2.7.2 Cros-Asociación

Básicamente consiste en considerar las columnas litológicas de dos sondeos

como dos vectores numéricos obtenidos previa creación de una serie de códigos;

posteriormente se elabora una matriz cuyos valores sean los resultados de una

distancia, según una métrica definida, entre cada par de componentes.

Por último, se selecciona una alineación pseudo-diagonal de manera que pase por

los valores mínimos de cada fila. Los pares de dicha alineación, representan los

pares de correlación entre las dos columnas geológicas.

34

2.8 MÉTODOS DE CLASIFICACIÓN

El objetivo de la clasificación es la determinación de distintos grupos o clases

dentro de una serie de elementos que no forman aparentemente conjuntos

homogéneos. Los diversos métodos de clasificación podemos dividirlos en

ascendentes, descendentes y directos. A su vez cada uno de estos métodos se

subdivide en función de la métrica y distancia definidas. En el caso de la

testificación geofísica los elementos serían las capas encontradas y las variables

los parámetros medidos.

En los métodos ascendentes la partición inicial son todas las capas individuales.

Estas se agrupan formando cadenas binarias, bien por mantener la mínima

distancia o bien por mantenerse bajo un nivel predefinido de distancia. Se repite

el proceso definiendo una distancia entre grupos o entre capas y grupos, hasta

llegar a un solo grupo formado por todas las capas. Posteriormente en el árbol

ascendente de grupos generados (dendograma) se selecciona, en orden

descendente, el número de grupos deseado (litologías).

En los métodos descendentes se divide sucesivamente el conjunto inicial en

pares de subconjuntos. La división más conocida se realiza utilizando una solo

parámetro que presente el mayor grado de información. Para encontrarlo se crea

la tabla de contingencia de capas dentro de un rango discretizado para cada

parámetro Kl,m. Posteriormente se define un coeficiente de relación de cada

parámetro con el resto

θ(Pi,Pj) = [Σ K2l,m/NlNm - 1] y se elige aquel cuya suma de coeficientes

Σ(Pi) = Σθ(Pi,Pj) con Pj≠Pi sea mayor.

Por último se divide el rango de ese parámetro en dos, de forma que conserven

el mayor grado de información definido de forma análoga.

En los métodos directos, se busca una partición en un número prefijado de

grupos. A partir de un número igual de capas elegidas al azar, se genera una

partición asignando cada una de las capas restantes a aquélla de las iniciales de

35

la que diste menos. Según vayan aumentando los grupos, la distancia a

considerar para cada capa restante es la distancia al grupo y no a la capa inicial.

Este proceso se repite varias veces (5 a 10) para distintas capas iniciales,

encontrando una serie de grupos fuertes que se mantienen casi siempre

clasificados y que forman la partición esperada.

36

CAPÍTULO 3 OBTENCIÓN Y TRATAMIENTO

DE DATOS

3.1 ADQUISICIÓN DE DATOS

3.1.1 Instrumentación

Los equipos de testificación empleados para la realización de los registros han

sido un MOUNT-SOPRIS 3000 NB (analógico) y un GEOLOG 1000 de Robertson

Research (digital), cuyas características son:

– Registrador analógico con capacidad de registro simultáneo de cuatro

parámetros independientes a escalas 1:100 y 1:200.

– Control digital de velocidad y profundidad, con una velocidad máxima de

registro de 10 m/min y una profundidad máxima de 1000 metros.

Las sondas empleadas en la mayoría de los sondeos, han sido:

– Gamma natural (γnat o GN)

– Potencial Espontáneo (PE)

– Resistividad Lateral 1.8 AO (RLAT)

– Resistividad Normal 0.4 AM (RNC)

– Resistividad Normal 1.6 AM (RNL)

– Resistencia Puntual (RME)

aunque en algunos casos se emplearon además otras sondas tales como

temperatura y conductividad del fluido.

Los detectores de emisión de radiación Gamma natural llevan un cristal

escintilómetro de 6" de longitud de Yoduro de Sodio. Los períodos de integración

son de 0.5 y 2 segundos en el Mount Sopris y variables en el Geolog.

En cada uno de los sondeos estudiados se midió la conductividad del lodo de

perforación sobre una muestra reciente recogida de la balsa de lodos. La medida

se realizó con un conductivímetro de laboratorio de la Marca Yellow Spring

37

Instrument, modelo 32-FL cuya sonda, con electrodos de titanio platinizados, y

una constante de dispositivo igual a 1 (rango de 0.001 a 200.000 µmho).

3.1.2 Metodología de los registros

Algunos factores tales como el aislamiento eléctrico de la polea de descenso del

cable, la colocación del electrodo de superficie o la toma de tierra del equipo y

cabrestante, tienen una fuerte repercusión en el nivel de ruidos de los registros

eléctricos.

Recordemos que cuando se quieren registrar los valores de resistividad en los

primeros 16 metros del sondeo, es necesario añadir otro electrodo en superficie,

conectado al cabrestante, que debe tener continuidad eléctrica con la armadura

del cable.

Las velocidades medias de registro fueron de 3.5 m/min para las sondas

radiactivas y de 6 m/min para el resto, con el fin de aumentar la calidad de la

diagrafía y disminuir en la medida de lo posible las oscilaciones de las sondas.

El manejo del equipo analógico solo requiere un conocimiento de los valores de

medida esperados para seleccionar las escalas, desplazamientos y rangos de

medida. En cambio, el manejo del equipo digital requiere, además, el control de la

anchura del filtro de conversión al registrador analógico y del decalaje.

La descripción detallada de esos pasos no es objeto de este estudio, por ser

demasiado específicos para cada equipo de medida. Sin embargo, he creído

conveniente presentar un cuadro resumen con los valores esperados para los

distintos parámetros en sondeos hidrogeológicos dentro de cuencas detríticas. En

dicho cuadro se asume una conductividad del lodo y un diámetro de perforación

medios:

38

CUADRO SIMPLIFICADO DE VALORES APARENTES PARA CONDICIONES MEDIAS

LITOLOGÍA GN (*) LAT 0.4 1.6 RME (*) PE

Limo bajo 5-10

medio 20-30

medio 15-25

medio 15-25

medio 10-15

línea base

Arcilla muy alto 20-30

muy bajo 0-10

muy bajo 0-10

muy bajo 0-10

muy bajo 0-5

línea base

Arcilla arenosa

alto 15-20

bajo 10-20

bajo 5-15

bajo 5-15

bajo 5-10

anomalía pequeña

Arena arcillosa

bajo 10-15

medio 20-30

medio 15-25

medio 15-25

medio 10-15

anomalía pequeña

Arena muy bajo 0-5

alto 30-50

alto 30-40

alto 25-45

alto 15-20

anomalía grande

Grava muy bajo 0-5

alto 50-80

alto 40-50

alto 45-65

alto 20-30

anomalía grande

Arenisca muy bajo 0-5

muy alto >80

muy alto >50

muy alto >65

muy alto >30

anomalía pequeña

Marga medio 10-20

muy bajo 0-10

muy bajo 0-10

muy bajo 0-10

muy bajo 0-5

línea base

Caliza muy bajo 0-5

muy alto >80-100

muy alto >50

muy alto >65

muy alto >30

valores anómalos

(*) los valores de GN y RME se entienden sobre su línea de valor mínimo, que

formarían respectivamente los valores de fondo de radiación (de 5 a 15 c.p.s.) y

la resultante de la impedancia interna más la resistencia de contacto del

electrodo de superficie (de 60 a 130 Ω).

3.1.3 Realización de columnas litológicas

En algunos de los sondeos se levantaron columnas esquemáticas de campo que

sirvieran de apoyo a la interpretación de los registros. Estas columnas litológicas

se realizaron sobre las muestras obtenidas cada metro mediante tamizado del

detrito que lleva suspendido el lodo de perforación.

Las litologías diferenciadas se detallaron en el apartado 2.4, pero conviene

señalar los criterios utilizados para delimitar el alcance de dicha diferenciación.

El matiz utilizado para la clasificación de muestras en gravas, arenas y limos ha

sido el considerar gravas aquéllas con predominio de granos superiores a 2 mm,

39

arenas aquéllas en las que los granos de menor tamaño, se apreciaban

claramente al desmenuzar las muestras en la mano, y limos aquéllas, que sin

mostrar granos aparentes, si aparecían en una observación de detalle o "en la

boca".

Las características de reconocimiento de visu que se han utilizado para asignar el

término de arcillas a una muestra han sido su cohesión y -pulido-, aunque en

algunos casos también se tuvo en cuenta el color (caso de arcillas claramente

rojizas). La cohesión se evaluó generalmente a grosso modo, pero en algunos

casos dudosos se hicieron rodillos en la mano para medir su longitud antes de la

separación. Por -pulido- hemos considerado la facilidad de crear una superficie

satinada mediante el arrastre de los dedos sobre la muestra.

La valoración efectuada de litologías mixtas es aún más relativa: La calificación

de muestras como arenas arcillosas se realiza cuando en muestras con

predomino de arenas se advierte un cierto grado de cohesión. La atribución de

arcillas arenosas se ha hecho cuando en muestras reconocidas como arcillosas,

se observa la presencia de cierto porcentaje de arenas.

Esta diferenciación está supeditada a la proporción de lodo en las muestras, de

forma que, además de ser muy subjetiva, es muy relativa ya que está muy

afectada por los distintos grados de lavado o tamizado de las muestras.

La presencia de carbonatos, para determinación de niveles margosos, se evaluó

mediante la efervescencia al ácido clorhídrico diluido al 1%. Cuando estos

niveles se presentan de forma relativamente aislada, este método suele ser muy

resolutivo, pero cuando éstos suponen un porcentaje elevado de niveles, suele

producir un contenido de carbonatos en el lodo de perforación y con ello en el

resto de las muestras. En esos casos las apreciaciones son aún más subjetivas.

40

3.2 PARÁMETROS DEL SONDEO

Existen una serie de parámetros que influyen en los procesos de interpretación

tales como los diámetros y la temperatura a lo largo del sondeo, la conductividad

del lodo (y filtrado de lodo) y su densidad.

Por cuestiones operativas, aunque algunos de ellos podrían medirse directamente

mediante sondas de testificación (temperatura, diámetros,...) se han obtenido a

través de los datos facilitados por la empresa de perforación.

Los diámetros del sondeo, por ejemplo, pueden suponerse, dada la rutina de

perforación (incluida la retención del lodo) y los materiales atravesados,

prácticamente iguales a los diámetros de perforación. Aunque debemos recordar

que los valores reales son algo mayores y que en puntos críticos como son las

reducciones de diámetro, dichos cambios resultan en la práctica más graduales

con la profundidad.

En todos los sondeos estudiados en este trabajo (y en la mayoría de los sondeos

que se realizan en la actualidad) es práctica común la medida de la viscosidad

A.P.I. (en segundos) del lodo de perforación. Por el contrario, muy rara vez se

miden los valores de densidad del lodo, por lo que tendremos que deducirlos a

partir de los valores de viscosidad.

3.2.1 Temperatura

Para la estimación de la temperatura a lo largo del sondeo salvo algunos casos

donde se realizó el registro térmico, se ha utilizado una temperatura media en la

superficie de 18°C y un gradiente térmico medio tanto para el lodo como para la

zona invadida de 1.5°C/100 m.

41

3.2.2 Conductividad del Filtrado de Lodo

Los valores de conductividad del lodo se midieron con el conductivímetro de

laboratorio señalado en el apartado 3.1.1. Sin embargo, no se realizó la medida

de conductividad del filtrado, por lo que para obtenerlas se ha utilizado la

expresión:

Rm1.07 · Kδ = Rmf (Ec. 3.1)

donde los valores de Kδ se obtienen por interpolación lineal mediante el siguiente

conjunto de valores para densidad del lodo:

Densidad 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9

Kδ 1.079 .963 .847 .731 .625 .530 .456 .410 .385 .377

3.2.3 Densidad del Lodo de Perforación

Para poder estimar la densidad a partir de los valores de viscosidad, se han

realizado una serie de medidas de laboratorio con muestras reales de lodos

Revert, Bentoníticos y Naturales. Entendiendo por lodos naturales aquellos que

se forman utilizando agua como fluido de perforación a la que se le van

incorporando los limos y arcillas de los niveles atravesados durante la ejecución.

Las valores obtenidos de viscosidad en función de la concentración de aditivos

(arcillas en el caso de lodos naturales) se han aproximado a curvas analíticas

dado la influencia de la temperatura como variable continua, obteniendo como

resultado las curvas mostradas en la figura 3.1.

42

Figura 3.1 - Viscosidad en función de la Concentración de Lodo

Aunque para algunos lodos los datos se aproximan muy bien a una exponencial

cuadrática, una función de aproximación más genérica para todos los tipos de

lodos, en función de la temperatura -T- y la concentración de lodo -Ca-, viene

dada por la ecuación:

4a2aK

1APIa · ·

e K + · (T) = T),(

CCνC ν (Ec. 3.2)

donde:

Naturales lodos para osBentonitic lodos para

Revert lodos para

0.00005 = K y 0.00022 = K y 0.8 = K y

0.02 =K 0.08 = Ke 1.35· = K

2

2

2

1

1

21

0.00072·T-

J.M.Díaz Curiel

Aunque todas estas constantes varían ligeramente con la temperatura, dicha

variación se ha despreciado, salvo en la constante K1 para el caso de lodos

Revert en los que la influencia de la temperatura es mucho mayor.

A partir de los valores de concentración, la densidad la obtendremos

simplemente mediante:

43

δ (gr/cm3) = ( 1 + Ca/100 ) ⋅ 1.05 (Ec. 3.3)

El factor -1.05- se ha incluido debido a que estas ecuaciones se han obtenido

para lodos totalmente decantados. En la práctica, durante el proceso de

testificación geofísica, los lodos todavía mantienen en suspensión cierta cantidad

de finos lo cuál aumenta su densidad sin aumentar de forma significativa la

viscosidad. Por esa razón estos valores de densidad deben corregirse por un

factor que varía desde 1.08 hasta 1 para lodos totalmente decantados, tomando

en nuestro caso un valor medio de 1.05.

3.3 ELABORACIÓN DE DATOS

Los pasos seguidos para el tratamiento de datos se detallan en el Capítulo 5,

donde se especifican además, las posibilidades de los distintos programas

informáticos realizados.

Muchos de los algoritmos y fórmulas empleadas en este proceso no merecen una

explicación detallada puesto que se trata de procedimientos básicos. Para la

revisión pormenorizada de los que no aparezcan detallados en este capítulo me

remito al Anexo 1, donde se entregan los listados de todos los programas

realizados.

3.3.1 Digitalización y grabación

Por las razones expuestas en la introducción (equipo de la Cátedra de Geofísica y

posibilidades de estudiar diagrafías antiguas) el primer paso a realizar era la

conversión de los registros analógicos a registros digitales de ordenador.

Dado que los registros obtenidos presentan longitudes mayores que el formato

DIN- A3 e incluso que DIN-A1 el paso más difícil a realizar era el solape de los

distintos tramos a digitalizar. La decisión tomada fue diseñar una tapa

transparente solidaria a la mesa digitalizadora (hoy en día es un accesorio común)

44

y dibujar sobre ella unos marcos indelebles, de forma que la diagrafía se colocara

entre la transparencia y la tableta, y variase su posición relativa a lo largo de la

profundidad.

Otro aspecto que se planteó fue la selección entre las distintas posibilidades de

digitalizar, esto es, seguir de forma continua el registro con el puntero o marcar

sucesivos puntos de la curva. Aunque lógicamente el primer modo parece el más

fácil, la velocidad de procesado del ordenador obligaba a mantener una velocidad

muy lenta, lo que resultaba bastante laborioso. Por esa razón se decidió

programar las dos posibilidades.

Una vez digitalizado el registro, el siguiente paso era realizar la conversión de los

puntos discretizados a una curva en la que la distancia entre puntos fuera

constante, ya que esta característica es fundamental para el tratamiento

matemático de los registros. Este proceso debía realizar al mismo tiempo o

posteriormente, un suavizado de los ángulos mal descritos y la eliminación de

puntos erróneos de digitalización.

El valor de la equidistancia debía ser suficientemente pequeño para no producir

"aliasing" (generación de frecuencias ficticias) y para perder el mínimo posible de

información, pero limitado para optimizar los procesos de cálculo. El valor elegido

fue de un punto cada milímetro, es decir, la centésima parte de la escala vertical,

lo que para la escala máxima de registro (1:200), en un registro de 500 metros,

supone un total de 2500 puntos discretizados por cada parámetro.

Para la realización de este proceso se han diseñado tres tipos de interpolación de

puntos: lineal, cúbica o spline. Cada tipo tiene unas características distintas:

Interpolación lineal - Representa el método más rápido, pero refleja

excesivamente los errores de digitalización, de forma que será necesario un

posterior filtrado de la curva obtenida.

45

Interpolación cúbica - Se realiza para todos los puntos situados a una

semidistancia de un punto digitalizado, respecto al anterior y al siguiente.

Puede presentar discontinuidades en el caso de digitalizaciones excesivamente

groseras.

Spline - Diseñado a partir de la continuidad en la pendiente de la curva, consigue

una curva de aspecto muy gradual, pero distorsiona excesivamente los datos

iniciales. Apropiado para distancias de digitalización elevadas.

La grabación se realiza como un fichero secuencial, (sin acceso aleatorio) en la

que se registran, en disco flexible de 3½ pulgadas, el valor del número de datos

para la equidistancia definida, la profundidad inicial, la equidistancia, los valores

máximo y mínimo y por último los valores de la curva, como un vector

previamente dimensionado.

3.3.2 Determinación de línea base

Es de todos conocido que el registro de Potencial Espontáneo puede sufrir un

desplazamiento de línea base, descrita en la sección 2.5.2, es decir, dicha línea,

que teóricamente debería mantener un valor constante, sufre a veces variaciones

positivas o negativas a lo largo del sondeo, que no tienen que ver con las causas

citadas en esa misma sección, y que puede deberse a diversos motivos tales

como:

– Cambios de salinidad.

– Variaciones elevadas en la viscosidad, densidad o concentración del lodo con

la profundidad, por decantación.

– Cambios del lodo de perforación.

– Fuertes cambios de temperatura en la balsa de lodos (electrodo de

superficie).

Esta línea se toma de referencia para obtener las anomalías de P.E. de forma que

dicha anomalía sea la diferencia del valor que toma el P.E. en cada capa (véase

46

segmentación 2.6.) y el valor de dicha línea. Para el cálculo automático de los

valores de P.E. en los distintos niveles permeables es necesario determinar

matemáticamente esa línea.

Si la diagrafía ya está interpretada, el proceso para determinar la línea base se

simplifica, pues solo tenemos que tomar la línea que pasa a través de los niveles

impermeables. En cambio intentar definir la línea base antes de la interpretación

resulta bastante más complicado, pero representa algunas ventajas de cara a la

interpretación. Por esta razón se han elaborado una serie de algoritmos para

calcular dicha línea de forma previa a la interpretación.

Para ello, y dado que los desplazamientos de dicha línea pueden ser puntuales,

lineales o de cualquier grado, se han realizado los siguientes procesos:

En primer lugar, se han diseñado dos algoritmos de determinación de la línea

base, en función del grado de variación que presente dicha línea respecto al

propio registro de PE.

1 - Determinación de valores extremos (mínimos o máximos) a lo largo de una

ventana de estudio, e interpolación lineal o cúbica entre dichos valores. Los

resultados obtenidos dependen, claro está, de la anchura de la ventana de

comparación (en número de puntos o en espesor).

2 - Determinación análoga de valores extremos con obtención de los valores

intermedios compensándolos por el grado de variacion del registro frente a la

línea que se va elaborando. El coeficiente de peso es proporcional a la

amplitud de los valores intermedios.

Después de analizar los resultados obtenidos para distintos registros elegidos al

azar, se decidió que el método que proporcionaba mejores resultados era el de

extremos interpolados, con una ventana de comparación de 16 metros de

anchura. No obstante, en registros con variaciones muy alternantes de la línea

base, puede producir mejores resultados el segundo método.

47

Una vez elegido el método de cálculo óptimo, debe definirse el signo de las

anomalías que se producen en el registro. La hipótesis para determinar dicho

signo es considerar que las variaciones de la línea base son siempre menores que

las variaciones del registro sobre ella.

Bajo esta hipótesis se determinan las líneas de extremos con una ventana de

estudio de 8 metros, y se evalúa cuál de ellas presenta un mayor grado de

variación. Para la estimación de esta variación se emplea un coeficiente que

duplica la variación en el caso de que se invierta el gradiente de la curva. De esta

forma, la línea de estas dos que presenta el menor grado de variación, es la

elegida.

Si el grado de variación es muy parecido en ambos casos, podría representar el

hecho de que las anomalías presentes sean tanto positivas como negativas. Para

considerar esta posibilidad se han elaborado otros dos nuevos métodos de

cálculo de la línea base, que se realizarán si la diferencia entre los dos grados de

variación obtenidos es menor del 10%.

3 - Aproximación polinómica: Mediante el método de Gauss-Seidel se resuelve

una aproximación por mínimos cuadrados del registro a un polinomio de grado

variable (el grado a elegir es el número de curvaturas deseado más uno).

4 - Registro suavizado: Eligiendo un filtro tipo seno cardinal correspondiente a

una señal de 20 metros de anchura se convoluciona el registro inicial.

Estos dos últimos métodos no obtienen una línea base óptima, pero realizan una

eliminación muy apropiada de las variaciones de longitud de onda larga de la

línea base. El primer método es adecuado para desplazamientos muy graduales

de la línea (hasta cuarto grado), mientras que el segundo, obtiene buenos

resultados cuando la alternancia en el signo de la anomalías es muy constante.

48

No obstante, en la realización del programa correspondiente se dejará la opción

de poder modificar las variables que intervienen en los distintos métodos.

A pesar de todos los algoritmos empleados, puede ocurrir que el registro sea lo

suficientemente complejo como para que ninguno de ellos proporcione resultados

satisfactorios. Por esta razón se ha desarrollado la posibilidad de generar la línea

base directamente en la pantalla mediante la utilización de cursores.

Una vez determinada la línea base, debemos eliminar sus desplazamientos puesto

que esta línea tiene teóricamente valor nulo. El resultado que obtendríamos es el

mismo que si directamente calculamos las diferencias para cada punto entre el

valor del registro y el valor de la línea base.

Al igual que para el potencial espontáneo, algunos registros de radiación gamma

y de resistividad muestran un desplazamiento en lo que podríamos llamar su línea

propia de las arcillas.

Este efecto en el registro de radiación gamma puede deberse a cambios de

concentración del lodo, y con ello del fondo de radiación citado en la sección

2.5.3. En ese caso, para obtener una interpretación correcta, se deben corregir

dichos registros, de forma análoga a los desplazamientos de línea base de

potencial espontáneo con anomalías positivas.

Para corregir este efecto en los registros de resistividad deberíamos contar con el

registro de conductividad del lodo. Dado que dicho registro se ha realizado en

muy pocos sondeos, se ha elaborado un sistema de corrección basado, en parte,

en la variación del registro de resistencia puntual o monoelectródica, que es el

parámetro que más acusa las variaciones de conductividad del lodo.

3.3.3 Corrección de decalajes

La distancia entre los sensores o dispositivos de medida en una sonda múltiple

provoca que la información de cada uno de los parámetros medidos corresponda

49

a profundidades distintas, cuya diferencia es justo la distancia entre los sensores

o puntos de atribución. Además, la representación analógica simultánea de los

registros, obliga a que la posición de las plumillas no coincida en profundidad (de

lo contrario no podrían cruzarse), provocando una nueva diferencia entre las

profundidades reales de cada parámetro.

La primera de las dos distancias es conocida, pero la combinación con la

segunda hace que la suma total sea en la práctica difícil de conocer a priori, por

lo que debe estimarse en la representación obtenida. Esta diferencia resultante se

conoce, en el argot de la testificación geofísica, como decalaje.

Mentalmente dicha estimación implica involuntariamente un proceso simultáneo

de interpretación, igualando las profundidades de las capas que reflejan cada uno

de los registros. Para realizar la corrección de decalajes de forma automática y

con anterioridad a la interpretación se ha decidido utilizar la cross-correlación de

los registros.

Este proceso se realiza por pares de registros considerando siempre uno de ellos

como asignado a la profundidad real (tomada al inicio de la realización de la

diagrafía).

Por otro lado, en ocasiones no se realiza el registro simultáneo de todos los

parámetros, bien por corresponder a sondas distintas o bien porque algunos se

registran mientras se baja la sonda, y otros al subirla. Esto provoca que los

pequeños descensos puntuales de la velocidad real de la sonda durante la bajada

y las diferentes tensiones del cable durante la subida, produzcan pequeñas

diferencias en la profundidad real de los registros.

También debemos contar con las inevitables imprecisiones en profundidad

producidas durante la digitalización fraccionada de los registros analógicos, que,

aunque no deberían ser muy importantes pueden llegan a serlo en algunas

ocasiones.

50

Por estas razones, se decidió no realizar una cross-correlación de los dos

registros completos, sino realizar la comparación de los registros en un número

determinado de tramos y promediar posteriormente los decalajes obtenidos.

Mediante ensayos en una serie de sondeos se obtuvo que el mínimo número de

tramos que produce buenos resultados, es de cinco (en nuestro caso, uno cada

100 metros). Además se probaron distintas longitudes de cada tramo,

encontrando que la longitud mínima apropiada es 20 metros (en nuestro caso

entre 40 y 60 m de cada centena). Para valores mayores, tendremos mayor

precisión y mayor tiempo de cálculo, pero en cualquier caso, no es recomendable

utilizar tramos de longitudes superiores a 40 metros.

No obstante, se ha preparado el programa para cambiar dichos valores con

facilidad, para casos de sondeos de menor longitud o cuando se requiera una

mayor precisión.

3.3.4 Representación de las Diagrafías

Se han realizado tres subprogramas de representación, dos de dibujo mediante

trazador (plotter), y uno para impresora. El diseño de estas representaciones,

aunque es muy tedioso, no conlleva más complejidad que el dominio de los

sistemas y lenguajes informáticos utilizados.

El primer programa para trazador incluye el dibujo de la columna litológica, con

una escala vertical máxima recomendable de 1:400 (capas de 60 cm ocupan 1.5

mm) admitiendo un máximo de seis parámetros. Se diseñó con dos bandas para

representación de registros, de 10 cm de anchura cada una, y una banda

intermedia para representación de la columna litológica de 2 cm de anchura. Esta

representación permite el estudio detallado de los registros y de la columna

litológica.

El otro programa para trazador se diseñó para la representación de los tramos de

las diagrafías a mayor escala, hasta un máximo recomendado de 1:2000. La

51

anchura de representación es variable, en función de la escala vertical y el

número de registros, con el fin de mantener una apariencia visual apropiada, es

decir, para que las variaciones de los registros no parezcan ni demasiado

exageradas ni despreciables.

Los programas de dibujo en trazador gráfico, utilizan un Software de

comunicación con el trazador de origen comercial, que aparece en el Anexo de

programas, y que se añade como subprograma durante la ejecución de los

programas citados.

El programa de dibujo en impresora no se realiza directamente por carecer el

lenguaje de sentencias apropiadas, por lo que utiliza la representación en pantalla

de una serie de tramos que sucesivamente se convierten en cadenas de puntos

para la impresora matricial. En esta conversión se ha utilizado una sentencia de

compilador Pascal compatible con el Basic 2.0. Dada la limitada memoria de la

impresora este volcado de pantalla resulta bastante lento.

52

CAPÍTULO 4 INTERPRETACIÓN Y CORRELACIÓN

4.1 DETERMINACIÓN DE LOS LÍMITES DE CAPA

Los procesos para delimitar las capas atravesadas por el sondeo pasan tal y

como se dijo en la sección 2.6, por la conversión de los registros continuos a una

serie discreta de límites y amplitudes entre éstos.

Dada la génesis de los distintos registros geofísicos, dichas series muestran

secuencias que no coinciden ni en carácter ni en amplitud. Además no todos los

límites definen una capa, y mucho menos las amplitudes asignadas entre éstos.

Por ambas razones, a partir de los registros segmentados realizaremos la

determinación de las capas "geofísicas" definitivas del sondeo mediante el

estudio de concordancia de los registros segmentados, bajo la hipótesis de que

todo fenómeno que se refleja en al menos dos parámetros medidos, corresponde

a un límite real de capa.

4.1.1 Delimitación por Bandas

En primer lugar, y por analogía del proceso que se realiza durante la

interpretación mental, se intentó realizar una segmentación de los registros por

pertenencia a distintas bandas de amplitud. Este método realizaba los siguientes

procesos:

* Cálculo de máximo y mínimo predominantes (tomando hasta 90 %)

* División de dicho intervalo en 20 bandas de amplitud aparente

* Algoritmo de búsqueda de límites (20 cm) con criterios de inclusión

Este método producía efectos indeseados, por lo que se procedió a realizar este

proceso mediante la determinación de los puntos de inflexión de los registros.

53

4.1.1 Segmentación de los Registros

Para ello se diseñó un filtro de derivación X2

Y , X2

Y - 1i+1i-∆∆

que debe emplearse dos

veces para obtener los puntos de inflexión.

Después de cada derivación se aplica un filtro pasa-baja para eliminar señales de

alta frecuencia. Dicho filtro es una ventana cuadrada de cinco puntos, cuyos

efectos de cola son despreciables para esa anchura, aunque en el programa

aparece un criterio para la utilización del filtro en los bordes, donde ese efecto es

mayor.

Por último, y dado que al tratarse de una curva discreta no tienen por que

aparecer los puntos exactos de inflexión, se toman los puntos para los cuales el

valor de la segunda derivada cambia de signo, esto es, se produce alternancia de

signo entre el punto anterior y el punto siguiente.

Los puntos de inflexión encontrados representan los límites matemáticos iniciales

de las distintas capas para cada uno de los parámetros a lo largo del sondeo.

4.1.3 Valor Aparente entre Límites

Si entre los límites fijados la segunda derivada es positiva, se asigna a todo el

intervalo, el valor mínimo del registro en ese espacio, y viceversa. Para la

estimación del signo en todo el intervalo es suficiente tomar el signo en un

punto, por lo se ha elegido el punto medio.

En el caso de tratarse de un punto de inflexión de primera derivada cero, lo cual

se identifica por el hecho de que el punto de inflexión es a su vez el punto de

valor máximo o mínimo (según corresponda), se multiplica dicho valor por un

coeficiente próximo a 1. De esta forma se mantiene una variación de los valores

aparentes entre las dos capas consecutivas, pues de lo contrario no quedaría

constancia de esa variación en el registro segmentado.

54

En el caso de no proceder a una interpretación cuantitativa y de cara a la

interpretación litológica y a la correlación, este valor aparente puede sustituirse

por un valor normalizado para cada registro. La expresión de normalización

elegida es de 0 a 100% dada por la expresión: 100 ⋅ Pn,j / [ Max(n) - Min(n) ]

siendo Pn,j el valor aparente inicial del parámetro Pn entre los límites (j-1) y j, y

Max(n) y Min(n) los valores máximo y mínimo de dicho parámetro.

Con los límites y los valores aparentes entre límites ya se puede grabar un nuevo

fichero, en el que cada registro inicial se reemplaza por una curva discontinua

segmentada.

4.1.4 Determinación de las Capas Paramétricas

a) En primer lugar se realiza una búsqueda de los límites cuasi-concordantes de

los registros de resistividad aparente. En el caso de tener una única resistividad

aparente se toman todos los límites determinados en dicho registro como

definitivos para la resistividad.

Dado que las variaciones de amplitud de cada registro deben tener el mismo

signo, pues se trata de registros que corresponden al mismo parámetro físico, se

define una distancia -Dresis- en la que se comparan tanto la profundidad de los

límites determinados en cada registro como las variaciones de amplitud que

conllevan.

Dresis (m,n) (i,j) = Dsalto (m,n) (i,j) ⋅ Dprof (m,n) (i,j) - 1

donde

Dsalto (m,n) (i,j) = 1 + [ ∆m,i - ∆n,j ]2 / [ Zm,i + Zn,j ]2

Dprof (m,n) (i,j) = 1 + [ Zm,i - Zn,j ]2

∆n,j =100 ⋅ [ Pn,j+1 - Pn,j ] / [ Max(n) - Min(n) ]

∆n,j es la variacion normalizada de amplitud en el límite j del parámetro n.

Zn,j es la profundidad del límite j del parámetro n.

55

Dsalto varia desde 1 para variaciones idénticas, 2 para variaciones muy dispares

pero del mismo signo y >2 para variaciones con distinto signo. Dprof varía

desde 1 para límites a la misma profundidad, 2 para límites desplazados 1 metro

y >2 para desplazamientos mayores de 1 metro. De esa forma Dresis varía entre

0, para capas idénticas a la misma profundidad, y sobrepasa el valor de 1 si son

de distinto signo o están desplazados más de un metro.

Así definida esta distancia el valor para el cual se considera que ambos registros

son cuasi-coincidentes es 1. Una vez encontrados los límites concordantes, éstos

definen un límite definitivo mediante el valor medio de la profundidad de los

primeros.

Con esta distancia, se comparan todos los límites de todos los registros de

resistividad desde el inicio hasta el final, tomando el primer registro resistivo de

referencia, y comparando con el resto sólo a profundidades un metro por encima

y por debajo, debido a los valores que adopta dicha distancia, reduciendo así el

tiempo de cálculo. Los límites más parecidos se adoptan como cuasi-

concordantes.

Este proceso se realiza eligiendo primero todas las resistividades medidas. Si los

nuevos límites corregidos se encuentran próximos a límites superiores o

inferiores determinados con anterioridad, se deforma el registro inicial solo en

torno a dicho límite, de forma que el anterior quede desplazado por lo menos 20

cm del nuevo límite.

Posteriormente se disminuye el número de resistividades y se van incluyendo

límites en los registros que no se muestran cuasi-concordantes, de forma que las

amplitudes no varíen de forma apreciable en estos. Para ello se modifican los

valores anteriores mediante un coeficiente (1.05-S∆⋅1) siendo S∆ el signo de la

variación encontrada en los registros cuasi-concordantes. Estos límites se van

añadiendo a los límites definitivos de resistividad.

56

Este proceso se continua hasta estudiar los límites determinados por una sola

resistividad, en cuyo caso solo se adoptan como límites definitivos para

resistividad aquellos cuya variacion de amplitud sea suficientemente significativa,

siendo en nuestro caso > 10%.

El resto de los límites no asignados a un límite definitivo se eliminan asignando, a

cada intervalo entre límites finales, la amplitud media en dicho intervalo. Si esta

amplitud media mantiene el signo respecto a los segmentos adyacentes, se

adopta como definitiva, y en caso contrario se toma la amplitud original próxima

al límite que si lo mantiene.

Por último, se obvian los límites que definen un espesor inferior a 40 cm,

eliminándolos con su correspondiente amplitud, y desestimando capas cuya

importancia productiva es despreciable.

b) En segundo lugar se realiza una búsqueda de los límites cuasi-concordantes

del conjunto de los registros realizados tomando como límites de partida los

límites definidos en el paso anterior. En el caso de tener solo registros de

resistividad aparente se toman los límites determinados en el desarrollo anterior

como capas "geofísicas" definitivas del sondeo.

Dado que ahora las variaciones de amplitud de cada registro no tienen por qué

tener el mismo carácter, puesto que se trata de registros que corresponden a

parámetros físicos distintos, se define una distancia -Dconj- en la que se

compara básicamente la profundidad de los límites determinados en cada

registro, pero se le añade un coeficiente de peso en función de la similitud entre

los espesores de capa que definen a cada lado del límite.

Dconj (m,def) (i,k) = Dcesp (m,def) (i,k) ⋅ Dprof (m,def) (i,k) - 1

donde

Dcesp (m,def) (i,k) = 1 + Dcesp+ (m,def) (i,k) ⋅ Dcesp-

(m,def) (i,k)

Dcesp+ (m,def) (i,k) = Log2 [ Zm,i+1 - Zm,i ] / [ Zdef,k+1 - Zdef,k ]

Dcesp- (m,def) (i,k) = Log2 [ Zm,i - Zm,i-1 ] / [ Zdef,k - Zdef,k-1 ]

57

Dprof (m,def) (i,k) = 1 + [ Zm,i - Zdef,k ]2

Zdef,k es la profundidad del límite definitivo k.

Dcesp varía desde 1 para espesores idénticos a ambos lados, 2 para espesores a

ambos lados cuatro veces mayores o menores y >2 para diferencias de

espesores mayores. De esa forma Dconj varia desde 0 para capas a la misma

profundidad con espesores idénticos a ambos lados y es >1 para capas

desplazadas más de un metro o espesores a ambos lados cuya relación con los

espesores definitivos sea mayor de cuatro. La distancia para la cual se considera

que ambos registros son cuasi-coincidentes es 1.

Con esta distancia se comparan todos los límites definitivos, con los límites

adyacentes del resto de los registros no eléctricos, tomando en el caso de que

ambos presenten un valor menor que la distancia de concordancia, el que

mantenga menor distancia.

Posteriormente se buscan los límites definidos únicamente por parámetros no

resistivos, para los que solo se comparan las profundidades de dichos registros

definiendo una nueva distancia -Dnores- mediante:

Dnores (m,n) (i,j) = [ Zm,i+1 - Zm,i ]2

Todos estos pasos se realizan de forma análoga a los descritos para el caso de

registros de resistividad.

4.2 INTERPRETACIÓN CUANTITATIVA

4.2.1 Cálculo del Contenido en Arcillas

En primer lugar, tal y como se dijo en la sección 2.5.3, debemos corregir el

registro de radiación gamma por los efectos de pozo para contar con valores

reales.

58

Para corregir el apantallamiento producido por la presencia de lodo utilizaremos

como expresión de partida, la fórmula de atenuación de la radiación a través de

un medio de caras paralelas de espesor x, dada por:

e I = I x-0medido

λ (Ec. 4.1)

donde λ es el coeficiente de atenuación lineal, que para el agua y para una

energía de 1.460 MeV vale λ = 0.057 cm-1.

Para considerar la presencia de la materia en suspensión en el lodo, sustituiremos

dicho coeficiente, por el producto del coeficiente de absorción másico µ y la

densidad δ del lodo. Esta forma de corrección es muy precisa para valores de

radiación gamma entre 1 y 2 MeV, como es nuestro caso.

Debemos recordar que el coeficiente de atenuación lineal se define para el caso

de atravesar elementos con caras paralelas, y en nuestro caso la radiación

atraviesa una corona cilíndrica de diámetro interior igual al diámetro de la sonda,

y diámetro exterior igual al diámetro del sondeo. Mediante consideraciones

geométricas se obtiene que el factor de corrección de la distancia media (D-d)/2

entre la sonda y la formación, es (D+d)/2⋅D siendo D el diámetro del sondeo y

d el de la sonda.

Por otra parte, la expresión 4.1, considera solamente fenómenos de absorción, y

si queremos tener en cuenta también la radiación dispersada, debemos

considerar un factor de acumulación B(µx,E).

Dicho factor está tabulado para ciertas energías y espesores, pero para su

utilización matemática debemos aproximarlo a una función. Para ello se ha

desarrollado una relación intermedia, en cuanto al grado de complejidad se

refiere, entre las relaciones conocidas, y que alcanza una precisión elevada

(>95%), dada por la expresión:

59

x k + 1 = x)B( k0 1µδµ (Ec. 4.2)

J.M.Díaz Curiel

donde k0 y k1 varían en función de la energía de la radiación, siendo, en nuestro

caso: k0=0.97 y k1=1.26.

De nuevo, dichos factores lo son para un caso lineal, por lo que deberemos

corregirlos para el caso cilíndrico. Esta corrección es más compleja puesto que

para esta geometría la acumulación de radiación no es lineal. Por esta razón

hemos considerado el factor de corrección de un emisor cilíndrico, sobre la

emisión de un emisor infinito dado por la expresión: (D/d)1/2.

De esta forma la expresión de la corrección total tiene la forma:

))D/d( 0.97µ. +(1 · )2D

d+D 2

d-D (-µ- exp ·I = I 1.260medido (Ec. 4.3)

J.M.Díaz Curiel

siendo µ = 0.057 cm-1 y d = 3.5 cm.

En la figura 4.1, se ha representado la forma que adopta el factor I0/Imedido, para

su uso como ábaco de corrección:

60

Figura 4.1 - Corrección de la medida de radiación por efectos del sondeo.

Mediante la corrección descrita en la ecuación 4.3 los valores de radiación

gamma corregidos son independientes, tanto del diámetro del sondeo, como del

lodo utilizado. Una vez realizadas las correcciones, para determinar el contenido

en arcillas tomaremos como primera hipótesis que la concentración de Potasio en

las arcillas existentes en una cuenca determinada, y con ello, la proporción del

isótopo 40, de carácter radiactivo, puede considerarse constante. De esa forma,

la medida de la radiación gamma de la formación será proporcional al contenido

en arcillas.

Esta hipótesis es válida salvo para la presencia de otros materiales con una cierta

emisividad gamma o de arenas con un alto contenido en feldespatos,

generalmente próximas a una fuente de tipo granítico, o del propio granito

alterado. Estos últimos términos pueden diferenciarse de la arcilla dado que los

61

valores que presentan los parámetros eléctricos (resistividad y PE) son muy

distintos. En el caso de encontrar otros materiales como materia orgánica, ...etc.

que no pudieran discriminarse de la arcilla, esta hipótesis no nos serviría para la

estimación del contenido en arcillas.

Para obviar conjuntamente estos casos debemos plantear una segunda hipótesis,

que considera que a lo largo del sondeo aparecen un número gradual de niveles

con distinto contenido en arcillas (arenas arcillosas, arcillas arenosas,...) y un

número de niveles de arcillas suficientemente elevado frente a los casos citados

en el párrafo anterior. Bajo este supuesto, podremos deducir el valor, GNarcillas,

mediante el estudio de la curva de contingencia del rango de valores de radiación

gamma, esto es, el límite estadístico de la curva de frecuencias acumuladas.

La primera forma elegida para obtener dicho valor es considerar un nivel de

discriminación del 95 %, pero en los casos donde nos encontramos con mayor

presencia de arenas feldespáticas o proximidad al granito se producían

variaciones significativas en ese nivel.

Por esa razón se ha diseñado otro algoritmo para truncar la curva de frecuencias

acumuladas, que consiste en tomar GNarcillas en el punto donde el incremento de

dicha curva mostrara un gradiente menor que el dado por la expresión:

f - N

(f)N - N < 1)-(fN - (f)Nfacumc

acumacum

siendo Nacum(f) el valor acumulado para el intervalo f considerado, Nc el número

de capas y Nf el número de intervalos tomados sobre el rango total de G.N.

Como última hipótesis, debemos suponer que a lo largo del sondeo aparecen

algunos niveles de litologías con contenido de arcillas despreciable. Estos niveles

presentarán un valor de radiación gamma GNmin que podremos tomar como

correspondiente a un contenido nulo de arcillas.

Si admitimos estas tres hipótesis, que de hecho se presentan en sondeos

suficientemente profundos dentro de los acuíferos multicapa, la forma de evaluar

62

la proporción de arcilla se realizará empleando el "índice de arcilla" definido

simplemente mediante la relación:

GN -GNGN-GN

= Iaminimoarcillas

minimocorregido (Ec. 4.4)

Debemos señalar, de cara a la interpretación del contenido arcilloso, que en esta

relación está implícita la eliminación del fondo de radiación (sección 2.5.3).

4.2.2 Cálculo del Total de Sólidos Disueltos

Siguiendo los procesos descritos en el apartado 2.5.2. y una vez obtenida la

línea base de los registros de P.E., en primer lugar se ha realizado la corrección

de las anomalías obtenidas por efectos de diámetro y espesor de capa.

Figura 4.2 - Curvas de Corrección de P.E. a P.E.E.

63

⎟⎟⎠

⎞⎜⎜⎝

⎛D

E 0.34R + 1 = Factor capa

R-

rel

-0.04rel 1.64·

0.75 (Ec. 4.5)

J.M.Díaz Curiel

donde Rrel es el cociente entre R.N.C. y Rm, Ecapa el espesor de la capa y D el

diámetro del sondeo.

A partir de los valores de P.E.E. se ha calculado la resistividad equivalente del

agua de la formación, Rwe utilizando las ecuaciones 2.6 y 2.7.

Para obtener los valores de resistividad del agua de la formación, Rw, hemos

tomado las curvas de Rw/Rwe, para distintos lodos de perforación, obtenidas por

el grupo de trabajo de la Cátedra de Geofísica en algunos de los sondeos

estudiados y que se representan en la figura 4.3. Dado que se trata de casos

discretos estas curvas no se han aproximado a funciones analíticas, sino que se

utilizan mediante interpolación lineal para valores comprendidos entre sus límites,

y mediante extrapolación potencial para el resto.

64

Figura 4.3 - Curvas de Rw/Rwe

La función de extrapolación utilizada viene dada por la expresión:

21

εwew R · ε = R

donde las constantes ε1 y ε2 toman los valores:

ε1= 10.0 y ε2=0.6 para lodos Bentoníticos

ε1= 3.20 y ε2=0.8 para lodos Revert

ε1= 1.44 y ε2=1.0 para lodos Naturales

ε1= 4.20 y ε2=0.8 curva media J.M.Díaz Curiel

que no debe emplearse mucho más allá de los valores representados en el

gráfico.

65

Por último, y bajo la hipótesis de existencia de un ión predominante en la

disolución, se ha intentado establecer la concentración del mismo a partir de una

serie de curvas experimentales, obtenidas por el grupo de trabajo, para los cuatro

tipos de disoluciones más usuales encontrados en la Cuenca del Duero. Dichos

valores se representan en la figura 4.4.

Para valores que estén fuera de los límites de las curvas representadas, se utiliza

una aproximación mediante rectas de regresión que se realiza de forma

automática para cada tipo de agua, siempre que podamos considerar cierta la

hipótesis anterior.

No obstante, para su utilización fuera del código realizado, se presentan a en la

tabla 4.1, los valores de los coeficientes de aproximación para cada tipo de agua:

TABLA 4.1. - Rectas de Aproximación T.S.D./Cw

Tipo de Ión Predominante Ordenada en el origen (mgr/L)

Pendiente (mgr/L)/(µmho/cm)

CLORURADA SÓDICA -281 1.302

BICARBONATADA SÓDICA -529 2.015

BICARBONATADA CÁLCICA -534 2.220

SULFATADA SÓDICA -678 2.803

66

Figura 4.4 - Curvas de T.S.D./Cw

Estas curvas no tienen por qué coincidir con los resultados que se pueden

obtener a partir del ábaco Gen-8 de Schlumberger (figura 2.1), pues en este

ábaco no se consideran más iones en disolución, mientras que en las curvas que

aquí se presentan, aunque la variable sea el mismo ión predominante, existen en

disolución una cantidad indeterminada, pero netamente menor, de iones de otros

tipos.

Por esta razón, las curvas anteriores pueden utilizarse con reservas en otras

cuencas detríticas continentales pero no puede generalizarse su empleo para

cualquier tipo de aguas complejas, donde la proporción del resto de iones sea

muy distinta.

67

4.2.3 Cálculo de Resistividad Real

La hipótesis bajo la que se ha desarrollado este cálculo es que una vez corregidos

separadamente los efectos de diámetro del sondeo + conductividad del lodo y

espesor de capa, obtendremos para cada nivel una serie de puntos que deben

tender asintóticamente, por la derecha a la resistividad real de la formación y por

la izquierda, a la de la zona invadida.

Para la corrección automática por efectos de sondeo y espesor de capa de los

dispositivos normales y lateral, se han seleccionado los ábacos que más se

correspondían con los valores obtenidos en los sondeos para captación de agua y

se han aproximado a una serie de funciones matemáticas que se describen a

continuación.

Los métodos para la obtención de dichas funciones han sido mínimos cuadrados,

para polinomios y exponenciales polinómicas, y procesos iterativos, en los que

ha sido necesario el dominio de la morfología de todo tipo de funciones, para el

resto. Aunque las expresiones obtenidas puedan parecer complejas, no presentan

ningún problema para su programación.

En primer lugar, para la corrección de resistividades del dispositivo normal se han

tomado los ábacos de Gearhart-Owen para AM=0.4 m. y AM=1.6 m,

modificando estos últimos, pues para valores de R1.6/Rm menores de 100 no

muestran variación con el diámetro, lo que en la práctica no ocurre en los

sondeos con lodos resistivos.

Dada la coincidencia resultante tras la modificación se decidió tomar unos únicos

ábacos en los que el diámetro que se considera es un diámetro relativo a la

longitud del dispositivo. Los resultados se muestran en la figura y ecuación

siguientes:

68

Figura 4.5 - Curvas de corrección por lodo/diámetro para dispositivo Normal

D · 0.0000129 +D · 0.000987+ D · 0.02136 +0.0095 = L

e · 0.723 = L

4.6) (Ec. )R(Log · L + )RLog( · L = )RLog(

3rel

2relrel2

D · 0.01741

lod2

2lod1lodcorrel

J.M.Díaz Curiel

donde Drel es el diámetro del sondeo multiplicado por la relación entre 0.4 y la

longitud del dispositivo (en metros), Rlod es el cociente entre la resistividad

medida y la resistividad del lodo y Rlodcor es el resultado corregido de ese mismo

cociente, del que obtendremos la resistividad de capa corregida.

69

Para la corrección por espesor de capa para dispositivo normal para capas más

resistivas que sus adyacentes, se han tomado los ábacos de Guyod (1952),

dando como resultado:

Figura 4.6 - Curvas de corrección por espesor de capa para dispositivo Normal

⎩⎨⎧

)R( Ln · 60 = f)R( Ln · 0.07+1 = f

donde · f f + f = Factorrel

rel·-11

0rel 3

1 e 0.5 E0 (Ec. 4.7)

J.M.Díaz Curiel

siendo Erel el cociente entre el espesor de la capa y la longitud del dispositivo, y

Rrel el cociente entre la resistividad medida en esa capa y el valor medio de las

resistividades medidas en las capas adyacentes.

La corrección para capas de resistividad menor que sus adyacentes, se realiza

mediante la expresión: e R-1 - 1 = Factor E0.5·-2rel rel obtenida a partir de los

valores aparentes para las capas de arcilla.

70

Para la corrección de resistividades del dispositivo lateral se han tomado los

ábacos de Gearhart-Owen para A0=5.7 m (18'8") considerando, al igual que se

hizo para dispositivos normales, un diámetro relativo a la longitud del dispositivo.

Al igual que para el resto de las correcciones, en la Ecuación 4.8 se entrega la

expresión de las relaciones obtenidas en la aproximación analítica de dichos

ábacos, modificados con las correspondientes correcciones para los diámetros y

lodos de perforación considerados en esta Tesis, y su representación gráfica se

muestra en la figura 4.7.

71

Figura

4.7 - Curvas de corrección por lodo/diámetro para dispositivo Lateral

D · 0.002 +0.001 = L

)D · 0.001 + (0.008 - = L

)DLn( · 0.4 - 1.10 = L

)R( Log · L + )R(Log · L + )RLog( · L = )RLog(

1.54

1.12

1

44

221

rel

rel

rel

lodlodlodlodcor

(Ec. 4.8)

J.M.Díaz Curiel

En este caso Drel es el diámetro en pulgadas multiplicado por el cociente entre

5.7 y la longitud del dispositivo (en metros).

Para la corrección por espesor de capa para dispositivo lateral se han tomado los

ábacos de Guyod (1952) para espesores entre 0.4 (distancia MN) y 1.8

(distancia AO) metros.

72

La parte derecha de las curvas, para espesores mayores de 1.8 metros, se ha

obtenido generando una curva continua hasta los valores Factor=0.8, para

espesor igual a 1.3⋅AO, y Factor=1 para espesores mayores de 1.4⋅AO. El

resultado final se presenta en la figura 4.8 y en la ecuación 4.9.

Figura 4.8 - Curvas de corrección por espesor de capa para dispositivo Lateral

1 > E si 1 < E si

e · 1.0151)] - E( [1.1781 sencard · fΣ +1

E · f + E · f + E · f +1 = Factor

rel

relfΣ*0.079-reli

2rel32

rel2rel20.419i⎪⎩

⎪⎨⎧

⎪⎪⎩

⎪⎪⎨

R · 0.008 = f

R · 0.050 - = f

R · 0.156 = f

donde 6rel3

4.4rel2

3rel1

Ec. (4.9)

J.M.Díaz Curiel

73

Como puede apreciarse, y aunque pueda resultar extraño, la mayor corrección se

produce para espesores próximos a la longitud del dispositivo. Este fenómeno

tiene una cierta analogía con las inversiones teóricas para dispositivos normales

por lo que se ha mantenido, aunque no parece producirse con tanta intensidad

para lodos no conductores.

Los factores de corrección para capas de resistividad menor que sus adyacentes

se obtienen utilizando la misma relación, mediante un cambio de variable dado

por la expresión: )E -(1 · 2.22 = E 3relrel .

Con los valores obtenidos de las correcciones por lodo-diámetro-espesor de capa

solo nos falta realizar el paso a resistividad pseudoreal, eliminando los efectos de

los diámetros de costra y de invasión de lodo.

Durante mucho tiempo se han utilizado unos diámetros perfectamente

delimitados para intentar corregir estos efectos, pero tal y como se dijo en el

apartado 1.2.3.2, es más adecuado considerar estos límites como graduales. De

esa forma la curva de resistividad aparente, considerando los fenómenos de

invasión, para distintas profundidades de penetración (distintos dispositivos),

presenta formas distintas, según consideremos límites bruscos o graduales.

74

Figura 4.9 - Morfología de las curvas de resistividad aparente para interfases de

invasión bruscas y graduales

En este trabajo no se obtienen los valores de dichos diámetros, sino que se

utiliza la forma característica de las curvas para interfases graduales (Drahos,

1984), para deducir a partir de los valores para distintos dispositivos, el valor de

resistividad en la zona sin invasión.

En el trabajo de Drahos, la expresión de las curvas de resistividad aparente en

función de dichos diámetros, emplea las funciones modificadas de Bessel de

primera y segunda clase, obtenidas a partir de R0 y Ri y de una función de

invasión lineal.

Dado que mediante dichas expresiones no se puede realizar el proceso de forma

inversa, se han aproximado dichas curvas a funciones sencillas con las que poder

obtener los valores de R0 y Ri. La expresión para esas funciones es:

75

)-D · C( tanh · 2

R + R + 2

R - R = )D( R ep

p Ri0i0 (Ec. 4.10)

J.M.Díaz Curiel

donde Dp es el diámetro de penetración del dispositivo empleado y CR es una

constante relacionada con la función de invasión de lodo en la formación.

Para obtener los valores de R0, Ri y CR se utilizan los valores de las tres

resistividades empleadas, con una distancia de penetración proporcional a la

longitud del dispositivo. La resolución de las tres ecuaciones así planteadas se

realiza mediante un proceso iterativo que minimiza el error de la solución.

Los resultados obtenidos tienen, como condición límite, la restricción dada por la

propia definición del factor de formación RR =

RR = F

mfi

w

0 .

Una vez desarrollados estos algoritmos y para acelerar los procesos de cálculo se

diseñó otro algoritmo, bajo la hipótesis de que una aproximación lineal de las

resistividades para los tres dispositivos dará valores de Ri parecidos a los

obtenidos mediante el cálculo asintótico. Esta hipótesis es válida siempre que

tengamos fenómenos de invasión más allá de la penetración del dispositivo

menor. Para obtener R0 emplearemos de nuevo la relación del factor de

formación.

En los casos donde solo tenemos dos dispositivos de resistividad, se aproximan

los valores de R0 al cociente R.N.L2/R.N.C., que da buenos resultados para lodos

no conductores y con poca invasión.

Cuando disponemos de un único valor de resistividad aparente, se realizan

aproximaciones aún más groseras, que consisten en atribuir Ri = R.N.C., y

utilizar después F para obtener R0, cuando solo disponemos de ese registro, o en

asignar R.N.L. o R.LAT. a R0 cuando tenemos solo estos últimos.

76

Para todos estos cálculos es necesario contar con los valores de resistividad del

agua de la formación, por lo que cuando no se tienen estos a partir del registro

de P.E. se aproximan a los valores de resistividad media del agua de la zona.

4.2.4 Cálculo de Porosidad y Permeabilidad

Para el cálculo de la porosidad, se ha partido de las relaciones descritas en el

apartado 2.1, tomando como factor de cementación m=1.6 y como factor de

ajuste a=0.9.

Los valores de porosidad suelen producir un cierto desánimo en los responsables

de las explotaciones subterráneas, dada la escasa relación de este parámetro con

la productividad de los sondeos, centrando su interés en los valores de

permeabilidad.

Por esta razón, se ha intentado establecer una relación empírica entre los valores

de permeabilidad, estimados a partir de análisis granulométricos sobre una serie

de muestras obtenidas en seis de los sondeos estudiados en este trabajo, y los

valores de porosidad deducidos a partir de los datos de las diagrafías realizadas

en esos mismos sondeos.

La relación obtenida de esta forma no pretende ser más que una aproximación

somera de los valores reales que, por otro lado, van a quedar muy apantallados

en los resultados finales, dada la fuerte influencia de las características

constructivas del sondeo en el comportamiento de los niveles productivos.

A continuación pasaremos a describir el proceso seguido para establecer esa

relación. En primer lugar, para estimar la permeabilidad a partir de las

granulometrías debemos analizar en detalle las características de la muestras

sobre las que se han realizado dichos ensayos.

Los análisis granulométricos, facilitados por la empresa TRAGSA y cuyos

resultados se entregan en el Anexo 2, se han realizado sobre los niveles con

77

mayor tamaño de grano de los recogidos del detrito del sondeo (los valores de

tamaño efectivo oscilan entre 0.3 y 2.6 mm) lo cuál implica que la relación

permeabilidad/porosidad que se obtenga a partir de estos datos, será fiable

básicamente para valores altos de permeabilidad (desde 4 a 10-3 cm/s).

Por otro lado, los coeficientes de uniformidad (D40%/D90%) varían de 1.5 a

10.5 lo que representa una fuerte heterogeneidad y nos obliga a utilizar una

expresión para la estimación de la permeabilidad que involucre dicho coeficiente.

Además, aunque no conste en dichos análisis, la morfología de los granos

extraídos de esos sondeos se puede caracterizar, según la plantilla de

clasificación de Krumbein y Sloss (1955), como subangulosos.

Con esas consideraciones, la relación empleada entre granulometría y

permeabilidad ha sido la expresión de Hazen, en la que se han introducido dos

factores para considerar la forma y clasificación de los granos:

210d ·

C C

· 100 =K fU

(Ec. 4.11)

J.M.Díaz Curiel

siendo K la permeabilidad (cm/sg), 100 un valor constante, D90 el diámetro eficaz

(ambos correspondiente a Hazen), Cf un coeficiente de forma (≈1.25 para granos

subangulosos) y CU el coeficiente de uniformidad D40/D90.

Con los datos de permeabilidad obtenidos siguiendo ese procedimiento y con los

valores de porosidad resultantes del proceso de interpretación geofísica se ha

buscado una relación matemática sencilla, de la permeabilidad en función de la

porosidad, cuya expresión y forma viene presentada en la figura 4.10.

Dicha expresión, donde la porosidad se entiende en tantos por 1 y la

permeabilidad en (cm/seg), se ha representado para valores inferiores a los datos

de partida (entre 4 y 0.004 cm/seg), tanto para comprobar si la valores que

proporcionan para rangos inferiores son razonables, como por el interés que

78

puede suscitar la forma completa de la curva en el rango de porosidades entre 0

y 0.5.

Figura 4.10 - Relación Permeabilidad/Porosidad

4.2.5 Selección de Niveles Óptimos

Una vez interpretados los niveles, y de cara a la distribución de los tramos

filtrantes en la columna de entubación del sondeo, resulta muy práctico realizar

una selección de los que tienen las mejores características físicas, de cara a su

aprovechamiento hidrológico.

79

Para realizar esta selección partimos del total de metros deseados para

considerar un sondeo como muy favorable (valor generalmente alto >20% del

espesor saturado del sondeo).

Este valor se utiliza por separado para los valores de contenido en arcilla, total de

sólidos disueltos y resistividad real, realizando el proceso de forma iterativa con

un incremento variable según se aproxime al espesor buscado, dando como

resultado las barreras de discriminación para cada parámetro, TopArc, TopTSD y

TopRho.

A continuación, se utiliza un coeficiente de modificación, Coef=1.5, para las

cotas de discriminación de forma, las cuales se modulan mediante los factores:

TopTSD⋅(Coef⋅1) , TopArc⋅(Coef⋅3/4) y TopRho⋅(Coef⋅7/8)

y se eliminan las capas con peores características (valores mayores de contenido

en arcilla y T.S.D. y menores para resistividad).

Posteriormente, se reduce o amplia dicho coeficiente en función del conjunto de

valores de esas características para los niveles seleccionados, hasta que estas

alcancen los valores deseados.

4.3 INTERPRETACIÓN LITOLÓGICA

Las capas paramétricas determinadas a lo largo del sondeo suponen

generalmente un número muy elevado de capas, algunas de las cuáles presenta

una diferencia en el valor de los parámetros medidos que no implica

necesariamente una distinción de la litología a la que corresponden.

De esta forma, una serie continua de capas paramétricas con unas emisividades

muy bajas de radiación gamma y con oscilaciones de resistividad incluidas en un

rango elevado (>100 Ohm⋅m) puede representar una alternancia de niveles de

gravas con pequeñas variaciones granulométricas. Dado que no puede exigirse

80

de los datos obtenidos mediante registros geofísicos una mayor resolución (ver

apartado 2.4), tras el proceso de asignación litológica todos estos niveles

aparecerán como un único nivel de gravas.

Este proceso no debe realizarse antes de la interpretación cuantitativa, pues de lo

contrario, los nuevos espesores de capas definidos influirían negativamente en

dichos procesos cuantitativos.

4.3.1 Asignación Directa

Este proceso se realiza mediante la utilización de unos archivos internos en los

que se hallan definidos los límites de los Np parámetros distintos utilizados para

las litologías comúnmente encontradas en la Cuenca del Duero. Estos límites

definen unos espacios que representan los distintos grupos paramétricos de las

litologías, y la asignación se realiza buscando en cuál de los grupos definidos se

encuentra cada una de las capas del sondeo.

De todos los parámetros medidos se han seleccionado la resistividad y la

radiación gamma como los más resolutivos a la hora de discriminar litologías,

puesto que la conductividad del agua de la formación no es representativa de las

distintas litologías.

En una representación bi-dimensional (2-D), esos grupos son rectángulos y, dada

la definición de los límites de cada parámetro, éstos pueden presentar espacios

de intersección entre ellos (que también son rectángulos). En 2-D las capas

vendrán representadas por puntos y en todo el proceso de interpretación

litológica se hablará indistintamente de capas o puntos.

De esa forma, el proceso de asignación se resuelve para cada punto mediante

una serie de condicionales directas, salvo en los espacios de intersección de

dichos grupos, en los que la asignación se realiza definiendo la diagonal del

espacio intersectado y determinando a que lado de la diagonal se encuentra

dicho punto.

81

4.3.2 Análisis de Agrupación

La mayoría de los métodos de clasificación automática, salvo los ascendentes,

en los que las selección de grupos se realiza de forma personalizada y no de

forma automática, llevan implícito el concepto de "masa del grupo", es decir, el

número de elementos (en nuestro caso capas) que componen cada grupo.

En una clasificación encaminada a diferenciar litologías, dicho concepto de masa

debe ser minimizado pues, a lo largo de un sondeo, podemos encontrar muy

pocas capas de una litología perfectamente determinada y netamente

diferenciada del resto, no representando por ello una distinción menor.

Si observamos las distribuciones de las variables (en nuestro caso parámetros)

vemos que forman una distribución centrada con gran anchura. Esto tiene

sentido, pues en la génesis sedimentaria es más fácil encontrar términos

intermedios que litologías muy puras.

Por estas razones, el método de clasificación elegido ha sido un criterio

ascendente modificado, en el que la selección del nivel de discriminación se

realiza de forma automática definiendo el número de grupos, en nuestro caso

litologías, que pueden llegar a establecerse. El número de litologías debe abarcar

todas las litologías tanto puras como mixtas que puedan encontrarse en el

sondeo.

Dado que pueden existir puntos mal asignados y, para evitar la deformación de

los grupos correctos, por incluir dichos puntos intentando alcanzar el número

previsto, el proceso se inicia con un número mayor que el número esperado de

grupos (litologías). Tras observar si algunos de los grupos definidos todavía

podrían agruparse alcanzando un mayor sentido litológico, se repite el proceso

disminuyendo dicho número hasta obtener el número de grupos más adecuado.

Por el contrario, la aceptación de un mayor número de grupos al observar la

82

clasificación realizada, puede indicarnos la presencia de alguna litología no

prevista inicialmente.

La distancia que se ha empleado en este proceso de clasificación, ha sido la

distancia media euclideana con dos dígitos significativos (por razones de

memoria se convierten a números enteros).

Para reducir el tiempo de cálculo se realiza, en primer lugar, una agrupación de

los pares de puntos que mantengan una distancia menor que una distancia

Dref=0.25, mucho menor que la diagonal del espacio definido (>300), y se

repite el proceso para Dref=0.5 y Dref=1.0. En cada agrupación, se toma el

punto medio y se eliminan los puntos comparados.

Posteriormente se define la matriz de distancias, se busca el par más próximo,

que definirá un nuevo punto, se elimina la fila y columna correspondiente y se

contrae la matriz de distancias. Una vez que el número de puntos sea igual o

menor que el número de grupos buscados, esos puntos representarán los núcleos

o centros de masa de dichos grupos.

La asignación de los puntos se realizará mediante la determinación de a cuál de

los núcleos definidos mantiene una distancia menor.

La representación n-dimensional de los grupos definidos por esta distancia serán

elipsoides, salvo en las partes cuya distancia a más de un grupo sea menor que

la distancia de clasificación al centro del grupo. En esos casos se definen los

planos bisectrices de dichos núcleos, tomando la intersección de dichos planos

cuando se trate de partes próximas o pertenecientes a más de dos grupos.

Los algoritmos desarrollados aunque evitan la elaboración de dendogramas tiene

el inconveniente de que por la definición del nuevo punto tras la contracción de

cada par, los nuevos puntos desplazan el centro hacia sí más de lo esperado.

4.3.3 Creación de Códigos Litológicos

83

El código asignado a cada litología debe alcanzar un cierto sentido matemático

para poder evaluar y clasificar las distintas litologías. Por otro lado, dichos

códigos deben considerar la litología predominante y presentar un cierto orden

numérico. Siguiendo estos criterios los códigos iniciales de distinción litológica

utilizados han sido:

1 - Gravas 5 - Calizas

2 - Arenas 6 - Yesos

3 - Limos 7 - Materia Orgánica

4 - Arcillas 8 - Granito

Utilizando códigos de dos cifras podremos reflejar la presencia de litologías puras

y mixtas, entendiendo que el primer dígito señala la litología predominante y el

segundo el término minoritario, así por ejemplo:

11 - Gravas

42 - Arcillas arenosas

En este sentido, se ha empleado un código mixto para las margas a la que se le

ha asignado el código 45 (arcillas-calizas) y para el granito alterado el 84

(granito-arcillas).

4.4 ZONACIÓN

Siguiendo con lo expuesto en la sección 2.6, este proceso persigue dividir cada

registro en una serie de tramos, caracterizados vía geofísica por una o varias de

las siguientes propiedades:

– el valor medio del parámetro registrado,

– la frecuencia de la curva, y

– la diferencia entre valores máximos y mínimos del registro en cada tramo.

No debe olvidarse que para una correcta determinación de dichos tramos, al igual

que para la asignación litológica, el interpretador debe conocer la influencia que

84

ciertas características de perforación, tales como la viscosidad del lodo o el

diámetro del pozo, tienen en la resolución de los parámetros geofísicos.

Para encontrar los tramos, se parte del registro inicial y de la curva segmentada,

y se realiza un análisis estadístico de ambas, para lo cuál se utiliza una ventana

de anchura fija igual a 14 veces el espesor medio de las capas del sondeo (en las

diagrafías estudiadas corresponde a un espesor medio de 25 metros).

Esta elección se decidió después de probar distintas anchuras (entre 5 y 50

metros) y ventanas acumuladas. También se realizaron pruebas mediante el

estudio, para cada punto, de la diferencia de valores entre ventanas opuestas de

anchura predeterminada.

Una vez elegido el tipo de ventana de estudio, se realiza en primer lugar un

estudio de varianza del registro segmentado. A continuación se lleva a cabo un

análisis de frecuencia de la curva, mediante el cálculo del espesor medio de las

capas (equivalente a la longitud de onda, e inverso al número de ceros) a lo largo

del registro segmentado. Por último se efectúa un estudio de amplitudes medias

del registro inicial, para lo cuál se realiza primero un fuerte suavizado del registro

y posteriormente se segmenta siguiendo los mismos pasos que los descritos en

el apartado 4.1.1.

Dado que las variables estudiadas son de índole muy diversa no tiene sentido

realizar una búsqueda de límites comunes para todas ellas, sino que se toman de

partida los límites encontrados para la variable valor medio y se definen de forma

personalizada los límites para varianza y frecuencia en aquellos puntos donde se

aprecien variaciones significativas de esas dos variables.

Una vez determinados los límites de los tramos, se recalculan los valores de

varianza, frecuencia y media para cada uno de ellos, esta vez con la ventana

definida por la anchura del tramo. Los valores medios se normalizan de 0 a

100% entre los valores extremos del registro inicial para obviar las afecciones

85

citadas en el primer párrafo de este apartado. Los valores de varianza, en cambio

se normalizan entre 0 y 1.

Todos estos procesos plantean problemas en los extremos de la curva por lo

que, para no perder la información en los bordes, se ha modificado la anchura de

la ventana de estudio para los cálculos de varianza y frecuencia, haciéndola

decreciente hasta cero en los extremos. Para los cálculos de amplitud media la

afección del tipo de ventana en los extremos es mucho mayor por lo que se ha

elaborado un filtro de tipo exponencial de forma:

Yi = Y0 + C⋅Xin para i=0,...,is

donde: n = Xis⋅(dY/dX)is/(Yis-Y0)

C = (Yis-Y0)/Xis2

is -- el índice correspondiente a la semianchura de la ventana.

La caracterización de tramos no se efectúa, en este caso, mediante la creación

de códigos de zona sino simplemente mediante los valores de cada una de las

variables estadísticas estudiadas.

4.5 SISTEMA DE CORRELACIÓN

La correlación final de dos sondeos se realiza teniendo en cuenta el conjunto de

resultados obtenidos a través de la correlación de niveles y los derivados de la

correlación de zonas.

Otro factor a tener en cuenta en el proceso de correlación son las denominadas

capas guía, cuya relevancia en este proceso se considera similar a los resultados

de la correlación de tramos en lo que se refiere a la distancia entre sondeos.

Dentro de los registros geofísicos, dichas capas se distinguen por alcanzar

valores de algún parámetro (en especial G.N.), o espesores muy diferenciados del

resto de las capas. Para la búsqueda de estas capas conviene tener presente

86

además, el gráfico obtenido en el proceso de clasificación automática de las

litologías existentes pues en él se puede observar los puntos para los que el valor

conjunto de los parámetros elegidos está muy diferenciado del resto.

4.5.1 Correlación de Capas

Este proceso se realiza mediante la Cross-Asociación de Columnas Litológicas.

Este método consiste básicamente en definir una distancia que cumple las

condiciones de una métrica, y que cuantifica la correlación entre dos capas, K y

J, que se intenten comparar mediante la expresión:

DKJ = MIN DK,J-1 + GJ , DK-1,J-1 + dKJ , DK-1,J + GK

siendo dKJ=0 para capas iguales, dKJ=1 para capas distintas y GK = 1

donde K = 1,...,Nº capas y tomando de partida D0J = DK0 = K.

A continuación, se define una matriz cuyos elementos son los resultados

obtenidos en la comparación de todas las capas de dos sondeos que se quieran

correlacionar.

Posteriormente se recorre la matriz desde el valor DImax,Jmax en sentido ascendente

hasta llegar a la primera fila, eligiendo el camino que atraviesa los valores

mínimos de cada fila. Los pares de elementos encontrados según esta alineación

representan los pares de correlación.

En nuestro caso, se excluye la comparación entre los espesores de las capas,

entendiendo que en acuíferos detríticos multicapa dichos espesores no

mantienen demasiada continuidad horizontal. No obstante, podrían incluirse

como un factor más dentro de las consideraciones de las capas guía, en los

casos de espesores muy elevados, o dentro de los criterios de similitud que se

definen en los siguientes apartados.

A este método general de Cross-asociación hemos de añadirle una serie de

pautas o modificaciones que caractericen esta técnica para el caso de correlación

87

de columnas litológicas y que den rigor geológico a los valores encontrados. Los

criterios que se han añadido son:

1 - Exclusión de correlaciones cruzadas (este criterio no tendría validez en el caso

de una tectónica compleja).

2 - Introducción de coeficientes de similitud entre capas. Debemos incluir una

serie de criterios de equivalencia entre capas que impliquen un orden en el

grado de similitud, siendo cada vez más permisivos. Estos criterios son muy

importante en este tipo de correlación pues, dada la exclusión de

correlaciones cruzadas, la aparición de nuevas correlaciones pueden excluir

algunas otras anteriores. Los coeficientes empleados, en orden decreciente,

han sido:

I) Litologías idénticas

II) Alternancia entre las litologías predominante y secundaria

III) Mismo predominante y secundario entre 1 y 3, o entre 3 y 4

IV) Mismo predominante con cualquier secundario menos granito (8)

3 - Análisis de la última fila de la matriz de correlación. El primer problema que

aparece al seguir este método, es el hecho de que el número de

correlaciones sea muy bajo comparado con el número de capas, de forma

que la elección del valor mínimo en la última fila nos anule las correlaciones

posibles entre las últimas capas. Este problema se ha resuelto añadiendo

otro criterio, que refleja una correlación en las últimas filas y eligiendo de

los dos criterios aquél que consiga un mayor número de correlaciones.

4 - Selección de la ascendente de correlación. El segundo problema que podemos

encontrar es que en muchos casos los valores de la matriz de correlación no

reflejan una correlación en medida suficiente como para que el camino de

valores mínimos pase por dicho punto. Por esa razón, caso de existir

equivalencia entre capas se ha impuesto la condición de mínimo desvío del

camino.

88

5 - Selección de pares de correlación. De todos los pares de correlación

encontrados se seleccionan aquéllos que involucran dos capas equivalentes,

siempre dentro del criterio de equivalencia elegido.

6 - Desviación por identidad. Si las dos capas comparadas pueden considerarse

como capas guía, esto es, granito o materia orgánica, siempre se da la

correlación.

7 - El desplazamiento en profundidad que represente un par de correlación no

puede ser mayor que un porcentaje máximo de su profundidad pues de lo

contrario, en este tipo de acuíferos, se incluyen correlaciones matemáticas

que carecen de sentido geológico.

Todos estos criterios se han incluido en el programa de correlación de capas

dando muy buenos resultados finales.

4.5.2 Correlación de Zonas

Dado que el número de tramos en un sondeo no es muy elevado (inferior a 20),

este proceso se realiza de forma individualizada a partir de la caracterización de

dichos tramos y de los resultados de un proceso de cros-correlación de los

tramos definidos para los registros de R.N.C. y G.N. La elección de estos

parámetros se debe a que se han mostrado como los más representativos para la

realización de este proceso.

Para alcanzar grados de correlación mucho más significativos, es necesario

realizar deformaciones de dichos tramos de forma que coincidan los espesores de

los tramos comparados. Con este fin se modifica, para cada tramo del primer

sondeo, la profundidad de todos los puntos de cada tramo del segundo sondeo

de forma proporcional a su posición dentro del tramo y, posteriormente se

definen los valores para las profundidades equidistantes iniciales mediante

interpolaciones lineales.

89

Así pues, la cros-correlación se efectúa entre todos los tramos de R.N.C. y G.N.

del primer sondeo con los de esos mismos parámetros en el segundo sondeo, lo

cuál resulta algo tedioso en el tiempo. Los resultados se presentan en forma de

matriz donde cada celda -n- de la fila -m- representa el valor mínimo de la

croscorrelación entre el tramo -m- del primer sondeo y el tramos -n- del segundo

sondeo.

Análogamente, se ha definido una matriz de disimilitudes mediante diferencias de

los valores de varianza y amplitud medias de cada tramo. Los puntos de la matriz

con disimilitud más bajos nos indicarán los tramos más coincidentes (la selección

de la correlación final debe realizarse evitando siempre las correlaciones

cruzadas.

90

CAPÍTULO 5 DESCRIPCIÓN Y MANEJO

DE LOS PROGRAMAS

5.1 INTRODUCCIÓN

5.1.1 Consideraciones preliminares

Cuando inicié el desarrollo de esta Tesis en 1984, la oferta comercial en el

mundo de la informática, todavía no se mostraba suficientemente uniforme en

cuanto a sistemas operativos y lenguajes. En este sentido, la Cátedra de

Geofísica Aplicada contaba con un ordenador Hewlett Packard que era una de las

marcas de más prestigio dentro de las aplicaciones técnicas, pero cuyo sistema

de funcionamiento no ha sido el que ha prevalecido en la actualidad. Con este

sistema operativo (Bootrom 3.0) y con lenguaje Basic 3.0 se han desarrollado

casi todos los programas realizados en esta tesis (aunque hay algunas

instrucciones del lenguaje Pascal).

De esta forma, tanto el formateado de los disquetes como el sistema de creación

de los ficheros de bases de datos y de programas (distintos para este sistema

operativo) no son compatibles con la mayoría de los sistemas que predominan en

la actualidad. Por ello he creído necesario la entrega de los listados de los

programas para pasarlos en un futuro a un sistema compatible IBM.

Otro aspecto a señalar es que este equipo carecía de unidad de disco duro

(aunque éstas eran suficientemente asequibles en ese momento) por lo que la

transferencia de datos que se ha programado se realiza únicamente a través de

discos flexibles de 1024 Kb de capacidad.

Por último, cabe reseñar que con dicho sistema, la utilización de menús y

ventanas tales como los utilizados en la actualidad es igualmente más compleja,

limitándose a una presentación más simple pero igualmente eficaz.

91

5.1.2 Descripción del sistema (hardware)

El equipo informático utilizado se compone de los siguientes elementos:

- Ordenador personal HP modelo 9816 con procesador motorola y coprocesador

matemático, con memoria RAM de 524 Kb y dos salidas de comunicación (HP

Interface Bus y RS-232).

- Unidad doble de disquetes flexibles de 3½ pulgadas de apertura manual

formateados a 1.056 Kb de memoria.

- Impresora HP modelo 82905 B con alimentador de papel continuo.

- Tableta digitalizadora (gráfica) Tektronix modelo 4957 con una resolución de 40

puntos por mm.

- Trazador gráfico (plotter) Benson de papel continuo DIN A0 modelo 1213 con

tres plumillas y repetitividad de 0.1 mm.

Además, dadas las ranuras de salida que dispone dicho ordenador, fue necesario

construir una caja de conmutación para la salida RS 232 (selector de periféricos)

de selección entre trazador (posición PLOT) o tableta (posición DIGIT).

5.1.3 Programas realizados

Para la denominación de cada uno de los programas se ha elegido un nombre que

identificara con facilidad el proceso que realiza, al igual que para la definición de

las variables, subrutinas y subprogramas. De esta manera es mucho más

inmediata la comprensión de dichos programas.

Siguiendo el orden descrito en el Capítulo 3, el primer programa realiza la

digitalización y grabación de los registros analógicos en unidades de disco

flexible. Una vez puesto en marcha dicho programa surgió la necesidad de crear

un nuevo programa para la corrección de los ficheros de los registros realizados.

En este sentido, aparecieron una serie de posibles modificaciones a realizar con

los registros que en principio no se contemplaban, llegando al desarrollo de un

programa con un abanico amplio de posibilidades de corrección (nacido de esas

experiencias).

92

A continuación se desarrollaron los programas para tratamiento de los registros,

esto es, la corrección de decalajes y del desplazamiento de línea base. En este

mismo grupo podemos incluir los programas de segmentación y zonación que,

aunque se pueden considerar como adelanto de los procesos de interpretación

propiamente dichos, todavía no forman parte de éstos.

Como se dijo, el volumen de datos para una diagrafía completa podía ascender a

18.000. Una vez ejecutado el proceso de segmentación, el volumen de datos

disminuye hasta la décima parte, simplificando los algoritmos para el

aprovechamiento de memoria y reduciendo los tiempos de cálculo.

El siguiente grupo de programas lo constituyen los procesos para interpretación

de diagrafías. Estos procesos se direccionan desde otro programa que tiene una

serie de factores comunes a los procesos de interpretación y que realiza un

análisis del conjunto. Dentro de este grupo están también los programas de

correlación diseñados para pares de diagrafías.

Finalmente se realizaron los programas de representación que, aunque no

entrañan una gran complejidad, son los más laboriosos para su utilización, debido

a que el número de datos de entrada es elevado y las posibilidades, tanto físicas

como de soportes y utilidades, del equipo utilizado son limitadas.

El conjunto de los programas realizado ocupa un total de 2.3 Mb archivados en

tres discos flexibles y agrupados de la siguiente forma:

93

DISTRIBUCIÓN DE LOS PROGRAMAS EN DISCOS FLEXIBLES

DISCO 1 (765 Kb) DISCO 2 (946 Kb) DISCO 3 (515 Kb)

Digitalización

Corrección de Decalajes

Línea Base

Corrección

Segmentación

Determinación de Capas

Gestión de Interpretación Cuantitativa

Contenido en Arcilla

Total de Sólidos Disueltos

Resistividad Real

Interpretación Litológica

Zonación

Correlación de Capas y de Tramos

Director Dibujo

Impresora

Trazador

Software Benson

Dado el elevado número de programas del sistema, se decidió elaborar un

programa master o principal de direccionamiento que facilitara el acceso a cada

uno de los programas específicos. Este programa, que se ha llamado

, es entonces el primero en utilizarse y en él se presenta el

organigrama del conjunto de los programas, que tiene la forma de la figura 5.1.

94

DIGITALIZAR RECUPERAR

DECALAR LÍNEA BASE CORREGIR

SEGMENTAR

OBTENCIÓN CAPAS

INTERPRETACIÓN CUANTITATIVA

TOTAL SÓLIDOS

DISUELTOS

CONTENIDO DE ARCILLA

RESISTIVIDAD REAL

INTERPRETACIÓN

LITOLÓGICA ZONACIÓN

REPRESENTAR CORRELACIÓN

DE CAPAS

CORRELACIÓN DE ZONAS

Figura 5.1 - Organigrama

El programa será el único que deberemos recuperar desde el

teclado, pues los demás se irán ejecutando como opciones dentro de este

primero. Después de la ejecución de cada uno de los programas restantes el

sistema volverá a este programa principal.

Además, dado que hay programas que se encuentran en distintos discos

flexibles, se han incluido instrucciones para que avise si es necesario cambiar el

disco con el que debemos operar.

95

5.2 MANEJO DE LOS PROGRAMAS

En los programas realizados aparece a menudo la posibilidad de selección entre

distintas opciones mediante el uso de las teclas definibles por el usuario, por lo

que haré una descripción general de su manejo para todos los programas.

Dichas teclas definibles se encuentran en la parte superior del teclado y tienen la

forma:

K0 K1 K2 K3 K4

K5 K6 K7 K8 K9

donde las funciones K0,...,K4 se realizan manteniendo pulsada la tecla de

mayúsculas (shift).

Cuando se utilizan dichas teclas aparece, sobreiluminada en la parte inferior de la

pantalla, una retícula con los nombres abreviados de dichas opciones, por

ejemplo:

LECTURA DATOS TERMINAR

COR PANTALLA CÁLCULO INTERPRETACIÓN GRABACIÓN IMPRIMIR

Estas opciones se eligen, tal y como se deduce de la comparación entre dicha

retícula y la disposición de las teclas, pulsando la tecla con la posición

correspondiente. Por ejemplo, la opción COR-PANTALLA (abreviatura de

corrección en pantalla) se realiza pulsando la tecla K5, mientras que la lectura de

datos se ejecuta pulsando la tecla K0 (mayúscula-K5).

Por otro lado, en casi todos los programas, menos en el inicial de grabación, y

previa presentación en pantalla del nombre y la utilidad del programa, se

pregunta por el nombre de el/los ficheros de los registros que se van a estudiar.

96

Con este fin se comienza con una instrucción para insertar el disco donde están

grabados los ficheros. Una vez insertado y pulsando la tecla de continuación

(|CONT|) o una tecla definida, aparecerá un directorio del mismo para

facilitarnos el nombre exacto del fichero que nos pregunte para su tratamiento.

Si el nombre introducido es correcto aparecerán en pantalla los valores globales

del registro:

Registro : SROMANGN Número de datos ------ 1227 Equidistancia -------- .2 Profundidad inicial -- 24 Profundidad final ---- 450 Valor mínimo --------- 12 Valor máximo --------- 54 Pulse |CONT|

Si el nombre no es correcto o se produce un error en la lectura de los registros,

el programa avisará de dicho error y volverá a pedir los nuevos nombres.

Otro proceso común en casi todos los programas es la representación en pantalla

de los datos y resultados obtenidos. En estos procesos se ha programado la

posibilidad de presentación momentánea de una serie de sentencias de ayuda

para el proceso concreto que se ejecuta. La forma de acceder a éstas es

pulsando la tecla |A|, y para salir de dicha presentación la tecla |CONT|, por

ejemplo:

PARA DESPLAZAR LA DIAGRAFÍA GIRE EL BOTÓN

PARA VOLCARLO A IMPRESORA PULSE |V|

........................

PARA VOLVER AL GRÁFICO PULSE |CONT|

Por otro lado, se ha programado la presentación en pantalla de los títulos de los

procesos que se ejecutan en cada momento. Además, durante la ejecución de los

97

procesos de cálculo más complejos, va apareciendo en pantalla la profundidad de

estudio en cada momento para el seguimiento del estado del proceso y con ello,

del tiempo de cálculo.

Por último, casi todos los programas de tratamiento e interpretación finalizan con

la grabación de los resultados obtenidos. Si el usuario intenta coger otro registro

o terminar la ejecución del programa sin realizar la grabación del registro

corregido, el programa le avisará de la pérdida de datos que ello representa.

5.2.1

Como ya se ha dicho este programa es el único que debemos recuperar

utilizando sentencias e iniciar su ejecución. Para ello debemos teclear LOAD

"DIAGRAFIAS" y ejecutar dicha sentencia pulsando la tecla [EXEC] y una vez

recuperado iniciar su ejecución pulsando la tecla [RUN].

Después de mostrar el título del sistema y el nombre del autor, deberemos pulsar

la tecla [CONT] para continuar su ejecución. En ese momento, y tras presentar

momentáneamente las instrucciones sobre cómo recuperar cada programa

aparecerá en pantalla el organigrama de los restantes programas realizados, a los

que podremos acceder también con el rotor del teclado.

5.2.2

Programa para digitalización de diagrafías - Este programa se inicia con

instrucciones sobre la colocación de las diagrafías en la tableta digitalizadora, así

como del selector de periféricos mencionado en la sección anterior.

98

Coloque la diagrafía bajo la transparencia de la mesa digitalizadora de forma que quede paralela a las líneas que están dibujadas en ella. Sitúe el origen (o el punto inicial) bajo la línea horizontal y la línea de referencia sobre un valor determinado de la escala de registro. Coloque el selector de periféricos en la posición |DIGIT| Cuando lo haya hecho, pulse |CONT|

Para ello se han dibujado dos marcos de forma indeleble sobre un plástico

superpuesto de forma fija a la tableta (en la actualidad este plástico viene de

serie en la mayoría de las tabletas de este tamaño), que facilitan la digitalización

de las dos zonas de dibujo en el papel para la mayoría de los registradores

gráficos de los equipos de testificación geofísica.

Posteriormente se introducen los parámetros necesarios para la ejecución del

programa, con una pequeña nota sobre la elección del nombre del fichero donde

se van a grabar los datos digitalizados:

Nombre de Fichero (*) Marco de Referencia Escala vertical por cm Escala horizontal por cm Desplazamiento de la línea de referencia Decalaje del registro Profundidad inicial Profundidad final (*) Conviene que tenga siglas del sondeo y del parámetro, por ej: S1RNC

Más tarde seleccionamos una de las dos formas de digitalizar previstas por el

programa. Una, denominada mediante pulsos, en la que cada punto es

introducido al pulsar uno de los botones del ratón, y otra, denominada temporal,

en la que los puntos son admitidos según se desplaza dicho ratón.

99

En la primera de las dos formas, van apareciendo en la pantalla los valores de

profundidad y del parámetro según se realiza la digitalización, mientras que en la

forma de tiempos, lo que se obtiene es una representación a escala del tramo de

curva digitalizado. Estos dos modos de trabajo se han creado simplemente como

dos posibilidades a gusto del usuario y, aunque el modo de tiempos es más

impreciso, tiene la ventaja de ser más rápido en las correcciones, dado que cada

vez que ascendemos con el ratón desaparece el tramo digitalizado hasta ese

punto.

En ambos casos aparece en la parte derecha de la pantalla un menú gráfico con

las siguientes instrucciones:

Para digitalizar utilice el botón amarillo Cuando quiera realizar un empalme pulse el botón blanco Para cambiar escala, desplazamiento o dato anterior pulse el botón azul 1 - Desplazamiento 2 - Escala horizontal 3 - Dato anterior 4 - Otros Cuando haya terminado pulse el botón verde

La segunda instrucción se refiere a que en la mayoría de los casos, el tamaño de

las diagrafías es muy superior al de la tableta, por lo que la digitalización habrá

que realizarla en sucesivos tramos. Cada vez que realicemos un salto de

empalme, aparecerán en pantalla las instrucciones a seguir para realizar el solape

de los distintos tramos a digitalizar:

Coloque el último punto digitalizado bajo la

línea horizontal y continúe digitalizando

100

Una vez terminada la digitalización, se realizará una conversión de la curva

digitalizada a otra, de forma que los datos sean equidistantes en profundidad,

mediante una interpolación que puede ser lineal o cúbica. La elección dependerá

de la calidad de la digitalización realizada, teniendo presente que la interpolación

cúbica lleva lógicamente más tiempo de cálculo.

A continuación y previo cálculo de los valores extremos de la curva, aparece

fraccionadamente en pantalla la curva obtenida, que podemos ver en su totalidad

moviendo el botón circular del teclado. Además, en cualquier momento, se

ofrece la posibilidad de volcar cualquier gráfico a la impresora. En la parte

superior de la pantalla aparecen las instrucciones para ejecutar estas opciones.

Una vez comprobada la calidad de la digitalización, el programa pregunta por la

necesidad de un filtrado de la curva (se recomienda en cualquier caso). Este

filtrado se inicia con la eliminación de errores aislados de digitalización, para

pasar a la aplicación de un filtro prefijado en el programa. No obstante, de forma

interna, el programa ofrece la posibilidad de elegir tanto la anchura del filtro a

utilizar, como el tipo de filtro óptimo (a seleccionar entre filtro cuadrado,

gaussiano o seno cardinal).

Una vez admitido el filtrado, se realiza la grabación de un fichero de datos (cuyo

nombre se introdujo al principio del programa) en un disquete de 3 1/2 pulgadas.

Estos ficheros se graban con una serie de extensiones necesarias para su

recuperación en los programas .

5.2.3

Programa para revisión y corrección de diagrafías digitalizadas - Posteriormente a

una entrada genérica del fichero a corregir, el programa pregunta si desea una de

las dos formas de corrección que ofrece, y que consiste en representar en

pantalla los valores digitalizados en forma de columnas de 20 datos cada una,

para repasar los datos numéricamente uno a uno.

101

En esta opción podremos repasar los datos a partir de una profundidad

determinada, ver los valores de forma continua (parando cuando se desee),

corregir en cualquier momento o salir de este modo de corrección. Para ello se

utilizan las teclas definibles por el usuario, que se representan en la parte inferior

de la pantalla:

SALIDA AVANCE RÁPIDO AVANCE DIRECTO CORREGIR PARAR/SEGUIR

A continuación entramos en el otro modo de corrección, en el que se representa

la curva digitalizada en una escala de profundidad que reproduce la escala en la

que se digitalizó. Con este fin el programa pregunta la anchura de representación

del registro entre: Estrecho (-1-), Normal (-2-) o Ancho (-3-)

para, de esta forma, reproducir la escala del parámetro digitalizado.

Al comienzo de la representación aparecen una serie de instrucciones sobre las

posibilidades que se ofrecen en este modo:

PARA DESPLAZAR LA DIAGRAFÍA EN PANTALLA MUEVA EL BOTÓN

PARA MOVER UN INDICADOR SOBRE LA CURVA PULSE LAS FLECHAS ← o →

PARA CORREGIR SITÚE EL INDICADOR EN EL PUNTO DE LA CURVA Y PULSE [ENTER]

PARA SALIR DE LA REPRESENTACIÓN PULSE LA BARRA ESPACIADORA

Antes de realizar cualquier corrección, debemos mover primero un indicador

sobre la curva, que aparece según pulsemos las flechas y que nos muestra,

además, el índice, la profundidad y el valor del parámetro en el punto donde se

encuentra.

Al pulsar |ENTER| podremos optar entre la corrección del dato sobre el que se

encuentra el indicador, o corregir toda una franja de datos a partir de ese punto.

Si se elige la segunda de las dos opciones, el programa nos señala que llevemos

102

el indicador hasta el punto final de la franja que queremos corregir, para

posteriormente preguntarnos el desplazamiento que queremos dar a dicha franja.

En tercer lugar, podemos realizar una serie de correcciones generales como son

mover todo el registro en profundidad (decalar), o acotar los valores digitalizados,

tanto en profundidad (eliminando tramos por encima o por debajo de una

profundidad dada), como en amplitud del parámetro (limitando los valores del

registro por encima o por debajo de un valor determinado).

El programa concluye con la grabación del fichero corregido, pudiendo elegir

entre reemplazar el fichero anterior o cambiar el disco donde se grabará el fichero

corregido (dependiendo del tipo de corrección que hayamos realizado).

5.2.4

Programa para el cálculo y eliminación de decalajes - Se inicia con la introducción

genérica del nombre del fichero del registro que va a tomarse de referencia, es

decir aquél parámetro que se ajustó a una profundidad determinada al inicio del

registro. Posteriormente se introduce el nombre del fichero a estudiar y

seguidamente aparece la retícula de posibilidades del programa

TERMINAR

LECTURA DATOS CÁLCULO AUT. PANTALLA DECALAJE MEDIO GRABAR

La lectura de datos se realizará para estudiar sucesivos registros del sondeo

con el mismo registro de referencia.

El cálculo automático se efectúa, tal y como se dijo en la sección 3.3.3.

mediante la realización de cross-correlación de sucesivos tramos de los

registros de la diagrafía. Sucesivamente aparecen en pantalla los gráficos

resultantes de la convolución. Este proceso da muy buenos resultados en la

mayoría de los casos, por lo que no es necesario una intervención del usuario.

103

En la figura 5.2 se presenta un ejemplo de los resultados de la cros-correlación

en tres intervalos cada 100 metros, obtenidos en uno de los sondeos

estudiados.

Figura 5.2 - Ejemplo del cálculo automático de decalaje entre R.N.C. y R.M.E. en

el sondeo Moraña 1

También se ofrece la posibilidad de realizar el decalaje del segundo registro

sobre el de referencia mediante sucesivos desplazamientos en la pantalla. Este

modo de trabajo se realiza mediante una serie genérica de instrucciones de

pantalla.

El proceso consiste en desplazar los registros mediante el botón hasta ciertas

profundidades donde se aprecie con más claridad los decalajes que se

producen dado que se representa a menor escala. Mediante las flechas del

teclado se desplaza el registro 2 sobre el 1 hasta que queden lo más

coincidentes posible y una vez alcanzado, se pulsa |ENTER| para admitir dicho

104

decalaje a esa profundidad. Este proceso debe realizarse al menos en cinco

profundidades.

Una vez calculados los sucesivos decalajes, se debe realizar el decalaje

medio del registro, cuyos valores parciales se presentan en pantalla y donde,

aparte del promedio obtenido, pueden repasarse numéricamente los decalajes

en función de la profundidad. Esta revisión pormenorizada puede indicarnos la

existencia de algún decalaje puntual que deforme excesivamente el valor

medio, o la necesidad de repetir el proceso debido a decalajes mayores que el

intervalo de convolución utilizado (±1.2 metros).

Por último, si el usuario está de acuerdo con el valor obtenido, se procederá

a la grabación del registro con su correspondiente decalaje, debiendo reiniciar

el proceso si se desea contrastar el resultado esperado de decalaje nulo.

5.2.5

Programa para la determinación de la línea base y eliminación de su

desplazamiento. Después de la entrada del fichero a estudiar, análoga a las

anteriores, aparece la retícula de posibilidades del programa:

LECTURA DATOS CÁLCULO PERS. LITOLÓGICA TERMINAR

VISUALIZAR CÁLCULO AUTOM. OBT.PANTALLA ELIMINACIÓN GRABAR

CÁLCULO AUTOMÁTICO: Este modo reproduce todo el proceso descrito en

la sección 3.3.2, no necesitando intervenir durante su ejecución. Tras la

realización del cálculo automático podemos comprobar los resultados y

confirmarlos, o repetir el cálculo de forma personalizada. Si se acepta la curva

obtenida, pasaremos a la eliminación del desplazamiento y grabación del

nuevo registro.

CÁLCULO PERSONALIZADO: Este modo sólo debe utilizarse cuando la línea

base obtenida de forma automática no sea satisfactoria, aunque el autor lo ha

105

utilizado para optimizar los parámetros que intervienen en el cálculo

automático.

En este proceso el usuario debe seleccionar entre los algoritmos de obtención de

la línea, los signos de las anomalías presentes y la anchura de las ventanas de

cálculo nombradas en la misma sección 3.3.2. Este proceso se puede repetir

hasta obtener la línea base deseada. Los algoritmos de obtención de línea base

que se ofrecen son:

– Extremos Interpolados: Esta opción determina la línea base mediante el

seguimiento de mínimos o máximos con la anchura de ventana que se elija (se

recomienda un valor inicial de 80 puntos), por lo que considera como

anomalías, las variaciones de gran espesor.

– Extremos compensados: Esta opción calcula la línea base de manera similar a

la anterior, pero compensando las variaciones de longitud de onda muy larga.

– Línea media: En el caso de tener anomalías de ambos signos, podremos optar

entre un suavizado (filtrado) de la línea base obtenida o una aproximación de

dicha línea a un polinomio de grado a elegir, según la forma de la curva

(número de curvaturas más uno). En este caso el programa nos advierte del

tiempo de cálculo aproximado en función del grado elegido. Cabe señalar que

el ajuste a una expresión polinómica no siempre produce la aproximación

deseada, pues se realiza mediante el método de mínimos cuadrados.

Posteriormente, y para facilitar futuras operaciones con la línea base, se realizará

una interpolación, que se podrá seleccionar entre lineal o cúbica, de los puntos

obtenidos. Una vez realizada, se representan en la pantalla el registro junto con

la línea base obtenida y con las instrucciones propias de visualización.

OBTENCIÓN EN PANTALLA: Esta opción se utiliza para la obtención gráfica

de la línea base mediante la utilización de las flechas del teclado y el rotor. Al

iniciar este proceso debemos elegir el número de puntos que se van a utilizar

106

para definir la línea base, entre distintas opciones que se presentan en la

pantalla. En función del número que elijamos, tendremos una mayor o menor

definición de la curva. Sobre el dibujo del registro aparecen las instrucciones

pertinentes para la generación de la línea.

LITOLÓGICA: Esta opción debe seleccionarse cuando ya se disponga de la

interpretación litológica del sondeo. En ese caso la obtención de la línea base

no presenta ningún problema.

ELIMINACIÓN: Por último, procederemos a la eliminación de los posibles

desplazamientos o tendencias de dicha línea, optando para ello entre los

siguientes métodos:

– Diferencia Absoluta: Apropiado para registros de Potencial espontáneo o de

Radiación Gamma.

– Diferencia proporcional: Este modo es conveniente para los registros de

resistividad, dadas las características de los desplazamientos que se producen

en este tipo de registros.

En la figura 5.3. se muestra un ejemplo de un registro de P.E. sin corregir, con la

lineabase obtenida así como el registro obtenido tras la eliminación de los

desplazamientos que sufre dicha línea.

107

Figura 5.3 - Cálculo automático de línea base y eliminación del desplazamiento

en el sondeo Guareña 4

GRABAR: Esta opción debe realizarse para grabar el nuevo registro

obtenido.

5.2.6

Programa para segmentación de diagrafías - Este programa realiza la

segmentación de cada uno de los registros efectuados, obteniendo unas series

de segmentos perpendiculares (capas paramétricas) que representan el primer

paso para la obtención de las capas del sondeo.

Después de la entrada del fichero a estudiar, análoga a las anteriores, aparece la

retícula de posibilidades del programa:

TERMINAR

LECTURA DATOS SEGMENTACIÓN CORRECCIÓN GRABACIÓN IMPRIMIR

108

SEGMENTACIÓN: Durante el proceso de segmentación, que se realiza de

forma automática, aparecen en pantalla los resultados de las sucesivas

derivadas y posteriormente el registro segmentado con los valores aparentes

de capa, todos ellos a una escala muy elevada. En la figura 5.4 vemos un

ejemplo de dicha representación.

Figura 5.4 - Distintos estadios durante el proceso de segmentación de

resistividad lateral en el sondeo Coca 2

CORRECCIÓN: Para la revisión de los segmentos obtenidos se presenta la

posibilidad de corrección (K7) a una escala mucho más reducida, próxima a la

de realización del registro. En esta revisión, puede extrañarnos a primera vista

la definición de algunos segmentos correspondientes a capas finas y la

anchura de otros con bandas de transición muy graduales. Estos segmentos

no deben modificarse, a no ser que se observe un claro error en su

determinación, puesto que el proceso de determinación de espesores de capas

que se realiza en el programa , realiza una selección y modificación

más apropiadas.

109

Las instrucciones para la corrección de capas son análogas a las presentadas en

procesos de corrección en pantalla anteriores, en las que la corrección del

valor aparente del parámetro y de la profundidad de cada capa, se ejecuta

mediante las flechas del teclado.

En la figura 5.5. podemos apreciar el resultado del proceso de segmentación

sobre un tramo de un registro de R.N.C., que aparece durante la fase de

corrección.

GRABACIÓN: Los resultados de la segmentación se graban de forma

automática con extensión _C, necesaria para su posterior recuperación.

Figura 5.5 - Intervalo del registro segmentado de G.N. en el sondeo Adanero

5.2.7

Programa para determinación de espesores reales de capas y concordancia de los

registros segmentados - Partiendo de los registros segmentados, este proceso

obtiene la distribución final de las capas geofísicas del sondeo, asignando a cada

una, los valores aparentes de los respectivos parámetros registrados.

110

Dado que este programa necesita los ficheros de los distintos registros

realizados, y tras un directorio de los ficheros grabados en el disco donde se

quieren recuperar los datos, el programa pregunta el prefijo común a todos esos

ficheros, por ej: COCA1. Posteriormente aparece un listado de todos los

parámetros que puede recuperar y a los que debe acceder mediante las flechas o

pulsando |ENTER| e introduciendo Si (-S-) o No (-N-).

TERMINAR

LECTURA DATOS DETERMINACION GRABACION

Una vez recuperados los ficheros comienza el proceso de determinación de las

capas (K7), que se inicia con aquellas definidas por los registros de resistividad

aparente. Durante todo el proceso el programa irá informando del punto donde se

encuentra, ya que éste se realiza considerando desde el total de resistividades

elegidas hasta sólo una resistividad.

Al terminar la determinación de capas (de resistividad o globales), el programa

pasa automáticamente a la revisión de las capas encontradas con posibilidad de

corrección. Si nos encontramos en resistivas, solo podemos modificar los valores

de los registros de resistividad, mientras que en globales solo podremos

modificar G.N. y P.E. Las instrucciones de ayuda para la corrección (Tecla |A|)

son:

PARA DESPLAZAR LA DIAGRAFÍA EN LA PANTALLA MUEVA EL ROTOR

PARA VOLCAR LA PANTALLA A IMPRESORA PULSE |V| PARA SITUAR UN CURSOR A LO LARGO DEL REGISTRO PULSE → o ←

PARA AÑADIR O ELIMINAR CAPAS PULSE |INS C| o |DEL C| PARA CORREGIR SELECCIONE EL PARÁMETRO CON LAS FLECHAS VERTICALES

DESPUÉS UTILICE |+| o |–| PARA CORREGIR AMPLITUDES O UTILICE |I| o |D| PARA CORREGIR PROFUNDIDADES

PARA SALIR DEL MODO -REVISIÓN- PULSE LA BARRA ESPACIADORA

PARA VOLVER AL GRÁFICO PULSE |CONT|

111

Es conveniente realizar una revisión detallada de los límites definitivos, y repetir

el proceso desde capas de resistividad si no queda completamente convencido

de los resultados.

En el proceso de segmentación pueden existir límites iniciales de cada parámetro

que no muestren una variación apreciable de amplitud, y sin embargo, fuercen la

definición de algunos límites definitivos que, aunque sean correctos, no posean

un elevado sentido físico. En esos casos la mejor solución es desplazar esos

límites en la dirección donde se encuentre el límite deseado. En general, sin

embargo, no es conveniente modificar las amplitudes.

En la figura 5.6 se presenta un ejemplo de un tramo de diagrafía tras la

determinación de capas del sondeo.

Caso de realizar alguna corrección el programa volverá a repetir el proceso desde

el punto en el que se encontraba.

Los resultados de las capas paramétricas definitivas se graban con extensión

CAP necesario para su recuperación.

112

Figura 5.6 - Intervalo de capas definitivas en el sondeo Aldeaseca

113

5.2.8

Programa de gestión de los tres procesos de cálculo siguientes: ,

y , corrección de resultados y selección de los niveles

óptimos del sondeo.

Nada más arrancar el programa aparece el menú de opciones siguiente:

ENTRADA DATOS TERMINAR

LECTURA FICHEROS CÁLCULO CORRECCIÓN NIVELES ÓPTIMOS GRABACIÓN

ENTRADA DE DATOS - En primer lugar deben introducirse todos los datos

del sondeo necesarios para los procesos de interpretación, esto es, tipo y

densidad del lodo, diámetros de perforación, conductividades del lodo y

filtrado y temperatura en el sondeo. Durante toda la entrada de datos, van

apareciendo en la pantalla valores de referencia, para los casos donde no se

conozcan los valores solicitados.

Cuando el lodo de perforación no lleve ningún tipo de aditivos se elegirá la

opción -Natural-, cuando lleve aditivos orgánicos la opción -Revert- y cuando

lleve aditivos arcillosos, la opción -Bentonita-. Si no se conoce la densidad del

lodo, ésta se obtiene por aproximación del valor de viscosidad en segundos

medida mediante embudo Marsh.

Los diámetros de perforación pueden modificarse en función de informaciones

obtenidas del sondista sobre la rutina de perforación, por ejemplo: formaciones

abrasivas, tricono desgastado o avance rápido (con carga) amplían el diámetro

real sobre el nominal, mientras que formaciones expansivas lo reducen.

Los valores de conductividad del lodo son indispensables para la ejecución de los

programas de cálculo. Si no se conocen, y dado el rango de variación que

puede presentar, deberán estimarse obligatoriamente por cualquier otro

método.

114

Cuando no se ha realizado el registro de temperatura a lo largo del sondeo, esta

ésta se estima a partir de una temperatura media en superficie y de un

gradiente térmico. Debemos recordar que dicho gradiente no es

necesariamente igual al gradiente geotérmico, pues la homogeneización de

temperatura producida por el sondeo reduce éste considerablemente.

LECTURA FICHEROS - La lectura de ficheros se realiza sobre el fichero de

capas paramétricas del sondeo (extensión _CAP) y salvo que en los datos que

se muestran sobre los registros leídos (nº de capas, profundidades y rangos de

los parámetros) se observe algún error, pasaremos a ejecutar los procesos de

cálculo.

CÁLCULO - Esta opción debe realizarse para los tres procesos de cálculo

mencionados, que se irán mostrando en pantalla en ese orden y que se

seleccionan con la tecla |ENTER|. No obstante, si se considera oportuno, se

puede repetir cualquiera de los procesos moviéndose con las flechas verticales

o con el rotor. Los procesos de cálculo se describen más adelante en cada uno

de los programas.

CORRECCIÓN - El proceso de corrección se ejecuta para el último parámetro

interpretado, mostrando en pantalla los registros iniciales y el resultante de la

interpretación. Las opciones de corrección son similares a las de los programas

de segmentar o de obtención de capas.

NIVELES ÓPTIMOS - La selección de los niveles óptimos es el resultado de

más interés para los responsables del diseño y explotación de los sondeos.

Este proceso se inicia con la introducción del número de metros totales que se

quieren conocer y que debe tomarse inicialmente como el 20% del espesor

saturado del sondeo. Una vez mostrados los resultados y en función de éstos,

podremos ir reduciendo el número total de metros hasta obtener las

características esperadas.

115

GRABACIÓN - Los resultados de la interpretación cuantitativa se graban con

extensión _COL.

5.2.9

Cálculo del contenido en arcillas de las capas determinadas en el sondeo. Los

cálculos desarrollados en este código solo producen buenos resultados siempre

que no nos encontremos con una presencia elevada de materiales especialmente

radiactivos.

El cálculo se inicia con la representación de las curvas de corrección de los

valores leídos por efecto del diámetro del sondeo y densidad del lodo. En la parte

superior del gráfico aparecen los valores aparentes de los distintos niveles y el

valor resultante de la corrección. Internamente se considera un diámetro de

sonda de 4 cm, si la sonda empleada fuera de otro diámetro debe cambiarse

(sentencia 8880).

Posteriormente, tras un estudio de la curva de distribución de G.N., se define de

forma automática el valor correspondiente al máximo de arcillas, que suele estar

en torno al 95%. En la figura 5.7 se presenta un ejemplo del nivel de

discriminación encontrado de radiación gamma natural máxima para las arcillas.

Si en la distribución de las frecuencias acumuladas de G.N. se observa alguna

anomalía (la curva debe mostrar una distribución próxima a la gaussiana), dicho

valor se puede modificar mediante el uso de las flechas.

116

Figura 5.7 - Discriminación de la emisividad de las arcillas en el sondeo Torrecilla

de la Orden 3.

Si se está de acuerdo con el nivel encontrado, el proceso del contenido en arcilla

finaliza pulsando la barra espaciadora.

5.2.10

Determinación de la conductividad y total de sólidos disueltos de las aguas de los

distintos niveles permeables atravesados por el sondeo, bajo la hipótesis de

presentar aquéllas un ión predominante en disolución.

Este proceso se inicia con la corrección de los valores de P.E. por efecto del

diámetro del sondeo y espesor de capa, es decir la obtención de los valores de

P.E.E.. Durante el proceso aparecen en pantalla las curvas de corrección

empleadas y los valores de P.E. y P.E.E. obtenidos. Posteriormente se presentan

los valores de conductividad equivalente obtenidos a partir del P.E.E.

117

A continuación, el programa calcula la conductividad del agua de la formación

utilizando las curvas obtenidas para el tipo de lodo empleado, y que se muestran

en pantalla. Durante este proceso, si para alguno de los niveles el valor de

conductividad equivalente estuviera fuera de los límites de dichas curvas, el

programa avisará indicando con ello que se va a realizar una extrapolación de la

curva para ese nivel.

Para la obtención de los valores de total de sólidos disueltos se debe introducir el

tipo de agua esperado en el sondeo, es decir, el ión predominante en las aguas

extraídas en esa zona. Si no se dispone de esa información deberemos obtenerla

mediante recopilación bibliográfica. Al igual que el proceso anterior, éste se

realiza a partir de curvas experimentales pero, dada la forma que tienen, el

cálculo se puede efectuar interpolando valores (mayor exactitud) o mediante una

recta de regresión (mayor rapidez). En principio se utilizará el primero de estos

modos.

Al final de la interpretación se presenta la posibilidad de cambiar tanto los tipos

de lodo como de agua, para repetir el proceso bajo esas características.

5.2.11

Cálculo de Resistividad Real de los niveles atravesados a partir de, al menos, dos

registros de resistividad aparente convencionales, y de los dos procesos

anteriores.

En primer lugar se efectúa una corrección de los valores aparentes por variación

de temperatura, mostrando los resultados obtenidos para cada uno de ellos.

Si disponemos de más de un registro de resistividad aparente, podremos optar

por tres tipos de cálculo de resistividad real: R.N.L2./R.N.C., Lineal o Asintótico,

siendo, en ese orden, cada uno de ellos más preciso y más lento. En principio se

optará por el tercero.

118

A continuación, el programa realiza la corrección de las resistividades aparentes

por efectos de espesor de capa y resistividades adyacentes, y por efectos de

diámetro del sondeo. Durante estos procesos se muestran en pantalla las curvas

utilizadas y los valores de las correcciones.

Seguidamente se realiza el cálculo seleccionado mostrando en pantalla los

valores obtenidos. Este proceso resulta bastante dilatado en el tiempo, sobre

todo si elegimos el método asintótico, pues éste se realiza mediante

aproximaciones iterativas.

Una vez obtenidos los valores de resistividad real, aparecen en pantalla cuatro

opciones para los valores de factor de cementación y factor de ajuste para

obtener los valores de porosidad. En el caso de tratarse de detríticos

continentales los valores recomendables son m=1.6 y a=0.9 (opción 3).

Por último, se realiza una estimación de los valores de permeabilidad de cada uno

de los niveles a partir de los valores de porosidad, mediante una expresión que

se dibuja en la pantalla en escala logarítmica.

5.2.12

Este programa realiza la asignación litológica de cada una de las capas

determinadas de dos formas distintas: Bien mediante el conocimiento de las

litologías presentes en el detrito obtenido durante la perforación del sondeo, o

bien a través de un proceso de clasificación automática.

AUTOMÁTICA COLUMNA FINAL GRABAR COLUMNA TERMINAR

ENTRADA DATOS ASIG-DIRECTA CÓDIGOS LITO. VIS. COLUMNA

ASIGNACIÓN DIRECTA: Mediante este modo el programa asigna una

litología a cada una de las capas en función de los valores de Rreal y %arcilla.

Internamente se encuentran definidos tanto los nombres de las litologías más

frecuentes en la Cuenca del Duero, como los rangos de variación que éstas

119

tienen para esos dos parámetros. Aunque se ofrece la posibilidad de modificar

tanto las litologías como sus rangos (siguiendo las instrucciones), no es

conveniente realizar dicha modificación, salvo que estemos seguros de ello.

En la figura 5.8 se puede observar la forma de los grupos que se utilizan en el

proceso de asignación litológica directa.

Figura 5.8 - Diagrama de clasificación directa en el sondeo Guareña 4

AUTOMÁTICA: Este proceso determina las clases o grupos

estadísticamente diferenciados bajo la hipótesis de un número mínimo de

grupos. Este número debe ser superior al de litologías que se prevé encontrar

en el sondeo. Una vez determinados los grupos bajo esa condición, y en

función del gráfico resultante, decidiremos si hay que reducir dicho número o

por el contrario se han definido algunos grupos más de los inicialmente

previstos con sentido litológico.

120

En la figura 5.9 se muestran los grupos formados mediante clasificación

automática en uno de los sondeos estudiados.

Figura 5.9 - Grupos formados mediante agrupación automática en el sondeo

Guareña 4.

CÓDIGOS LITOLÓGICOS: Para cualquiera de los dos métodos se realiza una

asignación de códigos numéricos a cada una de las capas.

COLUMNA FINAL: Una vez realizada la interpretación litológica se realiza

una columna definitiva en la que se eliminan los límites que no diferencian

litologías

VISUALIZACIÓN DE LA COLUMNA: La columna obtenida se representa en

pantalla, con posibilidad de corrección y desplazamiento análogas a las de los

otros programas

121

GRABACIÓN: Los resultados de la interpretación litológica se graban con

extensión .LIT.

5.2.13

Realiza la correlación de dos sondeos mediante la correspondencia entre el

carácter y la profundidad de las capas determinadas en cada uno de ellos. El

resultado final es una representación bidimensional con los horizontes de

correlación.

TERMINAR

FICHEROS CORRELACIÓN REPRESENTACION DESPLAZAMIENTO % CORRELACIÓN

CORRELACIÓN: Para la ejecución de este proceso podemos optar por varios

criterios de similitud entre capas, obteniendo distintos niveles de correlación

para cada uno de ellos. Estos son:

I) Litologías idénticas

II) Alternancia entre litología predominante y secundaria

III) Mismo predominante y secundario variable entre gravas y limos o entre

arcillas y margas

IV) Mismo predominante y cualquier secundario excepto granito

En principio optaremos siempre por el primero de ellos.

Una vez realizado el proceso de cros-asociación, se muestra un listado de los

niveles correlacionados y una representación gráfica a escala muy elevada de

los pares de correlación entre las dos columnas.

En la figura 5.10 se presenta, como ejemplo, el resultado obtenido mediante la

cros-asociación entre dos de los sondeos estudiados.

122

Figura 5.10 - Intervalo de niveles correlacionados mediante cros-asociación.

REPRESENTACION: Se pueden ver en pantalla o imprimir los pares de

correlacion entre los dos sondeos completos o por tramos. La representación

completa, aunque carece de detalle, proporciona una visión global de la

correlación.

DESPLAZAMIENTO: Presenta un listado de las variaciones de profundidad

entre las capas correlacionadas que puede ser muy útil a la hora de cuantificar

los buzamientos entre los sondeos correlacionados.

% CORRELACIÓN: Con esta opción obtendremos un listado del porcentaje

total de capas correlacionadas, así como del porcentaje para cada una de las

litologías presentes. Estos valores se dan referidos al número total de

apareciones de cada litología.

5.2.14

Estima la división en zonas o tramos geofísicos de las diagrafías, entendiendo por

éstos los conjuntos de capas con amplitudes y variaciones de los parámetros, y

espesores característicos y diferenciadores del resto. Este proceso está

123

encaminado a alcanzar una mayor distancia en los procesos de correlación, y a la

obtención de columnas litológicas tipo.

El programa accede directamente a la lectura de datos, donde deberemos

introducir el nombre de fichero del parámetro más interesante para su zonación

(generalmente R.N.C.), y posteriormente el usuario podrá repetir el proceso con

los parámetros que desee. Dado que necesita recuperar también la curva

segmentada, el programa asigna automáticamente el nombre de dicho registro

(extensión _C). Después de la recuperación aparece el menú de opciones:

TERMINAR LISTADO

LECTURA DATOS ZONACIÓN CORRECCIÓN GRABACIÓN IMPRIMIR

ZONACIÓN: El proceso de zonación se inicia a partir del registro ya

segmentado, por lo que si intenta realizarlo con anterioridad a la

segmentación, el programa anulará el intento. En este proceso se representan

la curva segmentada, la curva con los valores de varianza a lo largo del

registro, la curva con los valores de espesores medios también a lo largo del

sondeo y finalmente los tramos definitivos con los valores medios del registro

en cada uno de ellos. La parte de delimitación de los tramos de este programa

es idéntica a la elaborada en el programa , por lo que no se

describe aquí.

124

Figura 5.11 - Tramos determinados en el sondeo Moraña 2.

CORRECCIÓN: Para la revisión de los tramos se ha elaborado una

posibilidad de corrección que, dado el número relativamente bajo de los

mismos, se realiza moviéndose con el rotor y simplemente eliminando o

añadiendo límites.

Tanto después del proceso de zonación como de cualquier posible corrección, el

programa efectúa un nuevo cálculo de los parámetros citados entre los límites

definidos.

LISTADO: En cada momento se puede ejecutar una impresión de las zonas

obtenidas junto con los valores de varianza, frecuencia y amplitud media en

cada uno de los tramos. Los valores de valor medio aparecen normalizados

sobre los valores extremos iniciales del registro, y los de varianza entre 0 y 1.

125

GRABACIÓN: Los resultados de la grabación y la segmentación se graban

con extensión .Z necesarios para su posterior recuperación.

5.2.15

Correlación de los tramos de dos registros de un mismo parámetro realizados en

dos sondeos diferentes. El programa se inicia directamente con la recuperación

de los registros que se quieren comparar junto con los de los tramos definidos en

ellos, previa introducción de los prefijos de los dos sondeos y del parámetro que

se desea estudiar.

TERMINAR

LECTURA FICHEROS CROS-CORRELACION ASOCIACION PANTALLA IMPRIMIR

CROS-CORRELACIÓN: Este proceso realiza la convolución de cada uno de

los tramos del primer registro con todos los tramos del segundo registro,

normalizando los valores entre cero y uno.

ASOCIACIÓN: En este modo el programa busca los pares de tramos más

similares mediante la comparación de los valores definidos de varianza,

espesor y amplitud media en cada uno de ellos.

IMPRIMIR: Los resultados de la correlación encontrada se imprimen en

forma de dos tablas matriciales como uno de los resultados añadidos para el

sistema de correlación final.

PANTALLA: Los tramos de cada sondeo y los pares de correlación

determinados se muestran en la pantalla, con la posibilidad de anular o definir

nuevos pares de correlación. En la figura 5.12 se muestra un ejemplo de los

pares de correlación definidos entre dos de los sondeos estudiados.

126

Figura 5.12 - Correlación de tramos entre los sondeos Langa y Moraña 1

5.2.16

Representación gráfica, en impresora o trazador, de las diagrafías con la columna

litológica y los niveles óptimos para la colocación de tubería filtrante. El menú del

programa es el siguiente:

TERMINAR

ENTRADA DATOS LECTURA FICHEROS TRAMAS TRAZADOR IMPRESORA

ENTRADA DE DATOS: Este programa se caracteriza por la exhaustiva

entrada de datos que forman parte del cabecero de representación de las

diagrafías, y que aparece en la pantalla como se muestra a continuación:

127

Nombre del sondeo Proyecto

Fecha de registro Titular

Municipio Provincia

Escala vertical por cm Intervalo de marcas de profundidad

Profundidad inicial de registro Profundidad final de registro

Sistema de perforación Entubación

Diámetro de perforación (1) Profundidad de perforación (1)

Diámetro de perforación (2) Profundidad de perforación (2)

Tipo de Lodo Conductividad del Lodo

Profundidad del nivel de lodo Profundidad del nivel freático

Para continuar pulse |CONT|

LECTURA DE FICHEROS: Se pueden representar hasta un máximo de seis

registros, más la litología, para cuya recuperación solo necesitamos introducir

el prefijo de los fichero de ese sondeo (<5 dígitos). El programa muestra los

parámetros que se pueden recuperar y añade las extensiones correspondientes

de cada parámetro y de la litología (extensión _LIT).

Dentro de esta opción podemos decidir si los rangos de representación se

adoptan de forma automática, tomando los valores extremos de cada

parámetro o si, por el contrario, se desea fijar dichos rangos por razones

como, por ejemplo, la uniformidad en la representación de varias diagrafías. Si

opta por esta opción se deben introducir cada vez dichos rangos.

TRAMAS: Aunque se ofrece la posibilidad de modificarlas, no se considera

necesario, dado que sólo se pueden utilizar las definidas por alguna tecla,

habiéndose elegido como óptimas, las siguientes tramas para la representación

de las distintas litologías:

128

0 SIN ASIGNAR 7 MARGAS LLLLLLLL

1 GRAVAS oooooo 8 CALIZAS HHHHHH

2 ARENAS .......... 9 YESOS ^^^^^^^^^

3 LIMOS ////////// 10 MATERIA ORGANICA sssssssss

4 ARENAS ARCILLOSAS .-.-.-.-. 11 GRANITO ALTERADO +.+.+.+

55 ARCILLAS ARENOSAS -.-.-.-.- 12 GRANITO +++++

6 ARCILLAS ---------- 13 OTROS xxxxxxxxx

TRAZADOR - IMPRESORA: Estas dos opciones se eligen en función del

periférico donde desea representar las diagrafías. Para cada caso el programa

carga el subprograma correspondiente mostrando las instrucciones pertinentes

de manipulación de cada uno de ellos.

129

CAPÍTULO 6 APLICACIÓN A LA HIDROGEOLOGÍA EN EL SUR DE LA CUENCA DEL DUERO

6.1 SELECCIÓN DE SONDEOS

Para la realización de esta tesis doctoral se han seleccionado un total de 27

sondeos de más de 63 en los que este autor ha realizado la testificación

geofísica en la cuenca del Duero.

Los criterios de selección utilizados han sido, que los sondeos alcanzaran una

profundidad superior a 400 metros, y que mostrasen una distribución geográfica

apropiada para establecer un perfil de correlación.

En la tabla 6.1 se presentan los nombres toponímicos de los sondeos

seleccionados con los parámetros registrados, la profundidad y la fecha de

ejecución, ordenados según el perfil antes citado de Noroeste a Sureste.

La situación de los sondeos seleccionados se presenta en el plano de la figura

6.6, donde se ha trazado un perfil Noroeste-Sureste para realizar posteriormente

una sección de correlación. En esa figura se observa al Noroeste una fuerte

agrupación de sondeos que va dispersándose hacia el Este en forma de abanico,

lo que nos permitirá realizar una evaluación muy completa del alcance de la

correlación.

130

TABLA 6.1

Sondeos ordenados según el corte Noroeste-Sureste

SONDEO PARÁMETROS METROS FECHA

Guareña 1 GN,PE,RME,RNC,RNL, 476 10/07/86

Guareña 2 GN,PE,RME,RNC,RNL, 495 06/06/86

Guareña 3 GN,PE,RME,RNC,RNL,RLAT 555 20/02/87

Guareña 4 GN,PE,RME,RNC,RNL,RLAT 544 10/03/87

Guareña 5 GN,PE,RME,RNC, , 530 28/03/87

Guareña 6 GN,PE,RME,RNC,RNL,RLAT 495 09/04/87

Guareña 7 GN,PE,RME,RNC,RNL,RLAT 522 15/05/87

Guareña 8 GN,PE,RME,RNC,RNL, 505 14/05/87

Guareña 9 GN,PE,RME,RNC, , 515 21/07/87

Guareña 10 GN,PE,RME,RNC,RNL,RLAT 510 21/09/89

Torrecilla 3 GN,PE,RME,RNC,RNL, 620 02/10/85

Armuña 3 GN,PE,RME,RNC,RNL, 516 21/08/86

Armuña 4 GN,PE,RME,RNC,RNL,RLAT 396 04/09/87

Armuña 5 GN,PE,RME,RNC, , 391 02/10/87

Armuña 6 GN,PE,RME,RNC,RNL,RLAT 405 15/04/88

Madrigal 3 GN,PE,RME,RNC, , 591 15/07/87

FuentelSol 1 (piezómetro) GN,PE,RME,RNC,RNL, 536 05/09/90

FuentelSol 2 (sondeo) GN,PE,RME,RNC,RNL, 460 05/09/90

Moraña 1 (piezómetro) GN,PE,RME,RNC,RNL, 600 18/07/90

Moraña 2 (sondeo) GN,PE,RME,RNC,RNL, 625 30/07/90

Goda GN,PE,RME,RNC,RNL,RLAT 497 02/11/87

Aldeaseca GN,PE,RME,RNC, , 550 23/03/90

Langa GN, ,RME,RNC, , 590 05/12/88

Nava de Arévalo GN,PE, ,RNC, ,RLAT 495 01/11/86

Coca 1 GN,PE,RME,RNC,RNL,RLAT 447 04/11/87

Coca 2 GN,PE,RME,RNC, , 447 12/02/88

Adanero GN,PE,RME,RNC,RNL, 520 01/10/86

131

Fig. 6.1 – Plano de situación de los sondeos

132

6.2 MARCO GEOGRÁFICO Y GEOLÓGICO

6.2.1 Situación Geográfica

La zona considerada en esta tesis se sitúa sobre la margen izquierda del Duero,

entre la cuenca del río Voltoya al Este y la cuenca del río Guareña al Oeste, y

entre el río Duero y las estribaciones del Sistema Central que constituyen sus

límites Norte y Sur respectivamente.

Esta zona abarca el S de la provincia de Valladolid, NE de Salamanca, SE de

Zamora, SE de León, NW de Segovia y N de Ávila. La localización en mapas

topográficos escala 1:50.000 es la siguiente:

426 427 428

453 454 455

479 480 481

cuyos vértices tienen las coordenadas (referidas al meridiano de Madrid)

siguientes:

X : 5º30'17.2"

Y : 41º20'04.7" (31TTL9079)

X : 4º31'10.6"

Y : 41º20'04.7" (30TUL7377)

X : 5º29'34.3"

Y : 40º54'38.8" (30TTL9030)

X : 4º31'10.7"

Y : 40º54'38.8" (30TUL7230)

Las cotas se situan entre 800 y 900 metros de altitud, descendiendo

progresivamente desde el borde de la Sierra hasta el río Duero con una pendiente

media de 4 por mil.

La situación de la zona de estudio dentro de la cuenca del Duero y de ésta dentro

de la Península aparece en la figura siguiente:

133

Figura 6.2 - Situación del marco de estudio dentro de la Península.

6.2.2 Marco Geológico

La cuenca del Duero está enclavada sobre el Macizo Hespérico, originándose a

finales del Cretácico o principios del Paleoceno como consecuencia de la

removilización alpina de fracturas Tardihercínicas. Esta cuenca es asimétrica

debido al comportamiento geodinámico de sus bordes.

La subsidencia diferencial es muy notable y el espesor de los materiales

cenozoicos que rellenan la depresión aumenta hacia el Este, donde la base del

Terciario se encuentra a unos 2.500 m. La actividad tectónica del borde Norte ha

dado lugar a acumulaciones de hasta 3.000 m de sedimentos. En la zona de

estudio, tal y como refleja la figura 6.3, el espesor medio es de unos 500

metros.

134

Figura 6.3 - Gráfico de Isobatas en el Terciario Detrítico - I.T.G.E. (1980)

La cuenca está enmarcada por sistemas montañosos de entidad geográfica y

litológica muy distinta: Al Sur y Suroeste está limitada por rocas plutónicas y

metamórficas del Sistema Central. En el borde occidental, por rocas plutónicas

en la mitad Sur, mientras que en la mitad Norte, el basamento son rocas

metamórficas y sedimentarias del Precámbrico y Paleozoico. El borde Norte lo

constituye la Cordillera Cantábrica, formada por rocas siliciclásticas paleozoicas

en la mitad occidental y predominantemente carbonatadas en la parte oriental. El

borde oriental, está constituido por rocas carbonatadas y siliciclásticas

mesozoicas de la Cordillera Ibérica. La gran variedad litológica de los materiales

que forman estas unidades geológicas, actúan como rocas madres de los

materiales del relleno.

135

6.2.3 Historia Geológica

Básicamente dentro de la zona elegida y atendiendo a la litología y el ambiente

en el que se generaron los sedimentos terciarios, podemos hacer una división en

cinco ciclos. En la tabla 6.2 se presenta la cronología de los mismos que se

detallarán a continuación.

TABLA 6.2 - CICLOS GEOLÓGICOS DEL TERCIARIO

Cronología

QUINTO CICLO MIOCENO SUPERIOR --- PLIOCENO NEÓGENO

CUARTO CICLO OLIGOCENO SUPERIOR - MIOCENO SUPERIOR TERCER CICLO EOCENO MEDIO ------- OLIGOCENO SUPERIOR PALEÓGENO SEGUNDO CICLO EOCENO INFERIOR ---- EOCENO MEDIO PRIMER CICLO PALEOCENO ---------- EOCENO INFERIOR

En el comienzo de la cuenca existieron numerosas subcuencas independientes

separadas por umbrales, que evolucionaron de forma algo diferente como la de

Ciudad Rodrigo.

Antes de comentar dichos ciclos señalaremos que en los tres primeros y según

sus características estratigráficas, los afloramientos pueden agruparse en dos

sectores: Sector de Salamanca y Sector de Zamora.

PRIMER CICLO

Se caracteriza por un desarrollo de potentes suelos de alteración ferralítica. Los

relieves recién creados comienzan a destruirse rellenándose la Cuenca (o

subcuencas) mediante un mecanismo de abanicos aluviales en un clima

subtropical húmedo.

136

La diferenciación según los sectores citados es:

- Salamanca. Corresponde a la formación detrítica de Salamanca. Se trata de

conglomerados, areniscas y fangos que están cementados por hierro, sílice y

caolinitas. La potencia máxima según los datos de los sondeos es de 120 m.

- Zamora. Compuesto por tres conjuntos de facies. Uno de gravas y dos de

areniscas localizadas al N y S, por debajo del conjunto anterior.

En ambos sectores el ambiente fluvial en que se depositaron representan ríos

trenzados de gravas y arenas, con canales jerarquizados de poca profundidad,

muy amplios e inestables, no activos en toda su anchura.

La evolución paleogeográfica es la consecuencia de una fase de inestabilidad en

los bordes y, bajo condiciones tropicales, el inicio del desmantelamiento de los

potentes suelos lateríticos desarrollados sobre el Macizo Hercínico. El transporte

y la sedimentación se realiza en forma de abanicos aluviales, pero con pequeñas

diferencias en función del sector que consideremos:

- Salamanca.- Se encuentran facies de gravas encima de canales arenosos, lo

que indica reactivación del borde de este sector.

- Zamora. Evolución sedimentaria continua pasando de facies de gravas a canales

arenosos.

SEGUNDO CICLO

Continúa el relleno de la cuenca y progresivamente el medio va perdiendo energía

instalándose localmente ambientes restringidos de "playa-lake" (laguna efímera)

en los que se depositan margas y calizas. El clima es Subtropical o intertropical

húmedo con períodos de aridez. Durante este momento la cuenca es expansiva,

situándose sus bordes muy alejados, hacia el O y S respecto al ciclo anterior.

137

Al igual que el ciclo anterior conviene hacer una diferenciación entre los sectores

de Salamanca y Zamora.

- Salamanca: Representado por la Formación Areniscas de Cabrerizos. La

geometría de los cuerpos canalizados arenosos presenta una evolución

temporal, pasando de lenticular en la base a tabular en el techo.

- Zamora: Presenta gran variedad litológica: areniscas, limolitas, arcillas, margas

y calizas. En general, representan un complejo sedimentario enmarcado en la

zona distal de dos sistemas aluviales procedentes del SO y NO. Las calizas

representan el ambiente más restringido, probablemente un lago de tipo "playa

lake" situado entre los dos lóbulos de dichos sistemas.

Este ciclo está más completo en la región Zamorana. Allí se hallan registradas las

facies más distales de dos sistemas de abanicos aluviales enraizados en el NO y

SO, con amplias llanuras de inundación que hacia el E pasan a depósitos

lacustres. En Salamanca, en cambio, la sedimentación se realiza por sistemas

fluviales de arenas de baja sinuosidad procedentes del SO.

TERCER CICLO

Se inicia un nuevo ciclo sedimentario, con la consecuente reactivación del

relieve, pudiéndose atribuir, con reservas, a las fases pirenaicas. Dicho ciclo

termina con el desarrollo de ambientes restringidos (lagunas efímeras) y facies

transicionales a fluviales en la zona de Zamora-Salamanca. El clima es semejante

al resto del Paleógeno pero con períodos de aridez muy frecuentes (costras

calcáreas).

Este ciclo se caracteriza por una retracción de la cuenca. Existe una reactivación

de los borde a favor de las direcciones tardihercínicas, que afecta a los depósitos

del ciclo anterior.

- Salamanca: Representado por la formación de Aldearrubia de fuerte color rojizo.

Es el resultado de la sedimentación de un sistema fluvial de arenas y limos que

138

fluía hacia el N-NE desde un área metamórfica. Hacia el Norte, el techo de

esta unidad se interdenta con los depósitos del tramo Superior de Zamora.

- Zamora: Compuesto por gravas, arenas, limos y en ocasiones costras

carbonatadas. En general se diferencian dos zonas en cuanto a las

características internas de los depósitos: La occidental formada por extensos

cuerpos tabulares de areniscas edáficas conglomeráticas y la más oriental

cuyos depósitos son areniscas y limos ordenados en secuencias típicas de

ambientes fluviales.

CUARTO CICLO

A finales del Mioceno inferior comienza a producirse el plegamiento fundamental

de los bordes de la Meseta. El Paleógeno y Mioceno inferior se adaptan a las

deformaciones del zócalo mediante flexiones (borde Occidental) y pliegues (borde

Norte). Se produce un levantamiento general de los relieves circundantes,

apareciendo el Sistema Central, con lo que queda perfectamente individualizada

la Meseta. La Cuenca del Duero tiene en ese momento una configuración muy

parecida a la actual.

Esta actividad tectónica es atribuible a la 1º Fase Staírica o Neocastellana, como

consecuencia de la cuál se inicia un nuevo gran ciclo sedimentario que termina

con la sedimentación de facies lacustres (calizas del Páramo inferior). El relleno

se realiza a partir de abanicos aluviales de baja pendiente aumentando la

extensión de los ambientes de playa asociados, hacia el techo de la serie. En el

borde Sur se depositan materiales arcósicos por la influencia del área madre

granítica.

La unidad inferior detrítica (Tierra de Campos) se deposita en abanicos aluviales

de muy baja pendiente. Predominan las facies distales y facies de llanura aluvial

con períodos de exposición subaérea. Localmente se desarrollan en el Centro de

la cuenca facies de playas (facies Dueñas). El relleno de Tierra de Campos y

139

equivalentes nivelan totalmente la Cuenca, no existiendo a partir de este

momento subcuenca alguna.

Posteriormente (Vallesiense), el clima se hace más árido. Los abanicos aluviales

se desarrollan en los bordes pasándose rápidamente a facies distales y/o de

llanuras aluvial. En dichas llanuras se instalan ríos efímeros que evolucionan de

trenzados a meandriformes hacia el centro de la Cuenca, en donde se dan

ambientes de playas más o menos salinos, cambiantes en el tiempo y en el

espacio, con etapas de mayor generalización del ambiente lagunar y facies de

ciénagas en la base, que constituyen la facies de las Cuestas. Hacia el techo y

en el tránsito al Páramo inferior el clima se hace más húmedo, en el ambiente

lagunar está más generalizado.

Este ciclo ha sido estudiado con más detalle en la bibliografía, dando como

resultado una subdivisión del mismo. En su parte inferior por la facies de Pozanco

y la facies de San Pedro del Arroyo y sobre estas se encontrarían la facies de

Cuestas al Norte y Peromingo al Sur. Esta subdivisión esquemática aparece

representada en la figura 6.4.

140

Figura 6.4 - Esquema estratigráfico (Ríos 1983, Tomo II)

* Facies de Pozanco: Está constituida por unos 120 m de fangos arcósicos y

arcosas gruesas cementadas por carbonatos que ocasionalmente contienen

clastos de calizas/dolomías. Los niveles arenosos y conglomeráticos

cementados tienen geometría de canal, con rellenos tractivos. Los fangos

arcósicos están escasamente organizados, observándose ocasionalmente

cicatrices erosivas canaliformes. Se trata de facies medias de abanicos con

episodios más o menos canalizados sobre coladas.

* Facies de San Pedro del Arroyo: En esta facies pueden distinguirse al menos

dos conjuntos diferentes deposicionales de procedencia plutónica y

metamórfica:

– Entre las unidades de procedencia de materiales plutónicos se distinguen

en cuanto a su composición de proximales a distales, las unidades de

Calzadilla, Peñalba, Villaflor y San Pedro del Arroyo (s.s.).

– En el conjunto de unidades de procedencia metamórfica se distinguen

principalmente las unidades Escalonilla (coladas de abanicos torrenciales),

141

Puente Runel (facies distales de abanicos en tránsito a llanura aluvial con

episodios fluviales) y Villanueva de Adaja (depósito de coladas de fangos).

* Facies de las Cuestas y Peromingo: Sobre las unidades antes descritas, y

con cierto cambio lateral con sus niveles superiores se sitúa la Facies de las

Cuestas y sus facies marginales constituidas en el Norte por los abanicos de

Aviñante, Guardo y Cantoral. En el borde Sur de la Cuenca los equivalentes

laterales de la Facies de las Cuestas son en parte los términos superiores de

las Facies de Puente Runel y San Pedro del Arroyo y, sobre todo, la Facies

Peromingo, formada por fangos arcósicos arcillosos, con arena y cantos

dispersos de procedencia plutónica y metamórfica, en los que se intercalan

paleocanales que corresponden a depósitos fluviales poco sinuosos.

La facies de Pozanco, aflorante en el sector Sur de la Cuenca pueden atribuirse al

Oligoceno superior-Mioceno inferior ya que se sitúan discordantes sobre facies

de edad paleógena (Unidad de Torneros), semejantes a las unidades silíceo-

ferruginosas de Salamanca y Zamora. El resto de las facies y unidades

pertenecen en su mayor parte al Mioceno medio y superior. El límite Mioceno

medio-superior se sitúa unos metros por encima del límite inferior de la facies de

las Cuestas, en el centro de la cuenca.

QUINTO CICLO

La superficie de colmatación del cuarto ciclo se ve rota y deformada por una fase

tectónica generalizada (Fase Rodénia-Iberomanchega), dando origen a amplios

pliegues que en ocasiones se acompañan de estructuras menores. Como

consecuencia, en el interior de la Cuenca aparecen procesos erosivos asociados.

Se inicia un nuevo ciclo sedimentario, formado por depósitos fluviales de arenas

y subfacies de llanura de inundación. A continuación se instalan facies margosas

de playas, seguidas de una nueva expansión de los ambientes lacustres

generalizados (Calizas superiores del Páramo).

142

Una nueva fase tectónica (Iberomanchega 2), más suave que la anterior, da

origen la consecuente superficie de erosión/acumulación. Esta superficie está

fosilizada por depósitos de "costras láminas bandeadas y multiacintadas con

arenas limosas rojizas".

En la zona de Cardeñosa y Nava de Arévalo se sitúan depósitos pliocenos

correlativos a este ciclo en relación con una superficie de colmatación pre-raña.

143

6.2.4 Hidrogeología

La zona de estudio se encuentra situada en la margen izquierda del río Duero, en

el sector central de la región hidrogeológica de "Los Arenales" que se extiende al

Sur del Duero, entre este río y el Sistema Central, aunque al W penetra

ligeramente en la región Sur-Oeste. Más concretamente, se emplaza en una zona

comprendida por las cuencas hidrográficas medias de los ríos, Voltoya, Adaja,

Zapardiel, Trabancos y Guareña.

Figura 6.5 - Regiones hidrogeológicas y ríos - I.T.G.E. (1980).

ACUÍFEROS SUPERFICIALES - Dentro de la clasificación de los acuíferos

superficiales, la zona de estudio se encuentra situada en el sistema acuífero 4

(área Moraña-Pinares). Los espesores de las capas de arena son pequeños, en

general inferiores a 5 metros y rara vez superiores a 15 metros. Sólo una tercera

144

parte de la misma está cubierta por arenales propiamente dichos,

correspondiendo el resto a los afloramientos arcillo-arenosos de la facies Tierra

de campos. A escala local cada arenal o lentejón de arena constituye un

acuífero, sin embargo, a efectos hidrogeológicos regionales se puede considerar

que existe un manto acuífero libre, continuo y heterogéneo.

ACUÍFEROS PROFUNDOS - El Terciario detrítico está formado por capas

lenticulares de arenas o gravas, englobadas en una matriz más o menos

semipermeable. En conjunto se comporta como un gran acuífero heterogéneo y

anisótropo, confinado o semiconfinado según zonas. Su espesor crece

rápidamente desde los bordes hacia el centro, estimándose en más de 1000

metros en las proximidades del río Duero.

Prácticamente toda la recarga procede de la infiltración del agua de lluvia de los

acuíferos superficiales. En líneas generales el flujo subterráneo se dirige desde los

bordes hacia el centro de la cuenca, actuando los principales ríos como vías de

drenaje. Estos ríos están muy poco encajados, penetrando poco en el acuífero,

de modo que se produce un flujo tridimensional: Cerca del Sistema Central el

agua sigue una trayectoria descendente y, después de un recorrido horizontal

más o menos largo, se inicia una trayectoria ascendente hasta alcanzar el río

Duero directamente o por medio de los cuaternarios.

6.2.5 Calidad química del agua subterránea

ACUÍFEROS SUPERFICIALES - En los arenales, el agua superficial es de bajo

contenido en sales, aunque no es potable debido a su alto contenido en nitratos

(a veces más de 100 p.p.m.) procedentes de los abonos agrícolas. Es interesante

señalar que el agua contenida en los arenales es siempre de mejor calidad

química que la de los acuíferos terciarios subyacentes.

TERCIARIO DETRÍTICO - En términos muy generales, se puede considerar la

Cuenca Terciaria del Duero dividida en dos partes en cuanto a la calidad del

agua:

145

– Áreas de recarga, situadas en líneas generales en una extensa franja

periférica incluyendo los interfluvios de los ríos. En este grupo se encuentra

la mayor parte de la zona de estudio.

– Áreas de descarga, que coinciden con una extensa franja central, con eje

en el río Duero. Aunque representa el límite más al Norte de nuestra zona de

estudio, algunos de los sondeos estudiados pueden englobarse en este área.

En la primera de estas zonas, las aguas son, en general, bicarbonatadas calcio-

magnésicas. Los cloruros permanecen por debajo de 50 p.p.m. y los sulfatos

inferiores a 100 p.p.m. Los contenidos en nitratos no llegan a 30 p.p.m. Se

trata, por consiguiente, de aguas poco cargadas en sales, convenientes para el

consumo humano según el Código Alimentario Español (C.A.E) y que se pueden

utilizar para regadío sin problemas. Los valores de conductividad suelen ser

inferiores a 500 µmho/cm (e incluso inferior a 150 µmho/cm en el borde Norte).

Dentro de la zona central por ser una zona de descarga, se encuentran aguas

relativamente cargadas en sales. Las aguas son cloruradas hacia el NO, con

concentraciones en cloruros de hasta 2000 p.p.m. En el NE, en cambio,

predominan las aguas sulfatadas, alcanzándose en Tordesillas concentraciones

de 2000 p.p.m. de sulfatos. La conductividad es en general superior a 1000

µmho/cm. con máximos de hasta 3000 y 6000 µmho/cm.

146

Figura 6.6 - Tipos de aguas y conductividades en Terciario detrítico - I.T.G.E

(1980)

147

6.3 RESULTADOS OBTENIDOS

En el Anexo 2 de este trabajo se entregan las presentaciones gráficas de las 27

diagrafías realizadas por el autor después de las distintas elaboraciones descritas

en el capítulo 3.

Como puede verse, los tratamientos que se realizan durante el proceso de

digitalización dan como resultado unas curvas de muy buena calidad en lo que a

continuidad se refiere. Por otro lado, no se aprecian valores de decalajes

significativos entre los registros, confirmando el buen funcionamiento de las

correcciones de decalajes realizadas.

También debemos señalar la ausencia de variaciones globales en las posibles

líneas bases de los distintos parámetros. No obstante, si realizamos un análisis

de detalle, podemos observar algunos ligeros desplazamientos en los registros de

resistividad y radiación gamma, debidos a variaciones locales de resistividad y

densidad del lodo a lo largo del sondeo (decantación,...) que no se han corregido

con la misma efectividad que los registros de P.E. La única forma de evitar los

efectos de estos fenómenos sería partir de los registros de conductividad y

densidad del lodo.

Si nos fijamos en los rangos de variación de los distintos parámetros, vemos que

los valores aparentes no coinciden en general, aunque si los valores relativos.

Este rasgo se aprecia aún más en los registros de radiación gamma natural

realizados con equipos distintos. Así, en los registros realizados con el equipo

Geolog, calibrado según norma A.P.I., los valores máximos son claramente

mayores que en los realizados con el equipo Mount-Sopris. No obstante, tal y

como se realiza el proceso de interpretación, este efecto no va a influir en los

resultados de la interpretación cuantitativa.

Sobre cada una de las capas paramétricas determinadas a lo largo del sondeo se

ha realizado el proceso de interpretación cuantitativa descrito en la sección 4.1,

obteniendo los valores de contenido en arcilla, resistividad, permeabilidad y

148

conductividad y total de sólidos disueltos del agua de la formación de cada uno

de ellas. Aunque estos procesos se realizan para todas las capas, sólo se

presentan los valores obtenidos en los niveles óptimos de cada sondeo.

A partir de la columna paramétrica de cada sondeo se ha efectuado el proceso de

interpretación litológica descrito en la sección 4.2, obteniendo una nueva

columna litológica en la que, tal y como se explicó en esa misma sección, no

aparece un mismo número de capas.

6.3.1 Interpretación litológica

En la parte central de cada registro (Anexo 2) aparecen las columnas litológicas

obtenidas como resultado de la interpretación y asignación realizada.

El 80% de las litologías determinadas corresponden a arenas, arenas arcillosas

arcillas arenosas y arcillas en proporciones bastante similares en torno al 20%. El

resto de las litologías son limos (entre 4 y 12%) y gravas (entre 3 y 8%) aunque

en algunos sondeos aparecen un 1% de niveles de margas y -arenas radiactivas-.

En cuanto a las capas interpretadas como gravas, éstas vienen a coincidir con

unas características granulométricas (de visu) muy llamativas, esto es, con una

mayoría de granos de tamaño entre 2 y 4 mm que le confieren un carácter muy

uniforme. También se debe señalar la posible presencia de areniscas y

conglomerados, no contemplados en la clasificación litológica que se utiliza en

este estudio, en niveles diferenciables por su elevada resistividad y una ligera

disminución de permeabilidad.

Otro de los aspectos destacables de estas columnas es la poca presencia de

margas y la ausencia de términos como calizas y yesos. Estos dos últimas

litologías, presentes en otras zonas de la cuenca del Duero, no suelen aparecer

tan al Sur de la cuenca por lo que no debe extrañarnos dicha carencia en las

columnas interpretadas.

149

Una vez obtenidas las columnas litológicas (con los resultados de la

interpretación cuantitativa), se procedió a la elección de los intervalos óptimos

para la colocación de tubería filtrante. Para ello se han tomado de partida los

niveles óptimos seleccionados y además se han tenido en cuenta ciertas

imposiciones constructivas de los sondeos (altura de filtros, total de tubería

filtrante, nivel freático, ...etc.) que no se citan pues son de índole muy distinta a

los objetivos de este trabajo.

Estos intervalos se presentan en forma de tabla dentro del mismo anexo y en la

tabla 6.3 se muestra un resumen de los tramos filtrantes definidos para cada

sondeo, en la que se ha incluido el porcentaje que representan sobre el rango de

profundidades de ubicación para posteriores análisis comparativos hidráulicos.

150

TABLA 6.3 - INTERVALOS RECOMENDADOS PARA TUBERÍA FILTRANTE

SONDEO RANGO DE PROFUNDIDAD

Nº DE FILTROS

METROS TOTALES %

Guareña 1 58.0-445.0 26 74 17

Guareña 2 29.0-467.0 32 104 22

Guareña 3 64.5-471.0 26 58 12

Guareña 4 97.5-478.5 20 50 10

Guareña 5 71.0-495.0 19 48 10

Guareña 6 92.0-464.5 20 50 10

Guareña 7 106.0-491.5 21 78 16

Guareña 8 101.5-461.5 19 62 13

Guareña 9 260.0-498.0 17 40 8

Guareña 10 74.0-496.5 22 78 16

Torrecilla 3 106.0-592.0 40 105 17

Armuña 3 82.0-420.0 34 144 34

Armuña 4 62.0-359.0 19 55 15

Armuña 5 74.5-213.0 15 48 22

Armuña 6 57.5-283.0 19 70 25

Madrigal 3 93.0-483.0 19 56 11

Fuentelsol 1 (piezómetro) 108.0-370.0 15 64 17

Fuentelsol 2 (sondeo) 106.0-366.0 20 60 16

Moraña 1 (piezómetro) 51.0-494.0 30 86 17

Moraña 2 (sondeo) 58.0-610.0 30 88 14

Goda 80.0-483.0 18 42 9

Aldeaseca 238.0-533.0 21 44 8

Langa 52.0-521.2 31 84 16

Nava de Arévalo 75.5-487.5 24 48 10

Coca 1 95.0-388.0 14 34 9

Coca 2 129.0-425.0 11 32 8

Adanero 70.0-461.5 18 38 8

151

La elevada diferencia entre los porcentajes de filtros elegidos en cada sondeo

puede justificar, además de otros factores, los distintos comportamientos

hidráulicos de éstos, aunque las características físicas obtenidas de la

interpretación de las diagrafías sean similares.

6.3.2 Calidad del agua en las capas permeables

Sobre los niveles seleccionados se ha realizado el proceso de obtención de los

valores de conductividad y total de sólidos disueltos del agua de la formación de

cada uno de ellos. Estos valores se presentan dentro del Anexo 2, en forma de

tabla para cada sondeo, y en la tabla 6.4 se entrega un resumen con los valores

medios del conjunto de los niveles para cada uno de los sondeos estudiados.

El primer aspecto que debemos señalar es el bajo valor absoluto de las anomalías

de P.E.E. que se producen, entre -30 y 40 mV, en toda la zona de estudio, con

un valor medio de 7.5 mV por sondeo, lo cuál supone un error relativo en la

medida elevado (~20%), incluyendo los errores en la determinación de la línea

base. Este efecto se deriva principalmente de la utilización de lodos resistivos.

Una característica que destaca inicialmente es el reducido rango de los valores

medios en los distintos sondeos lo que implica una fuerte homogeneidad en toda

la zona estudiada. Por el contrario, las variaciones relativas tanto dentro de cada

sondeo, sobre todo en aquellos donde se producen inversiones de P.E., como

entre los resultados entre distintos sondeos es muy elevada, llegando a alcanzar

el 100%.

Otro rasgo que se debe resaltar es la distribución de conductividad con la

profundidad encontrada en cada sondeo. En los sondeos situados al Noroeste de

la zona de estudio la conductividad mejora con la profundidad, mientras que en el

resto de los sondeos se observa una mejoría hasta una profundidad elevada

(500-550 m) a partir de la cuál empeora claramente.

152

TABLA 6.4 - RESULTADOS DE INTERPRETACIÓN DEL P.E.

LODO Valores Medios para el Agua de los Niveles Permeables

SONDEO

Tipo Conductividad (µmho/cm)

Conductividad (µmho/cm)

T.S.D. (ppm)

Tipo supuesto

Guareña 1 Revert 1930 463 367 Bicar-Na

Guareña 2 Revert 1810 495 401 Bicar-Na

Guareña 3 Revert 2200 582 466 Bicar-Na

Guareña 4 Revert 1590 550 441 Bicar-Na

Guareña 5 Revert 2050 392 310 Bicar-Na

Guareña 6 Revert 1400 510 410 Bicar-Na

Guareña 7 Revert 1960 411 323 Bicar-Na

Guareña 8 Revert 1450 440 351 Bicar-Na

Guareña 9 Revert 1590 530 424 Bicar-Na

Guareña 10 Revert 1720 512 411 Bicar-Na

Torrecilla 3 Revert 1625 398 337 Bicar-Na

Armuña 3 Revert 1150 401 429 Bicar-Ca

Armuña 4 Revert 1740 553 531 Bicar-Ca

Armuña 5 Revert 1480 510 587 Bicar-Ca

Armuña 6 Revert 920 575 546 Bicar-Ca

Madrigal 3 Revert 1970 578 593 Bicar-Ca

FuentelSol 1 (piez.) Natural 1050 411 347 Bicar-Na

FuentelSol 2 (sondeo) Natural 1100 436 349 Bicar-Na

Moraña 1 (piez.) Natural 1800 454 365 Bicar-Na

Moraña 2 (sondeo) Natural 1050 474 383 Bicar-Na

Goda Revert 1940 708 569 Bicar-Na

Aldeaseca Natural 860 456 363 Bicar-Na

Langa Revert 800 440 363 Bicar-Na

Nava de Arévalo Revert 1180 451 367 Bicar-Na

Coca 1 Revert 2260 465 372 Bicar-Na

Coca 2 Revert 1580 476 381 Bicar-Na

Adanero Revert 1660 582 465 Bicar-Na

Para la comprobación de los resultados obtenidos se han tomado los resultados

de los análisis de aguas realizados a posteriori en algunos de los sondeos

153

estudiados. Estos análisis se entregan en el Anexo 2 y un resumen de los

mismos se presenta en la tabla 6.5.

TABLA 6.5 - ANÁLISIS DE AGUAS

Sondeos ordenados según el corte Noroeste-Sureste

AGUA SONDEO

Conductividad (µmho/cm)

T.S.D. (ppm) Tipo

Guareña 6 670 427 Bicar-Na (Cl–)

Guareña 7 371 328 Bicar-Na

Guareña 8 283 277 Bicar-Na (SO4=)

Guareña 9 388 425 Bicar-Na

Torrecilla 3 287 350 Bicar-Na

Armuña 3 481 527 Bicar-Ca

Armuña 4 635 565 Bicar-Ca

Armuña 5 635 406 Bicar-Ca (SO4=)

Armuña 6 599 615 Bicar-Ca

Madrigal 3 490 430 Bicar-Ca

FuentelSol 1 (piezómetro) 352 331 Bicar-Na

Moraña 1 (piezómetro) 389 340 Bicar-Na

Goda 647 470 Bicar-Na (Cl–)

Aldeaseca 479 382 Bicar-Na

Langa 540 437 Bicar-Na (Cl–)

Nava de Arévalo 323 331 Bicar-Na

Coca 1 352 317 Bicar-Na

Coca 2 368 362 Bicar-Na

Todos los sondeos salvo aquellos en los que se indica la presencia de ClNa

presentan un contenido en Cl- en torno a 33 mg/l. El contenido medio en ión

SO4= es de 10 mg/l, salvo en los sondeos Armuña 5 y Guareña 8, en los que se

encuentran valores de 62 y 41,9 mg/l respectivamente.

154

La variación media relativa entre los valores obtenidos a través de los registros

de P.E. y los resultados de los análisis de aguas es de 20%, lo que representa un

diferencia media de 100 µmho/cm (≈100 ppm en el T.S.D.).

Esta diferencia, aunque coincide con el error relativo para los registros de P.E.,

podría reducirse si se contara con el registro de conductividad del lodo a lo largo

del sondeo, o mediante trucos operativos para la realización del registro de P.E.

como añadir sal común al lodo de perforación antes de la medida de dicho

parámetro.

También se puede constatar la diferencia prevista entre los valores de

conductividad y T.S.D. en los sondeos con agua bicarbonatada sódica frente a la

encontrada en los sondeos con aguas bicarbonatadas cálcicas o complejas

comprobando la validez de las curvas empleadas.

La coincidencia entre el ión predominante en disolución supuesto y el obtenido

en los análisis de aguas es debida a el hecho a que dicha suposición se hizo en

base a los datos de análisis de aguas conocidos de sondeos próximos.

6.3.3 Permeabilidad de los niveles productivos

Sobre los niveles seleccionados se ha realizado el proceso de cálculo del

contenido en arcilla, y la permeabilidad de cada uno de ellos. Estos valores se

presentan dentro del Anexo 2, en forma de tabla para cada sondeo, y en la tabla

6.6 se entrega un resumen con los valores medios del conjunto de los niveles

para cada uno de los sondeos estudiados.

En dichas tablas podemos observar ciertas diferencias entre los valores de

resistividad y permeabilidad, debidas a la influencia de la conductividad del agua

de la formación en el parámetro resistivo. Además en algunos valores elevados

de resistividad podemos apreciar una disminución de la permeabilidad, debido a

un mayor grado de cementación o compactación de los granos. De esa forma la

mejor caracterización de cada nivel sería su permeabilidad o en un proceso

155

inverso la porosidad, recordando siempre que se han tomado los mismos

coeficientes del factor de formación para todos los niveles.

También se observa una bajada de los valores de resistividad y permeabilidad en

los sondeos perforados con lodo natural. Este hecho puede deberse a la mayor

invasión de éstos dentro de las formaciones, no siendo tan efectivo en esos

casos el método de aproximación de la resistividad real (en esos casos R.N.L. se

aproximaría a Ri). No obstante, estos datos coinciden con los dados por las

granulometrías, lo cuál, ratificaría la validez del método para ese tipo de lodos.

Sobre los resultados obtenidos de contenido en arcilla debemos señalar dos

aspectos chocantes, una elevada disparidad y unos valores medios superiores a

lo que cabría esperar. Ambos efectos se deben, por un lado, a la presencia de

niveles de los denominados -arenas radiactivas- a los cuáles se les asignan

valores de contenido en arcilla mayores del 100%. Por otro lado, los valores de

arcilla resultan mayores de los que cabría esperar debido en parte a la invasión

de lodo que eleva el contenido en arcilla de los niveles permeables. De esa forma

para una evaluación correcta del contenido en arcilla sin la presencia de lodo

habría que estimar la costra de lodo formada en cada nivel y restar la emisividad

que conlleva.

156

TABLA 6.6 RESULTADOS DE INTERPRETACIÓN DE RESISTIVIDADES Y RADIACIÓN GAMMA

Valores Medios para los Niveles Permeables SONDEO RESISTIVIDAD

(µmho/cm) PERMEABILIDAD

(cm/seg) ARCILLA

(%)

Guareña 1 196 7.3 E-1 18

Guareña 2 123 2.7 E-1 20

Guareña 3 149 9.8 E-1 15

Guareña 4 137 1.0 E+0 17

Guareña 5 195 1.0 E+0 20

Guareña 6 130 9.9 E-1 10

Guareña 7 254 7.2 E-1 19

Guareña 8 130 5.0 E-1 26

Guareña 9 98 2.7 E-1 18

Guareña 10 116 2.4 E-1 22

Torrecilla 3 181 6.8 E-1 22

Armuña 3 142 2.2 E-1 21

Armuña 4 113 6.1 E-1 29

Armuña 5 129 6.2 E-1 21

Armuña 6 125 4.6 E-1 12

Madrigal 3 140 1.1 E+0 13

FuentelSol 1 (piezómetro) 109 1.8 E-1 14

FuentelSol 2 (sondeo) 108 1.9 E-1 15

Moraña 1 (piezómetro) 115 2.0 E-1 16

Moraña 2 (sondeo) 102 2.2 E-1 21

Goda 95 8.8 E-1 8

Aldeaseca 89 7.2 E-2 9

Langa 98 2.6 E-1 11

Nava de Arévalo 105 2.1 E-1 13

Coca 1 161 7.5 E-1 15

Coca 2 147 5.7 E-1 12

Adanero 108 5.2 E-1 12

Para la comprobación de los resultados obtenidos se han tomado los resultados

de los análisis granulométricos que se entregan en el Anexo 2, un resumen de los

157

cuales se presenta en la tabla 6.7 donde aparecen los valores medios de las

granulometrías realizadas.

TABLA 6.7 - VALORES MEDIOS DE LOS ANÁLISIS GRANULOMÉTRICOS

SONDEO COEFICIENTE DE UNIFORMIDAD (D40%/D90%)

TAMAÑO EFECTIVO (D90%)

PERMEABILIDAD (cm/s)

Fuentelsol 2 4.249 0.882 0.229

Guareña 2.202 0.970 0,534

Moraña 2 (sondeo) 2.960 0.768 0.249

Moraña 1 (piezómetro) 2.703 0.747 0.258

Aldeaseca (sondeo) 5.241 0.381 0.035

Aldeaseca (piezómetro) 5.632 0.391 0.034

Como vemos los valores medios obtenidos mediante la expresión 4.11 sobre los

datos de granulometría y los obtenidos a través de la interpretación de las

diagrafías son muy parecidos si consideramos el rango de variación de la

permeabilidad para medios permeables. Esta similitud no es de extrañar, pues

estos datos son los que se han empleado para generar la ecuación de la figura

4.10, entre porosidad y permeabilidad.

Esta semejanza confirma, además, la validez de los valores de porosidad

obtenidos mediante unos mismos coeficientes del factor de formación para todos

los sondeos de la zona de estudio.

158

6.3.4 Sección de correlación

La correlación final alcanzada es el resultado de la información conjunta de la

comparación dos a dos del conjunto de los sondeos, tanto entre las capas

determinadas, como entre los tramos geofísicos de las diagrafías, sin

pretensiones finales ni condicionantes geológicos previos.

En primer lugar se presenta en la figura 6.7, una correlación entre los 10

sondeos denominados Guareña 1 a 10, situados a distancias entre sí desde 1 a 7

km. Se ha elegido una representación pseudo-tridimensional para visualizar

conjuntamente los resultados de la correlación frente a la posición del sondeo.

Los porcentajes de correlación entre estos sondeos son muy elevados, en torno

al 70% de los tramos, En la figura 6.7 sólo se presentan algunos de los

horizontes encontrados para no complicar la imagen realizada y dado que el

seguimiento de los demás horizontes de correlación a partir de esos dos es

inmediato.

Destacaremos que se da un mayor grado de correlación entre los tramos que se

encuentran a mayor profundidad, mientras que los tramos superiores mantienen

correlaciones representativas solo entre los sondeos más próximos (5,7 y 10).

Dentro de este grupo, salvo en el sondeo Guareña 5, aparece un tramo

diferenciado que corresponde casi exclusivamente a un nivel guía de gravas

encajado entre paquetes de arcilla que varían de espesor, llegando incluso a

desaparecer.

Por último, aunque se observan oscilaciones importantes en los espesores de los

tramos correlacionados, las superficies de correlación resultan, en esta zona,

prácticamente horizontales.

159

Figura 6.7 - Correlación entre los Sondeos de Guareña

160

En segundo lugar se presenta la correlación encontrada en el conjunto de los

sondeos. Con este fin se han elaborado dos figuras, una pseudo-tridimensional

(Fig 6.8) mostrando sólo una columna para cada uno de los grupos de sondeos

en Guareña, Armuña, Fuentelsol, Moraña y Coca. En la figura 6.9 se proyectan

además, los resultados de los grupos de alineación Sur-Norte: Moraña-Fuentelsol,

Langa-Aldeaseca-Goda y Adanero-Coca sobre el perfil de correlación PP'.

Aunque se pueden seguir algunos horizontes de correlación a lo largo de toda la

zona estudiada, se podrían distinguir tres regiones diferenciadas. La región

Noroeste con los sondeos de Guareña y Torrecilla. La región Centro-Noroeste

representada por los sondeos de Armuña y en parte por el de Madrigal. Por

último, la región Oriental cuyos tramos aparecen agrupados en grandes

secuencias y que, a pesar de su mayor extensión, mantiene porcentajes de

correlación muy elevados.

En la figura 6.8 sólo se presentan dos de los posibles horizontes de correlación

encontrados que abarcan toda la zona de estudio. Las superficies de correlación

se muestran más planas en la mitad Oeste que en la Este, debido en parte a la

diferente situación Norte-Sur de los sondeos de la parte oriental.

La región con menor grado de correlación es la región Centro-Noroeste, en la que

se presentan unos tramos de alta energía superiores muy diferenciados que

pueden correlacionarse con los sondeos más noroccidentales de la región Este.

Esta distinción con el resto de las regiones coincide con la diferenciación que

muestran los tipos de aguas analizados y con la presencia de algunos niveles de

margas en los sondeos situados en esta región.

161

Figura 6.8 - Correlación en la Zona de Estudio

162

Figura 6.9 - Proyección sobre el Perfil de Correlación

163

Las correlaciones entre los sondeos situados en la región Oeste y los situados en

la región oriental se han dibujado en discontinuo dado que aunque definen pares

de correlación no se pueden seguir a lo largo de toda la zona de estudio. Además

los horizontes de correlación entre Madrigal y Moraña se han dibujado mediante

líneas quebradas dado que su seguimiento se ha realizado a través de los

sondeos de Fuentelsol.

6.3.5. Evaluación correlación-distancia

Con este estudio se pretende evaluar el alcance de las correlaciones en un

sistema estratigráfico como el estudiado, para lo que se han buscado dos tipos

de relaciones, por un lado la correlacionabilidad de las capas y por otro lado de

los tramos.

La correlación encontrada entre las capas, aunque su aspecto gráfico es muy

contundente, parece presentar carencias de sentido geológico en muchos de los

pares encontrados debido a la continua alternancia de casi todas las litologías

presentes (sobre todo, de las cuatro dominantes).

No obstante, dicha correlación proporciona dos aportes importantes a la

correlación definitiva, por un lado las direcciones globales de las direcciones de

correlación y por otro lado, la discriminación en el caso de ambigüedades, sobre

todo ante la presencia de litologías menos abundantes (especialmente los niveles

de gravas). De esta forma la validez de los resultados proporcionados por este

sistema de correlación será tanto mayor cuanto más diferenciación exista en las

series litológicas de los sondeos.

En la figura 6.10 se muestran dos curvas que representan la envolvente de los

porcentajes de correlación encontrados entre los tramos de los distintos sondeos

frente a la distancia entre éstos.

164

Fig 6.10 - Correlacionabilidad de los tramos frente a la distancia entre sondeos

El aumento de la separación entre las dos bandas de correlacionabilidad se debe

a el hecho de encontrar distintas regiones dentro de nuestra zona de estudio. Así

para sondeos de la región Este, distanciados 35 km como Coca y Langa, se

encuentra una correlación del 38%, mientras que otros pertenecientes a regiones

distintas, como Madrigal y Adanero separados 42 km, muestran un porcentaje

mucho menor (22%). De esta forma la curva superior representa los porcentajes

esperados de correlación entre tramos si nos mantenemos en una misma región,

mientras que la curva inferior correspondería al caso de atravesar regiones

distintas.

165

CAPITULO 7 CONCLUSIONES Y LÍNEAS DE FUTURO

7.1 CONCLUSIONES

Las hipótesis principales planteadas en esta Tesis son, por un lado, si es posible

llegar a una correcta determinación de un sondeo empleando sondas

convencionales y, por otro lado, si puede alcanzarse de forma matemática una

correlación adecuada entre sondeos distantes, situados en un sistema complejo.

Después del desarrollo de los códigos correspondientes, para los que ha habido

que resolver un gran número de pasos teóricos y empírico-matemáticos, y tras

una aplicación exhaustiva en un acuífero detrítico multicapa, se puede afirmar

que ambos objetivos pueden alcanzarse.

En primer lugar, se ha visto que para la interpretación cuantitativa de

permeabilidad, arcillosidad y calidad del agua de la formación, ciertos factores

imprescindibles como son los valores de conductividad del lodo de perforación y,

en menor medida, de temperatura y densidad a lo largo del sondeo, se pueden

estimar en los casos donde no se disponga de los registros de dichos

parámetros. Esta estimación es vital para el estudio de bases de datos antiguas y

en la práctica común de la mayoría de los sondeos en los que se realizan

diagrafías dentro de España.

Por otro lado, aunque algunas de las expresiones analíticas obtenidas muestran

un grado de complejidad aparentemente elevado, no han presentado graves

obstáculos para la realización automática de estos procesos en los 27 sondeos

estudiados, que constituyen un amplio rango de casos posibles en el campo de la

hidrogeología.

En cuanto a la interpretación litológica, no se han encontrado ambigüedades en

los procesos de asignación, debido a la ausencia de ciertas litologías, tales como

166

areniscas y calizas o yesos y margas, que probablemente si hubieran presentado

problemas de equivalencia.

En general y salvo en muy pocos casos (2 o 3 por sondeo), se observa una

correspondencia muy elevada entre las características granulométricas evaluadas

mediante la observación de las muestras del detrito y las deducibles de los

registros de resistividad para los niveles permeables.

Por último, el alcance de la información proporcionada por los tramos de cara a la

correlación de sondeos es mucho mayor, pudiéndose afirmar que poseen un

elevado carácter geológico. En este sentido, dentro de los parámetros estudiados

en cada tramo, la frecuencia de capas (o sus longitudes de onda proporcionales a

los espesores) no parece aportar información decisiva de cara a la correlación de

tramos, lo cuál tiene cierto sentido geológico salvo en los casos de capas que

puedan caracterizarse como capas guía por su elevado espesor. En cambio, los

valores de varianza en cada tramo si se han mostrado importantes a la hora de

correlacionarlos, aunque en muchos casos ese parámetro estadístico se muestre

proporcional a los valores de la amplitud media en cada tramo.

7.1.1 Ventajas e Inconvenientes

Las expresiones desarrolladas en este estudio para la determinación de la

porosidad, la permeabilidad, y los valores relativos al agua de la formación,

representan un medio asequible para determinar "in situ" dichas características,

con anterioridad a la instalación de la tubería de explotación de un sondeo.

El método de asignación litológica automática desarrollado tiene dos grandes

ventajas, el tiempo de proceso y la definición de forma homogénea de todos los

niveles sin la influencia del interpretador, frente al carácter relativo de la

interpretación litológica personal derivado de la extensión propia de una diagrafía.

167

No obstante, y para enclaves geológicos más complejos litológicamente

hablando, el proceso de clasificación automática podría aportar mejores

resultados empleando un mayor número de matrices (limitado por la capacidad

del ordenador utilizado) en la determinación de los sucesivos grupos que se

formen durante el proceso, sin perder la información de cada uno de sus

elementos y usando conjuntamente diferentes distancias en procesos

autoselectivos.

Aunque el tiempo total de cálculo para cada sondeo (~ 3 horas) es mucho

menor que en una ejecución personalizada, sigue siendo relativamente elevado,

debido en parte a los soportes físicos informáticos utilizados (con medios

informáticos actuales se puede reducir muchísimo). Este tiempo es más dilatado,

sobre todo, por la ejecución de los procesos de tratamiento de los registros hasta

la obtención de las capas paramétricas del sondeo.

La determinación automática de los tramos de una diagrafía establece tramos

que, en ciertos casos, son muy difíciles de diferenciar a priori de forma

personalizada, con la ventaja añadida de que todos los tramos están

determinados empleando el mismo criterio. Este punto se ha demostrado

fundamental en las correlaciones más conflictivas.

Los datos aportados sobre cada tramo junto con los resultados de las

correlaciones entre dos sondeos son decisivos a la hora de una correlación

completa. Sin embargo, en este proceso siguen siendo de vital importancia

ciertas decisiones que corresponden al interpretador y que involucran

conocimientos colaterales como son los relativos a la geología de la zona que se

estudie.

168

7.3 LÍNEAS DE FUTURO

Incorporación de Litologías

Tal y como están estructurados los códigos desarrollados, el empleo de éstos

puede fácilmente generalizarse a otro tipo de cuencas, donde se presenten

litologías muy diferenciadas de las encontradas en la zona de estudio.

En este sentido, el autor ha realizado un gran número de testificaciones

geofísicas en sondeos de prospección de carbón y de investigación geotécnica

en los que, a la vista de las diagrafías obtenidas, se podrían aplicar los mismos

procesos.

Caso de intentar el desarrollo de un sistema de códigos aplicable a todos los

campos mencionados, y en la parte que corresponde a la interpretación

litológica, sería interesante generar un sistema experto que incluyera todos los

enclaves que presenten mayor interés en la actualidad.

Ampliación a otros parámetros

En orden decreciente de utilidad deberían añadirse al sistema los parámetros que

se utilizan de forma indirecta, tales como conductividad, densidad y temperatura

del lodo, otros como gamma-gamma, neutrón-neutrón, resistividad con

dispositivos focalizados, inducción, sónico y, por último, sondas

tecnológicamente más avanzadas (N.M.R., espectrométricas, T.D.T., ...etc) que,

aunque a primera vista ofrecen, como tales técnicas, muchas más posibilidades,

las características del entorno de medida reducen igualmente la calidad de los

datos que suministran, necesitando optimizar los procesos de interpretación.

Una vez se hubiera optado por los parámetros más asequibles y cuyos aportes

resultaran de mayor aplicación en la actualidad, se podrían abordar otros

aspectos interpretativos, tales como grado de fracturación en acuíferos no

169

granulares, contenido en cenizas en la minería del carbón, compactación y

módulos dinámicos en geotecnia,...etc.

Completar la Relación Porosidad-Permeabilidad

A pesar de los buenos resultados obtenidos con los datos recopilados, sería de

gran interés realizar una comprobación de la fórmula de permeabilidad-porosidad,

partiendo de análisis granulométricos efectuados sobre un mayor rango de

muestras de detritos. Este proceso debería realizarse primero en la misma zona

de estudio y posteriormente en otras cuencas.

Por otro lado, convendría determinar una serie de valores para los coeficientes de

cementación y ajuste del factor de formación de manera que, aunque sigan sin

establecerse con detalle para cada capa, puedan utilizarse al menos en cada

cuenca de estas características e incluso en cada tramo de los caracterizados

como tales.

Aplicaciones geológicas

No siendo uno de los objetivos planteados en este trabajo, y en este contexto, el

primer avance que facilita este estudio, es la posibilidad de utilizar la información

obtenida mediante la correlación geofísica para una mayor determinación

geológica de la zona estudiada.

Para profundizar en este sentido señalemos, como ejemplo, que en algunos

casos, determinadas secuencias de dos tramos geofísicos pueden corresponder a

un ciclo sedimentario, mientras que en otros casos dichos ciclos estarían

formados por secuencias de más tramos.

En esta misma línea, sería igualmente provechoso tratar de establecer el carácter

de las secuencias sedimentarias (positivas o negativas) dentro de cada tramo,

para aumentar el grado de información que aportan las diagrafías en este campo.

170

Optimización informática

Una vez confirmada la viabilidad de todos los procesos programados, y de cara a

la divulgación del empleo de estos códigos, sería necesario necesario la

conversión de los programas elaborados a sistemas compatibles con la elección

de los lenguajes óptimos para cada uno de los distintos procesos.

En esta conversión, y utilizando la mayor capacidad de los sistemas, el primer

paso sería la elaboración de subprogramas genéricos de impresión, presentación,

menús, ...etc., todos ellos recuperables desde los distintos programas de cálculo.

Otro escalón que posibilitaría la utilización del sistema desarrollado con carácter

más colectivo, tanto docente como a nivel de iniciativas publicas o privadas,

sería la ampliación de los posibles periféricos (digitalizador, impresora y trazador)

mediante controladores de comunicación (drivers) con los que poder ejecutar

estos programas.

171

CAPITULO 8 BIBLIOGRAFÍA

8.1 ARTÍCULOS ESPECIALIZADOS

ALGER, R.P. (1966) - "Interpretation of Electric Logs in Fresh Water Wells in

Unconsolidated Formations". S.P.W.L.A. 7th Symposium.

ALONSO SÁNCHEZ, Teresa (1986) - "Aplicación de las diagrafías a la

estratigrafía y, en particular, a la investigación del carbón". Tesis doctoral,

E.T.S.I. Minas, Universidad de Oviedo.

ALPIN, L.M. (1938) - "Theory of Electrical Well Logging". ONTI, Moscú.

ANSTEY, N.A. (1966) - "Correlation Techniques, a review". Journal of the

Canadian Society of Exploration Geophysicists vol 2, 1-28.

ARCHIE, G.E. (1942) - "The Electrical Resistivity Logs as an Aid in Determining

some Reservoirs Characteristics". Pet. Trans. AIME 146, 54-62.

BASEVILLE, M. y BENVENISTE, A. (a) (1983) - "Design and Comparative Study

of some Sequential Jump Detection Algorithms for Digital Signals". I.E.E.E.

Transactions on Acoustics, Speech, and Signals Processing vol 31, 521-535.

BASEVILLE, M. y BENVENISTE, A. (b) (1983) - "Sequential Detection of Abrupt

Changes in Spectral Characteristics of Digital Signals" I.E.E.E. Transactions on

Information Theory vol 29, 709-724.

BESENECKER, M. y LILLICH, W. (1976) - "The Determining from non-

Hydrogeological Data of Aquifer Separating Layers". Simposio de la Asoc. Int.

Hidrogeólogos (Budapest).

172

BRANISA, F. (1974) - "Filtering of Well-Log Curves". Geophysics vol 39, 545-

549.

BRISTOW, J.G. CONAWAY y KILLEEN, P.G. (1984) - "Application of Inverse

Filtering to Gamma-Ray Logs". Geophysics vol 49, 1369-1373.

CLARK, K.L. y McGABE, F.G. (1982) - "PROLOG: A Language for Implementing

Expert Systems in Machine Intelligence". J.E. Hayes, D. Michie, Y.H. Pao (eds.),

Ellis Horwood, Chichester, England

CONAWAY, J.G. (1982) - "Exact Inverse Filters for the Deconvolution of Gamma

Ray Logs". Geoexploration 18, 1-14.

DAKHNOV, V.N. (1941) - "Electrical Well Logging, Interpretation of electric

logs". Moscú. (Traducido al inglés por George V. Keller de la Escuela de Minas de

Colorado).

DAVYDOV, Y.B. (1970) - "Odnomernaya Obtratnaya Zadacha Gamma-

Karotazha". Izv. Vyssh. Uchebn. Zaved., Geol. i. Razvedka 2, 105-109.

DAVIS, J.C. (1986) - "Statistics and Data Analysis in Geology". John Wiley,

New York.

DE WITTE, L. (1950) - "Relations between Resistivity and Fluid Contents of

Porous Rocks". Oil and Gas Journal vol 49, Aug.

DE WITTE, L. (1952) - "Simplified Departure Curves and the Effects of the

Equivalence Principle in Resistivity Logging". Oil and Gas Journal, Feb.

DELFINER, P. SERRA, O. y PEYRET, O (1984) - "Automatic Determination of

Lithology from Well Logs". 59th Ann. Tech. SPE AIME, Houston, TX, SPE

13290, 8 pp.

173

DOLL, H.G. (1947) - "True Resistivity Determination from the Electric Log. Its

Application to Log Analysis". Oil and Gas Journal, Sept. 20.

DOLL, H.G. (1948) - "The S.P. Log Theoretical Analysis and Principles of

Interpretation". Trans Aime 179, 146-185.

DOLL, H.G. (1955) - "Filtrate Invasion in Highly Permeable Sands". The

Petroleum Engineering, January.

DOMÍNGUEZ de la RASILLA, S. (1986) - "Resolutividad de los Parámetros

Geofísicos (...) en la Prospección Hidrogeológica de Cuencas Continentales

Detríticas ...". Tesis de Licenciatura. Fac. CC Geológicas U.C.M.

DRAHOS, D (1984) - "Electrical Modelling of the inhomogeneous invaded zone".

Geophysics vol 49, (nº 10, Oct). 1580-1585.

DUNLAP, H.F. y HAWTHORNE, R.R. (1951) - "The Calculation of Water

Resistivities from Chemical Analysis". Pet. Tech. March.

EVERS, J.F. e IYER, B.G. (1975) - "A Statistical Study of the SP Log in Fresh

Formations of Northern Wyoming". S.P.W.L.A. 16th Symposium.

FOSTER, M.R. HICKS, W.G. y NIPPER, J.T. (1962) - Optimum Inverse Filters

with Shorten the Spacing of Velocity Logs". Geophysics vol 27, 317-326.

GARCÍA ABAD, F.J. y REY SALGADO (1973) - "Cartografía Geológica del

Terciario y Cuaternario de Valladolid". Bol. Geol. y Min. 84,4, 213-227.

GEARHART-OWEN Ind. (1976) - "Formation Evaluation Data Handbook". P.O.

Box 1936 Fort Worth, Texas 76101.

GIANZERO, S. y ANDERSON, B. (1982) - "An Integral Transform Solution to the

Fundamental Problem in Resistivity Logging". Geophysics vol 47, 946-956.

174

GILL, D. (1970) - "Application of a Statistical Zonation Method to Reservoir

Evaluation and Digitized Log Analysis". American Association of Petroleum

Geologists Bulletin 54, 719-729.

GONDOUIN, M. SCALA, C. (1957) - "Streaming Potential and the S.P. Log".

Journal Pet. Tech. vol 10, 8.

GONZÁLEZ PÉREZ, R.D. (1979) - "Estudio y Aplicación de los Registros de

Sondeos a los Problemas Hidrogeológicos del Terciario de Madrid". Tesis de

Licenciatura. Dpto. Geomorfología y Geotectónica. Fac. C.C. Geológicas de

Madrid.

GORDON, A.D. y REYMENT, R.A. (1979) - "Slotting of Borehole Sequences".

Journal of Mathematical Geology vol 11, 309-327.

GUYOD, H. (1952) - "Electrical Well Logging Fundamentals". (Reprodución de

artículos publicados por este autor entre 1944 y 1945) Well Instrument

Developing Co. Houston.

HALLENBURG, J.K. (1971) - "A Resume of Spontaneous Potential

Measurements". S.P.W.L.A. 12th Symposium.

HARBAUGH, J.W. y MERRIAM, D.F. (1968) - "Computer Applications in

Stratigraphic Analysis". John Wiley, New York.

HAWKINS, D.M. y MERRIAM, D.F. (1973) - "Optimal Zonation of Digitized

Sequential Data". Journal of Mathematical Geology vol 5, 389-395.

HAWKINS, D.M. y MERRIAM, D.F. (1974) - "Zonation of Multivariate Sequences

of Digitized Geologic Data". Journal of Mathematical Geology vol 6, 263-269.

175

HAWKINS, D.M. y TEN KROODEN, J.A. (1979) - "Zonation of Sequences of

Heteroscedastic Multivariate Data". Computer and Geosciences vol 5, 189-194.

HAZEN, Allen (1893) - " " 24th annual Report. Mass. State Board of Health.

Referencia tomada de BENITEZ, A. (1972) "Captación de Aguas Subterráneas".

Ed. Dossat.

HENTY, J.D. y CUNNINGHAM, W.A. (1962) - "A New Method for Determination

Water Resistivity from the Spontaneous Potential Curve". A.I.M.E. paper SPE,

437, Oct.

I.T.G.E. (1980 - antes I.G.M.E.) - "Investigación Hidrogeológica de la Cuenca del

Duero. Sistemas 8 y 12" (Plan Nal. de Inv. de Aguas Subterráneas). Servicio de

Publ. del Mº de Ind. y Energía.

I.T.G.E. (1981 - antes I.G.M.E.) - "Evolución de los Niveles Piezométricos en los

Sistemas Acuíferos de la Cuenca del Duero. Período 1975-1977" (Plan Nal. de

Inv. de Aguas Subterráneas). Servicio de Publ. del Mº de Ind. y Energía.

I.T.G.E. (1982 - antes I.G.M.E.) - "Calidad de las Aguas Subterráneas en los

Acuíferos Detríticos de la Cuenca del Duero". (Prog. Nal. de Gestión y Cons. de

Acuíferos). Servicio de Publ. del Mº de Ind. y Energía.

I.T.G.E. (1983 - antes I.G.M.E.) - "Investigación Geológica Básica del Sistema 88

(10 bis). Terciario Sureste de Soria. Cuenca del Duero" (Plan Nal. de Inv. de

Aguas Subterráneas). Servicio de Publ. del Mº de Ind. y Energía.

JACKSON, P.D., TAYLOR, D. y STANFORD, P.N. (1978) - "Resistivity-Porosity

participle shape relation-ships for marine sands". Geophysics vol 43, 1250-1268.

JONES, P.H. y BUFORD, (1951) - "Electric Logging Applied to Ground-water

Exploration". Geophysics vol 16, 115-139.

176

KASSENAAR, J.D.C. (1989) - "Automated Classification of Geophysical Well

Logs". University of Waterloo. Ontario

KERZNER, M.G. (1983) - "An Analytical Approach to Detailed Deep

Determination Using Frequency Analysis". Trans. Soc. of Professional Well Log

Analysts, 23 Logging Symposium.

KOZENY, J. (1927) - "Uber die Kapillare Leitung des Wassers im Bodem

(Aufstieg, Versickerung und Anwendung auf die Bewässerung". Sitz. Ber. Akad.

Wiss. Wien, Math. Nat. (Abt. II a), vol 136 a, 271-306.

KRUMBEIN, W.C. y MONK, G.P. (1942) - "Permeability as a function of the size

parameters of unconsolidated sands". Petroleum Technology AIME Tech. Publ.

vol 5, nº 4, 1-11.

KWON, B.D. y RUDMAN, A.J. (1979) - "Correlation of Geologic Log with

Spectral Methods". Journal of Mathematical Geology vol 11, 373-390.

LANAJA, J.M. (1987) - "Síntesis de la Geología y Geofísica en la Explotación

Petrolera de la Cuenca del Tajo". Tesis Doctoral. E.T.S.I. Minas de Madrid.

LANNING, E.N. y JOHNSON, D.N. (1983) - "Automated Identification of Rocks

Boundaries: An Application of the Walsh Transform to Geophysical Well-log

Analysis". Geophysics vol 48, 197-205.

LU, S.Y. y FU, K.S. (1977) - "Stochastic Error-Correcting Syntactic Analysis for

Recognition of Noisy Patterns". IEEE Transactions on Computers vol 26, 1268-

1276.

MANN, C.J. y DOWELL, T.P.L. (1978) - "Quantitative Lithostratigraphic

Correlation of Subsurface Sequences". Computers and Geosciences vol 4, 295-

306.

177

MATHEWS, D.M. y BASSIOUNI, Z. (1984) - "Resistivity-Spontaneous Potential

Crossplot for Enhanced Interpretation of Well Logs". The Log Analyst. Jul-Aug.

14-19.

MOORE, E.J. (1966) - "A Graphical Description of New Methods for Determining

Equivalent NaCl Concentration from Chemical Analysis" SPWLA, 7th

Symposium.

MORGAN, F. et al. (1946) - "Some Experiments on the Mobility of Interstitial

Waters". AIME Tech. Publ. 2054.

MORROW, N.R. HUPPLER, J.D. y SIMMONS A.B. (1969) - "Porosity and

Permeability of Unconsolidated Upper Miocene sands from grain size analysis".

Jour. Sed. Petrology vol 39, 312-321.

PAPE, H. RIEPE, L. y SCHOPPER, J.R. (1985) - "Permeability of Porous Rock

Derived from Surface Effects". 47th EAEG meeting, Budapest, June 1985.

PAVLIDIS, T. (1980) - "Linguistic Analysis of Waveforms in Pattern Recognition

and Artificial Intelligence". C.H. Chen Ed. 389-398, Academic Press, New York.

POUPON, A. HOYLE, W.R. y SCHMIDT (1971) - "Log Analysis in Formations

with Complex Lithologies". Jour. Pet. Tech. Aug.

QUEROL, R. (1989) - "Geología del Subsuelo de la Cuenca del Tajo".

E.T.S.I.Minas de Madrid. Departamento de Ingeniería Geológica.

ROGERS, J.J. y HEAD, W.B. (1961) - "Relationships between Porosity, Median

Size and Shorting Coefficients of Synthetic Sands". Jour. Sed. Petrology vol 31,

467-470.

ROLANDI SANCHEZ-SOLIS, M. (1986) - "Correlación Estratigráfica en la Zona de

la Moraña". Sin referenciar.

178

RUDMAN, A.J. y LANKSTON, R.W. (1973) - "Stratigraphic Correlation of Well-

Logs by Computer Techniques". American Association of Petroleum Geologist

Bulletin 57, 577-588.

RUDMAN, A.J. BLAKELY, R.F. y HENDERSON, G.J. (1975) - "Frequency Domain

Methods of Stratigraphic Correlation". Proceedings of the 7th Offshore

Technology Conference, Houston, Texas.

SACKIN, SNEATH y MERRIAM (1965) - "ALGOL Program for Cross-Association

of No-numeric Sequences Using a Medium Size Computer". Kansas Geological

Survey Sp. Dist. Publ. 23, 26 p.

SCHLUMBERGER C&M. y LEONARDON, E.G. (1934) - "A New Contribution to

Subsurface Studies by Means of Electrical Measurements in Drill Holes". Trans

A.I.M.E. vol 110.

SCHLUMBERGER (1972) - "Interpretación de Perfiles". Schlumberger Limited.

277 Park Avenue. New York. 10017.

SCHLUMBERGER (1977) - "Log Interpretation Charts". Schlumberger Limited,

P.O. Box 2175, Houston, Texas 77001.

SCOTT, J.H. DODD, P.H. DROULLARD, R.F. y MUDRA, P.J. (1961) -

"Quantitative Interpretation of Gamma-Ray Log". Geophysics vol 26, 182-191.

SEGESMAN (1962) - "New SP Correction Charts". Geophysics vol 27, Dec.

SHAW, B.R. y CUBIT, J.M. (1979) - "Stratigraphic Correlation of Well Logs: An

Automated Approach, in Geomathematical and Petrophysical Studies in

Sedimentology". Gill and Merriam Eds. Pergamon Press, Oxford.

179

SMITH, T.F. y WATERMAN, M.S. (1980) - "New Stratigraphic Correlation

Techniques". Journal of Geology 88, 451-457.

STARTZMAN, R.A. y KUO, T.B. (1987) - "An Artificial Intelligence Approach to

Well Log Correlation". The Log Analyst March-April 175-183.

STEPHANOU, H.E. (1979) - "Multilevel Syntax Analysis for Geological Data

Compression". Instrument Society of America Transactions vol 18, 101-104.

STOCKMAN, G. (1978) - "Defining and Extracting Waveform Primitives for

Linguistic Analysis". Proceedings of 4th International Joint Conference on

Pattern Recognition, Kyoto, Japan, IEEE Press, Piscataway, New Jersey.

TESTERMAN, J.D. (1962) - "A Statistical Reservoir-Zonation Technique". Jour.

Pet. Tech. vol 14, 889-893.

TIXIER, M.P. (1949) - "Evaluation of Permeability from a Determination of the

Resistivity Gradient on the electric Log". Oil and Gas Journal vol 48, 6.

TSANG, L., CHAN, A. y GIANZERO, S. (1984) - "Solution of the Fundamental

Problem in Resistivity Logging with a Hybrid Method". Geophysics vol 49, 1596-

1604.

TURCAN, A.N. (1962) - "Estimating Water Quality from Electric Logs". USGS

Prof. Paper 450-C. Article 116.

VINCENT, PH., GARTNER, J.E. y ATTALI, G. (1979) - "An Approach to Detailed

Dip Determination Using Correlation by Pattern Recognition". Jour. Pet. Tech. vol

31, 232-240.

WEBSTER, R. y WONG, I.F.T. (1969) - "A Numerical Procedure for Testing Soil

Boundaries Interpreted from Air Photographs". Photogrammetria vol 24, 59-72.

180

WEBSTER, R. (1973) - "Automatic Soil Boundary Location from Transect Data".

Journal of Mathematical Geology vol 5, 27-37.

WELEX (1972) - "Charts for the Interpretation of Well Logs". Welex Bulletin

A133, (Halliburton Company). P.O. Box 2687. Houston, Texas 77001

WINSAUER, W.O., SHEARIN H., MASSON, P. y WILLIAMS, M. (1952) -

"Resistivity of Brine-Saturated Sand in Relation to Pore Geometry". Bull.

A.A.P.G. vol 2. Feb. 36, 253-277.

WORTHINGTON, A.E. y MELDAU, R.F. (1958) - "Departure Curves for the Self-

Potential Log". Jour. Pet. Tech. vol 10, Pet. Trans. AIME vol 213, 11-16.

WYLLIE, M.R.J. (1949) - "A Quantitative Analysis of the Electro-chemical

Component of the SP Curve". Jour. Pet. Tech. vol 1, Pet. Tr. AIME Vol 186, 17-

26.

YANG, F.W. y WARD, S.H. (1984) - "Inversion of Borehole Resistivity Logs".

Geophysics vol 49, 1541-1548.

ZADEH, L.A. (1965) - "Fuzzy Sets". Information and Control 8, 338-353.

ZHANG, G.J. y SHEN, L.C. (1984) - "Response of a Normal Resistivity Tool in a

Borehole Crossing a Bed Boundary". Geophysics vol 49, 142-149.

ZINSZER, R.H. (1942) - "The Use of Electrode Spacing in Well Logging". Trans.

AIME Petr. Dev. Tech. (L.A.) 164-174.

8.2 LIBROS DE CONSULTA

ASQUITH, G. - "Basic Well Log Analysis for Geologist".

American Association of Petroleum Geologist, 1982.

181

DESBRANDES, R. - "Encyclopedia of Well Logging".

Editions Technip, 1985.

DOVETON, J.H. - "Log Analysis of Subsurface Geology".

John Wiley and Sons, 1986.

ELLIS, D.V. - "Well Logging for Earth Scientist".

Elsevier, 1987.

HALLENBURG - "Geophysical Logging".

PennWell Books, 1984.

PIRSON, S.J. - "Handbook of Well Log Analysis".

Prentice-Hall, 1963.

RIOS, J.M. - "Libro Jubilar. Geología de España".

3 Tomos. I.G.M.E., 1983.

SERRA, O. "Fundamentals of Well-Log Interpretation".

Elsevier, 1984.

WILLIE, M.R. - "The Fundamentals of Well Log Interpretation".

Academic Press, 1987.

UNIVERSIDAD POLITÉCNICA DE MADRID

TESIS DOCTORAL

INTERPRETACIÓN Y CORRELACIÓN AUTOMÁTICAS

DE DIAGRAFÍAS GEOFÍSICAS.

APLICACIÓN A LA HIDROGEOLOGÍA

EN EL SUR DE LA CUENCA DEL DUERO.

– ANEXO I –

JESÚS M. DÍAZ CURIEL

LICENCIADO EN CIENCIAS FÍSICAS

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS

DE MINAS

1995

1

ANEXO 1 PROGRAMAS REALIZADOS

En este anexo se entregan los listados de los programas realizados para los

procesos de tratamiento, interpretación y correlación de registros analógicos

convencionales de testificación geofísica de sondeos.

Durante la elaboración de estos códigos se ha procurado incluir una serie de

comentarios orientativos para facilitar el seguimiento y comprensión de los

mismos. Del mismo modo, se observará que los nombres elegidos para las

matrices están relacionados con el sentido de las variables que representan.

Las contenidos y procesos que ejecutan aparecen en la Memoria de esta Tesis

pero simplificar el examen de estos listados conviene señalar algunas

peculiaridades.

En algunos de los listados se repiten ciertos subprogramas de apoyo que están

incorporados a los programas respectivos para agilizar su funcionamiento al no

tener que recuperar dichos subprogramas. Aquí aparecen además, pues se

pretenden mostrar los códigos tal y como están funcionando en el momento de

presentar este trabajo.

Ciertas sentencias pueden extrañar debido a lo particular del lenguaje y de los

soportes físicos como son algunas referentes al teclado (teclas especiales como

|RUN| o |EXEC|, el rotor o las teclas definibles por el usuario), y otras relativas

a la unidad de discos flexibles, la pantalla o la impresora.

2

Otras particularidades que pueden caracterizar estos listados son el hecho de

utilizar el mínimo número posible de matrices debido a la escasa memoria

disponible y la presencia de algunos grupos de sentencias para cálculos sencillos,

debida a las carencias del lenguaje como, por ejemplo, el cálculo de máximos y

mínimos de las matrices.

Por último, se incluye un listado titulado BENSON compuesto por subprogramas

de comunicación con el trazador de marca Benson modelo 1213, cedido por la

empresa Océ Graphics y necesario para la ejecución de algunos procesos de

representación.

3

INDICE

1. (Direccionamiento del resto de los códigos) ........................4

2. (Digitalización de registros analógicos y grabación digital) ..........9

3. (Corrección)..........................................................................33

4. (Determinación y corrección de decalajes)..............................41

5. (Determinación de línea base y cálculo de anomalías)............52

6. (Segmentación de los registros) .......................................76

7. (Delimitación de capas paramétricas) ........................................89

8. (Gestor de códigos de interpretación cuantitativa) ...............114

9. (Cálculo del contenido en arcillas).......................................130

10. (Cálculo del total de solidos disueltos) ..............................134

11. (Cálculo de resistividad real)...............................................144

12. (Interpretación y asignación litológica) .............................160

13. (Correlación de capas) .................................................183

14. (Determinación de los tramos de una diagrafía)...................201

15. (Correlación de tramos) ...............................................219

16. (Representación de registros) ..............................................231

17. (Dibujo mediante trazador)...............................................241

18. (Dibujo en impresora) .....................................................250

19. (Sentencias de comunicación con el trazador) ........................256

4

10 !----------------------------------------------------------------------- 20 ! "DIAGRAFIAS" 30 ! PROGRAMA PRINCIPAL DE DIAGRAFIAS 40 !----------------------------------------------------------------------- 50 PEN 1 60 LINE TYPE 1 70 ! 80 PRINTER IS 1 90 PRINT CHR$(12) 100 CONTROL 2,0;1 110 ! 120 OPTION BASE 0 130 INTEGER Pantalla1(1:7500),Pantalla2(1:7500) 140 ! 150 ON KBD ALL GOSUB Parar 160 !--------------------------------------------------------------------- 170 ! PORTADA 180 !--------------------------------------------------------------------- 190 GCLEAR 200 GRAPHICS OFF 210 ! 220 FOR J=0 TO 2 STEP 2 230 VIEWPORT 0+J,133-J,10+J,100-J 240 FRAME 250 NEXT J 260 ! 270 WINDOW 0,100,0,75 280 LORG 6 290 ! 300 CSIZE 6,.6 310 MOVE 50,70 320 LABEL "PROGRAMA PARA TRATAMIENTO" 330 MOVE 50,60 340 LABEL "INTERPRETACION Y CORRELACION" 350 MOVE 50,50 360 LABEL "DE DIAGRAFIAS" 370 MOVE 50,24 380 LABEL "AUTOR:" 390 CSIZE 10,.6 400 MOVE 50,14 410 LABEL "Jesus M. Diaz Curiel" 420 ! 430 GRAPHICS ON 440 BEEP 450 IF Tecla$="ÿC" THEN GOTO 480 460 GOTO 450 470 !--------------------------------------------------------------------- 480 ! ORGANIGRAMA 490 !--------------------------------------------------------------------- 500 GCLEAR 510 GRAPHICS OFF 520 PRINT TABXY(15,9);"SELECCIONE EL PROGRAMA CON EL CURSOR Y PULSE |ENTER|" 530 PRINT TABXY(15,10);" PARA SALIR PULSE |STOP| " 540 ! 550 Nprog=15

5

560 ALLOCATE Alt(1:Nprog),Anc(1:Nprog),X0(1:Nprog),Y0(1:Nprog) 570 ALLOCATE Prog$(1:Nprog)[11] 580 ! 590 ! 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 600 DATA 2.80,1.10,2.80,4.50,2.80,2.80,2.80,2.00,3.70,2.80,1.80,3.90,0.80,2.80,4.80 610 RESTORE 600 620 READ Anc(*) 630 ! 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ,10 ,11 ,12 ,13 ,14 ,15 640 DATA 1 , 2 , 2 , 2 , 3 , 4 , 5 ,5.9,5.9,6.7, 8 , 8 , 9 , 9 , 9 650 RESTORE 640 660 READ Alt(*) 670 ! 680 Prog$(1)="DIGITALIZAR" 690 Prog$(2)="DECALAR" 700 Prog$(3)="LINEA BASE" 710 Prog$(4)="CORREGIR" 720 Prog$(5)="SEGMENTAR" 730 Prog$(6)="CAPAS" 740 Prog$(7)="INT. CUANT" 750 Prog$(8)="T.S.D." 760 Prog$(9)="I. ARCILLA" 770 Prog$(10)="RHO REAL" 780 Prog$(11)="INT. LITOL." 790 Prog$(12)="ZONACION" 800 Prog$(13)="REPRESENTAR" 810 Prog$(14)="CORR. CAPAS" 820 Prog$(15)="CORR. ZONAS" 830 ! 840 FOR K=1 TO Nprog 850 X0(K)=10+(Anc(K)-1)*21.5 860 Y0(K)=99-Alt(K)*10 870 NEXT K 880 ! 890 VIEWPORT 0,133.7,4,100 900 FRAME 910 VIEWPORT .7,132.7,4.7,99.3 920 FRAME 930 ! 940 FOR K=1 TO Nprog 950 VIEWPORT X0(K),X0(K)+35,Y0(K),Y0(K)+6 960 WINDOW 0,130,0,100 970 FRAME 980 CSIZE 5,.6 990 LORG 5 1000 MOVE 65,50 1010 LABEL Prog$(K) 1020 NEXT K 1030 ! 1040 VIEWPORT 0,133,0,100 1050 WINDOW 0,133,0,100 1060 MOVE 49,89 1070 DRAW 45,85 1080 MOVE 67,89 1090 DRAW 67,85 1100 MOVE 84,89

6

1110 DRAW 88,85 1120 MOVE 45,79 1130 DRAW 49,75 1140 MOVE 67,79 1150 DRAW 67,75 1160 MOVE 88,79 1170 DRAW 84,75 1180 MOVE 67,69 1190 DRAW 67,65 1200 MOVE 67,59 1210 DRAW 67,55 1220 MOVE 30,52 1230 DRAW 48.5,52 1240 MOVE 84,52 1250 DRAW 105,52 1260 MOVE 30,52 1270 DRAW 30,29 1280 MOVE 105,52 1290 DRAW 105,29 1300 MOVE 56,40 1310 DRAW 56,38 1320 MOVE 78,40 1330 DRAW 78,38 1340 MOVE 30,29 1350 DRAW 105,29 1360 MOVE 45,29 1370 DRAW 45,25 1380 MOVE 87,29 1390 DRAW 87,25 1400 MOVE 34,19 1410 DRAW 30,15 1420 MOVE 56,19 1430 DRAW 60,15 1440 MOVE 100,19 1450 DRAW 104,15 1460 ! 1470 PRINT CHR$(12) 1480 GRAPHICS ON 1490 BEEP 1500 !--------------------------------------------------------------------- 1510 ! SELECCION DE PROGRAMAS 1520 !--------------------------------------------------------------------- 1530 P=1 1540 IF Tecla$="ÿE" THEN GOTO 1750 1550 IF Tecla$<>"ÿ^" AND Tecla$<>"ÿV" THEN GOTO 1540 1560 ! 1570 VIEWPORT X0(P)+1,X0(P)+35-1,Y0(P)+1,Y0(P)+6-1 1580 PEN -1 1590 FRAME 1600 IF Tecla$="ÿV" THEN 1610 P=P+1 1620 IF P=8 THEN P=11 1630 IF P>Nprog THEN P=1 1640 END IF 1650 IF Tecla$="ÿ^" THEN

7

1660 P=P-1 1670 IF P=10 THEN P=7 1680 IF P<1 THEN P=Nprog 1690 END IF 1700 VIEWPORT X0(P)+1,X0(P)+35-1,Y0(P)+1,Y0(P)+6-1 1710 PEN 1 1720 FRAME 1730 Tecla$="" 1740 GOTO 1540 1750 ! 1760 MASS STORAGE IS ":HP8290X,700,0" 1770 ON ERROR GOTO 1950 1780 IF P=1 THEN LOAD "DIAGRAB" 1790 IF P=2 THEN LOAD "DECALAR" 1800 IF P=3 THEN LOAD "LINEABASE" 1810 IF P=4 THEN LOAD "DIACOR" 1820 IF P=5 THEN LOAD "SEGMENTAR" 1830 IF P=6 THEN LOAD "CAPAS" 1840 IF P=7 THEN LOAD "CUANTUM" 1850 ! IF P=8 THEN LOAD "T.S.D." 1860 ! IF P=9 THEN LOAD "ARCILLA" 1870 ! IF P=10 THEN LOAD "RHOREAL" 1880 IF P=11 THEN LOAD "LITOLOGICA" 1890 IF P=12 THEN LOAD "ZONACION" 1900 IF P=13 THEN LOAD "DIBUJAR" 1910 IF P=14 THEN LOAD "CORRELACAP" 1920 IF P=15 THEN LOAD "CORRELAZON" 1930 OFF ERROR 1940 !--------------------------------------------------------------------- 1950 GRAPHICS OFF 1960 IF ERRN=56 OR ERRN=80 THEN 1970 PRINT TABXY(18,8);"INTRODUZCA EN LA DISQUETERA [0] EL DISCO" 1980 IF P>=1 AND P<=6 THEN PRINT TABXY(58,8);" (1) " 1990 IF P=13 THEN PRINT TABXY(58,8);" (3) " 2000 IF P=13 THEN GOTO 2040 2010 IF P>=7 THEN PRINT TABXY(58,8);" (2) " 2020 ELSE 2030 PRINT TABXY(22,8);"SE HA PRODUCIDO ERROR";ERRN;"EN EL PROCESO" 2040 END IF 2050 BEEP 81.38*1,2 2060 PRINT CHR$(12) 2070 Tecla$="" 2080 GRAPHICS ON 2090 GOTO 1540 2100 !--------------------------------------------------------------------- 2110 Parar: ! 2120 Tecla$=KBD$ 2130 IF Tecla$="ÿ!" THEN 2140 ALPHA OFF 2150 GRAPHICS OFF 2160 INPUT "Quiere terminar (S/N)",Qter$ 2170 IF Qter$="S" OR Qter$="SI" THEN 2180 PRINT CHR$(12) 2190 GCLEAR 2200 PRINT TABXY(30,10);"FIN DEL PROGRAMA"

8

2210 GOTO 2280 2220 END IF 2230 ALPHA ON 2240 GRAPHICS ON 2250 END IF 2260 RETURN 2270 !--------------------------------------------------------------------- 2280 END 2290 !---------------------------------------------------------------------

9

10 !------------------------------------------------------------------------ 20 REM "DIAGRAB" 30 REM PROGRAMA PARA GRABACION DE DIAGRAFIAS 40 REM CON LA MESA DIGITALIZADORA 50 !------------------------------------------------------------------------ 60 GCLEAR 70 PRINTER IS 1 80 PRINT CHR$(12) 90 CONTROL 2,0;1 100 SUSPEND INTERACTIVE 110 ! 120 FOR F=0 TO 10 STEP 2 130 VIEWPORT 0+F,133-F,10+F,100-F 140 FRAME 150 NEXT F 160 ! 170 BEEP 180 PRINT TABXY(24,9);" -DIAGRAB- " 190 PRINT TABXY(24,11);" PROGRAMA PARA DIGITALIZACION " 200 PRINT TABXY(24,12);" Y " 210 PRINT TABXY(24,13);" TRATAMIENTO DE DIAGRAFIAS " 220 CALL Salir 230 PRINT CHR$(12) 240 GCLEAR 250 ! 260 OPTION BASE 0 270 DIM St$[30],Titulo$[300] 280 COM /Digit/ REAL X(1:2000),Y(1:2000),N,Ev,Min,Max 290 COM /Inter/ REAL Xc(1:3500),Yc(1:3500),Nc,X0 300 !------------------------------------------------------------------------ 310 REM Seleccion de opciones 320 !------------------------------------------------------------------------ 330 ON KEY 5 LABEL " DIGITALIZAR " GOTO 430 340 ON KEY 6 LABEL " VISUALIZAR " GOTO 610 350 ON KEY 7 LABEL "INTERPOLACION" GOTO 700 360 ON KEY 8 LABEL " SUAVIZAR " GOTO 870 370 ON KEY 9 LABEL " GRABAR " GOTO 960 380 ON KEY 0 LABEL " CORREGIR " GOTO 1060 390 ON KEY 2 LABEL " PARAR " GOTO 1320 400 ON KEY 4 LABEL " SALIR " CALL Salir 410 GOTO 330 420 !------------------------------------------------------------------------ 430 REM Entrada de un registro mediante tableta digitalizadora 440 !------------------------------------------------------------------------ 450 OFF KEY 460 IF Digital=1 AND Grabado=0 THEN 470 PRINT TABXY(25,7);"PRIMERO DEBE GRABAR EL REGISTRO DIGITALIZADO" 480 BEEP 490 WAIT 2 500 PRINT CHR$(12) 510 GOTO 590 520 END IF 530 FOR I=1 TO N 540 X(I)=0 550 Y(I)=0

10

560 NEXT I 570 CALL Digitalizar 580 Digital=1 590 GOTO 330 600 !------------------------------------------------------------------------ 610 REM Visualizacion de la curva digitalizada 620 !------------------------------------------------------------------------ 630 OFF KEY 640 IF Digital=0 THEN GOSUB Nodigit 650 IF Interpol=0 THEN CALL Visualizar(X(*),Y(*),N,Ev) 660 Visual=1 670 IF Interpol<>0 THEN CALL Visualizar(Xc(*),Yc(*),Nc,Ev) 680 GOTO 330 690 !------------------------------------------------------------------------ 700 REM Conversion a curva equidistante e interpolacion 710 !------------------------------------------------------------------------ 720 OFF KEY 730 IF Digital=0 THEN GOSUB Nodigit 740 IF Visual=0 THEN 750 PRINT TABXY(25,6);"REVISE LA CURVA DIGITALIZADA" 760 PRINT TABXY(21,7);"PARA DECIDIR EL TIPO DE INTERPOLACION" 770 BEEP 780 WAIT 2 790 PRINT CHR$(12) 800 GOTO 850 810 END IF 820 Dist=Ev/1000 ! Discretizacion cada 1 mm 830 CALL Interpolac(X(*),Y(*),N,Dist) 840 Interpol=1 850 GOTO 330 860 !------------------------------------------------------------------------ 870 REM Suavizado de la curva digitalizada 880 !------------------------------------------------------------------------ 890 OFF KEY 900 IF Digital=0 THEN GOSUB Nodigit 910 IF Interpol=0 THEN GOSUB Nointer 920 CALL Suavizar(Xc(*),Yc(*),Nc) 930 Suaviz=1 940 GOTO 330 950 !------------------------------------------------------------------------ 960 REM Grabacion de los resultados 970 !------------------------------------------------------------------------ 980 OFF KEY 990 IF Digital=0 THEN GOSUB Nodigit 1000 IF Interpol=0 THEN GOSUB Nointer 1010 CALL Grabafich(Yc(*),Nc,X0,Dist,Min,Max) 1020 Grabado=1 1030 Digital=0 1040 GOTO 330 1050 !----------------------------------------------------------------------- 1060 REM Correccion de la curva 1070 !----------------------------------------------------------------------- 1080 OFF KEY 1090 IF Digital=0 THEN GOSUB Nodigit 1100 IF Interpol=0 THEN CALL Corregir(X(*),Y(*),Ndat,Min,Max)

11

1110 IF Interpol=1 THEN CALL Corregir(Xc(*),Yc(*),Ndat,Min,Max) 1120 GOTO 330 1130 !----------------------------------------------------------------------- 1140 Nodigit: ! Subrutina cuando no se ha digitalizado 1150 !----------------------------------------------------------------------- 1160 PRINT TABXY(25,7);"NO HAY DATOS DIGITALIZADOS" 1170 BEEP 1180 WAIT 2 1190 PRINT CHR$(12) 1200 GOTO 330 1210 RETURN 1220 !----------------------------------------------------------------------- 1230 Nointer: ! Subrutina cuando no se ha interpoladoo 1240 !----------------------------------------------------------------------- 1250 PRINT TABXY(25,7);"PRIMERO DEBE REALIZAR LA INTERPOLACION" 1260 BEEP 1270 WAIT 2 1280 PRINT CHR$(12) 1290 GOTO 330 1300 RETURN 1310 !----------------------------------------------------------------------- 1320 OFF KEY 1330 INPUT "Quiere parar el programa sin salir al programa principal",Qpar$ 1340 IF Qpar$<>"SI" AND Qpar$<>"S" THEN GOTO 330 1350 ! 1360 END 1370 !----------------------------------------------------------------------- 1380 SUB Salir 1390 OFF KEY 1400 ON KEY 0 LABEL "SALIR",2 GOTO 1430 1410 ON KEY 5 LABEL "CONTINUAR",2 GOTO 1450 1420 GOTO 1400 1430 INPUT "Quiere salir al programa principal",Qsal$ 1440 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 1450 OFF KEY 1460 SUBEND 1470 !----------------------------------------------------------------------- 1480 SUB Digitalizar 1490 ! 1500 REM SUBPROGRAMA PARA GRABACION DE DIAGRAFIAS 1510 REM CON LA MESA DIGITALIZADORA 1520 ! 1530 COM /Digit/ X(1:2000),Y(1:2000),N,Ev,Min,Max 1540 !------------------------------------------------------------------------ 1550 REM Entrada de datos 1560 !------------------------------------------------------------------------ 1570 DIM St$[30],Titulo$[300] 1580 Mr=1 !\ 1590 Dd=100 ! \ 1600 Ev=100 ! \ 1610 Eh=10 ! > Algunos valores de ejemplo 1620 X0=0 ! / 1630 Xn=500 ! / 1640 ! 1650 BEEP

12

1660 PRINT CHR$(12) 1670 PRINT 1680 PRINT " Coloque la diagrafía bajo la transparencia de la mesa "; 1690 PRINT "digitalizadora de forma" 1700 PRINT "que quede paralela a las lineas que estan dibujadas en ella." 1710 PRINT " Situe el origen (o el punto inicial) bajo la linea "; 1720 PRINT "horizontal y la linea de" 1730 PRINT "referencia sobre un valor determinado de la escala del registro." 1740 PRINT 1750 PRINT " Coloque el selector de perifÅricos en la posición |DIGIT| " 1760 CALL Salir 1770 PRINT CHR$(12) 1780 BEEP 1790 INPUT "Marco de referencia ",Mr 1800 PRINT "Marco de referencia -------------------------------- ";Mr 1810 INPUT "Escala vertical por cm ",Ev 1820 PRINT "Escala vertical por cm ----------------------------- ";Ev 1830 INPUT "Escala horizontal por cm ",Eh 1840 PRINT "Escala horizontal por cm --------------------------- ";Eh 1850 INPUT "Desplazamiento de la linea de referencia ",Dd 1860 PRINT "Desplazamiento de la linea de referencia ----------- ";Dd 1870 INPUT "Decalaje del registro (positivo si quiere bajarlo) ",Dr 1880 PRINT "Decalaje del registro ------------------------------ ";Dr 1890 INPUT "Profundidad inicial ",X0 1900 PRINT "Profundidad inicial -------------------------------- ";X0 1910 INPUT "Profundidad final ",Xn 1920 PRINT "Profundidad final ---------------------------------- ";Xn 1930 INPUT "Están correctos los datos ",Cor$ 1940 IF Cor$="NO" OR Cor$="N" THEN GOTO 1800 1950 PRINT CHR$(12) 1960 ! Seleccion de tipo de digitalización 1970 BEEP 1980 INPUT "Digitaliza a Pulsos(-P-) o en el Tiempo (-T-)? ",Dig$ 1990 IF Dig$<>"P" AND Dig$<>"T" THEN GOTO 1970 2000 !------------------------------------------------------------------------ 2010 ! Definicion de parametros de la tableta 2020 !------------------------------------------------------------------------ 2030 ! Escala de la mesa 1cm:400 2040 ! Abcisa de la linea de referencia 1, A0=800 2050 ! Abcisa de la linea de referencia 2, A0=6300 2060 ! Ordenada de la linea horizontal O0=11500 2070 ! 2080 IF Mr=1 THEN A0=800 2090 IF Mr=2 THEN A0=6300 2100 O0=11500 2110 !------------------------------------------------------------------------ 2120 ! Instrucciones de digitalizacion 2130 !------------------------------------------------------------------------ 2140 GRAPHICS ON 2150 GINIT 2160 GCLEAR 2170 ! 2180 ! GOTO 1040 ! SENTENCIA PARA PRUEBAS 2190 MOVE 74,0 2200 DRAW 74,100

13

2210 CSIZE 4,.4 2220 MOVE 75,90 2230 LABEL "Para digitalizar utilice el botón" 2240 MOVE 80,85 2250 LABEL "amarillo" 2260 MOVE 75,75 2270 LABEL "Cuando quiera realizar un empalme," 2280 MOVE 80,70 2290 LABEL "pulse el botón blanco" 2300 MOVE 75,60 2310 LABEL "Para cambiar escala, desplazamiento" 2320 MOVE 80,55 2330 LABEL "o dato anterior, pulse Botón azul" 2340 MOVE 85,50 2350 LABEL "1 - Desplazamiento " 2360 MOVE 85,45 2370 LABEL "2 - Escala horizontal " 2380 MOVE 85,40 2390 LABEL "3 - Dato anterior " 2400 MOVE 85,35 2410 LABEL "4 - " 2420 MOVE 75,25 2430 LABEL "Cuando haya terminado, pulse el" 2440 MOVE 80,20 2450 LABEL "botón verde" 2460 !------------------------------------------------------------------------ 2470 IF Dig$="P" THEN GOTO 2500 2480 IF Dig$="T" THEN GOTO 3350 2490 !------------------------------------------------------------------------ 2500 ! Digitalizacion mediante pulsos del boton 2510 !------------------------------------------------------------------------ 2520 ! Entrada y transformación Mesa - (abcisa,ordenada)=(A,O) 2530 ! 2540 BEEP 2550 PRINT "Ya puede digitalizar" 2560 ! 2570 CONTROL 9,0;1 2580 CONTROL 9,3;600 2590 CONTROL 9,4;8+2 2600 ! 2610 OUTPUT 9;CHR$(32); 2620 OUTPUT 9;CHR$(27);"Z";CHR$(13); 2630 OUTPUT 9;CHR$(27);"Q";CHR$(13); 2640 OUTPUT 9;CHR$(27);"M1";CHR$(13); 2650 OUTPUT 9;CHR$(27);"C3";CHR$(13); 2660 ! 2670 N=N+1 2680 ! 2690 St$="" 2700 OUTPUT 9;CHR$(17) 2710 FOR I=1 TO 20 2720 STATUS 9,10;W 2730 IF W=96 OR W=99 THEN GOTO 2720 2740 STATUS 9,6;V 2750 St$=St$&CHR$(V)

14

2760 NEXT I 2770 OUTPUT 9;CHR$(19) 2780 ! 2790 ! Buscar una condicion para el caso que no haya STATUS : 2800 ! IF I<19 AND V=10 OR V=13 THEN GOTO 980 ( CHR$(13)= y CHR$(10)= ) 2810 ! IF I<19 AND V<>44 AND V<48 OR V>57 THEN GOTO 980 (, y de 0 a 10) 2820 ! STATUS TODO V ENTERO 2830 ! LIMPIAR ENTRE STATUS 2840 ! 2850 OUTPUT 9;CHR$(19) 2860 ! 2870 IF LEN(St$)<>20 THEN 2880 BEEP 81,.5 2890 BEEP 163,.5 2900 PRINT "Error en la longitud del dato ";N 2910 N=N-1 2920 GOTO 2500 2930 END IF 2940 ! 2950 IF (St$[1,1]<>"+") OR (St$[8,8]<>"+") OR (St$[17,17]<>",") THEN 2960 BEEP 81,.5 2970 BEEP 163,.5 2980 PRINT "Error en la digitalización del dato ";N 2990 N=N-1 3000 GOTO 2500 3010 END IF 3020 ! 3030 D$=St$[16,16] 3040 D=VAL(D$) 3050 IF D=1 THEN GOTO 3090 3060 GOSUB Selec 3070 GOTO 2680 3080 ! 3090 A$=St$[2,6] 3100 O$=St$[9,13] 3110 D=VAL(D$) 3120 A=VAL(A$) 3130 O=VAL(O$) 3140 GOSUB Xytrans 3150 ! 3160 IF N=1 THEN GOTO 3230 3170 IF X(N)<X(N-1) THEN 3180 BEEP 81,.5 3190 BEEP 163,.5 3200 PRINT "Profundidad inferior a la anterior" 3210 GOTO 2680 3220 END IF 3230 ! 3240 PRINT N,X(N),Y(N) 3250 ! 3260 IF (N/100)=INT(N/100) AND X(N)<=(Xn/100)*(N/100) THEN 3270 BEEP 81,.5 3280 BEEP 163,.5 3290 PRINT "Está digitalizando demasiados puntos" 3300 END IF

15

3310 ! 3320 BEEP 81.38,.02 3330 GOTO 2670 3340 !------------------------------------------------------------------------ 3350 ! Digitalizacion a lo largo del tiempo 3360 !---------------------------------------------------------------------- 3370 ! Transformación Mesa - (Abcisa,Ordenada) = (A,O) 3380 N=1 3390 ! 3400 Boton=0 3410 VIEWPORT 5,70,0,90 3420 IF N=1 THEN FRAME 3430 WINDOW Dd,Dd+Eh*10,X0+Ev/100*27,X0 3440 IF D=2 THEN GOTO 3460 3450 PRINT " Ya puede digitalizar" 3460 BEEP 3470 ! 3480 ON ERROR GOTO 3490 3490 CONTROL 9,0;1 3500 CONTROL 9,3;600 3510 CONTROL 9,4;8+2 3520 ! 3530 St$="" 3540 OUTPUT 9;CHR$(32) 3550 OUTPUT 9;CHR$(27);"Z" 3560 OUTPUT 9;CHR$(27);"Q" 3570 OUTPUT 9;CHR$(27);"C3" 3580 OUTPUT 9;CHR$(27);"M0" 3590 OUTPUT 9;CHR$(27);"R6" 3600 OUTPUT 9;CHR$(27);"I020" 3610 ! 3620 OUTPUT 9;CHR$(17) 3630 FOR I=1 TO 20 3640 STATUS 9,10;W 3650 IF W=96 OR W=99 THEN 3640 3660 STATUS 9,6;V 3670 St$=St$&CHR$(V) 3680 NEXT I 3690 OUTPUT 9;CHR$(19) 3700 ! 3710 D$=St$[19,19] 3720 D=VAL(D$) 3730 IF D=1 THEN Boton=1 3740 IF Boton=0 THEN GOTO 3520 3750 IF D=2 OR D=3 OR D=4 THEN 3760 GOSUB Selec 3770 GOTO 3400 3780 END IF 3790 ! 3800 A$=St$[5,9] 3810 O$=St$[12,17] 3820 A=VAL(A$) 3830 O=VAL(O$) 3840 ! 3850 OFF ERROR

16

3860 GOSUB Xytrans 3870 ! 3880 IF N=1 THEN 3890 MOVE Y(N),X(N) 3900 DRAW Y(N),X(N) 3910 GOTO 4060 3920 END IF 3930 ! 3940 DRAW Y(N),X(N) 3950 Xact=X(N) 3960 IF Xact<=X(N-1) THEN 3970 PEN -1 3980 DRAW Y(N-1),X(N-1) 3990 N=N-1 4000 Boton=0 4010 PEN 1 4020 IF N=1 THEN GOTO 4060 4030 GOTO 3960 4040 END IF 4050 ! 4060 N=N+1 4070 PRINT CHR$(12) 4080 BEEP 81,.01 4090 GOTO 3520 4100 !---------------------------------------------------------------------- 4110 Selec: ! Seleccion de opciones del raton 4120 !---------------------------------------------------------------------- 4130 Boton=0 4140 BEEP 4150 ! 4160 IF D=4 THEN 4170 INPUT "Quiere terminar de digitalizar ?",Qt$ 4180 IF Qt$="SI" OR Qt$="S" THEN 4190 N=N-1 4200 GCLEAR 4210 PRINT CHR$(12) 4220 OFF ERROR 4230 GOTO 4890 4240 END IF 4250 GOTO 4760 4260 END IF 4270 ! 4280 IF D=3 THEN 4290 INPUT "Que quiere cambiar ",Qq 4300 IF Qq=1 THEN 4310 INPUT "Nuevo desplazamiento ",Dd 4320 GOTO 4760 4330 END IF 4340 IF Qq=2 THEN 4350 INPUT "Nueva escala horizontal",Eh 4360 INPUT "Nuevo desplazamiento ",Dd 4370 GOTO 4760 4380 END IF 4390 IF Qq=3 THEN 4400 PRINT "Corrección del dato ";N-1

17

4410 N=N-1 4420 GOTO 4760 4430 END IF 4440 IF Qq=4 THEN 4450 ! 4460 GOTO 4760 4470 END IF 4480 END IF 4490 ! 4500 IF D=2 THEN 4510 INPUT "Quiere realizar empalme",Qr$ 4520 IF Qr$="NO" OR Qr$="N" THEN GOTO 4760 4530 X0=X(N-1) 4540 N=N-1 4550 IF Dig$="T" THEN 4560 PEN -1 4570 FOR I=N-50 TO N 4580 IF I<=1 THEN GOTO 4600 4590 DRAW Y(I),X(I) 4600 NEXT I 4610 PEN 1 4620 VIEWPORT 5,70,90,100 4630 WINDOW Dd,Dd+Eh*10,X0,X0-Ev/100*3 4640 MOVE Y(N),X(N) 4650 FOR I=N TO N-10 STEP -1 4660 IF I<=1 THEN GOTO 4680 4670 DRAW Y(I),X(I) 4680 NEXT I 4690 MOVE Y(N),X(N) 4700 END IF 4710 PRINT TABXY(1,1);"Coloque el Çltimo punto digitalizado bajo la" 4720 PRINT TABXY(1,2);"linea horizontal y continue digitalizando " 4730 GOTO 4760 4740 END IF 4750 ! 4760 RETURN 4770 !---------------------------------------------------------------------- 4780 Xytrans: ! Transformación (A,O) - (profundidad,parametro)=(X(I),Y(I)) 4790 !------------------------------------------------------------------------ 4800 X(N)=(O0-O) 4810 Y(N)=(A-A0) 4820 X(N)=X(N)/400 4830 Y(N)=Y(N)/400 4840 X(N)=X(N)*Ev/100+X0 4850 Y(N)=Y(N)*Eh+Dd 4860 ! 4870 RETURN 4880 !------------------------------------------------------------------------ 4890 Min=Y(1) 4900 Max=Y(2) 4910 FOR I=1 TO N 4920 IF Y(I)>Max THEN Max=Y(I) 4930 IF Y(I)<Min THEN Min=Y(I) 4940 NEXT I 4950 !

18

4960 SUBEND 4970 !------------------------------------------------------------------------ 4980 SUB Visualizar(X(*),Y(*),Ndat,Ev) 4990 ! 5010 !------------------------------------------------------------------------ 5020 PRINT TABXY(25,10);"REPRESENTACION DE LA CURVA" 5030 INTEGER Pantalla9(1:7500) 5040 ! 5050 GRAPHICS ON 5060 GINIT 5070 GCLEAR 5080 VIEWPORT 0,130,10,90 5090 GOSUB Escala 5100 ! 5110 PRINT CHR$(12) 5120 PRINT " PARA VISUALIZAR UN MENU DE AYUDA PULSE |A| " 5130 ! 5140 WINDOW X(1),X(Ndat),Rmin,Rmax 5150 FRAME 5160 MOVE X(1),Y(1) 5170 FOR I=2 TO Ndat 5180 DRAW X(I),Y(I) 5190 NEXT I 5200 Iref=1 5210 ! 5220 ON KNOB .01,1 GOTO 5480 ! Mueve la diagrafia 5230 ON KBD GOTO 5250 5240 GOTO 5230 5250 Tecla$=KBD$ 5260 IF Tecla$="A" THEN GOSUB Ayuda ! Visualiza Instrucciones 5270 IF Tecla$="I" THEN CALL Imprimir ! Impresion de pantalla 5280 IF Tecla$="C" THEN GOTO 5050 ! Registro completo 5290 IF Tecla$="ÿK" THEN PRINT CHR$(12) ! Borrar impresiones 5300 IF Tecla$=" " THEN GOTO 5790 ! Sale del bucle con el space 5310 IF Tecla$="ÿ<" OR Tecla$="ÿ>" THEN GOTO 5340 ! Mueve el indicador 5320 IF Tecla$="ÿE" THEN GOSUB Correc ! Corregir 5330 GOTO 5210 5340 ! 5350 GLOAD Pantalla9(*) 5360 IF Tecla$="ÿ>" THEN K=K+1 5370 IF Tecla$="ÿ<" THEN K=K-1 5380 IF (Iref+K)<1 THEN K=1-Iref 5390 IF (Iref+K)>Ndat THEN K=Ndat-Iref 5400 GLOAD Pantalla9(*) 5410 MOVE X(Iref+K),Min 5420 PEN 1 5430 DRAW X(Iref+K),Max 5440 PRINT TABXY(20,1);"Dato:";Iref+K 5450 PRINT TABXY(30,1);"| Prof:";INT(X(Iref+K)*10)/10 5460 PRINT TABXY(43,1);"| Valor:";INT(Y(Iref+K)+.5) 5470 GOTO 5210 5480 ! 5490 Iref=Iref+KNOBX*Delta 5500 IF Iref<1 THEN Iref=1 5510 IF Iref>Ndat THEN Iref=Ndat

19

5520 ! 5530 GCLEAR 5540 LINE TYPE 1 5550 FRAME 5560 LINE TYPE 3 5570 WINDOW 0,16,0,10 5580 GRID Cm,1 5590 LINE TYPE 1 5600 WINDOW INT(X(Iref)),INT(X(Iref)+Salto),Rmin,Rmax 5610 MOVE INT(X(Iref)),Rmin 5620 LORG 1 5630 LABEL INT(X(Iref)) 5640 MOVE INT(X(Iref)+Salto),Rmin 5650 LORG 7 5660 LABEL INT(X(Iref)+Salto) 5670 ! 5680 MOVE X(Iref),Y(Iref) 5690 LINE TYPE 4 5700 I=Iref 5710 REPEAT 5720 DRAW X(I),Y(I) 5730 I=I+1 5740 IF I>Ndat THEN GOTO 5760 5750 UNTIL X(I)>=X(Iref)+Salto 5760 GSTORE Pantalla9(*) 5770 ! 5780 GOTO 5210 5790 ! 5800 OFF KBD 5810 OFF KNOB 5820 ! 5830 GCLEAR 5840 PRINT CHR$(12) 5850 GOTO 6710 5860 !------------------------------------------------------------------------ 5870 Escala: ! Normas para visualización de los resultados 5880 !------------------------------------------------------------------------ 5890 GRAPHICS OFF 5900 ! 5910 Max=Y(1) 5920 Min=Y(1) 5930 FOR I=2 TO Ndat 5940 IF Y(I)>Max THEN Max=Y(I) 5950 IF Y(I)<Min THEN Min=Y(I) 5960 NEXT I 5970 ! 5980 BEEP 5990 Rrep$="M" 6000 INPUT "Rango de representacion, Prefijado (-P-) o Maximo (-M-) ",Rrep$ 6010 IF Rrep$<>"P" AND Rrep$<>"M" THEN GOTO 6000 6020 IF Rrep$="M" THEN 6030 Dec=10^(INT(LGT(Max-Min))) 6040 Rmin=INT(Min/Dec)*Dec 6050 Rmax=INT(Max/Dec+1)*Dec 6060 END IF

20

6070 IF Rrep$="P" THEN 6080 INPUT "Valor minimo de representacion",Rmin 6090 INPUT "Valor maximo de representacion",Rmax 6100 INPUT "Escala del vertical del registro",Ev 6110 END IF 6120 PRINT CHR$(12) 6130 ! 6140 Cm=Ev/100 6150 Salto=16*Cm 6160 Delta=INT(Ndat/100) 6170 ! 6180 GRAPHICS ON 6190 RETURN 6200 !----------------------------------------------------------------------- 6210 Ayuda: ! Subrutina para imprimir instrucciones de ayuda 6220 !----------------------------------------------------------------------- 6230 BEEP 6240 PRINT CHR$(12) 6250 GRAPHICS OFF 6260 PRINT TABXY(7,3);" OPCIONES DURANTE LA VISUALIZACION DE LOS REGISTROS " 6270 PRINT TABXY(7,6);" PARA DESPLAZAR LA DIAGRAFIA EN LA PANTALLA MUEVA EL CURSOR " 6280 PRINT TABXY(7,7);" PARA DIBUJAR EL REGISTRO COMPLETO PULSE |C| " 6290 PRINT TABXY(7,8);" PARA VOLCAR LA PANTALLA A LA IMPRESORA PULSE |I| " 6300 PRINT TABXY(7,9);"PARA MOVER UN INDICADOR SOBRE LA CURVA PULSE LAS FLECHAS --> o <--" 6310 PRINT TABXY(7,10);" PARA CORREGIR PULSE |ENTER| " 6320 PRINT TABXY(7,11);" PARA SALIR DEL GRAFICO PULSE LA BARRA ESPACIADORA " 6330 WAIT 5 6340 PRINT CHR$(12) 6350 GRAPHICS ON 6360 ! 6370 RETURN 6380 !----------------------------------------------------------------------- 6390 Correc: ! Subrutina para corregir 6400 !----------------------------------------------------------------------- 6410 IF Qcor$="F" THEN GOTO 6590 6420 INPUT "Quiere corregir este dato (-D-) o una franja (-F-) de datos",Qcor$ 6430 IF Qcor$<>"D" AND Qcor$<>"F" THEN GOTO 6690 6440 ! 6450 IF Qcor$="D" THEN 6460 Qc=Iref+K 6470 INPUT "Nueva profundidad ",X(Qc) 6480 INPUT "Nuevo valor de la curva",Y(Qc) 6490 Qcor$="" 6500 GOTO 6690 6510 END IF 6520 IF Qcor$="F" THEN 6530 In=Iref+K 6540 PRINT TABXY(5,2);"Indice del dato inicial de la franja a corregir";In 6550 PRINT TABXY(5,3);"Mueva el indicador hasta el dato final y pulse |ENTER|" 6560 GOTO 6690 6570 END IF 6580 ! 6590 Fn=Iref+K 6600 PRINT TABXY(5,3);"Indice del dato final de la franja a corregir";Fn 6610 INPUT "Desplazamiento que quiere dar al registro ",Desp

21

6620 FOR I=In TO Fn 6630 Y(I)=Y(I)+Desp 6640 NEXT I 6650 Desp=0 6660 Qcor$="" 6670 PRINT CHR$(12) 6680 ! 6690 RETURN 6700 !----------------------------------------------------------------------- 6710 SUBEND 6720 !----------------------------------------------------------------------- 6730 SUB Interpolac(X(*),Y(*),N,Dist) 6740 ! X(*),Y(*): valores iniciales - Dist: distancia de interpolacion 6750 ! 6760 ! SUBPROGRAMA DE INTERPOLACION DE PUNTOS EN UNA CURVA 6770 ! 6780 ! Xc(*),Yc(*) valores interpolados 6790 COM /Inter/ REAL Xc(1:3500),Yc(1:3500),Nc,X0 6800 ! 6810 COM /Parab/ REAL C0,C1,C2 6820 COM /Cubic/ REAL K0,K1,K2,K3 6830 !------------------------------------------------------------------------ 6840 REM Calculo de los valores equidistantes 6850 !------------------------------------------------------------------------ 6860 PRINT TABXY(20,6);"INTERPOLACION LINEAL: -1- " 6870 PRINT TABXY(20,7);"INTERPOLACION CUADR.: -2- " 6880 PRINT TABXY(20,8);"INTERPOLACION CUBICA: -3- " 6890 PRINT TABXY(20,9);"INTERPOLACION SPLINE: -4- " 6900 BEEP 6910 INPUT "Tipo de interpolación entre puntos digitalizados",Tipo 6920 IF Tipo<1 OR Tipo>4 THEN GOTO 6900 6930 PRINT CHR$(12) 6940 ! 6950 PRINT " Calculando valores de profundidad equidistantes, NO interrumpir" 6960 ! 6970 Nc=INT((X(N)-X(1))/Dist) 6980 X0=INT(X(1)/Dist)*Dist 6990 FOR I=1 TO Nc 7000 Xc(I)=X0+I*Dist 7010 NEXT I 7020 ! 7030 PRINT CHR$(12) 7040 ON Tipo GOTO 7060,7270,7580,7920 7050 !------------------------------------------------------------------------ 7060 PRINT " Realizando interpolacion lineal de los valores, NO interrumpir " 7070 Ui=2 7080 FOR I=1 TO Nc 7090 IF INT(Xc(I))=Xc(I) THEN PRINT TABXY(30,5);Xc(I);"metros " 7100 IF Xc(I)=X(Ui) THEN 7110 Yc(I)=Y(Ui) 7120 Ui=Ui+1 7130 IF Ui>N THEN GOTO 7570 7140 GOTO 7250 7150 END IF 7160 IF Xc(I)<X(Ui) THEN

22

7170 Yc(I)=Y(Ui-1)+(Y(Ui)-Y(Ui-1))/(X(Ui)-X(Ui-1))*(Xc(I)-X(Ui-1)) 7180 GOTO 7230 7190 END IF 7200 Ui=Ui+1 7210 IF Ui>N THEN GOTO 7570 7220 GOTO 7160 7230 NEXT I 7240 ! 7250 GOTO 8520 7260 !------------------------------------------------------------------------ 7270 PRINT "Realizando interpolacion cuadratica de los valores, NO interrumpir" 7280 PRINT " Profundidad total =";X(N);"metros" 7290 ! 7300 FOR I0=1 TO Nc 7310 IF Xc(I0)>X(2) THEN GOTO 7360 7320 CALL Parabola(X(1),Y(1),X(2),Y(2),X(3),Y(3)) 7330 Yc(I0)=C0+C1*Xc(I0)+C2*Xc(I0)^2 7340 NEXT I0 7350 ! 7360 Ui=2 7370 FOR I=1 TO Nc 7380 IF INT(Xc(I))=Xc(I) THEN PRINT TABXY(30,5);Xc(I);"metros " 7390 IF Xc(I)<(X(Ui-1)+X(Ui))/2 THEN GOTO 7490 7400 IF Xc(I)>(X(Ui-1)+X(Ui))/2 AND Xc(I)<(X(Ui)+X(Ui+1))/2 THEN 7410 CALL Parabola(X(Ui-1),Y(Ui-1),X(Ui),Y(Ui),X(Ui+1),Y(Ui+1)) 7420 Yc(I)=C0+C1*Xc(I)+C2*Xc(I)^2 7430 END IF 7440 IF Xc(I)>(X(Ui)+X(Ui+1))/2 THEN 7450 Ui=Ui+1 7460 IF Ui>=N THEN GOTO 7510 7470 GOTO 7390 7480 END IF 7490 NEXT I 7500 ! 7510 FOR I0=I TO Nc 7520 CALL Parabola(X(N-2),Y(N-2),X(N-1),Y(N-1),X(N),Y(N)) 7530 Yc(I0)=C0+C1*Xc(I0)+C2*Xc(I0)^2 7540 NEXT I0 7550 ! 7560 GOTO 8520 7570 !------------------------------------------------------------------------ 7580 PRINT " Realizando interpolacion cÇbica de los valores, NO interrumpir " 7590 PRINT " Profundidad total =";X(N);"metros" 7600 ! 7610 FOR I0=1 TO Nc 7620 IF Xc(I)>X(2) THEN GOTO 7670 7630 CALL Cubica(X(1),Y(1),X(2),Y(2),X(3),Y(3),X(4),Y(4)) 7640 Yc(I0)=K0+K1*Xc(I0)+K2*Xc(I0)^2+K3*Xc(I0)^3 7650 NEXT I0 7660 ! 7670 Ui=2 7680 Yc(1)=Y(1) 7690 FOR I=2 TO Nc 7700 IF INT(Xc(I))=Xc(I) THEN PRINT TABXY(30,5);Xc(I);"metros " 7710 IF Xc(I)<X(Ui) THEN

23

7720 GOTO 7880 7730 END IF 7740 IF Xc(I)=X(Ui) THEN 7750 Yc(I)=Y(Ui) 7760 Ui=Ui+1 7770 IF Ui>N THEN GOTO 7900 7780 GOTO 7880 7790 END IF 7800 IF Xc(I)>X(Ui) AND Xc(I)<X(Ui+1) THEN 7810 CALL Cubica(X(Ui-1),Y(Ui-1),X(Ui),Y(Ui),X(Ui+1),Y(Ui+1),X(Ui+2),Y(Ui+2)) 7820 Yc(I)=K0+K1*Xc(I)+K2*Xc(I)^2+K3*Xc(I)^3 7830 GOTO 7880 7840 END IF 7850 Ui=Ui+1 7860 IF Ui>N THEN GOTO 7900 7870 GOTO 7740 7880 NEXT I 7890 ! 7900 GOTO 8520 7910 !------------------------------------------------------------------------ 7920 PRINT " Realizando interpolacion spline de los valores, NO interrumpir " 7930 PRINT " Profundidad total =";X(N);"metros" 7940 ALLOCATE Pte(1:N),Alt(1:N),Ptec(1:4000) 7950 ! 7960 FOR K=2 TO N-1 7970 IF X(K)/10-INT(X(K)/10)<.1 THEN PRINT TABXY(30,4);INT(X(K));"metros " 7980 IF (Y(K+1)<Y(K) AND Y(K-1)<Y(K)) OR (Y(K+1)>Y(K) AND Y(K-1)>Y(K)) THEN 7990 Pte(K)=0 8000 ELSE 8010 Pte(K)=((Y(K+1)-Y(K))/(X(K+1)-X(K))+(Y(K)-Y(K-1))/(X(K)-X(K-1)))/2 8020 END IF 8030 NEXT K 8040 IF Pte(2)<>0 THEN Pte(1)=0 8050 IF Pte(2)=0 THEN Pte(1)=(Y(2)-Y(1))/Dist 8060 IF Pte(N-1)<>0 THEN Pte(N)=0 8070 IF Pte(N-1)=0 THEN Pte(N)=(Y(N)-Y(N-1))/Dist 8080 ! 8090 Yc(1)=Y(1) 8100 Y0=Yc(1) 8110 K=1 8120 FOR I=1 TO Nc 8130 IF INT(Xc(I))=Xc(I) THEN PRINT TABXY(30,5);Xc(I);"metros " 8140 IF Xc(I)<=X(K) THEN GOTO 8310 8150 IF Xc(I)>X(K+1) THEN GOTO 8320 8160 IF Pte(K)=0 AND Pte(K+1)=0 THEN 8170 Xmed=(X(K+1)+X(K))/2 8180 Ptemax=((Y(K+1)-Y(K))/Dist) 8190 IF Xc(I)<Xmed THEN 8200 Ptec(I)=Pte(K)+(Ptemax-Pte(K))/(Xmed-X(K))*(Xc(I)-X(K)) 8210 END IF 8220 IF Xc(I)=Xmed THEN Ptec(I)=Ptemax 8230 IF Xc(I)>Xmed THEN 8240 Ptec(I)=Ptemax+(Pte(K+1)-Ptemax)/(X(K+1)-Xmed)*(Xc(I)-Xmed) 8250 END IF 8260 ELSE

24

8270 Ptec(I)=Pte(K)+(Pte(K+1)-Pte(K))/(X(K+1)-X(K))*(Xc(I)-X(K)) 8280 END IF 8290 IF I=1 THEN GOTO 8310 8300 Yc(I)=Yc(I-1)+(Ptec(I)*Dist) 8310 NEXT I 8320 Alt(K)=Yc(I-1)-Y0 8330 Y0=Yc(I-1) 8340 K=K+1 8350 IF K>=N THEN GOTO 8380 8360 GOTO 8140 8370 ! 8380 MOVE Xc(1),Yc(1) 8390 FOR K=1 TO N-1 8400 FOR I=2 TO Nc 8410 IF Xc(I)<=X(K) THEN GOTO 8460 8420 IF Xc(I)>X(K+1) THEN GOTO 8470 8430 IF Xc(I)>X(K) AND Xc(I)<=X(K+1) THEN 8440 Yc(I)=Yc(I-1)+(Ptec(I)*Dist)/(Alt(K)/(Y(K+1)-Y(K))) 8450 END IF 8460 NEXT I 8470 NEXT K 8480 ! 8490 DEALLOCATE Pte(*),Alt(*),Ptec(*) 8500 GOTO 8520 8510 !------------------------------------------------------------------------ 8520 PRINT CHR$(12) 8530 SUBEND 8540 !------------------------------------------------------------------------ 8550 SUB Parabola(X1,Y1,X2,Y2,X3,Y3) 8560 ! 8570 ! SUBPROGRAMA DE CALCULO DE COEFICIENTES DE UNA PARABOLA 8580 ! PARA TRES PARES DE PUNTOS 8590 ! 8600 COM /Parab/ REAL C0,C1,C2 8610 ! 8620 X31=X3-X1 8630 X21=X2-X1 8640 Y21=Y2-Y1 8650 Xx21=X2^2-X1^2 8660 C2=((Y3-Y1)*X21-Y21*X31)/((X3^2-X1^2)*X21-Xx21*X31) 8670 C1=(Y21-C2*Xx21)/X21 8680 C0=Y1-C1*X1-C2*X1^2 8690 ! 8700 SUBEND 8710 !------------------------------------------------------------------------ 8720 SUB Cubica(X1,Y1,X2,Y2,X3,Y3,X4,Y4) 8730 ! 8740 ! SUBPROGRAMA DE CALCULO DE COEFICIENTES DE UNA CUBICA 8750 ! PARA CUATRO PARES DE PUNTOS 8760 ! 8770 COM /Cubic/ REAL K0,K1,K2,K3 8780 ! 8790 X21=X2-X1 8800 X31=X3-X1 8810 X41=X4-X1

25

8820 Xx1=X1^2 8830 Xxx1=X1^3 8840 Xx21=X2^2-Xx1 8850 Xx31=X3^2-Xx1 8860 Xx41=X4^2-Xx1 8870 Xxx21=X2^3-Xxx1 8880 Xxx31=X3^3-Xxx1 8890 Xxx41=X4^3-Xxx1 8900 Y21=Y2-Y1 8910 Y31=Y3-Y1 8920 Y41=Y4-Y1 8930 Yx3yx2=Y31/X31-Y21/X21 8940 Yx4yx2=Y41/X41-Y21/X21 8950 Xx3xx2=Xx31/X31-Xx21/X21 8960 Xx4xx2=Xx41/X41-Xx21/X21 8970 Xxx3xxx2=Xxx31/X31-Xxx21/X21 8980 Xxx4xxx2=Xxx41/X41-Xxx21/X21 8990 D1=Yx4yx2/Xx4xx2 9000 D2=Yx3yx2/Xx3xx2 9010 D3=Xxx4xxx2/Xx4xx2 9020 D4=Xxx3xxx2/Xx3xx2 9030 K3=(D1-D2)/(D3-D4) 9040 K2=D2-K3*D4 9050 K1=Y21/X21-K2*Xx21/X21-K3*Xxx21/X21 9060 K0=Y1-K1*X1-K2*X1^2-K3*X1^3 9070 ! 9080 SUBEND 9090 !------------------------------------------------------------------------ 9100 SUB Suavizar(Xc(*),Yc(*),Nc) 9110 ! 9120 ! SUBPROGRAMA PARA SUAVIZADO DE UNA CURVA 9130 ! 9140 !------------------------------------------------------------------------ 9150 PRINT TABXY(20,10);"REALIZANDO ELIMINACION DE PUNTOS DISPARES" 9160 ! 9170 PRINT TABXY(30,11);"Normalizacion" 9180 FOR I=1 TO Nc 9190 IF Yc(I)>Max THEN Max=Yc(I) 9200 IF Yc(I)<Min THEN Min=Yc(I) 9210 NEXT I 9220 FOR I=1 TO Nc 9230 Yc(I)=2*(Yc(I)-Min)/(Max-Min)-1 ! Entre 1 y -1 9240 NEXT I 9250 ! 9260 PRINT TABXY(30,11);"Eliminacion " 9270 FOR I=2 TO Nc-2 9280 IF INT(Xc(I)/10)=Xc(I)/10 THEN PRINT TABXY(30,11);Xc(I);"METROS " 9290 Ymed=(Yc(I-1)+Yc(I+1))/2 9300 Pte1=(Yc(I)-Yc(I-1))/(Xc(I)-Xc(I-1)) 9310 Pte2=(Yc(I+1)-Yc(I))/(Xc(I+1)-Xc(I)) 9320 Pte3=(Yc(I+2)-Yc(I+1))/(Xc(I+2)-Xc(I+1)) 9330 IF SGN(Pte1)<>SGN(Pte2) AND ABS(Pte1-Pte2)>ABS(Pte2-Pte3) THEN 9340 IF SGN(Pte1)<>SGN(Pte3) THEN 9350 IF ABS(Pte1)<.2 OR ABS(Pte2)<.2 THEN GOTO 9410 9360 IF ABS(Pte1)<ABS(Pte2) THEN Yc(I)=Yc(I-1)+SGN(Pte1)*.02 ! MIRAR

26

9370 IF ABS(Pte1)>ABS(Pte2) THEN Yc(I)=Yc(I+1)-SGN(Pte2)*.02 ! MIRAR 9380 END IF 9390 IF SGN(Pte1)=SGN(Pte3) THEN Yc(I)=Ymed 9400 END IF 9410 NEXT I 9420 ! 9430 PRINT TABXY(30,11);"DesNormalizacion" 9440 FOR I=1 TO Nc 9450 Yc(I)=(Yc(I)+1)/2*(Max-Min)+Min 9460 NEXT I 9470 !------------------------------------------- 9480 REM Suavizado de la curva 9490 !------------------------------------------- 9500 ALLOCATE Coef(-10:10),Ys(1:3500) 9510 PRINT TABXY(20,10);"REALIZANDO EL SUAVIZADO DEL REGISTRO " 9520 ! 9530 Np=3 9540 INPUT "Numero de puntos del filtro ",Np 9550 IF INT(Np/2)=Np/2 THEN Np=Np+1 9560 GOSUB Filtro 9570 FOR I=1+Ind TO Nc-Ind 9580 IF INT(Xc(I)/10)=Xc(I)/10 THEN PRINT TABXY(30,11);Xc(I);"METROS " 9590 Ys(I)=0 9600 FOR H=(-Ind) TO Ind 9610 Ys(I)=Ys(I)+Yc(I+H)*Coef(H) 9620 NEXT H 9630 NEXT I 9640 ! 9650 FOR I=1 TO Nc 9660 Yc(I)=Ys(I) 9670 NEXT I 9680 ! 9690 DEALLOCATE Ys(*) 9700 PRINT CHR$(12) 9710 GOTO 10210 9720 !------------------------------------------------------------------------ 9730 Filtro: ! Calculo de coeficientes de filtro 9740 !------------------------------------------------------------------------ 9750 DEALLOCATE Coef(*) 9760 ! 9770 Ind=(Np-1)/2 9780 Tf=2 9790 ! INPUT "Tipo de filtro Gauss (1), Escalon (2) o Seno Card (3)",Tf 9800 ON Tf GOTO 9820,9940,10040 9810 ! 9820 ALLOCATE Coef(-Ind:Ind) !----------------! 9830 Coeficiente=1/2 ! 9840 Sumcoef=0 ! 9850 FOR H=(-Ind) TO Ind ! 9860 Coef(H)=Coeficiente^(ABS(H)) ! COEFICIENTES DEL FILTRO 9870 Sumcoef=Sumcoef+Coef(H) ! GAUSS 9880 NEXT H ! 9890 FOR H=(-Ind) TO Ind ! 9900 Coef(H)=Coef(H)/Sumcoef ! 9910 NEXT H !

27

9920 GOTO 10190 !------------------------------! 9930 ! 9940 ALLOCATE Coef(-Ind:Ind) !----------------! 9950 Sumcoef=0 ! 9960 FOR H=(-Ind) TO Ind ! 9970 Sumcoef=Sumcoef+1 ! COEFICIENTES DEL FILTRO 9980 NEXT H ! CUADRADO 9990 FOR H=(-Ind) TO Ind ! 10000 Coef(H)=1/Sumcoef ! 10010 NEXT H ! 10020 GOTO 10190 !------------------------------! 10030 ! 10040 ALLOCATE Coef(-Ind:Ind) !----------------! 10050 Numciclos=3 ! 10060 Sumcoef=0 ! 10070 Coef(0)=1 ! 10080 FOR H=(-Ind) TO Ind ! 10090 IF H=0 THEN GOTO 10120 ! COEFICIENTES DEL FILTRO 10100 F=Numciclos*(PI/1.3)/Ind*H ! 10110 Coef(H)=SIN(F)/F ! SENO CARDINAL 10120 Sumcoef=Sumcoef+Coef(H) ! 10130 NEXT H ! 10140 FOR H=-Ind TO Ind ! 10150 Coef(H)=Coef(H)/Sumcoef ! 10160 NEXT H ! 10170 GOTO 10190 !------------------------------! 10180 ! 10190 RETURN 10200 !------------------------------------------------------------------------ 10210 SUBEND 10220 !------------------------------------------------------------------------ 10230 SUB Corregir(X(*),Y(*),Ndat,Min,Max) 10240 ! 10250 ! Correcciones generales 10260 ! 10270 !------------------------------------------------------------------------ 10280 PRINT CHR$(12) 10290 OFF KEY 10300 ON KEY 0 LABEL " DECALAR " GOTO 10390 10310 ON KEY 5 LABEL " DESPLAZAR " GOTO 10460 10320 ON KEY 1 LABEL "ANULAR INICIAL" GOTO 10530 10330 ON KEY 6 LABEL " ANULAR FINAL " GOTO 10670 10340 ON KEY 2 LABEL "ACOTAR MAXIMO " GOTO 10780 10350 ON KEY 7 LABEL "ACOTAR MINIMO " GOTO 10920 10360 ON KEY 9 LABEL " SALIR " GOTO 11060 10370 GOTO 10300 10380 ! 10390 PRINT " Positivo para bajarlo y negativo para subirlo" 10400 Decal=0 10410 INPUT "Decalaje del registro en metros",Decal 10420 X0=X0+Decal 10430 PRINT CHR$(12) 10440 GOTO 10300 10450 ! 10460 Despl=0

28

10470 INPUT "Desplazamiento que quiere dar al registro",Despl 10480 FOR I=1 TO Ndat 10490 Y(I)=Y(I)+Despl 10500 NEXT I 10510 GOTO 10300 10520 ! 10530 Prof1=X0 10540 INPUT "Profundidad hasta la que se quiere eliminar registro",Prof1 10550 IF Prof1<=X0 THEN GOTO 10300 10560 IF Prof1>=X(Ndat) THEN GOTO 10540 10570 FOR I=1 TO Ndat 10580 IF X(I)>Prof1 THEN GOTO 10600 10590 NEXT I 10600 Ndat=Ndat-I 10610 X0=X(I) 10620 FOR I=1 TO Ndat 10630 Y(I)=Y(I+N1) 10640 NEXT I 10650 GOTO 10300 10660 ! 10670 Prof2=X(Ndat) 10680 INPUT "Profundidad desde la que se quiere eliminar registro",Prof2 10690 IF Prof2>=X(Ndat) THEN GOTO 10300 10700 IF Prof1<=X0 THEN GOTO 10680 10710 FOR I=Ndat TO 1 STEP -1 10720 IF X(I)<Prof2 THEN 10730 Ndat=I 10740 GOTO 11050 10750 END IF 10760 NEXT I 10770 ! 10780 Topemax=Max 10790 PRINT TABXY(15,10);"Valor maximo actual";Max 10800 INPUT "Cota máxima del registro ",Topemax 10810 IF Topemax=Max THEN GOTO 10300 10820 PRINT TABXY(40,10);" Nueva cota maxima";Topemax 10830 INPUT "Correcto (Si teclea si, se eliminaran los valores extremos)",Cor1$ 10840 IF Cor1$<>"SI" AND Cor1$<>"S" THEN GOTO 10780 10850 Max=Topemax 10860 FOR I=1 TO Ndat 10870 IF Y(I)>Max THEN Y(I)=Max 10880 NEXT I 10890 PRINT CHR$(12) 10900 GOTO 10300 10910 ! 10920 Topemin=Min 10930 PRINT TABXY(15,12);"Valor minimo actual";Min 10940 INPUT "Cota minima del registro ",Topemin 10950 PRINT TABXY(40,12);" Nueva cota minima";Topemin 10960 IF Topemin=0 AND Topemax=0 THEN GOTO 11050 10970 INPUT "Correcto (Si teclea si, se eliminaran los valores extremos)",Cor2$ 10980 IF Cor2$<>"SI" AND Cor2$<>"S" THEN GOTO 10920 10990 Min=Topemin 11000 FOR I=1 TO Ndat 11010 IF Y(I)<Min THEN Y(I)=Min

29

11020 NEXT I 11030 PRINT CHR$(12) 11040 GOTO 10300 11050 ! 11060 OFF KEY 11070 SUBEND 11080 !------------------------------------------------------------------------ 11090 SUB Imprimir 11100 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 11110 !------------------------------------------------------------------------ 11120 PRINTER IS 1 11130 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 11140 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 11190 11150 PRINT " Conecte la impresora y pulse |CONT| " 11160 PAUSE 11170 CALL Titulo 11180 CALL Vuelcapant(701) 11190 PRINT CHR$(12) 11200 PRINTER IS 1 11210 ! 11220 SUBEND 11230 !------------------------------------------------------------------------ 11240 SUB Titulo 11250 !------------------------------------------------------------------------ 11260 DIM Titulo$[240] 11270 ! 11280 PRINT CHR$(12) 11290 INPUT "Titulo del grafico",Titulo$ 11300 IF Titulo$="" THEN GOTO 11570 11310 PRINTER IS 1 11320 GOSUB Editor 11330 INPUT "Correcto",Cort$ 11340 IF Cort$="N" OR Cort$="NO" THEN GOTO 11280 11350 PRINTER IS 701 11360 GOSUB Editor 11370 PRINTER IS 1 11380 GOTO 11570 11390 ! 11400 Editor: ! Divide el texto y lo centra 11410 Titulo$=Titulo$&" " 11420 C0=0 11430 IF C0>=LEN(Titulo$) THEN GOTO 11550 11440 Caracter=50+C0 11450 FOR C=Caracter TO 1 STEP -1 11460 IF C>LEN(Titulo$) THEN GOTO 11540 11470 IF Titulo$[C,C]=" " THEN 11480 Tx=INT((64-(C-C0))/2) 11490 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 11500 PRINT USING Ima$;Titulo$[C0+1,C] 11510 C0=C 11520 GOTO 11430 11530 END IF 11540 NEXT C 11550 RETURN 11560 !

30

11570 SUBEND 11580 !------------------------------------------------------------------------ 11590 SUB Vuelcapant(INTEGER Device_selector) 11600 !------------------------------------------------------------------------ 11610 OPTION BASE 1 11620 INTEGER Row_group,Prod_num,Maxrow 11630 DIM Graphic_escape$[7] 11640 ! 11650 ON ERROR GOTO 12050 11660 PRINTER IS Device_selector 11670 OFF ERROR 11680 ! 11690 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 11700 ! 11710 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 11720 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 11730 ! 11740 IF Graphics_res=1 THEN 11750 ALLOCATE Os$[512] ! Para los modelos 9836 11760 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 11770 Maxrow=390 ! Numero de lineas del 9836 11780 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 11790 ELSE 11800 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 11810 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 11820 Maxrow=300 ! Numero de lineas del 9826 y 9816 11830 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 11840 END IF 11850 ! 11860 GSTORE Screen(*) ! Almacena matriz de pantalla 11870 ! 11880 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 11890 ! 11900 FOR Row_group=1 TO 297 STEP 8 11910 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 11920 Gdump(Screen(*),Row_group,Os$) 11930 ! Volcado de linea de caracteres graficos 11940 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 11950 PRINT USING "7A,400A";Graphic_escape$,Os$ 11960 ELSE ! Para los modelos 9836 11970 PRINT USING "7A,512A";Graphic_escape$,Os$ 11980 END IF 11990 NEXT Row_group 12000 ! 12010 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 12020 ! 12030 SUBEXIT 12040 ! 12050 BEEP ! Caso de encontrarse error en "PRINTER IS" 12060 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 12070 ! 12080 SUBEND 12090 ! 12100 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 12110 !-------------------------------------------------------------------------

31

12120 SUB Grabafich(Y(*),Ndat,X0,Dist,Min,Max) 12130 ! 12140 REM SUBPROGRAMA DE GRABACION DE REGISTROS 12150 ! 12160 !------------------------------------------------------------------------ 12170 SUSPEND INTERACTIVE 12180 Nr=(Ndat+5)*8+20 12190 ALLOCATE Yg(1:Ndat) 12200 FOR I=1 TO Ndat 12210 Yg(I)=Y(I) 12220 NEXT I 12230 ! 12240 PRINT CHR$(12) 12250 PRINT " Inserte un disco en la disquetera [1] y pulse |CONT|" 12260 ON KBD ALL GOTO 12270 12270 IF KBD$<>"ÿC" THEN GOTO 12270 12280 OFF KBD 12290 PRINT TABXY(0,17);"Conviene que tenga siglas del sondeo (ej: GUAR4)" 12300 BEEP 12310 INPUT "Nombre de fichero del sondeo (<=5 caracteres)",Nn$ 12320 IF LEN(Nn$)=0 OR LEN(Nn$)>5 THEN GOTO 12310 12330 PRINT CHR$(12) 12340 Tipo$(1)="RNC" 12350 Tipo$(2)="RNL" 12360 Tipo$(3)="LAT" 12370 Tipo$(4)="RME" 12380 Tipo$(5)="PE" 12390 Tipo$(6)="GN" 12400 PRINT TABXY(18,6);"Resistividad Normal 0.4 AM................1" 12410 PRINT TABXY(18,7);"Resistividad Normal 1.6 AM................2" 12420 PRINT TABXY(18,8);"Resistividad Lateral 1.8 AO...............3" 12430 PRINT TABXY(18,9);"Resistencia puntual (monoelectrodica).....4" 12440 PRINT TABXY(18,10),"Potencial Espontaneo......................5" 12450 PRINT TABXY(18,11);"Radiacion Gamma Natural...................6" 12460 INPUT "Parametro digitalizado",Tp 12470 IF Tp<1 OR Tp>6 THEN GOTO 12470 12480 PRINT CHR$(12) 12490 Nn$=Nn$&Tipo$(Tp) 12500 PRINT TABXY(20,2);"Nombre definitivo: ";Nn$ 12510 MASS STORAGE IS ":HP 8290X,700,1" 12520 ON ERROR GOTO 12570 12530 CREATE BDAT Nn$,1,Nr 12540 OFF ERROR 12550 GOTO 12800 12560 ! 12570 IF ERRN=54 THEN 12580 INPUT "Quiere remplazar el registro ? ",Qr$ 12590 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 12650 12600 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 12610 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 12580 12620 PURGE Nn$ 12630 OFF ERROR 12640 GOTO 12800 12650 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 12660 IF Qc$="N" OR Qc$="NO" THEN GOTO 12310

32

12670 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 12680 ON KBD ALL GOTO 12690 12690 IF KBD$<>"ÿC" THEN GOTO 12690 12700 OFF KBD 12710 PRINT CHR$(12) 12720 OFF ERROR 12730 GOTO 12800 12740 END IF 12750 IF ERRN=53 THEN 12760 PRINT "Nombre del fichero impropio" 12770 GOTO 12240 12780 END IF 12790 ! 12800 MASS STORAGE IS ":HP 8290X,700,1" 12810 ASSIGN @Pat_0 TO Nn$ 12820 PRINT CHR$(12) 12830 PRINT " REALIZANDO LA GRABACION DEL FICHERO ";Nn$;", NO INTERRUMPIR" 12840 OUTPUT @Pat_0;Ndat,X0,Dist,Min,Max 12850 OUTPUT @Pat_0;Yg(*) 12860 ASSIGN @Pat_0 TO * 12870 MASS STORAGE IS ": HP 8290X,700,0" 12880 ! 12890 DEALLOCATE Yg(*) 12900 PRINT CHR$(12) 12910 PRINT TABXY(25,10);"Grabado el fichero ";Nn$ 12920 SUBEND 12930 !-----------------------------------------------------------------------

33

10 !----------------------------------------------------------------------- 20 REM "DIACOR" 30 REM PROGRAMA PARA REVISION Y CORRECCION 40 REM DE DIAGRAFIAS DIGITALIZADAS 50 !----------------------------------------------------------------------- 60 GCLEAR 70 PRINTER IS 1 80 PRINT CHR$(12) 90 CONTROL 2,0;1 100 ! 110 FOR F=0 TO 10 STEP 2 120 VIEWPORT 0+F,133-F,10+F,100-F 130 FRAME 140 NEXT F 150 ! 160 PRINT TABXY(25,9);" -DIACOR- " 170 PRINT TABXY(25,11);"PROGRAMA PARA REVISION Y CORRECCION" 180 PRINT TABXY(25,13);" DE DIAGRAFIAS DIGITALIZADAS " 190 CALL Salir 200 PRINT CHR$(12) 210 GCLEAR 220 ! 230 OPTION BASE 1 240 INTEGER Picture(7500) 250 ALLOCATE X(1:1000),Y(1:1000) 260 GOSUB Lectura 270 !----------------------------------------------------------------------- 280 ! Flujo del Programa 290 !----------------------------------------------------------------------- 300 ON KEY 5 LABEL "LECTURA DATOS" GOSUB Lectura 310 ON KEY 6 LABEL " CORR-LISTADO " GOSUB Listado 320 ON KEY 7 LABEL "CORR-PANTALLA " GOSUB Pantalla 330 ON KEY 8 LABEL " CORR-GENERAL " GOSUB General 340 ON KEY 9 LABEL " GRABACION " GOSUB Grabar 350 ON KEY 4 LABEL " TERMINAR " CALL Salir 360 GOTO 300 370 !----------------------------------------------------------------------- 380 Lectura: ! Lectura de los datos digitalizados 390 !----------------------------------------------------------------------- 400 OFF KEY 410 GOTO 520 420 ! 430 BEEP 440 PRINT CHR$(12) 450 IF ERRN=56 THEN PRINT " El fichero ";Nn$;" no se encuentra en ese disco" 460 PRINT 470 PRINT "Coloque el disco con los datos de la diagrafia en la disquetera [1]" 480 PRINT TABXY(40,18);"Cuando lo haya hecho, pulse |CONT|" 490 PAUSE 500 PRINT CHR$(12) 510 ! 520 ON ERROR GOTO 430 530 MASS STORAGE IS ":HP 8290X,700,1" 540 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN ESE DISCO" 550 CAT

34

560 BEEP 570 INPUT "Nombre del Fichero ? ",Nn$ 580 IF Nn$="" THEN GOTO 560 590 PRINT CHR$(12) 600 PRINT " Realizando la lectura de los datos, NO interrumpir " 610 ASSIGN @Pat_0 TO Nn$ 620 OFF ERROR 630 ENTER @Pat_0;Ndat,X0,Dist,Min,Max 640 DEALLOCATE X(*),Y(*) 650 ALLOCATE X(1:Ndat),Y(1:Ndat) 660 ENTER @Pat_0;Y(*) 670 ASSIGN @Pat_0 TO * 680 MASS STORAGE IS ":HP 8290X,700,0" 690 ! 700 FOR I=1 TO Ndat 710 X(I)=X0+I*Dist 720 NEXT I 730 ! 740 PRINT CHR$(12) 750 PRINT TABXY(20,4);"Registro ";Nn$ 760 PRINT TABXY(20,6);"NÇmero de datos ------";Ndat 770 PRINT TABXY(20,7);"Equidistancia --------";Dist 780 PRINT TABXY(20,8);"Profundidad inicial --";X0 790 PRINT TABXY(20,9);"Profundidad final ----";X(Ndat) 800 PRINT TABXY(20,10);"Valor mínimo ---------";INT(Min) 810 PRINT TABXY(20,11);"Valor máximo ---------";INT(Max) 820 ! 830 BEEP 840 RETURN 850 !------------------------------------------------------------------------ 860 Listado: ! Correccion de los datos 870 !------------------------------------------------------------------------ 880 OFF KEY 890 PRINT CHR$(12) 900 ! 910 Nc=INT(Ndat/25+1) 920 ! 930 FOR L=1 TO Nc 940 Vt=L*25 950 Vb=(L-1)*25+1 960 PRINT "----------------------------------------" 970 PRINT " Dato | Profundidad | Valor " 980 PRINT "----------------------------------------" 990 FOR I=Vb TO Vt 1000 PRINT I,X(I),"",Y(I) 1010 IF I>=N THEN GOTO 1130 1020 IF X(I+1)<=X(I) THEN 1030 BEEP 1040 PRINT "Dato ";I+1;"menor o igual que el dato ";I 1050 Pausa=0 1060 GOTO 1130 1070 END IF 1080 IF ABS(Y(I+1)-Y(I))/(X(I+1)-X(I))>10000 THEN 1090 BEEP 1100 PRINT "Cambio brusco de pendiente "

35

1110 Pausa=0 1120 END IF 1130 NEXT I 1140 ! 1150 IF Pausa=1 THEN 1520 1160 ON KEY 5 LABEL " SALIDA " GOTO 1530 1170 ON KEY 6 LABEL "AVANCE RAPIDO " GOTO 1280 1180 ON KEY 7 LABEL "AVANCE DIRECTO" GOTO 1310 1190 ON KEY 8 LABEL " CORREGIR " GOTO 1420 1200 ON KEY 9 LABEL " PARAR/SEGUIR " GOTO 1490 1210 ON KEY 0 LABEL " " GOTO 1160 1220 ON KEY 1 LABEL " " GOTO 1160 1230 ON KEY 2 LABEL " " GOTO 1160 1240 ON KEY 3 LABEL " " GOTO 1160 1250 ON KEY 4 LABEL " " GOTO 1160 1260 GOTO 1160 1270 ! 1280 Pausa=1 1290 GOTO 1520 1300 ! 1310 Pausa=0 1320 INPUT "Profundidad a partir de la que quiere revisar ",Profrev 1330 FOR I=1 TO N 1340 IF X(I)>Profrev THEN 1350 L=INT(I/25) 1360 IF L<1 THEN L=1 1370 GOTO 1410 1380 END IF 1390 NEXT I 1400 GOTO 1520 1410 ! 1420 Pausa=0 1430 INPUT "quiere cambiar algun dato ?, Si-(cuál) No-0 ",Qc 1440 IF Qc=0 THEN GOTO 1520 1450 INPUT "valor de X ?",X(Qc) 1460 INPUT "Valor de Y ?",Y(Qc) 1470 GOTO 960 1480 ! 1490 Pausa=0 1500 PRINT CHR$(12) 1510 ! 1520 NEXT L 1530 ! 1540 PRINT CHR$(12) 1550 OFF KEY 1560 RETURN 1570 !------------------------------------------------------------------------ 1580 Pantalla: ! Visualización de los resultados 1590 !------------------------------------------------------------------------ 1600 OFF KEY 1610 GCLEAR 1620 PRINT CHR$(12) 1630 PRINT " PARA DESPLAZAR LA DIAGRAFIA EN LA PANTALLA MUEVA EL BOTON. " 1640 PRINT " PARA MOVER UN INDICADOR SOBRE LA CURVA PULSE LAS FLECHAS --> Ó <-- " 1650 PRINT "PARA CORREGIR SITUE EL INDICADOR EN EL PUNTO DE LA CURVA Y PULSE |ENTER|."

36

1660 PRINT " PARA SALIR DE LA REPRESENTACION PULSE EL ESPACIADOR. " 1670 ! 1680 VIEWPORT 0,130,0,80 1690 LINE TYPE 1 1700 FRAME 1710 Y1=INT(Min) ! =Min-(Max-Min)/3^(An-1) An=1,2 o 3 1720 Y2=INT(Max+1) ! =Max+(Max-Min)/3^(An-1) 1730 WINDOW X(1),X(Ndat),Y1,Y2 1740 MOVE X(1),Y(1) 1750 FOR I=2 TO Ndat 1760 DRAW X(I),Y(I) 1770 NEXT I 1780 BEEP 1790 PRINT CHR$(12) 1800 ! 1810 Salto=120*(Dist) 1820 Delta=INT(Ndat/100) 1830 Iref=1 1840 ! 1850 ON KNOB .01,3 GOTO 2310 ! Mueve la diagrafia 1860 ON KBD,3 GOTO 1880 1870 GOTO 1860 1880 Tecla$=KBD$ 1890 IF Tecla$=" " THEN GOTO 2640 ! Sale del bucle con el space 1900 IF Tecla$="ÿ<" OR Tecla$="ÿ>" THEN GOTO 1940 ! Mueve el indicador 1910 IF Tecla$="ÿE" THEN GOTO 2080 ! Corregir 1920 GOTO 1840 1930 ! 1940 ! IF Qcor$<>"F" THEN PRINT CHR$(12) 1950 MOVE X(Iref+K),Y(Iref+K)+(Max-Min)/100 1960 PEN -1 1970 DRAW X(Iref+K),Y(Iref+K)+(Max-Min)/10 1980 IF Tecla$="ÿ>" THEN K=K+1 1990 IF Tecla$="ÿ<" THEN K=K-1 2000 IF (Iref+K)<1 THEN K=1-Iref 2010 IF (Iref+K)>Ndat THEN K=Ndat-Iref 2020 MOVE X(Iref+K),Y(Iref+K)+(Max-Min)/100 2030 PEN 1 2040 DRAW X(Iref+K),Y(Iref+K)+(Max-Min)/10 2050 PRINT TABXY(17,1);"Dato:";Iref+K;"| Valor:";Y(Iref+K);"| Prof:";X(Iref+K) 2060 GOTO 1840 2070 ! 2080 Qcor$=" " 2090 IF Indice=1 THEN GOTO 2210 2100 INPUT "Quiere corregir este dato (D) o una franja entera (F) ",Qcor$ 2110 IF Qcor$<>"D" AND Qcor$<>"F" THEN GOTO 1840 2120 IF Qcor$="F" THEN GOTO 2160 2130 Qc=Iref+K 2140 INPUT "Nuevo valor del parametro ?",Y(Qc) 2150 GOTO 2300 2160 In=Iref+K 2170 PRINT TABXY(5,2);"Indice del dato inical de la franja a corregir:";In 2180 PRINT TABXY(5,3);"Mueva el indicador hasta el dato final y pulse |ENTER|" 2190 Indice=1 2200 GOTO 1840

37

2210 Fn=Iref+K 2220 PRINT TABXY(5,3);"Indice del dato final de la franja a corregir:";Fn," " 2230 INPUT "Desplazamiento que quiere dar al registro ",Des 2240 FOR I=In TO Fn 2250 Y(I)=Y(I)+Des 2260 NEXT I 2270 Des=0 2280 Indice=0 2290 PRINT CHR$(12) 2300 ! 2310 GRAPHICS ON 2320 GINIT 2330 GCLEAR 2340 VIEWPORT 0,130,0,80 2350 ! 2360 Iref=Iref+KNOBX*Delta 2370 IF Iref<1 THEN Iref=1 2380 IF Iref>Ndat THEN Iref=Ndat 2390 REPEAT 2400 IF X(Iref)+Salto>X(Ndat) THEN Iref=Iref-1 2410 UNTIL X(Iref)+Salto<=X(Ndat) 2420 K=1 2430 ! 2440 LINE TYPE 3 2450 WINDOW 0,12,0,10 2460 GRID 1,1 2470 LINE TYPE 1 2480 WINDOW INT(X(Iref)),INT(X(Iref)+Salto),Y1,Y2 2490 MOVE INT(X(Iref)),Y1 2500 LORG 1 2510 LABEL INT(X(Iref)) 2520 MOVE INT(X(Iref)+Salto),Y1 2530 LORG 7 2540 LABEL INT(X(Iref)+Salto) 2550 MOVE X(Iref),Y(Iref) 2560 LINE TYPE 4 2570 I=Iref 2580 REPEAT 2590 DRAW X(I),Y(I) 2600 I=I+1 2610 UNTIL X(I)>=X(Iref)+Salto 2620 ! 2630 GOTO 1840 2640 ! 2650 OFF KBD 2660 OFF KNOB 2670 ! 2680 GCLEAR 2690 PRINT CHR$(12) 2700 RETURN 2710 !------------------------------------------------------------------------ 2720 General: ! Correcciones generales 2730 !------------------------------------------------------------------------ 2740 OFF KEY 2750 PRINT CHR$(12)

38

2760 INPUT "Quiere decalar el registro",Qdec$ 2770 IF Qdec$<>"SI" AND Qdec$<>"S" THEN GOTO 2850 2780 PRINT TABXY(0,18);"Positivo para bajarlo y negativo para subirlo" 2790 Decal=0 2800 INPUT "Decalaje del registro en metros",Decal 2810 PRINT CHR$(12) 2820 PRINT " El registro de desplazara ";VAL$(Decal);" metros" 2830 X0=X0+Decal 2840 ! 2850 INPUT "Quiere acotar el registro",Qac$ 2860 IF Qac$<>"SI" AND Qac$<>"S" THEN GOTO 3500 2870 ! 2880 Prof1=X0 2890 INPUT "Profundidad hasta la que se quiere eliminar registro",Prof1 2900 IF Prof1<=X0 THEN GOTO 3060 2910 IF Prof1>=X(Ndat) THEN GOTO 2890 2920 Cambiondat=1 2930 FOR I=1 TO Ndat 2940 IF X(I)>Prof1 THEN 2950 N1=I-1 2960 GOTO 2990 2970 END IF 2980 NEXT I 2990 Ndat=Ndat-N1 3000 X0=X(N1) 3010 FOR I=1 TO Ndat 3020 Y(I)=Y(I+N1) 3030 X(I)=X0+I*Dist 3040 NEXT I 3050 ! 3060 Prof2=X(Ndat) 3070 INPUT "Profundidad desde la que se quiere eliminar registro",Prof2 3080 IF Prof2>=X(Ndat) THEN GOTO 3180 3090 IF Prof2<=X0 THEN GOTO 3070 3100 Cambiondat=1 3110 FOR I=Ndat TO 1 STEP -1 3120 IF X(I)<Prof2 THEN 3130 Ndat=I+1 3140 GOTO 3180 3150 END IF 3160 NEXT I 3170 ! 3180 IF Cambiondat=0 THEN GOTO 3300 3190 ALLOCATE Yprov(1:Ndat) 3200 FOR I=1 TO Ndat 3210 Yprov(I)=Y(I) 3220 NEXT I 3230 DEALLOCATE Y(*) 3240 ALLOCATE Y(1:Ndat) 3250 FOR I=1 TO Ndat 3260 Y(I)=Yprov(I) 3270 NEXT I 3280 DEALLOCATE Yprov(*) 3290 ! 3300 PRINT CHR$(12)

39

3310 Topemax=Max 3320 Topemin=Min 3330 PRINT TABXY(15,10);"Valor maximo actual";Max 3340 INPUT "Cota máxima del registro ",Topemax 3350 IF Topemax<Min OR Topemax>Max THEN GOTO 3340 3360 PRINT TABXY(40,10);" Nueva cota maxima";Topemax 3370 PRINT TABXY(15,12);"Valor minimo actual";Min 3380 INPUT "Cota minima del registro ",Topemin 3390 IF Topemin>Max OR Topemin<Min THEN GOTO 3380 3400 PRINT TABXY(40,12);" Nueva cota minima";Topemin 3410 IF Topemin=Min AND Topemax=Max THEN GOTO 3500 3420 INPUT "Correcto (Si teclea si, se eliminaran los valores extremos)",Cor4$ 3430 IF Cor4$<>"SI" AND Cor4$<>"S" THEN GOTO 3300 3440 Max=Topemax 3450 Min=Topemin 3460 FOR I=1 TO Ndat 3470 IF Y(I)<Min THEN Y(I)=Min 3480 IF Y(I)>Max THEN Y(I)=Max 3490 NEXT I 3500 ! 3510 BEEP 3520 PRINT CHR$(12) 3530 RETURN 3540 !------------------------------------------------------------------------ 3550 Grabar: ! Grabacion de los resultados 3560 !------------------------------------------------------------------------ 3570 OFF KEY 3580 ! 3590 Max=Y(1) 3600 Min=Y(1) 3610 FOR I=2 TO Ndat 3620 IF Y(I)>Max THEN Max=Y(I) 3630 IF Y(I)<Min THEN Min=Y(I) 3640 NEXT I 3650 ! 3660 INPUT "Quiere remplazar el registro ? ",Qr$ 3670 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 3730 3680 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 3690 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 3730 3700 MASS STORAGE IS ":HP 8290X,700,1" 3710 PURGE Nn$ 3720 GOTO 3810 3730 ! 3740 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 3750 IF Qc$="N" OR Qc$="NO" THEN GOTO 3940 3760 MASS STORAGE IS ":HP 8290X,700,1" 3770 PRINT "Remplace el disco en [1] y pulse |CONT|" 3780 PAUSE 3790 PRINT CHR$(12) 3800 ! 3810 Nr=(Ndat+5)*8+20 3820 CREATE BDAT Nn$,1,Nr 3830 ASSIGN @Pat_0 TO Nn$ 3840 OUTPUT @Pat_0;Ndat,X0,Dist,Min,Max 3850 OUTPUT @Pat_0;Y(*)

40

3860 ASSIGN @Pat_0 TO * 3870 MASS STORAGE IS ": HP 8290X,700,0" 3880 ! 3890 PRINT CHR$(12) 3900 PRINT TABXY(20,10);"Grabado el fichero ";Nn$;" corregido " 3910 BEEP 3920 ! 3930 Grabacion=1 3940 RETURN 3950 !----------------------------------------------------------------------- 3960 PRINT TABXY(30,12);"Fin del programa" 3970 STOP 3980 END 3990 !----------------------------------------------------------------------- 4000 SUB Salir 4010 BEEP 4020 OFF KEY 4030 ON KEY 0 LABEL "SALIR",2 GOTO 4060 4040 ON KEY 5 LABEL "CONTINUAR",2 GOTO 4080 4050 GOTO 4030 4060 INPUT "Quiere salir al programa principal",Qsal$ 4070 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 4080 OFF KEY 4090 SUBEND 4100 !-----------------------------------------------------------------------

41

10 !----------------------------------------------------------------------- 20 REM "DECALAR" 30 REM PROGRAMA PARA EL CALCULO Y ELIMINACION DE DECALAJES 40 !----------------------------------------------------------------------- 50 PRINTER IS 1 60 PRINT CHR$(12) 70 CONTROL 2,0;1 80 ! 90 GRAPHICS ON 100 GINIT 110 GCLEAR 120 ! 130 FOR F=0 TO 10 STEP 2 140 VIEWPORT 0+F,133-F,10+F,100-F 150 FRAME 160 NEXT F 170 ! 180 PRINT TABXY(15,10);" -DECALAR- " 190 PRINT TABXY(15,12);"PROGRAMA PARA EL CALCULO Y ELIMINACION DE DECALAJES" 200 CALL Salir 210 PRINT CHR$(12) 220 ! 230 ALLOCATE X1(1000),Y1(1000) 240 ALLOCATE X2(1000),Y2(1000) 250 DIM Cros(-10:10),Prof(1:50),Desp(1:50) 260 DIM St$[30],Titulo$[300],Npto(20) 270 ! 280 GOTO 410 290 !----------------------------------------------------------------------- 300 REM Flujos del programa 310 !----------------------------------------------------------------------- 320 ON KEY 5 LABEL "LECTURA DATOS " GOTO 410 330 ON KEY 6 LABEL " CALCULO AUT. " GOSUB Croscor 340 ON KEY 7 LABEL " PANTALLA " GOSUB Pantalla 350 ON KEY 8 LABEL "DECALAJE MEDIO" GOSUB Decmedio 360 ON KEY 9 LABEL " GRABAR " GOSUB Grabar 370 ON KEY 4 LABEL " TERMINAR " CALL Salir 380 GOTO 320 390 OFF KEY 400 !------------------------------------------------------------------------ 410 REM Entrada de datos 420 !------------------------------------------------------------------------ 430 GCLEAR 440 PRINT CHR$(12) 450 ! 460 GOSUB Leefichero 470 ! 480 Lectura=1 490 GOTO 310 500 !------------------------------------------------------------------------ 510 Croscor: ! Croscorrelacion para el calculo del decalaje 520 !------------------------------------------------------------------------ 530 GCLEAR 540 Xsalto=20 550 Isalto=Xsalto/Dist1

42

560 Tau0=Xsalto/2 570 ! 580 BEEP 590 INPUT "Numero de tramos de comparacion cada cien metros (1,2 o 3)",Intcen 600 IF Intcen<1 OR Intcen>3 THEN GOTO 580 610 Xini=INT((100-Intcen*Xsalto)/(Intcen*2)) 620 Xmed=Xini*2 630 ! 640 Ncen=(INT(X1(Ndat1)/100)+1)*Intcen 650 IF Ncen>0 AND Ncen<=6 THEN 660 Nx=3 670 Ny=2 680 END IF 690 IF Ncen>6 AND Ncen<=12 THEN 700 Nx=4 710 Ny=3 720 END IF 730 IF Ncen>12 AND Ncen<=20 THEN 740 Nx=5 750 Ny=4 760 END IF 770 Xcros=130/(Nx+1) 780 Ycros=80/(Ny+1) 790 CSIZE (8-Ny) 800 ! 810 D=1 820 Ndec=0 830 Icen1=1 840 Icen2=1 850 FOR Cen=1 TO Ncen 860 ! 870 Xcen=Xini+(Xmed+Xsalto)*(Cen-1) 880 ! 890 Rxcen=((Cen-1) MOD Nx)*(Xcros+Xcros/(Nx-1))+1.5 900 Rycen=((Cen-1) DIV Nx)*(Ycros+Ycros/(Ny-1))+10 910 ! 920 VIEWPORT 0,133.3,0,100 930 WINDOW 0,133.3,0,100 940 LORG 4 950 MOVE Rxcen+Xcros/2,Rycen+Ycros 960 LABEL VAL$(Xcen)&" - "&VAL$(Xcen+20) 970 VIEWPORT Rxcen,Rxcen+Xcros,Rycen,Rycen+Ycros 980 FRAME 990 ! 1000 FOR I=Icen1 TO Ndat1 1010 IF X1(I)>=Xcen THEN 1020 Icen1=I 1030 GOTO 1070 1040 END IF 1050 NEXT I 1060 ! Icen2=Icen1-Idif 1070 FOR I=Icen2 TO Ndat2 1080 IF X2(I)>=Xcen THEN 1090 Icen2=I 1100 GOTO 1150

43

1110 END IF 1120 NEXT I 1130 GOTO 1560 1140 ! 1150 IF (Icen2-Tau0)<1 THEN GOTO 1550 1160 IF Icen1+Isalto>Ndat1 OR Icen2+Isalto+Tau0>Ndat2 THEN GOTO 1560 1170 ! 1180 FOR Tau=-Tau0 TO Tau0 1190 Cros(Tau)=0 1200 Y2suma=0 1210 FOR Icros=0 TO Isalto 1220 Cros(Tau)=Cros(Tau)+Y1(Icen1+Icros)*Y2(Icen2+Icros+Tau) 1230 Y2suma=Y2suma+Y2(Icen2+Icros+Tau) 1240 NEXT Icros 1250 Cros(Tau)=Cros(Tau)/Y2suma 1260 NEXT Tau 1270 ! 1280 Crosmax=Cros(-Tau0) 1290 Taumax=-Tau0 1300 Crosmin=Cros(-Tau0) 1310 Taumin=-Tau0 1320 FOR Tau=-Tau0 TO Tau0 1330 IF Cros(Tau)>Crosmax THEN 1340 Crosmax=Cros(Tau) 1350 Taumax=Tau 1360 END IF 1370 IF Cros(Tau)<Crosmin THEN 1380 Crosmin=Cros(Tau) 1390 Taumin=Tau 1400 END IF 1410 NEXT Tau 1420 ! 1430 WINDOW -Tau0,Tau0,Crosmin,Crosmax 1440 MOVE -Tau0,Cros(-Tau0) 1450 FOR Tau=-Tau0 TO Tau0 1460 DRAW Tau,Cros(Tau) 1470 NEXT Tau 1480 ! 1490 Prof(D)=Xcen+Xsalto/2 1500 IF ABS(Taumax)<ABS(Taumin) THEN Desp(D)=-Taumax*Dist1 1510 IF ABS(Taumin)<ABS(Taumax) THEN Desp(D)=-Taumin*Dist1 1520 D=D+1 1530 Ndec=Ndec+1 1540 ! 1550 NEXT Cen 1560 ! 1570 Decalaje=1 1580 BEEP 81*38*.4,1 1590 RETURN 1600 !------------------------------------------------------------------------ 1610 Grabar: ! Grabacion del fichero corregido 1620 !------------------------------------------------------------------------ 1630 OFF KEY 1640 ! 1650 IF Decalaje<>1 THEN

44

1660 PRINT TABXY(15,1);"PRIMERO DEBE ELIMINAR DECALAJE DEL REGISTRO" 1670 BEEP 1680 GOTO 1730 1690 END IF 1700 X02=X02+Decal 1710 CALL Grabafich(Nom2$,Y2(*),Ndat2,X02,Dist2,Min2,Max2) 1720 ! 1730 RETURN 1740 !------------------------------------------------------------------------ 1750 Decmedio: ! Calculo del decalaje medio 1760 !------------------------------------------------------------------------ 1770 OFF KEY 1780 GCLEAR 1790 ! 1800 PRINT "PROFUNDIDAD | DECALAJE" 1810 PRINT "------------|---------" 1820 FOR D=1 TO Ndec 1830 PRINT USING "5X,3D,4X,1A,3X,SD.D";Prof(D);"|";Desp(D) 1840 NEXT D 1850 PRINT "------------|---------" 1860 ! 1870 Sum=0 1880 FOR D=1 TO Ndec 1890 Sum=Sum+Desp(D) 1900 NEXT D 1910 Decal=Sum/Ndec 1920 Decal=INT((Decal+.1)/.2)*.2 1930 PRINT " Dec. Medio | ";Decal 1940 ! 1950 INPUT "Esta de acuerdo con el decalaje medio",Ea$ 1960 IF Ea$="NO" OR Ea$="N" THEN 1970 INPUT "Nuevo valor de dacalaje",Decal 1980 END IF 1990 ! 2000 RETURN 2010 !------------------------------------------------------------------------ 2020 Pantalla: ! Visualizacion de resultados 2030 !------------------------------------------------------------------------ 2040 GCLEAR 2050 OFF KEY 2060 LINE TYPE 1 2070 Salto=31/Dist1 2080 Alt=10^INT(LGT(Max1-Min1)) 2090 Iref1=1 2100 ! 2110 VIEWPORT 0,133,10,50 2120 FRAME 2130 WINDOW INT(X1(1)),INT(X1(Ndat1))+1,Min1,Max1 2140 GRID 50,100,0,Min1 2150 MOVE X1(1),Y1(1) 2160 FOR I=2 TO Ndat1 2170 DRAW X1(I),Y1(I) 2180 NEXT I 2190 VIEWPORT 0,133,60,100 2200 FRAME

45

2210 WINDOW INT(X1(1)),INT(X1(Ndat1))+1,Min2,Max2 2220 GRID 50,100,0,Min2 2230 MOVE X2(1),Y2(1) 2240 FOR I=2 TO Ndat2 2250 DRAW X2(I),Y2(I) 2260 NEXT I 2270 ! 2280 PRINT CHR$(12) 2290 PRINT " PARA CAMBIAR DE PROFUNDIDAD GIRE EL CURSOR " 2300 PRINT " PARA MOVER LA DIAGRAFIA 2 UTILICE LAS FLECHAS " 2310 PRINT " PARA SALIR DEL GRAFICO PULSE EL ESPACIADOR " 2320 PRINT " PARA VOLCARLO A IMPRESORA PULSE |P| " 2330 BEEP 2340 ! 2350 ON KNOB .01,2 GOTO 2430 2360 ON KBD GOTO 2370 2370 Tecla$=KBD$ 2380 IF Tecla$="ÿ>" OR Tecla$="ÿ<" THEN GOTO 2680 ! Desplaza el registro 2 2390 IF Tecla$="ÿE" THEN GOTO 2880 ! Admite un desplazamiento 2400 IF Tecla$=CHR$(32) THEN GOTO 2930 ! Sale del grafico con el space 2410 IF Tecla$=CHR$(80) THEN CALL Imprimir ! Imprime la pantalla con la tecla P 2420 GOTO 2350 2430 ! 2440 GCLEAR 2450 Desplaz=0 2460 Iref1=Iref1+KNOBX*20*Dist1 2470 IF Iref1<1 THEN Iref1=1 2480 IF Iref1>(Ndat1-Salto) THEN Iref1=(Ndat1-Salto) 2490 Iref2=Iref1-Idif 2500 ! 2510 VIEWPORT 0,133,10,50 2520 WINDOW INT(X1(Iref1)),INT(X1(Iref1+Salto))+1,Min1,Max1 2530 AXES 1,Alt,INT(X1(Iref1)),Min1,1,1,2 2540 AXES 1,Alt,INT(X1(Iref1))+32,Max1,1,1,2 2550 MOVE INT(X1(Iref1)),Min1 2560 LORG 1 2570 LABEL INT(X1(Iref1)) 2580 MOVE INT(X1(Iref1+Salto))+1,Min1 2590 LORG 7 2600 LABEL INT(X1(Iref1+Salto))+1 2610 ! 2620 MOVE X1(Iref1),Y1(Iref1) 2630 FOR I=Iref1 TO Iref1+Salto 2640 DRAW X1(I),Y1(I) 2650 NEXT I 2660 GOTO 2780 2670 ! 2680 PEN -1 2690 IF Iref2>(Ndat2-Salto) OR Iref2<1 THEN GOTO 2770 2700 MOVE X2(Iref2),Y2(Iref2) 2710 FOR I=Iref2 TO Iref2+Salto 2720 DRAW X2(I),Y2(I) 2730 NEXT I 2740 PEN 1 2750 IF Tecla$="ÿ<" THEN Desplaz=Desplaz-Dist1

46

2760 IF Tecla$="ÿ>" THEN Desplaz=Desplaz+Dist1 2770 ! 2780 VIEWPORT 0,133,60,100 2790 FRAME 2800 IF Iref2>(Ndat2-Salto) OR Iref2<1 THEN GOTO 2350 2810 WINDOW INT(X2(Iref2))-Desplaz,INT(X2(Iref2+Salto))+1-Desplaz,Min2,Max2 2820 MOVE X2(Iref2),Y2(Iref2) 2830 FOR I=Iref2 TO Iref2+Salto 2840 DRAW X2(I),Y2(I) 2850 NEXT I 2860 GOTO 2350 2870 ! 2880 D=D+1 2890 Prof(D)=X1(Iref) 2900 Desp(D)=Desplaz 2910 GOTO 2350 2920 ! 2930 Ndec=D 2940 OFF KNOB 2950 OFF KBD 2960 PRINT CHR$(12) 2970 GCLEAR 2980 ! 2990 IF Ndec>1 THEN Decalaje=1 3000 RETURN 3010 !------------------------------------------------------------------------ 3020 Leefichero:! Lectura de los datos digitalizados 3030 ! 3040 !----------------------------------------------------------------------- 3050 SUSPEND INTERACTIVE 3060 PRINT CHR$(12) 3070 PRINT 3080 PRINT " Coloque el disco con datos de la diagrafia en la disquetera [1]" 3090 PRINT 3100 CALL Salir 3110 ! 3120 PRINT CHR$(12) 3130 MASS STORAGE IS ":HP 8290X,700,1" 3140 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN ESE DISCO" 3150 ON ERROR GOTO 4020 3160 CAT 3170 OFF ERROR 3180 ! 3190 Nom0$=Nom1$ 3200 BEEP 3210 INPUT "Nombre del fichero del registro de referencia",Nom1$ 3220 IF LEN(Nom1$)=0 OR LEN(Nom1$)>10 THEN GOTO 3210 3230 IF Nom1$=Nom0$ THEN GOTO 3550 3240 ON ERROR GOTO 4020 3250 ASSIGN @Pat_0 TO Nom1$ 3260 ASSIGN @Pat_0 TO * 3270 OFF ERROR 3280 ! 3290 PRINT CHR$(12) 3300 PRINT " Realizando la lectura de los datos de ";Nom1$;", NO interrumpir"

47

3310 ON ERROR GOTO 4020 3320 ASSIGN @Pat_0 TO Nom1$ 3330 ENTER @Pat_0;Ndat1,X01,Dist1,Min1,Max1 3340 DEALLOCATE X1(*),Y1(*) 3350 ALLOCATE X1(1:Ndat1),Y1(1:Ndat1) 3360 ENTER @Pat_0;Y1(*) 3370 ASSIGN @Pat_0 TO * 3380 OFF ERROR 3390 ! 3400 FOR I=1 TO Ndat1 3410 X1(I)=X01+I*Dist1 3420 NEXT I 3430 X11=X1(Ndat1) 3440 ! 3450 PRINT CHR$(12) 3460 PRINT TABXY(20,4);"Registro ";Nom1$ 3470 PRINT TABXY(20,6);"NÇmero de datos ------";Ndat1 3480 PRINT TABXY(20,7);"Equidistancia --------";Dist1 3490 PRINT TABXY(20,8);"Profundidad inicial --";X01 3500 PRINT TABXY(20,9);"Profundidad final ----";X11 3510 PRINT TABXY(20,10);"Valor mínimo ---------";INT(Min1) 3520 PRINT TABXY(20,11);"Valor máximo ---------";INT(Max1) 3530 CALL Salir 3540 PRINT CHR$(12) 3550 ! 3560 BEEP 3570 INPUT "Nombre del fichero del registro de estudio ",Nom2$ 3580 IF LEN(Nom2$)=0 OR LEN(Nom2$)>10 THEN GOTO 3570 3590 ON ERROR GOTO 4020 3600 ASSIGN @Pat_0 TO Nom2$ 3610 ASSIGN @Pat_0 TO * 3620 OFF ERROR 3630 ! 3640 PRINT CHR$(12) 3650 PRINT " Realizando la lectura de los datos de ";Nom2$;", NO interrumpir" 3660 ON ERROR GOTO 4020 3670 ASSIGN @Pat_0 TO Nom2$ 3680 ENTER @Pat_0;Ndat2,X02,Dist2,Min2,Max2 3690 DEALLOCATE X2(*),Y2(*) 3700 ALLOCATE X2(1:Ndat2),Y2(1:Ndat2) 3710 ENTER @Pat_0;Y2(*) 3720 ASSIGN @Pat_0 TO * 3730 OFF ERROR 3740 MASS STORAGE IS ":HP 8290X,700,0" 3750 ! 3760 IF Dist2<>Dist1 THEN 3770 PRINT TABXY(15,2);"EL FICHERO ";Nom2$;" ESTA GRABADO EN OTRA ESCALA" 3780 PRINT TABXY(15,4);" PARA REALIZAR EL ESTUDIO DEBEN COINCIDIR " 3790 CALL Salir 3800 GOTO 3070 3810 END IF 3820 ! 3830 Idif=(X02-X01)/Dist1 3840 ! 3850 FOR I=1 TO Ndat2

48

3860 X2(I)=X02+I*Dist2 3870 NEXT I 3880 X12=X2(Ndat2) 3890 ! 3900 PRINT CHR$(12) 3910 PRINT TABXY(20,4);"Registro ";Nom2$ 3920 PRINT TABXY(20,6);"NÇmero de datos ------";Ndat2 3930 PRINT TABXY(20,7);"Equidistancia --------";Dist2 3940 PRINT TABXY(20,8);"Profundidad inicial --";X02 3950 PRINT TABXY(20,9);"Profundidad final ----";X12 3960 PRINT TABXY(20,10);"Valor mínimo ---------";INT(Min2) 3970 PRINT TABXY(20,11);"Valor máximo ---------";INT(Max2) 3980 CALL Salir 3990 ! 4000 GOTO 4120 4010 ! 4020 OFF ERROR 4030 PRINT CHR$(12) 4040 IF ERRN=80 THEN GOTO 3060 4050 IF ERRN=56 THEN 4060 PRINT " EL FICHERO NO SE ENCUENTRA EN ESE DISCO" 4070 PRINT 4080 GOTO 3070 4090 END IF 4100 PRINT " ERROR";ERRN;" DURANTE LA LECTURA DE DATOS, REVISE POR FAVOR" 4110 GOTO 4140 4120 ! 4130 PRINT CHR$(12) 4140 OFF KEY 4150 RESUME INTERACTIVE 4160 RETURN 4170 !------------------------------------------------------------------------ 4180 PRINT CHR$(12) 4190 PRINT " FIN DEL PROGRAMA" 4200 ! 4210 STOP 4220 END 4230 !------------------------------------------------------------------------ 4240 SUB Salir 4250 ! SUBPROGRAMA PARA PARAR O SALIR DEL PROGRAMA 4260 ! 4270 !------------------------------------------------------------------------ 4280 OFF KEY 4290 SUSPEND INTERACTIVE 4300 BEEP 4310 ON KEY 0 LABEL " SALIR ",15 GOTO 4340 4320 ON KEY 5 LABEL " CONTINUAR ",15 GOTO 4360 4330 GOTO 4330 4340 INPUT "Quiere salir al programa principal",Qsal$ 4350 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 4360 OFF KEY 4370 RESUME INTERACTIVE 4380 SUBEND 4390 !------------------------------------------------------------------------ 4400 SUB Grabafich(Nn$,Y(*),Ndat,X0,Dist,Min,Max)

49

4410 ! 4420 REM SUBPROGRAMA DE GRABACION DE REGISTROS 4430 ! 4440 !------------------------------------------------------------------------ 4450 SUSPEND INTERACTIVE 4460 Nr=(Ndat+5)*8+20 4470 ! 4480 PRINT CHR$(12) 4490 MASS STORAGE IS ":HP 8290X,700,1" 4500 ON ERROR GOTO 4550 4510 CREATE BDAT Nn$,1,Nr 4520 OFF ERROR 4530 GOTO 4790 4540 ! 4550 IF ERRN=53 THEN 4560 PRINT "Nombre del fichero impropio" 4570 GOTO 4550 4580 END IF 4590 IF ERRN=54 THEN 4600 INPUT "Quiere remplazar el registro ? ",Qr$ 4610 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 4670 4620 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 4630 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 4600 4640 PURGE Nn$ 4650 OFF ERROR 4660 GOTO 4770 4670 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 4680 IF Qc$="N" OR Qc$="NO" THEN GOTO 4550 4690 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 4700 ON KBD ALL GOTO 4710 4710 IF KBD$<>"ÿC" THEN GOTO 4710 4720 OFF KBD 4730 PRINT CHR$(12) 4740 OFF ERROR 4750 GOTO 4770 4760 END IF 4770 CREATE BDAT Nn$,1,Nr 4780 ! 4790 PRINT "REALIZANDO GRABACION DEL FICHERO ";Nn$;" CORREGIDO, NO INTERRUMPIR" 4800 MASS STORAGE IS ":HP 8290X,700,1" 4810 ASSIGN @Pat_0 TO Nn$ 4820 OUTPUT @Pat_0;Ndat,X0,Dist,Min,Max 4830 OUTPUT @Pat_0;Y(*) 4840 ASSIGN @Pat_0 TO * 4850 MASS STORAGE IS ": HP 8290X,700,0" 4860 ! 4870 PRINT CHR$(12) 4880 PRINT TABXY(25,10);"Grabado el fichero ";Nn$ 4890 RESUME INTERACTIVE 4900 SUBEND 4910 !------------------------------------------------------------------------ 4920 SUB Imprimir 4930 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 4940 !------------------------------------------------------------------------ 4950 PRINTER IS 1

50

4960 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 4970 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 5020 4980 PRINT " Conecte la impresora y pulse |CONT| " 4990 PAUSE 5000 CALL Titulo 5010 CALL Vuelcapant(701) 5020 PRINT CHR$(12) 5030 PRINTER IS 1 5040 ! 5050 SUBEND 5060 !------------------------------------------------------------------------ 5070 SUB Titulo 5080 !------------------------------------------------------------------------ 5090 DIM Titulo$[240] 5100 ! 5110 PRINT CHR$(12) 5120 INPUT "Titulo del grafico",Titulo$ 5130 IF Titulo$="" THEN GOTO 5400 5140 PRINTER IS 1 5150 GOSUB Editor 5160 INPUT "Correcto",Cort$ 5170 IF Cort$="N" OR Cort$="NO" THEN GOTO 5110 5180 PRINTER IS 701 5190 GOSUB Editor 5200 PRINTER IS 1 5210 GOTO 5400 5220 ! 5230 Editor: ! Divide el texto y lo centra 5240 Titulo$=Titulo$&" " 5250 C0=0 5260 IF C0>=LEN(Titulo$) THEN GOTO 5380 5270 Caracter=50+C0 5280 FOR C=Caracter TO 1 STEP -1 5290 IF C>LEN(Titulo$) THEN GOTO 5370 5300 IF Titulo$[C,C]=" " THEN 5310 Tx=INT((64-(C-C0))/2) 5320 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 5330 PRINT USING Ima$;Titulo$[C0+1,C] 5340 C0=C 5350 GOTO 5260 5360 END IF 5370 NEXT C 5380 RETURN 5390 ! 5400 SUBEND 5410 !------------------------------------------------------------------------ 5420 SUB Vuelcapant(INTEGER Device_selector) 5430 !------------------------------------------------------------------------ 5440 OPTION BASE 1 5450 INTEGER Row_group,Prod_num,Maxrow 5460 DIM Graphic_escape$[7] 5470 ! 5480 ON ERROR GOTO 5880 5490 PRINTER IS Device_selector 5500 OFF ERROR

51

5510 ! 5520 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 5530 ! 5540 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 5550 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 5560 ! 5570 IF Graphics_res=1 THEN 5580 ALLOCATE Os$[512] ! Para los modelos 9836 5590 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 5600 Maxrow=390 ! Numero de lineas del 9836 5610 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 5620 ELSE 5630 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 5640 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 5650 Maxrow=300 ! Numero de lineas del 9826 y 9816 5660 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 5670 END IF 5680 ! 5690 GSTORE Screen(*) ! Almacena matriz de pantalla 5700 ! 5710 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 5720 ! 5730 FOR Row_group=1 TO 297 STEP 8 5740 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 5750 Gdump(Screen(*),Row_group,Os$) 5760 ! Volcado de linea de caracteres graficos 5770 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 5780 PRINT USING "7A,400A";Graphic_escape$,Os$ 5790 ELSE ! Para los modelos 9836 5800 PRINT USING "7A,512A";Graphic_escape$,Os$ 5810 END IF 5820 NEXT Row_group 5830 ! 5840 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 5850 ! 5860 SUBEXIT 5870 ! 5880 BEEP ! Caso de encontrarse error en "PRINTER IS" 5890 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 5900 ! 5910 SUBEND 5920 ! 5930 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 5940 !-------------------------------------------------------------------------

52

10 !----------------------------------------------------------------------- 20 REM "LINEA BASE" 30 REM PROGRAMA PARA EL CALCULO DE LINEA BASE 40 REM Y 50 REM ELIMINACION DEL DESPLAZAMIENTO DE LA LINEA 60 !----------------------------------------------------------------------- 70 PRINTER IS 1 80 PRINT CHR$(12) 90 CONTROL 2,0;1 100 ! 110 GRAPHICS ON 120 GINIT 130 GCLEAR 140 ! 150 FOR F=0 TO 10 STEP 2 160 VIEWPORT 0+F,133-F,10+F,100-F 170 FRAME 180 NEXT F 190 ! 200 PRINT TABXY(20,9);" -LINEA BASE- " 210 PRINT TABXY(20,11);" PROGRAMA PARA EL CALCULO DE LINEA BASE " 220 PRINT TABXY(20,12);" Y " 230 PRINT TABXY(20,13);"ELIMINACION DEL DESPLAZAMIENTO DE LA LINEA" 240 BEEP 250 CALL Salir 260 PRINT CHR$(12) 270 ! 280 INTEGER Pantalla(1:7500) 290 ALLOCATE Coef(1:10) 300 DIM St$[30],Titulo$[300],Tt1$[100],Tt2$[100],Tt3$[100],Npto(20) 310 COM /Leefi/ REAL X(1:3100),Y(1:3100),N,X0,Dist,Min,Max,Nn$[10] 320 COM /Polin/ REAL Kn(0:10),INTEGER Ro 330 COM /Cubic/ REAL K0,K1,K2,K3 340 ! 350 GOTO 510 360 !----------------------------------------------------------------------- 370 REM Flujos del programa 380 !----------------------------------------------------------------------- 390 ON KEY 0 LABEL "LECTURA DATOS " GOTO 510 400 ON KEY 5 LABEL " VISUALIZAR " GOSUB Pintar ! 5420 410 ON KEY 6 LABEL "CALCULO AUTOM." GOTO 870 420 ON KEY 1 LABEL "CALCULO PERS. " GOTO 1170 430 ON KEY 7 LABEL "OBT. PANTALLA " GOSUB Lbpantalla ! 2160 440 ON KEY 2 LABEL " LITOLOGICA " GOSUB Lblitolog ! 3220 450 ON KEY 8 LABEL " ELIMINACION " GOSUB Eliminacion ! 4980 460 ON KEY 9 LABEL " GRABAR " GOTO 1340 470 ON KEY 4 LABEL " TERMINAR " CALL Salir ! 9700 480 GOTO 390 490 OFF KEY 500 !------------------------------------------------------------------------ 510 REM Entrada de datos 520 !------------------------------------------------------------------------ 530 GCLEAR 540 PRINT CHR$(12) 550 !

53

560 IF Lineabase=1 AND Grabacion=0 THEN 570 PRINT "NO HA GRABADO LOS RESULTADOS DE LA ULTIMA CORRECCION" 580 INPUT "Quiere continuar",Qcon$ 590 IF Qcon$<>"SI" AND Qcon$<>"S" THEN GOTO 850 600 END IF 610 ! 620 IF Lectura=1 THEN 630 DEALLOCATE Yc(*) 640 DEALLOCATE Lb(*),Lint(*),Xint(*) 650 END IF 660 ! 670 CALL Leefichero ! 8940 680 Ndat=N 690 Rmin=INT(Min) 700 Rmax=INT(Max)+1 710 ALLOCATE Yc(1:Ndat) 720 ALLOCATE Lb(1:Ndat),Lint(1:310),Xint(1:310) 730 ! 740 FOR I=1 TO Ndat 750 Lb(I)=Y(I) 760 NEXT I 770 ! 780 Lectura=1 790 Lineabase=0 800 Eliminacion=0 810 Grabacion=0 820 ! 830 Tipo$="INICIAL" 840 GOSUB Pintar 850 GOTO 380 860 !------------------------------------------------------------------------ 870 REM Calculo automatico de la linea base 880 !------------------------------------------------------------------------ 890 PRINT CHR$(12) 900 Decision=1 910 Ind=20 920 Anom=1 ! Anomalias negativas 930 GOSUB Lbinterpol ! 3680 940 GOSUB Lbdecision ! 1510 950 Anom=2 ! Anomalias positivas 960 GOSUB Lbinterpol 970 GOSUB Lbdecision 980 IF Variacion(1)>Variacion(2) THEN Anom=2 990 IF Variacion(2)>Variacion(1) THEN Anom=1 1000 IF ABS(Variacion(1)-Variacion(2))/Variacion(Anom)<.1 THEN 1010 PRINT " NO SE ENCUENTRA LA LINEA BASE DE FORMA AUTOMATICA" 1020 BEEP 81.38*15,4 1030 GOTO 1100 1040 END IF 1050 ! 1060 Ind=40 1070 Interpol=1 1080 GOSUB Lbinterpol 1090 Interpol=0 1100 Decision=0

54

1110 ! 1120 Lineabase=1 1130 Tipo$="L.B." 1140 GOSUB Pintar 1150 GOTO 380 1160 !------------------------------------------------------------------------ 1170 REM Seleccion para la obtencion de la linea base 1180 !------------------------------------------------------------------------ 1190 PRINT TABXY(15,2);"MAXIMOS O MINIMOS COMPENSADOS -------------------- 1" 1200 PRINT TABXY(15,3);"MAX. o MIN. INTERPOLADOS ------------------------- 2" 1210 PRINT TABXY(15,4);"LINEA BASE MEDIA DEL REGISTRO -------------------- 3" 1220 BEEP 1230 INPUT "Modo de obtencion de la linea base",Selec1 1240 IF Selec1<1 OR Selec1>3 THEN GOTO 1230 1250 PRINT CHR$(12) 1260 ON Selec1 GOSUB Lbcompensad,Lbinterpol,Lbmedia 1270 ! 4350 3680 1660 1280 ! 1290 Lineabase=1 1300 Tipo$="L.B." 1310 GOSUB Pintar 1320 GOTO 380 1330 !------------------------------------------------------------------------ 1340 REM Grabacion de la linea base corregida 1350 !------------------------------------------------------------------------ 1360 OFF KEY 1370 ! 1380 IF Eliminacion<>1 THEN 1390 PRINT TABXY(15,1);"PRIMERO DEBE ELIMINAR DESPLAZAMIENTO DE LINEA BASE" 1400 BEEP 1410 GOTO 1490 1420 END IF 1430 ! 1440 GRAPHICS OFF 1450 CALL Grabafich(Nn$,Yc(*),Ndat,X0,Dist,Minc,Maxc) ! 10660 1460 GRAPHICS ON 1470 ! 1480 Grabacion=1 1490 GOTO 380 1500 !------------------------------------------------------------------------ 1510 Lbdecision: ! Estudio del tipo de anomalias que se producen 1520 !------------------------------------------------------------------------ 1530 Variacion(Anom)=0 1540 Signoant=0 1550 FOR H=2 TO Nint 1560 Incremento=Lint(H)-Lint(H-1) 1570 Signo=SGN(Incremento) 1580 IF ABS(Signo-Signoant)<2 THEN Factor=1 1590 IF ABS(Signo-Signoant)=2 THEN Factor=2 1600 Variacion(Anom)=Variacion(Anom)+ABS(Incremento)*Factor 1610 Signoant=Signo 1620 NEXT H 1630 ! 1640 RETURN 1650 !------------------------------------------------------------------------

55

1660 Lbmedia: ! Calculo de Linea Base media 1670 !------------------------------------------------------------------------ 1680 PRINT TABXY(15,2);"REGISTRO SUAVIZADO ------------------ 1" 1690 PRINT TABXY(15,3);"APROXIMACION POLINOMICA ------------- 2" 1700 BEEP 1710 INPUT "Modo de obtencion de la linea base",Selec3 1720 IF Selec3<1 OR Selec3>2 THEN GOTO 1710 1730 PRINT CHR$(12) 1740 ON Selec3 GOTO 1760,2030 1750 ! 1760 ! Registro inicial suavizado 1770 Ind=40 1780 PRINT TABXY(15,3);"CALCULO DE LA LINEA BASE MEDIA DEL REGISTRO" 1790 FOR I=1 TO Ind 1800 Lb(I)=0 1810 FOR J=1 TO I+Ind 1820 Lb(I)=Lb(I)+Y(J) 1830 NEXT J 1840 Lb(I)=Lb(I)/(I+Ind) 1850 NEXT I 1860 FOR I=Ind+1 TO Ndat-Ind 1870 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(30,4);X(I);"METROS" 1880 Lb(I)=0 1890 FOR J=I-Ind TO I+Ind 1900 Lb(I)=Lb(I)+Y(J) 1910 NEXT J 1920 Lb(I)=Lb(I)/(2*Ind+1) 1930 NEXT I 1940 FOR I=Ndat-Ind TO Ndat 1950 Lb(I)=0 1960 FOR J=I-Ind TO Ndat 1970 Lb(I)=Lb(I)+Y(J) 1980 NEXT J 1990 Lb(I)=Lb(I)/(Ndat-I+Ind) 2000 NEXT I 2010 GOTO 2150 2020 ! 2030 ! Aproximacion a un polinomio 2040 ! 2050 CALL Polinomio(X(*),Lb(*),Ndat) ! 7310 2060 PRINT TABXY(15,3);"CALCULO DE LA LINEA CON LOS COEFICIENTES DEL POLINOMIO" 2070 FOR I=1 TO Ndat 2080 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(30,4);X(I);"METROS" 2090 Lb(I)=0 2100 FOR H=0 TO Ro 2110 Lb(I)=Lb(I)+Kn(H)*X(I)^(H) 2120 NEXT H 2130 NEXT I 2140 ! 2150 RETURN 2160 !------------------------------------------------------------------------ 2170 Lbpantalla:! Obtencion de linea base en pantalla 2180 !------------------------------------------------------------------------ 2190 OFF KEY 2200 GLOAD Pantalla(*)

56

2210 VIEWPORT 1,133,33,78 2220 WINDOW INT(X(1)),INT(X(Ndat))+1,Rmin,Rmax 2230 ! 2240 PRINT CHR$(12) 2250 PRINT TABXY(15,1);"OBTENCION DE LINEA BASE EN PANTALLA" 2260 PRINT 2270 PRINT TABXY(0,3);" Numero de puntos |" 2280 PRINT TABXY(0,4);"------------------------|------------------------------" 2290 PRINT TABXY(0,5);"Espesor equiv. (metros) |" 2300 FOR Espesor=4 TO 18 STEP 2 2310 Npto(Espesor)=INT((Ndat/(Espesor/Dist))+.5) 2320 PRINT TABXY(18+Espesor*2,3);Npto(Espesor) 2330 PRINT TABXY(18+Espesor*2,5);Espesor 2340 NEXT Espesor 2350 INPUT "Introduzca el nÇmero de puntos de la linea que va a crear",Npu 2360 FOR Espesor=4 TO 18 STEP 2 2370 IF Npto(Espesor)=Npu THEN GOTO 2400 2380 NEXT Espesor 2390 GOTO 2350 2400 ! 2410 Nint=Npu+1 2420 Delta=Ndat DIV Npu 2430 Xint(1)=X(1) 2440 Lint(1)=Lb(1) 2450 FOR H=2 TO Nint 2460 Xint(H)=X((H-1)*Delta) 2470 Lint(H)=Lb((H-1)*Delta) 2480 NEXT H 2490 Xint(Nint)=X(Ndat) 2500 Lint(Nint)=Lb(Ndat) 2510 ! 2520 PRINT CHR$(12) 2530 PRINT " UTILIZE LAS FLECHAS <-- y --> PARA DESPLAZAR UN PUNTERO "; 2540 PRINT " A LO LARGO DE LA CURVA, " 2550 PRINT " DESPUES UTILICE EL ROTOR PARA GENERAR Y MOVER LA LINEA BASE" 2560 PRINT " PARA SALIR DEL GRAFICO PULSE EL ESPACIADOR " 2570 PRINT " PARA REDIBUJAR PULSE |ENTER| " 2580 ! 2590 LINE TYPE 1 2600 Desplaz=(Max-Min)/200 2610 H=1 2620 ON KBD,2 GOTO 2640 2630 GOTO 2620 2640 Tecla$=KBD$ 2650 IF Tecla$=" " THEN GOTO 3150 2660 ! 2670 IF Tecla$="ÿE" THEN 2680 GLOAD Pantalla(*) 2690 MOVE Xint(1),Lint(1) 2700 FOR H=1 TO Nint 2710 DRAW Xint(H),Lint(H) 2720 NEXT H 2730 END IF 2740 ! 2750 IF Tecla$="ÿ<" OR Tecla$="ÿ>" THEN

57

2760 PEN -1 2770 MOVE Xint(H),Min+(Max-Min)/100 2780 DRAW Xint(H),Min+(Max-Min)/20 2790 IF Tecla$="ÿ<" THEN 2800 H=H-1 2810 IF H<1 THEN H=Nint 2820 END IF 2830 IF Tecla$="ÿ>" THEN 2840 H=H+1 2850 IF H>Nint THEN H=1 2860 END IF 2870 PEN 1 2880 MOVE Xint(H),Min+(Max-Min)/100 2890 DRAW Xint(H),Min+(Max-Min)/20 2900 PRINT TABXY(26,18);"PROF=";Xint(H) 2910 PRINT TABXY(40,18);"L.B.=";INT(Lint(H)*100)/100 2920 END IF 2930 ! 2940 IF Tecla$="ÿV" OR Tecla$="ÿ^" THEN 2950 PEN -1 2960 IF H=1 THEN GOTO 2990 2970 MOVE Xint(H-1),Lint(H-1) 2980 DRAW Xint(H),Lint(H) 2990 IF H=Nint THEN GOTO 3020 3000 MOVE Xint(H),Lint(H) 3010 DRAW Xint(H+1),Lint(H+1) 3020 IF Tecla$="ÿV" THEN Lint(H)=Lint(H)-Desplaz 3030 IF Tecla$="ÿ^" THEN Lint(H)=Lint(H)+Desplaz 3040 PEN 1 3050 IF H=1 THEN GOTO 3080 3060 MOVE Xint(H-1),Lint(H-1) 3070 DRAW Xint(H),Lint(H) 3080 IF H=Nint THEN GOTO 3110 3090 MOVE Xint(H),Lint(H) 3100 DRAW Xint(H+1),Lint(H+1) 3110 PRINT TABXY(40,18);"L.B.=";INT(Lint(H)*100)/100 3120 END IF 3130 ! 3140 GOTO 2620 3150 OFF KBD 3160 BEEP 3170 INPUT "Esta de acuerdo con el numero de puntos de la Linea Base ",Ea$ 3180 IF Ea$="NO" OR Ea$="N" THEN GOTO 2240 3190 Tipo$="L.B." 3200 ! 3210 PRINT CHR$(12) 3220 GOSUB Interpolacion ! 6460 3230 ! 3240 PRINT CHR$(12) 3250 BEEP 3260 RETURN 3270 !------------------------------------------------------------------------ 3280 Lblitolog: ! Calculo de linea base para registros interpretados 3290 !------------------------------------------------------------------------ 3300 GOTO 3710

58

3310 INPUT "Nombre del registro del fichero de litologias ",Lit$ 3320 MASS STORAGE IS ":HP 8290X,700,1" 3330 ON ERROR GOTO 3450 3340 ASSIGN @Pat_0 TO Lit$ 3350 ENTER @Pat_0;Ncap,X0,Min,Max 3360 ALLOCATE Capa(1:Ncap),Clt(1:Ncap) 3370 FOR J=1 TO Ncap 3380 ENTER @Pat_0;Capa(J),Clit(J) 3390 NEXT J 3400 ASSIGN @Pat_0 TO * 3410 OFF ERROR 3420 MASS STORAGE IS ":HP 8290X,700,0" 3430 GOTO 3480 3440 ! 3450 PRINT " ERROR DURANTE LA LECTURA DE DATOS, REVISE POR FAVOR" 3460 GOTO 3310 3470 ! 3480 ! Codigo litologico de arcillas=44 y de margas=55 3490 H=1 3500 FOR J=1 TO Ncap 3510 IF Clit(J)=44 OR Clit(J)=55 THEN 3520 Xint(H)=(Capa(J)+Capa(J+1))/2 3530 H=H+1 3540 END IF 3550 NEXT J 3560 Nint=H 3570 ! 3580 H=1 3590 FOR I=1 TO Ndat 3600 IF X(I)=Xint(H) THEN 3610 Yint(H)=Y(I) 3620 H=H+1 3630 GOTO 3650 3640 END IF 3650 NEXT I 3660 ! 3670 GOSUB Interpolacion 3680 ! 3690 Tipo$="L.B." 3700 GOSUB Pintar 3710 RETURN 3720 !------------------------------------------------------------------------ 3730 Lbinterpol: ! Calculo de linea base interpolacion de extremos 3740 !------------------------------------------------------------------------ 3750 IF Decision=1 THEN GOTO 3830 3760 BEEP 3770 INPUT "Tipo de anomalias Negativas(1) o Positivas(2) ",Anom 3780 IF Anom<1 OR Anom>3 THEN GOTO 4440 3790 Ind=40 3800 INPUT "Numero de puntos para el estudio de extremos ",Ind 3810 IF Ind<1 OR Ind>100 THEN GOTO 3800 3820 ! 3830 GLOAD Pantalla(*) 3840 VIEWPORT 1,133,33,78 3850 WINDOW INT(X(1)),INT(X(Ndat))+1,Rmin,Rmax

59

3860 MOVE X(1),Y(1) 3870 ! 3880 Nint=0 3890 Xint(1)=X(1) 3900 Lint(1)=Y(1) 3910 H=2 3920 ON Anom GOTO 3940,4120 3930 ! 3940 PRINT TABXY(25,2);"CALCULO DE LINEA DE MAXIMOS" 3950 FOR I=1+5 TO Ndat-5 3960 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(33,3);X(I);"METROS" 3970 Ymax=Min 3980 FOR J=I-Ind TO I+Ind 3990 IF J<1 OR J>Ndat THEN GOTO 4010 4000 IF Y(J)>Ymax THEN Ymax=Y(J) 4010 NEXT J 4020 IF Y(I)=Ymax THEN 4030 Lint(H)=Ymax 4040 Xint(H)=X(I) 4050 DRAW Xint(H),Lint(H) 4060 H=H+1 4070 Nint=Nint+1 4080 END IF 4090 NEXT I 4100 GOTO 4280 4110 ! 4120 PRINT TABXY(25,2);"CALCULO DE LINEA DE MINIMOS" 4130 FOR I=1+5 TO Ndat-5 4140 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(33,3);X(I);"METROS" 4150 Ymin=Max 4160 FOR J=I-Ind TO I+Ind 4170 IF J<1 OR J>Ndat THEN GOTO 4190 4180 IF Y(J)<Ymin THEN Ymin=Y(J) 4190 NEXT J 4200 IF Y(I)=Ymin THEN 4210 Lint(H)=Ymin 4220 Xint(H)=X(I) 4230 DRAW Xint(H),Lint(H) 4240 H=H+1 4250 Nint=Nint+1 4260 END IF 4270 NEXT I 4280 ! 4290 Nint=Nint+1 4300 Xint(Nint)=X(Ndat) 4310 Lint(Nint)=Y(Ndat) 4320 ! 4330 IF Decision=1 AND Interpol=0 THEN GOTO 4360 4340 GOSUB Interpolacion 4350 ! 4360 PRINT CHR$(12) 4370 BEEP 4380 RETURN 4390 !------------------------------------------------------------------------ 4400 Lbcompensad: ! Maximos o Minimos Compensados

60

4410 !------------------------------------------------------------------------ 4420 IF Decision=1 THEN GOTO 4510 4430 BEEP 4440 INPUT "Tipo de anomalias Negativas(1) o Positivas(2) ",Anom 4450 IF Anom<1 OR Anom>2 THEN GOTO 4440 4460 Ind=40 4470 INPUT "Numero de puntos para el estudio de extremos ",Ind 4480 IF Ind<1 OR Ind>100 THEN GOTO 4470 4490 ON Anom GOTO 4760,4510 4500 ! 4510 PRINT TABXY(20,2);"CALCULO DE LINEA BASE DE MINIMOS COMPENSADOS" 4520 Distancia=Ind*Dist 4530 FOR I=1 TO Ind 4540 Lb(I)=Y(I) 4550 NEXT I 4560 FOR I=Ind+1 TO Ndat-Ind 4570 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(35,3);X(I);"METROS" 4580 Lbmin=Y(I) 4590 Xbmin=X(I) 4600 FOR J=I-Ind TO I+Ind STEP Ind/10 4610 IF Y(J)<Lbmin THEN 4620 Lbmin=Y(J) 4630 Xbmin=X(J) 4640 END IF 4650 NEXT J 4660 Pesoval=ABS(Xbmin-X(I))/Distancia*.05 4670 Pesoant=Pesoval*16 4680 Pesomin=1-(Pesoval+Pesoant) 4690 Lb(I)=Pesomin*Lbmin+Pesoval*Y(I)+Pesoant*Lb(I-1) 4700 NEXT I 4710 FOR I=Ndat-Ind TO Ndat 4720 Lb(I)=Y(I) 4730 NEXT I 4740 GOTO 4990 4750 ! 4760 PRINT TABXY(20,2);"CALCULO DE LINEA BASE DE MAXIMOS COMPENSADOS" 4770 Distancia=Ind*Dist 4780 FOR I=1 TO Ind 4790 Lb(I)=Y(I) 4800 NEXT I 4810 FOR I=Ind+1 TO Ndat-Ind 4820 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(35,3);X(I);"METROS" 4830 Lbmax=Y(I) 4840 Xbmax=X(I) 4850 FOR J=I-Ind TO I+Ind STEP 2 4860 IF Y(J)>Lbmax THEN 4870 Lbmax=Y(J) 4880 Xbmax=X(J) 4890 END IF 4900 NEXT J 4910 Pesoval=ABS(Xbmax-X(I))/Distancia*.05 4920 Pesoant=Pesoval*16 4930 Pesomin=1-(Pesoval+Pesoant) 4940 Lb(I)=Pesomin*Lbmax+Pesoval*Y(I)+Pesoant*Lb(I-1) 4950 NEXT I

61

4960 FOR I=Ndat-Ind TO Ndat 4970 Lb(I)=Y(I) 4980 NEXT I 4990 ! 5000 PRINT CHR$(12) 5010 RETURN 5020 !------------------------------------------------------------------------ 5030 Eliminacion:! Eliminacion de Desplazamiento de Linea Base 5040 !------------------------------------------------------------------------ 5050 Tipo$="FINAL" 5060 Lb(1)=Lb(2)-(Lb(3)-Lb(2)) 5070 PRINT CHR$(12) 5080 PRINT TABXY(16,1);"ELIMINACION DE DESPLAZAMIENTO DE LINEA BASE" 5090 PRINT TABXY(15,3);"DIFERENCIA ABSOLUTA (P.E. y G.N.) ---------- 1" 5100 PRINT TABXY(15,4);"DIFERENCIA PROPORCIONAL (Resistividades) --- 2" 5110 BEEP 5120 INPUT "Tipo de linea base",Tlb 5130 IF Tlb<1 OR Tlb>2 THEN GOTO 5120 5140 PRINT CHR$(12) 5150 PRINT TABXY(20,2);"ELIMINACION DE TENDENCIAS REGIONALES" 5160 ON Tlb GOTO 5180,5320 5170 ! 5180 ! Registro de Potencial Espontaneo 5190 ! 5200 FOR I=1 TO Ndat 5210 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(30,3);X(I);"METROS" 5220 Yc(I)=Y(I)-Lb(I) 5230 NEXT I 5240 Minc=Yc(1) 5250 Maxc=Yc(2) 5260 FOR I=1 TO Ndat 5270 IF Yc(I)<Minc THEN Minc=Yc(I) 5280 IF Yc(I)>Maxc THEN Maxc=Yc(I) 5290 NEXT I 5300 GOTO 5420 5310 ! 5320 ! Registro de Resistividad 5330 ! 5340 FOR I=1 TO Ndat 5350 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(30,3);X(I);"METROS" 5360 Yc(I)=(Y(I)-Lb(I))*(Max-Min)/(Max-Lb(I))+Min 5370 NEXT I 5380 Maxc=Max 5390 Minc=Min 5400 GOTO 5420 5410 ! 5420 Rmax=INT(Maxc+1) 5430 Rmin=INT(Minc) 5440 Eliminacion=1 5450 PRINT CHR$(12) 5460 GOSUB Pintar 5470 RETURN 5480 !------------------------------------------------------------------------ 5490 Pintar: ! Visualizacion de resultados 5500 !------------------------------------------------------------------------

62

5510 GCLEAR 5520 OFF KEY 5530 Salto=16/Dist 5540 Iref=1 5550 GLOAD Pantalla(*) 5560 Tt1$=" REPRESENTACION DE LA CURVA INICIAL " 5570 Tt2$=" REPRESENTACION DE LA CURVA INICIAL Y LA LINEA BASE OBTENIDA" 5580 Tt3$=" REPRESENTACION DE LA CURVA RESULTANTE " 5590 IF Tipo$="INICIAL" THEN PRINT T1$ 5600 IF Tipo$="L.B." THEN PRINT T2$ 5610 IF Tipo$="FINAL" THEN Tt$=T3$ 5620 VIEWPORT 1,133,33,78 5630 LINE TYPE 1 5640 FRAME 5650 WINDOW INT(X(1)),INT(X(Ndat))+1,Rmin,Rmax 5660 LINE TYPE 4 5670 ! 5680 IF Tipo$="INICIAL" THEN 5690 MOVE X(1),Y(1) 5700 FOR I=2 TO Ndat 5710 DRAW X(I),Y(I) 5720 NEXT I 5730 GSTORE Pantalla(*) 5740 GOTO 6510 5750 END IF 5760 IF Tipo$="FINAL" THEN 5770 MOVE X(1),Yc(1) 5780 FOR I=2 TO Ndat 5790 DRAW X(I),Yc(I) 5800 NEXT I 5810 END IF 5820 IF Tipo$="L.B." THEN 5830 GLOAD Pantalla(*) 5840 MOVE X(1),Lb(1) 5850 FOR I=2 TO Ndat 5860 DRAW X(I),Lb(I) 5870 NEXT I 5880 END IF 5890 ! 5900 IF Tipo$="PANTALLA" THEN GOTO 6460 5910 PRINT CHR$(12) 5920 PRINT " PARA MOVER LA DIAGRAFIA GIRE EL CURSOR " 5930 PRINT " PARA SALIR DEL GRAFICO PULSE EL ESPACIADOR " 5940 PRINT " PARA VOLCARLO A IMPRESORA PULSE |P| " 5950 BEEP 5960 ! 5970 ON KNOB .01,2 GOTO 6030 5980 ON KBD GOTO 5990 5990 Tecla$=KBD$ 6000 IF Tecla$=CHR$(32) THEN GOTO 6460 ! Sale del grafico con el space 6010 IF Tecla$=CHR$(80) THEN CALL Imprimir! Imprime la pantalla con la tecla P 6020 GOTO 5970 6030 ! 6040 GCLEAR 6050 Iref=Iref+KNOBX*20*Dist

63

6060 IF Iref<1 THEN Iref=1 6070 IF Iref>(Ndat-Salto) THEN Iref=(Ndat-Salto) 6080 ! 6090 VIEWPORT 1,133,33,78 6100 Amin=INT(X(Iref)) 6110 Amax=INT(X(Iref))+16 6120 WINDOW Amin,Amax,Rmin,Rmax 6130 LINE TYPE 1 6140 AXES 1,5,Amin,Rmin 6150 AXES 1,5,Amax,Rmax 6160 MOVE Amin,Rmin 6170 LORG 1 6180 LABEL Amin 6190 MOVE Amax,Rmin 6200 LORG 7 6210 LABEL Amax 6220 ! 6230 MOVE X(Iref),Y(Iref) 6240 LINE TYPE 4 6250 IF Tipo$="INICIAL" OR Tipo$="L.B." THEN 6260 MOVE X(Iref),Y(Iref) 6270 FOR I=Iref TO Iref+Salto 6280 DRAW X(I),Y(I) 6290 NEXT I 6300 END IF 6310 IF Tipo$="FINAL" THEN 6320 MOVE X(Iref),Yc(Iref) 6330 FOR I=Iref TO Iref+Salto 6340 DRAW X(I),Yc(I) 6350 NEXT I 6360 END IF 6370 IF Tipo$="L.B." THEN 6380 MOVE X(Iref),Lb(Iref) 6390 FOR I=Iref TO Iref+Salto 6400 DRAW X(I),Lb(I) 6410 NEXT I 6420 END IF 6430 ! 6440 GOTO 5970 6450 ! 6460 GLOAD Pantalla(*) 6470 OFF KNOB 6480 OFF KBD 6490 PRINT CHR$(12) 6500 ! 6510 RETURN 6520 !------------------------------------------------------------------------ 6530 Interpolacion: ! Interpolacion de lineas base discretas 6540 !------------------------------------------------------------------------ 6550 IF Interpol=1 THEN GOTO 7000 6560 PRINT TABXY(15,3);"INTERPOLACION LINEAL ----------------------------- 1" 6570 PRINT TABXY(15,4);"INTERPOLACION CUBICA ----------------------------- 2" 6580 BEEP 6590 INPUT "Modo de interpolacion del resto de puntos de la linea",Selec2 6600 IF Selec2<1 OR Selec2>2 THEN GOTO 6590

64

6610 PRINT CHR$(12) 6620 PRINT " INTERPOLACION DE LINEA BASE EN EL RESTO DE LOS PUNTOS" 6630 ON Selec2 GOTO 7000,6650 6640 ! 6650 ! Interpolacion cubica de lineas base discretas 6660 ! 6670 CALL Cubica(Xint(1),Lint(1),Xint(2),Lint(2),Xint(3),Lint(3),Xint(4),Lint(4)) 6680 FOR I0=1 TO Ndat 6690 IF X(I0)<=Xint(2) THEN 6700 Lb(I0)=K0+K1*X(I0)+K2*X(I0)^2+K3*X(I0)^3 6710 END IF 6720 IF X(I0)>Xint(2) THEN GOTO 6740 6730 NEXT I0 6740 ! 6750 H=2 6760 FOR I=I0 TO Ndat 6770 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(33,3);X(I);"METROS" 6780 IF X(I)<Xint(H) THEN 6790 GOTO 6910 6800 END IF 6810 IF X(I)>Xint(H) AND X(I)<Xint(H+1) THEN 6820 Lb(I)=K0+K1*X(I)+K2*X(I)^2+K3*X(I)^3 6830 END IF 6840 IF X(I)=Xint(H+1) THEN 6850 Lb(I)=Lint(H+1) 6860 CALL Cubica(Xint(H-1),Lint(H-

1),Xint(H),Lint(H),Xint(H+1),Lint(H+1),Xint(H+2),Lint(H+2)) 6870 H=H+1 6880 IF H>=Nint THEN GOTO 6930 6890 GOTO 6910 6900 END IF 6910 NEXT I 6920 ! 6930 CALL Cubica(Xint(Nint-3),Lint(Nint-3),Xint(Nint-2),Lint(Nint-2),Xint(Nint-

1),Lint(Nint-1),Xint(Nint),Lint(Nint)) 6940 FOR I1=I TO Ndat 6950 Lb(I1)=K0+K1*X(I1)+K2*X(I1)^2+K3*X(I1)^3 6960 NEXT I1 6970 ! 6980 GOTO 7300 6990 ! 7000 ! Interpolacion lineal de lineas base discretas 7010 Href=1 7020 FOR I=1 TO Ndat 7030 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(33,3);X(I);"METROS" 7040 IF X(I)<Xint(1) THEN 7050 Pendiente=(Lint(1)-Y(1))/(Xint(1)-X(1)) 7060 Lb(I)=Y(1)+Pendiente*(X(I)-X(1)) 7070 GOTO 7230 7080 END IF 7090 IF X(I)>Xint(Href) AND X(I)<Xint(Href+1) THEN 7100 Pendiente=(Lint(Href+1)-Lint(Href))/(Xint(Href+1)-Xint(Href)) 7110 Lb(I)=Lint(Href)+Pendiente*(X(I)-Xint(Href)) 7120 GOTO 7230 7130 END IF

65

7140 IF X(I)=Xint(Href+1) THEN 7150 Lb(I)=Lint(Href+1) 7160 Href=Href+1 7170 GOTO 7230 7180 END IF 7190 IF X(I)>Xint(Nint) THEN 7200 Pendiente=(Y(Ndat)-Lint(Nint))/(X(Ndat)-Xint(Nint)) 7210 Lb(I)=Lint(Nint)+Pendiente*(X(I)-Xint(Nint)) 7220 END IF 7230 NEXT I 7240 ! 7250 Np=39 7260 ! INPUT "Numero de puntos del filtro ",Np 7270 IF INT(Np/2)=Np/2 THEN Np=Np+1 7280 CALL Suavizar(X(*),Lb(*),Ndat,Np) ! 9850 7290 ! 7300 RETURN 7310 !------------------------------------------------------------------------ 7320 PRINT CHR$(12) 7330 PRINT " FIN DEL PROGRAMA" 7340 ! 7350 STOP 7360 END 7370 !------------------------------------------------------------------------ 7380 SUB Polinomio(Xa(*),Ya(*),Pu) 7390 ! 7400 ! SUBPROGRAMA DE AJUSTE A UNA FUNCION POLINOMICA TIPO 7410 ! F(X)=A(0)+A(1)*X+A(2)*X^2+...+A(N)*X^N 7420 ! 7430 COM /Polin/ REAL Kn(0:10),INTEGER Ro 7440 DIM Xr(100),Yr(100) 7450 !------------------------------------------------------------------------ 7460 REM Calculo de los coeficientes 7470 !------------------------------------------------------------------------ 7480 PRINT " Grado | Tiempo aprox. de calculo" 7490 PRINT "----------------------------------" 7500 FOR Rot=1 TO 6 7510 Segundos=INT((.0113+.0255*Rot)*Pu) 7520 Minutos=INT(Segundos/60) 7530 Segundos=Segundos-Minutos*60 7540 PRINT " ";Rot;" ";VAL$(Minutos);"¨ ";VAL$(Segundos);"¨¨" 7550 NEXT Rot 7560 PRINT 7570 INPUT "0rden del polinomio ",Ro 7580 PRINT " Orden del Polinomio";Ro 7590 INPUT "Correcto ",Cor2$ 7600 IF Cor2$="no" OR Cor2$="NO" OR Cor2$="n" OR Cor2$="N" THEN GOTO 7570 7610 M=Ro+1 7620 N=Ro+2 7630 ALLOCATE C(1:M,1:N),Ce(1:M,1:N),Co(1:M,1:N) 7640 PRINT CHR$(12) 7650 PRINT TABXY(15,1);"Calculo de los sumatorios de potencias de X" 7660 ! 7670 FOR I=1 TO Ro+1 7680 FOR J=1 TO Ro+1

66

7690 IF Xa(1)=0 OR I+J-2=0 THEN 7700 C(I,J)=0 7710 GOTO 7720 7720 END IF 7730 C(I,J)=Xa(1)^(I+J-2) 7740 NEXT J 7750 NEXT I 7760 ! 7770 J=1 7780 FOR I=1 TO Ro+1 7790 FOR K=2 TO Pu 7800 C(I,J)=C(I,J)+Xa(K)^(I+J-2) 7810 NEXT K 7820 PRINT TABXY((J-1)*10,I+2),DROUND(C(I,J),4) 7830 NEXT I 7840 I=Ro+1 7850 FOR J=2 TO Ro+1 7860 FOR K=2 TO Pu 7870 C(I,J)=C(I,J)+Xa(K)^(I+J-2) 7880 NEXT K 7890 PRINT TABXY((J-1)*10,I+2),DROUND(C(I,J),4) 7900 NEXT J 7910 ! 7920 FOR J=2 TO Ro+1 7930 FOR I=1 TO Ro+1-1 7940 C(I,J)=C(I+1,J-1) 7950 PRINT TABXY((J-1)*10,I+2),DROUND(C(I,J),4) 7960 NEXT I 7970 NEXT J 7980 ! 7990 PRINT TABXY(15,1);"Calculo de los sumatorios de potencias de X e Y" 8000 ! 8010 C(1,1)=Pu 8020 FOR I=1 TO Ro+1 8030 IF Xa(1)=0 THEN 8040 C(I,Ro+2)=0 8050 GOTO 8080 8060 END IF 8070 C(I,Ro+2)=Ya(1)*(Xa(1)^(I-1)) 8080 NEXT I 8090 ! 8100 FOR I=1 TO Ro+1 8110 FOR K=2 TO Pu 8120 C(I,Ro+2)=C(I,Ro+2)+Ya(K)*(Xa(K)^(I-1)) 8130 NEXT K 8140 PRINT TABXY((Ro+2-1)*10,I+2),DROUND(C(I,Ro+2),4) 8150 NEXT I 8160 ! 8170 PRINT TABXY(20,I+3);"Inversion de la matriz" 8180 ! 8190 FOR K=1 TO M 8200 Ite=1 8210 R=ABS(C(1,K)) 8220 A=1 8230 IF M=K THEN 8300

67

8240 FOR I=2 TO M-K+1 8250 IF R>=ABS(C(I,K)) THEN GOTO 8280 8260 R=ABS(C(I,K)) 8270 A=I 8280 NEXT I 8290 ! 8300 FOR J=1 TO N 8310 Cm(K,J)=C(A,J) 8320 NEXT J 8330 ! 8340 IF M=K THEN 8650 8350 ! 8360 IF A=1 THEN 8430 8370 FOR J=1 TO N 8380 FOR I=1 TO (A-1) 8390 Ce(I,J)=C(I,J) 8400 NEXT I 8410 NEXT J 8420 IF A=(M-K+1) THEN 8490 8430 FOR J=1 TO N 8440 FOR I=A+1 TO M-K+1 8450 Ce(I-1,J)=C(I,J) 8460 NEXT I 8470 NEXT J 8480 ! 8490 FOR J=1 TO N 8500 FOR I=1 TO M-K 8510 C(I,J)=Ce(I,J) 8520 NEXT I 8530 NEXT J 8540 ! 8550 FOR J=1 TO N 8560 FOR I=M-K+1 TO M 8570 C(I,J)=0 8580 NEXT I 8590 NEXT J 8600 ! 8610 Ite=Ite+1 8620 NEXT K 8630 ! 8640 ! 8650 FOR I=1 TO M 8660 FOR J=1 TO N 8670 Co(I,J)=Cm(I,J) 8680 NEXT J 8690 NEXT I 8700 ! 8710 FOR J=1 TO N-1 8720 FOR K=1 TO M 8730 IF K<>J THEN 8850 8740 FOR H=1 TO N 8750 Cm(K,H)=Cm(K,H)/Co(K,K) 8760 Ca(K,H)=Cm(K,H) 8770 NEXT H 8780 !

68

8790 FOR I=1 TO M 8800 IF I=K THEN 8840 8810 FOR H=1 TO N 8820 Cm(I,H)=Co(I,H)-Cm(K,H)*Co(I,J) 8830 NEXT H 8840 NEXT I 8850 NEXT K 8860 ! 8870 FOR I=1 TO N 8880 FOR K=1 TO M 8890 Co(K,I)=Cm(K,I) 8900 NEXT K 8910 NEXT I 8920 NEXT J 8930 ! 8940 FOR I=0 TO Ro !\ 8950 Kn(I)=Cm(I+1,N) ! > Conversion de coeficientes al vector Kn(*) 8960 NEXT I !/ 8970 ! 8980 PRINT CHR$(12) 8990 SUBEND 9000 !----------------------------------------------------------------------- 9010 SUB Leefichero 9020 ! 9030 REM Lectura de los datos digitalizados 9040 ! 9050 COM /Leefi/ REAL X(1:3100),Y(1:3100),Ndat,X0,Dist,Min,Max,Nn$[10] 9060 !----------------------------------------------------------------------- 9070 SUSPEND INTERACTIVE 9080 PRINT CHR$(12) 9090 PRINT 9100 PRINT "Coloque el disco con datos de la diagrafia en la disquetera [1]" 9110 PRINT 9120 PRINT " Cuando lo haya hecho, pulse |CONT|" 9130 BEEP 9140 ON KBD ALL GOTO 9150 9150 Tecla$=KBD$ 9160 IF Tecla$<>"ÿC" THEN GOTO 9160 9170 OFF KBD 9180 ! 9190 PRINT CHR$(12) 9200 MASS STORAGE IS ":HP 8290X,700,1" 9210 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN ESE DISCO" 9220 CAT 9230 BEEP 9240 INPUT "Nombre del Fichero ? ",Nn$ 9250 IF LEN(Nn$)=0 OR LEN(Nn$)>10 THEN GOTO 9240 9260 ON ERROR GOTO 9310 9270 ASSIGN @Pat_0 TO Nn$ 9280 ASSIGN @Pat_0 TO * 9290 OFF ERROR 9300 GOTO 9350 9310 PRINT 9320 IF ERRN=56 THEN PRINT " El fichero ";Nn$;" no se encuentra en ese disco" 9330 GOTO 9090

69

9340 ! 9350 PRINT CHR$(12) 9360 PRINT " Realizando la lectura de los datos, NO interrumpir " 9370 ON ERROR GOTO 9420 9380 ASSIGN @Pat_0 TO Nn$ 9390 ENTER @Pat_0;Ndat,X0,Dist,Min,Max 9400 ENTER @Pat_0;Y(*) 9410 ASSIGN @Pat_0 TO * 9420 IF ERRN<>59 THEN 9430 OFF ERROR 9440 PRINT CHR$(12) 9450 PRINT " ERROR DURANTE LA LECTURA DE DATOS, REVISE POR FAVOR" 9460 GOTO 9650 9470 END IF 9480 OFF ERROR 9490 MASS STORAGE IS ":HP 8290X,700,0" 9500 ! 9510 FOR I=1 TO Ndat 9520 X(I)=X0+I*Dist 9530 NEXT I 9540 X1=X(Ndat) 9550 ! 9560 PRINT CHR$(12) 9570 PRINT TABXY(20,4);"Registro ";Nn$ 9580 PRINT TABXY(20,6);"NÇmero de datos ------";Ndat 9590 PRINT TABXY(20,7);"Equidistancia --------";Dist 9600 PRINT TABXY(20,8);"Profundidad inicial --";X0 9610 PRINT TABXY(20,9);"Profundidad final ----";X1 9620 PRINT TABXY(20,10);"Valor mínimo ---------";INT(Min) 9630 PRINT TABXY(20,11);"Valor máximo ---------";INT(Max) 9640 BEEP 9650 ON KEY 0 LABEL " OTRO FICHERO " GOTO 9690 9660 ON KEY 5 LABEL " CONTINUAR " GOTO 9720 9670 ON KEY 4 LABEL " TERMINAR " CALL Salir 9680 GOTO 9650 9690 OFF KEY 9700 GOTO 9080 9710 ! 9720 PRINT CHR$(12) 9730 OFF KEY 9740 RESUME INTERACTIVE 9750 SUBEND 9760 !------------------------------------------------------------------------ 9770 SUB Salir 9780 ! SUBPROGRAMA PARA PARAR O SALIR DEL PROGRAMA 9790 ! 9800 !------------------------------------------------------------------------ 9810 OFF KEY 9820 SUSPEND INTERACTIVE 9830 ON KEY 0 LABEL " SALIR ",15 GOTO 9860 9840 ON KEY 5 LABEL " CONTINUAR ",15 GOTO 9880 9850 GOTO 9830 9860 INPUT "Quiere salir al programa principal",Qsal$ 9870 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 9880 OFF KEY

70

9890 RESUME INTERACTIVE 9900 SUBEND 9910 !------------------------------------------------------------------------ 9920 SUB Suavizar(X(*),Lb(*),Ndat,Np) 9930 ! 9940 ! SUBPROGRAMA PARA SUAVIZADO DE UNA CURVA 9950 ! 9960 !------------------------------------------------------------------------ 9970 ALLOCATE Coef(-10:10),Ys(1:3100) 9980 PRINT TABXY(20,3);"SUAVIZADO DE LA LINEA BASE OBTENIDA" 9990 ! 10000 GOSUB Filtro 10010 FOR I=1 TO Ind 10020 Ys(I)=Lb(I) 10030 NEXT I 10040 FOR I=Ind+1 TO Ndat-Ind 10050 IF INT(X(I)/10)=X(I)/10 THEN PRINT TABXY(30,4);X(I);"METROS " 10060 Ys(I)=0 10070 FOR H=(-Ind) TO Ind 10080 Ys(I)=Ys(I)+Lb(I+H)*Coef(H) 10090 NEXT H 10100 NEXT I 10110 FOR I=Ndat-Ind TO Ndat 10120 Ys(I)=Lb(I) 10130 NEXT I 10140 ! 10150 FOR I=1 TO Ndat 10160 Lb(I)=Ys(I) 10170 NEXT I 10180 ! 10190 DEALLOCATE Ys(*) 10200 PRINT CHR$(12) 10210 GOTO 10710 10220 !------------------------------------------------------------------------ 10230 Filtro:! Calculo de coeficientes de filtro 10240 !------------------------------------------------------------------------ 10250 DEALLOCATE Coef(*) 10260 ! 10270 Ind=(Np-1)/2 10280 Tf=2 10290 ! INPUT "Tipo de filtro Gauss (1), Escalon (2) o Seno Card (3)",Tf 10300 ON Tf GOTO 10320,10440,10540 10310 ! 10320 ALLOCATE Coef(-Ind:Ind) !----------------! 10330 Coeficiente=1/2 ! 10340 Sumcoef=0 ! 10350 FOR H=(-Ind) TO Ind ! 10360 Coef(H)=Coeficiente^(ABS(H)) ! COEFICIENTES DEL FILTRO 10370 Sumcoef=Sumcoef+Coef(H) ! GAUSS 10380 NEXT H ! 10390 FOR H=(-Ind) TO Ind ! 10400 Coef(H)=Coef(H)/Sumcoef ! 10410 NEXT H ! 10420 GOTO 10690 !------------------------------! 10430 !

71

10440 ALLOCATE Coef(-Ind:Ind) !----------------! 10450 Sumcoef=0 ! 10460 FOR H=(-Ind) TO Ind ! 10470 Sumcoef=Sumcoef+1 ! COEFICIENTES DEL FILTRO 10480 NEXT H ! CUADRADO 10490 FOR H=(-Ind) TO Ind ! 10500 Coef(H)=1/Sumcoef ! 10510 NEXT H ! 10520 GOTO 10690 !------------------------------! 10530 ! 10540 ALLOCATE Coef(-Ind:Ind) !----------------! 10550 Numciclos=3 ! 10560 Sumcoef=0 ! 10570 Coef(0)=1 ! 10580 FOR H=(-Ind) TO Ind ! 10590 IF H=0 THEN GOTO 10620 ! COEFICIENTES DEL FILTRO 10600 F=Numciclos*(PI/1.3)/Ind*H ! 10610 Coef(H)=SIN(F)/F ! SENO CARDINAL 10620 Sumcoef=Sumcoef+Coef(H) ! 10630 NEXT H ! 10640 FOR H=-Ind TO Ind ! 10650 Coef(H)=Coef(H)/Sumcoef ! 10660 NEXT H ! 10670 GOTO 10690 !------------------------------! 10680 ! 10690 RETURN 10700 !------------------------------------------------------------------------ 10710 SUBEND 10720 !------------------------------------------------------------------------ 10730 SUB Grabafich(Nn$,Y(*),Ndat,X0,Dist,Min,Max) 10740 ! 10750 REM SUBPROGRAMA DE GRABACION DE REGISTROS 10760 ! 10770 !------------------------------------------------------------------------ 10780 SUSPEND INTERACTIVE 10790 Nr=(Ndat+5)*8+20 10800 ALLOCATE Yg(1:Ndat) 10810 FOR I=1 TO Ndat 10820 Yg(I)=Y(I) 10830 NEXT I 10840 ! 10850 PRINT CHR$(12) 10860 MASS STORAGE IS ":HP 8290X,700,1" 10870 ON ERROR GOTO 10920 10880 CREATE BDAT Nn$,1,Nr 10890 OFF ERROR 10900 GOTO 11160 10910 ! 10920 IF ERRN=53 THEN 10930 PRINT "Nombre del fichero impropio" 10940 GOTO 10890 10950 END IF 10960 IF ERRN=54 THEN 10970 INPUT "Quiere remplazar el registro ? ",Qr$ 10980 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 11040

72

10990 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 11000 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 10970 11010 PURGE Nn$ 11020 OFF ERROR 11030 GOTO 11140 11040 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 11050 IF Qc$="N" OR Qc$="NO" THEN GOTO 10890 11060 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 11070 ON KBD ALL GOTO 11080 11080 IF KBD$<>"ÿC" THEN GOTO 11080 11090 OFF KBD 11100 PRINT CHR$(12) 11110 OFF ERROR 11120 GOTO 11140 11130 END IF 11140 CREATE BDAT Nn$,1,Nr 11150 ! 11160 PRINT "REALIZANDO GRABACION DEL FICHERO ";Nn$;" CORREGIDO, NO INTERRUMPIR" 11170 MASS STORAGE IS ":HP 8290X,700,1" 11180 ASSIGN @Pat_0 TO Nn$ 11190 OUTPUT @Pat_0;Ndat,X0,Dist,Min,Max 11200 OUTPUT @Pat_0;Yg(*) 11210 ASSIGN @Pat_0 TO * 11220 MASS STORAGE IS ": HP 8290X,700,0" 11230 ! 11240 DEALLOCATE Yg(*) 11250 PRINT CHR$(12) 11260 PRINT TABXY(25,10);"Grabado el fichero ";Nn$ 11270 RESUME INTERACTIVE 11280 SUBEND 11290 !------------------------------------------------------------------------ 11300 SUB Imprimir 11310 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 11320 !------------------------------------------------------------------------ 11330 PRINTER IS 1 11340 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 11350 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 11400 11360 PRINT " Conecte la impresora y pulse |CONT| " 11370 PAUSE 11380 CALL Titulo 11390 CALL Vuelcapant(701) 11400 PRINT CHR$(12) 11410 PRINTER IS 1 11420 ! 11430 SUBEND 11440 !------------------------------------------------------------------------ 11450 SUB Titulo 11460 !------------------------------------------------------------------------ 11470 DIM Titulo$[240] 11480 ! 11490 PRINT CHR$(12) 11500 INPUT "Titulo del grafico",Titulo$ 11510 IF Titulo$="" THEN GOTO 11780 11520 PRINTER IS 1 11530 GOSUB Editor

73

11540 INPUT "Correcto",Cort$ 11550 IF Cort$="N" OR Cort$="NO" THEN GOTO 11490 11560 PRINTER IS 701 11570 GOSUB Editor 11580 PRINTER IS 1 11590 GOTO 11780 11600 ! 11610 Editor: ! Divide el texto y lo centra 11620 Titulo$=Titulo$&" " 11630 C0=0 11640 IF C0>=LEN(Titulo$) THEN GOTO 11760 11650 Caracter=50+C0 11660 FOR C=Caracter TO 1 STEP -1 11670 IF C>LEN(Titulo$) THEN GOTO 11750 11680 IF Titulo$[C,C]=" " THEN 11690 Tx=INT((64-(C-C0))/2) 11700 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 11710 PRINT USING Ima$;Titulo$[C0+1,C] 11720 C0=C 11730 GOTO 11640 11740 END IF 11750 NEXT C 11760 RETURN 11770 ! 11780 SUBEND 11790 !------------------------------------------------------------------------ 11800 SUB Vuelcapant(INTEGER Device_selector) 11810 !------------------------------------------------------------------------ 11820 OPTION BASE 1 11830 INTEGER Row_group,Prod_num,Maxrow 11840 DIM Graphic_escape$[7] 11850 ! 11860 ON ERROR GOTO 12260 11870 PRINTER IS Device_selector 11880 OFF ERROR 11890 ! 11900 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 11910 ! 11920 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 11930 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 11940 ! 11950 IF Graphics_res=1 THEN 11960 ALLOCATE Os$[512] ! Para los modelos 9836 11970 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 11980 Maxrow=390 ! Numero de lineas del 9836 11990 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 12000 ELSE 12010 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 12020 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 12030 Maxrow=300 ! Numero de lineas del 9826 y 9816 12040 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 12050 END IF 12060 ! 12070 GSTORE Screen(*) ! Almacena matriz de pantalla 12080 !

74

12090 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 12100 ! 12110 FOR Row_group=1 TO 297 STEP 8 12120 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 12130 Gdump(Screen(*),Row_group,Os$) 12140 ! Volcado de linea de caracteres graficos 12150 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 12160 PRINT USING "7A,400A";Graphic_escape$,Os$ 12170 ELSE ! Para los modelos 9836 12180 PRINT USING "7A,512A";Graphic_escape$,Os$ 12190 END IF 12200 NEXT Row_group 12210 ! 12220 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 12230 ! 12240 SUBEXIT 12250 ! 12260 BEEP ! Caso de encontrarse error en "PRINTER IS" 12270 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 12280 ! 12290 SUBEND 12300 ! 12310 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 12320 !------------------------------------------------------------------------- 12330 SUB Cubica(X1,Y1,X2,Y2,X3,Y3,X4,Y4) 12340 ! 12350 ! SUBPROGRAMA DE CALCULO DE COEFICIENTES DE UNA CUBICA 12360 ! PARA CUATRO PARES DE PUNTOS 12370 ! 12380 COM /Cubic/ REAL K0,K1,K2,K3 12390 ! 12400 X21=X2-X1 12410 X31=X3-X1 12420 X41=X4-X1 12430 Xx1=X1^2 12440 Xxx1=X1^3 12450 Xx21=X2^2-Xx1 12460 Xx31=X3^2-Xx1 12470 Xx41=X4^2-Xx1 12480 Xxx21=X2^3-Xxx1 12490 Xxx31=X3^3-Xxx1 12500 Xxx41=X4^3-Xxx1 12510 Y21=Y2-Y1 12520 Y31=Y3-Y1 12530 Y41=Y4-Y1 12540 Yx3yx2=Y31/X31-Y21/X21 12550 Yx4yx2=Y41/X41-Y21/X21 12560 Xx3xx2=Xx31/X31-Xx21/X21 12570 Xx4xx2=Xx41/X41-Xx21/X21 12580 Xxx3xxx2=Xxx31/X31-Xxx21/X21 12590 Xxx4xxx2=Xxx41/X41-Xxx21/X21 12600 D1=Yx4yx2/Xx4xx2 12610 D2=Yx3yx2/Xx3xx2 12620 D3=Xxx4xxx2/Xx4xx2 12630 D4=Xxx3xxx2/Xx3xx2

75

12640 K3=(D1-D2)/(D3-D4) 12650 K2=D2-K3*D4 12660 K1=Y21/X21-K2*Xx21/X21-K3*Xxx21/X21 12670 K0=Y1-K1*X1-K2*X1^2-K3*X1^3 12680 ! 12690 SUBEND 12700 !------------------------------------------------------------------------

76

10 !----------------------------------------------------------------------- 20 REM "SEGMENTAR" 30 REM PROGRAMA PARA SEGMENTACION DE DIAGRAFIAS 40 !----------------------------------------------------------------------- 50 PRINTER IS 1 60 PRINT CHR$(12) 70 CONTROL 2,0;1 80 ! 90 GRAPHICS ON 100 GINIT 110 GCLEAR 120 ! 130 FOR F=0 TO 10 STEP 2 140 VIEWPORT 0+F,133-F,10+F,100-F 150 FRAME 160 NEXT F 170 ! 180 PRINT TABXY(20,10);" -SEGMENTAR- " 190 PRINT TABXY(20,12);"PROGRAMA PARA SEGMENTACION DE DIAGRAFIAS" 200 CALL Salir 210 PRINT CHR$(12) 220 GCLEAR 230 ! 240 ! INTEGER Pantalla(1:7500) 250 ALLOCATE X(1:1000),Y(1:1000) 260 ALLOCATE Capa(1:100),Valor(1:100) 270 COM /Segme/ REAL C(500),P(500),INTEGER Nc 280 ! 290 Grabacion=1 300 GOTO 430 310 !----------------------------------------------------------------------- 320 REM Flujos del programa 330 !----------------------------------------------------------------------- 340 ON KEY 5 LABEL "LECTURA DATOS " GOTO 430 350 ON KEY 6 LABEL " SEGMENTACION " GOTO 650 360 ON KEY 7 LABEL "CORREGIR CAPAS" GOTO 810 370 ON KEY 8 LABEL " GRABACION " GOTO 930 380 ON KEY 9 LABEL " IMPRIMIR " CALL Imprimir ! 4100 390 ON KEY 4 LABEL " TERMINAR " GOTO 1100 400 GOTO 340 410 OFF KEY 420 !------------------------------------------------------------------------ 430 REM Entrada de datos 440 !------------------------------------------------------------------------ 450 GRAPHICS OFF 460 IF Grabacion=0 THEN 470 PRINT TABXY(15,2);"LOS RESULTADOS ANTERIORES NO SE HAN GRABADO" 480 BEEP 490 INPUT "Quiere continuar",Qc$ 500 IF Qc$<>"SI" AND Qc$<>"S" THEN GOTO 620 510 END IF 520 ! 530 GCLEAR 540 PRINT CHR$(12) 550 !

77

560 GOSUB Leefichero ! 1350 570 ! 580 Lectura=1 590 Segmentacion=0 600 Grabacion=0 610 ! 620 GRAPHICS ON 630 GOTO 330 640 !------------------------------------------------------------------------ 650 REM Segmentacion 660 !------------------------------------------------------------------------ 670 GCLEAR 680 CALL Segmentar(X(*),Y(*),Ndat,Dist,"S") ! 2250 690 Ncap=Nc 700 DEALLOCATE Capa(*),Valor(*) 710 ALLOCATE Capa(0:Ncap),Valor(1:Ncap) 720 Capa(0)=X0 730 FOR J=1 TO Ncap 740 Capa(J)=C(J) 750 Valor(J)=P(J) 760 NEXT J 770 ! 780 Segmentacion=1 790 GOTO 330 800 !------------------------------------------------------------------------ 810 REM Correccion de capas 820 !------------------------------------------------------------------------ 830 IF Segmentacion=0 THEN 840 PRINT TABXY(20,2);"PRIMERO DEBE SEGMENTAR EL REGISTRO" 850 BEEP 860 GOTO 910 870 END IF 880 ! 890 CALL Correccapa(X(*),Y(*),Capa(*),Valor(*),Ndat,Ncap,Dist) ! 5650 900 ! 910 GOTO 330 920 !------------------------------------------------------------------------ 930 REM Grabacion de capas 940 !------------------------------------------------------------------------ 950 GRAPHICS OFF 960 IF Segmentacion<>1 THEN 970 PRINT TABXY(15,2);"PRIMERO DEBE SEGMENTAR EL REGISTRO" 980 BEEP 990 GOTO 1070 1000 END IF 1010 ! 1020 CALL Graba2(Nom1$,Capa(*),Valor(*),Ncap,X0,Min,Max) ! 5100 1030 ! 1040 Grabacion=1 1050 Lectura=0 1060 ! 1070 GRAPHICS ON 1080 GOTO 330 1090 !------------------------------------------------------------------------ 1100 REM Terminar el programa

78

1110 !------------------------------------------------------------------------ 1120 GRAPHICS OFF 1130 IF Segmentacion=1 AND Grabacion<>1 THEN 1140 PRINT TABXY(15,1);"ATENCION, NO HA GRABADO LOS RESULTADOS" 1150 BEEP 1160 INPUT "Quiere continuar",Qcon$ 1170 IF Qcon$<>"SI" AND Qcon$<>"S" THEN GOTO 1220 1180 END IF 1190 ! 1200 CALL Salir ! 2050 1210 ! 1220 GRAPHICS ON 1230 GOTO 330 1240 !------------------------------------------------------------------------ 1250 Leefichero:! Lectura de los datos digitalizados 1260 !----------------------------------------------------------------------- 1270 SUSPEND INTERACTIVE 1280 PRINT CHR$(12) 1290 PRINT 1300 PRINT " Coloque el disco con datos de la diagrafia en la disquetera [1]" 1310 PRINT 1320 CALL Salir 1330 ! 1340 PRINT CHR$(12) 1350 MASS STORAGE IS ":HP 8290X,700,1" 1360 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN ESE DISCO" 1370 ON ERROR GOTO 1780 1380 CAT 1390 OFF ERROR 1400 ! 1410 BEEP 1420 INPUT "Nombre del fichero del registro a estudiar (<= 8 caracteres)",Nom1$ 1430 IF LEN(Nom1$)=0 OR LEN(Nom1$)>8 THEN GOTO 1420 1440 DEALLOCATE X(*),Y(*) 1450 ON ERROR GOTO 1780 1460 ASSIGN @Pat_0 TO Nom1$ 1470 ASSIGN @Pat_0 TO * 1480 OFF ERROR 1490 ! 1500 PRINT CHR$(12) 1510 PRINT " Realizando la lectura de los datos de ";Nom1$;", NO interrumpir" 1520 ON ERROR GOTO 1780 1530 ASSIGN @Pat_0 TO Nom1$ 1540 ENTER @Pat_0;Ndat,X0,Dist,Min,Max 1550 ALLOCATE X(1:Ndat),Y(1:Ndat) 1560 ENTER @Pat_0;Y(*) 1570 ASSIGN @Pat_0 TO * 1580 OFF ERROR 1590 ! 1600 FOR I=1 TO Ndat 1610 X(I)=X0+I*Dist 1620 NEXT I 1630 X1=X(Ndat) 1640 ! 1650 PRINT CHR$(12)

79

1660 PRINT TABXY(20,4);"Registro ";Nom$ 1670 PRINT TABXY(20,6);"NÇmero de datos ------";Ndat 1680 PRINT TABXY(20,7);"Equidistancia --------";Dist 1690 PRINT TABXY(20,8);"Profundidad inicial --";X0 1700 PRINT TABXY(20,9);"Profundidad final ----";X1 1710 PRINT TABXY(20,10);"Valor mínimo ---------";INT(Min) 1720 PRINT TABXY(20,11);"Valor máximo ---------";INT(Max) 1730 CALL Salir 1740 PRINT CHR$(12) 1750 ! 1760 GOTO 1900 1770 ! 1780 OFF ERROR 1790 PRINT CHR$(12) 1800 IF ERRN=80 THEN GOTO 1280 1810 IF ERRN=56 THEN 1820 PRINT " EL FICHERO NO SE ENCUENTRA EN ESE DISCO" 1830 PRINT 1840 GOTO 1290 1850 END IF 1860 IF ERRN<>59 THEN 1870 PRINT " ERROR DURANTE LA LECTURA DE DATOS, REVISE POR FAVOR" 1880 GOTO 1920 1890 END IF 1900 ! 1910 MASS STORAGE IS ":HP 8290X,700,0" 1920 PRINT CHR$(12) 1930 OFF KEY 1940 RESUME INTERACTIVE 1950 RETURN 1960 !------------------------------------------------------------------------ 1970 END 1980 !------------------------------------------------------------------------ 1990 SUB Salir 2000 ! 2010 BEEP 2020 OFF KEY 2030 SUSPEND INTERACTIVE 2040 ON KEY 0 LABEL "SALIR" GOTO 2070 2050 ON KEY 5 LABEL "CONTINUAR" GOTO 2090 2060 GOTO 2040 2070 INPUT "Quiere salir al programa principal",Qsal$ 2080 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 2090 OFF KEY 2100 RESUME INTERACTIVE 2110 ! 2120 SUBEND 2130 !------------------------------------------------------------------------ 2140 SUB Segmentar(Xs(*),Y(*),Ndat,Dist,Repre$) 2150 ! 2160 ! SUBPROGRAMA DE CALCULO DE SEGMENTOS DE UNA CURVA 2170 ! Y DE LOS VALORES APARENTES 2180 ! 2190 COM /Segme/ REAL C(500),P(500),INTEGER Nc 2200 !------------------------------------------------------------------------

80

2210 ! Calculo de la derivada 2220 !------------------------------------------------------------------------ 2230 OFF KEY 2240 IF Repre$="N" THEN GOTO 2260 2250 CALL Visual4(Xs(*),Y(*),Ndat,1,"C","CURVA INICIAL") 2260 ! 2270 ALLOCATE Yd(1:Ndat),Ys(1:Ndat) 2280 FOR I=1 TO Ndat 2290 Ys(I)=Y(I) 2300 NEXT I 2310 ! 2320 Deriv=1 2330 ! 2340 PRINT CHR$(12) 2350 PRINT " REALIZANDO CALCULOS DE DERIVADA DE ORDEN ";VAL$(Deriv); 2360 PRINT ", ESPERE POR FAVOR" 2370 ! 2380 Yd(1)=(Ys(2)-Ys(1))/(Xs(2)-Xs(1)) 2390 FOR I=2 TO Ndat-1 2400 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 2410 ! =((Ys(I)-Ys(I-1))/(Xs(I)-Xs(I-1))+(Ys(I+1)-Ys(I))/(Xs(I+1)-Xs(I)))/2 2420 Yd(I)=(Ys(I+1)-Ys(I-1))/(2*Dist) 2430 NEXT I 2440 Yd(Ndat)=(Ys(Ndat)-Ys(Ndat-1))/(Xs(Ndat)-Xs(Ndat-1)) 2450 !------------------------------------------------------------------------ 2460 REM Suavizado de la derivada 2470 !------------------------------------------------------------------------ 2480 IF Deriv=1 THEN Np=5 ! NUMERO DE PUNTOS 2490 IF Deriv=2 THEN Np=5 ! PARA EL SUAVIZADO 2500 I0=(Np-1)/2 2510 ! 2520 PRINT CHR$(12) 2530 PRINT " REALIZANDO SUAVIZADO DE DERIVADA DE ORDEN ";VAL$(Deriv); 2540 PRINT ", ESPERE POR FAVOR" 2550 ! 2560 FOR I=I0+1 TO Ndat-I0 2570 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 2580 Ys(I)=0 2590 FOR K=-I0 TO I0 2600 Ys(I)=Ys(I)+Yd(I+K) 2610 NEXT K 2620 Ys(I)=Ys(I)/Np 2630 NEXT I 2640 ! 2650 Dpte=(Ys(I0+3)-Ys(I0+2))/Dist-(Ys(I0+2)-Ys(I0+1))/Dist 2660 FOR I=I0 TO 1 STEP -1 2670 Pte=(Ys(I+2)-Ys(I+1))/Dist 2680 IF Deriv=1 THEN Ys(I)=Ys(I+1)-(Pte-Dpte)*Dist 2690 IF Deriv=2 THEN Ys(I)=Ys(I+1) 2700 NEXT I 2710 Dpte=(Ys(Ndat-I0)-Ys(Ndat-I0-1))/Dist-(Ys(Ndat-I0-1)-Ys(Ndat-I0-2))/Dist 2720 FOR I=Ndat-I0-1 TO Ndat 2730 Pte=(Ys(I-1)-Ys(I-2))/Dist 2740 IF Deriv=1 THEN Ys(I)=Ys(I-1)+(Pte+Dpte)*Dist 2750 IF Deriv=2 THEN Ys(I)=Ys(I-1)

81

2760 NEXT I 2770 ! 2780 IF Repre$="N" THEN GOTO 2820 2790 IF Deriv=1 THEN Grafico$="PRIMERA DERIVADA" 2800 IF Deriv=2 THEN Grafico$="SEGUNDA DERIVADA" 2810 CALL Visual4(Xs(*),Ys(*),Ndat,Deriv+1,"C",Grafico$) 2820 !------------------------------------------------------------------------ 2830 ! Siguientes derivadas 2840 ! 2850 IF Deriv=2 THEN GOTO 2900 2860 Deriv=Deriv+1 2870 GOTO 2330 2880 DEALLOCATE Yd(*) 2890 !------------------------------------------------------------------------ 2900 REM Calculo de los puntos de inflexion 2910 !------------------------------------------------------------------------ 2920 PRINT CHR$(12) 2930 PRINT " REALIZANDO CALCULO DE PUNTOS DE INFLEXION, ESPERE POR FAVOR " 2940 ! 2950 ALLOCATE Ic(1:500) 2960 Ic(1)=1 2970 C(1)=Xs(1) 2980 J=2 2990 FOR I=2 TO Ndat-1 3000 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 3010 IF ABS(SGN(Ys(I+1))-SGN(Ys(I)))=2 THEN 3020 Ic(J)=I 3030 ! IF Ic(J)-Ic(J-1)<2 THEN GOTO 6660 ! DESCONSIDERA RECTAS 3040 C(J)=Xs(I+1)-Ys(I+1)*(Xs(I+1)-Xs(I))/(Ys(I+1)-Ys(I)) 3050 J=J+1 3060 END IF 3070 NEXT I 3080 Nc=J 3090 C(Nc)=Xs(Ndat) 3100 Ic(Nc)=Ndat 3110 !------------------------------------------------------------------------ 3120 REM Calculo del valor aparente de la curva en cada segmento 3130 !------------------------------------------------------------------------ 3140 PRINT CHR$(12) 3150 PRINT " REALIZANDO CALCULO DEL VALOR APARENTE DE CADA SEGMENTO,"; 3160 PRINT " ESPERE POR FAVOR " 3170 ! 3180 P(1)=Y(1) 3190 FOR J=2 TO Nc 3200 Ic1=Ic(J-1) 3210 Ic2=Ic(J) 3220 Imed=INT((Ic1+Ic2)/2) 3230 Ymin=Y(Ic1) 3240 Ymax=Y(Ic1) 3250 FOR I=Ic1 TO Ic2 3260 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 3270 IF Y(I)<Ymin THEN Ymin=Y(I) 3280 IF Y(I)>Ymax THEN Ymax=Y(I) 3290 NEXT I 3300 Deltay=ABS(Ymax-Ymin)/10

82

3310 IF SGN(Ys(Imed))>0 THEN ! CONCAVA 3320 P(J)=Ymin 3330 IF Ymin=Y(Ic2) THEN P(J)=P(J)-Deltay 3340 END IF 3350 IF SGN(Ys(Imed))<0 THEN ! CONVEXA 3360 P(J)=Ymax 3370 IF Ymax=Y(Ic2) THEN P(J)=P(J)+Deltay 3380 END IF 3390 NEXT J 3400 ! 3410 Nc2=Nc 3420 ALLOCATE C2(0:Nc2),P2(0:Nc2) 3430 FOR J=1 TO Nc2 3440 C2(J)=C(J) 3450 P2(J)=P(J) 3460 NEXT J 3470 IF Repre$="N" THEN GOTO 3500 3480 CALL Visual4(C2(*),P2(*),Nc2,4,"B","CAPAS") 3490 DEALLOCATE C2(*),P2(*) 3500 ! 3510 PRINT CHR$(12) 3520 SUBEND 3530 !------------------------------------------------------------------------ 3540 SUB Visual4(X(*),Y(*),Ndat,Alt,Tipo$,Nombre$) 3550 ! 3560 ! Visualización de los resultados 3570 !------------------------------------------------------------------------ 3580 IF Alt<1 OR Alt>4 THEN GOTO 3970 3590 IF Tipo$<>"C" AND Tipo$<>"B" THEN GOTO 3970 3600 ! INTEGER Pantalla9(1:7500) 3610 ! 3620 Rmax=Y(1) 3630 Rmin=Y(1) 3640 FOR I=2 TO Ndat 3650 IF Y(I)>Rmax THEN Rmax=Y(I) 3660 IF Y(I)<Rmin THEN Rmin=Y(I) 3670 NEXT I 3680 ! 3690 Abajo=8+(Alt-1)*24 3700 Arriba=Abajo+20 3710 ! 3720 GRAPHICS ON 3730 Detalle=0 3740 VIEWPORT 0,133,Abajo,Arriba 3750 ! 3760 WINDOW X(1),X(Ndat),Rmin,Rmax 3770 LINE TYPE 1 3780 FRAME 3790 Cuarto=(Rmax-Rmin)/4 3800 MOVE (X(Ndat)+X(1))/2,Rmin+Cuarto*3 3810 LORG 5 3820 LABEL Nombre$ 3830 LINE TYPE 3 3840 FOR Linea=1 TO 3 3850 MOVE X(1),Rmin+Cuarto*Linea

83

3860 DRAW X(Ndat),Rmin+Cuarto*Linea 3870 NEXT Linea 3880 ! 3890 LINE TYPE 1 3900 MOVE X(1),Y(1) 3910 FOR I=2 TO Ndat 3920 IF Tipo$="B" THEN DRAW X(I-1),Y(I) 3930 DRAW X(I),Y(I) 3940 NEXT I 3950 ! 3960 BEEP 3970 SUBEND 3980 !----------------------------------------------------------------------- 3990 SUB Imprimir 4000 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 4010 !------------------------------------------------------------------------ 4020 PRINTER IS 1 4030 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 4040 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 4090 4050 PRINT " Conecte la impresora y pulse |CONT| " 4060 PAUSE 4070 CALL Titulo 4080 CALL Vuelcapant(701) 4090 PRINT CHR$(12) 4100 PRINTER IS 1 4110 ! 4120 SUBEND 4130 !------------------------------------------------------------------------ 4140 SUB Titulo 4150 !------------------------------------------------------------------------ 4160 DIM Titulo$[320] 4170 ! 4180 PRINT CHR$(12) 4190 INPUT "Titulo del grafico",Titulo$ 4200 IF Titulo$="" THEN GOTO 4470 4210 PRINTER IS 1 4220 GOSUB Editor 4230 INPUT "Correcto",Cort$ 4240 IF Cort$="N" OR Cort$="NO" THEN GOTO 4180 4250 PRINTER IS 701 4260 GOSUB Editor 4270 PRINTER IS 1 4280 GOTO 4470 4290 ! 4300 Editor: ! Divide el texto y lo centra 4310 Titulo$=Titulo$&" " 4320 C0=0 4330 IF C0>=LEN(Titulo$) THEN GOTO 4450 4340 Caracter=50+C0 4350 FOR C=Caracter TO 1 STEP -1 4360 IF C>LEN(Titulo$) THEN GOTO 4440 4370 IF Titulo$[C,C]=" " THEN 4380 Tx=INT((64-(C-C0))/2) 4390 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 4400 PRINT USING Ima$;Titulo$[C0+1,C]

84

4410 C0=C 4420 GOTO 4330 4430 END IF 4440 NEXT C 4450 RETURN 4460 ! 4470 SUBEND 4480 !------------------------------------------------------------------------ 4490 SUB Vuelcapant(INTEGER Device_selector) 4500 !------------------------------------------------------------------------ 4510 OPTION BASE 1 4520 INTEGER Row_group,Prod_num,Maxrow 4530 DIM Graphic_escape$[7] 4540 ! 4550 ON ERROR GOTO 4950 4560 PRINTER IS Device_selector 4570 OFF ERROR 4580 ! 4590 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 4600 ! 4610 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 4620 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 4630 ! 4640 IF Graphics_res=1 THEN 4650 ALLOCATE Os$[512] ! Para los modelos 9836 4660 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 4670 Maxrow=390 ! Numero de lineas del 9836 4680 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 4690 ELSE 4700 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 4710 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 4720 Maxrow=300 ! Numero de lineas del 9826 y 9816 4730 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 4740 END IF 4750 ! 4760 GSTORE Screen(*) ! Almacena matriz de pantalla 4770 ! 4780 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 4790 ! 4800 FOR Row_group=1 TO 297 STEP 8 4810 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 4820 Gdump(Screen(*),Row_group,Os$) 4830 ! Volcado de linea de caracteres graficos 4840 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 4850 PRINT USING "7A,400A";Graphic_escape$,Os$ 4860 ELSE ! Para los modelos 9836 4870 PRINT USING "7A,512A";Graphic_escape$,Os$ 4880 END IF 4890 NEXT Row_group 4900 ! 4910 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 4920 ! 4930 SUBEXIT 4940 ! 4950 BEEP ! Caso de encontrarse error en "PRINTER IS"

85

4960 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 4970 ! 4980 SUBEND 4990 ! 5000 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 5010 !------------------------------------------------------------------------- 5020 SUB Graba2(Nom$,Capa(*),Valor(*),Ncap,X0,Min,Max) 5030 ! 5040 REM SUBPROGRAMA DE GRABACION DE REGISTROS 5050 ! 5060 !------------------------------------------------------------------------ 5070 Nr=(Ncap+2)*8+20 5080 Nn$=Nom$&"_C" 5090 MASS STORAGE IS ":HP 8290X,700,1" 5100 ON ERROR GOTO 5150 5110 CREATE BDAT Nn$,2,Nr 5120 OFF ERROR 5130 GOTO 5370 5140 ! 5150 IF ERRN=54 THEN 5160 INPUT "Quiere remplazar el registro ? ",Qr$ 5170 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 5220 5180 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 5190 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 5160 5200 PURGE Nn$ 5210 GOTO 5360 5220 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 5230 IF Qc$="N" OR Qc$="NO" THEN GOTO 5090 5240 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 5250 ON KBD ALL GOTO 5260 5260 IF KBD$<>"ÿC" THEN GOTO 5260 5270 OFF KBD 5280 PRINT CHR$(12) 5290 GOTO 5360 5300 END IF 5310 PRINT "SE HA PRODUCIDO UN ERROR";ERRN;" REPASE, POR FAVOR" 5320 BEEP 81.38*15,4 5330 PAUSE 5340 GOTO 5110 5350 ! 5360 CREATE BDAT Nn$,2,Nr 5370 PRINT " REALIZANDO LA GRABACION DEL FICHERO DE CAPAS, NO INTERRUMPIR" 5380 MASS STORAGE IS ":HP 8290X,700,1" 5390 ASSIGN @Pat_0 TO Nn$ 5400 OUTPUT @Pat_0;Ncap,X0 5410 OUTPUT @Pat_0;Min,Max 5420 FOR J=1 TO Ncap 5430 OUTPUT @Pat_0;Capa(J),Valor(J) 5440 NEXT J 5450 ASSIGN @Pat_0 TO * 5460 MASS STORAGE IS ": HP 8290X,700,0" 5470 ! 5480 PRINT CHR$(12) 5490 PRINT TABXY(25,10);"Grabado el fichero ";Nn$ 5500 OFF ERROR

86

5510 SUBEND 5520 !----------------------------------------------------------------------- 5530 SUB Correccapa(X(*),Y(*),Xc(*),Yc(*),Ndat,Ncap,Dist) 5540 ! 5550 REM Visualización de los resultados 5560 !------------------------------------------------------------------------ 5570 OFF KEY 5580 PRINT CHR$(12) 5590 PRINT " PARA VISUALIZAR UN MENU DE AYUDA PULSE |A| " 5600 ! 5610 GRAPHICS ON 5620 GINIT 5630 GCLEAR 5640 VIEWPORT 0,130,10,90 5650 ! 5660 Rmax=Y(1) 5670 Rmin=Y(1) 5680 FOR I=2 TO Ndat 5690 IF Y(I)>Rmax THEN Rmax=Y(I) 5700 IF Y(I)<Rmin THEN Rmin=Y(I) 5710 NEXT I 5720 ! 5730 Salto=16*Dist*10 5740 Delta=Ndat/100 5750 Marco=(Rmax-Rmin)/100 5760 Iref=1 5770 Jref=1 5780 GOTO 6230 5790 ! 5800 ON KNOB .01,1 GOTO 6120 ! Mueve la diagrafia 5810 ON KBD GOTO 5830 5820 GOTO 5810 5830 Tecla$=KBD$ 5840 IF Tecla$="A" THEN GOSUB Ayuda ! Visualiza Instrucciones 5850 IF Tecla$="I" THEN CALL Imprimir ! Impresion de pantalla 5860 IF Tecla$="ÿK" THEN PRINT CHR$(12) ! Borrar impresiones 5870 IF Tecla$=" " THEN GOTO 6540 ! Sale del bucle con el space 5880 IF Tecla$="ÿ<" OR Tecla$="ÿ>" THEN GOTO 5910 ! Mueve el indicador 5890 IF Tecla$="ÿE" AND Cor=1 THEN GOSUB Correc1 ! Corregir 5900 GOTO 5790 5910 ! 5920 LINE TYPE 4 5930 PEN -1 5940 MOVE Xc(Jref+K-1)-Dist/2,Rmin+Marco 5950 DRAW Xc(Jref+K-1)-Dist/2,Rmax-Marco 5960 DRAW Xc(Jref+K)+Dist/2,Rmax-Marco 5970 DRAW Xc(Jref+K)+Dist/2,Rmin+Marco 5980 DRAW Xc(Jref+K-1)-Dist/2,Rmin+Marco 5990 IF Tecla$="ÿ>" THEN K=K+1 6000 IF Tecla$="ÿ<" THEN K=K-1 6010 IF (Jref+K)<1 THEN K=1-Jref 6020 IF (Jref+K)>Ndat THEN K=Ncap-Jref 6030 PEN 1 6040 MOVE Xc(Jref+K-1)-Dist/2,Rmin+Marco 6050 DRAW Xc(Jref+K-1)-Dist/2,Rmax-Marco

87

6060 DRAW Xc(Jref+K)+Dist/2,Rmax-Marco 6070 DRAW Xc(Jref+K)+Dist/2,Rmin+Marco 6080 DRAW Xc(Jref+K-1)-Dist/2,Rmin+Marco 6090 LINE TYPE 1 6100 Cor=1 6110 GOTO 5790 6120 ! 6130 Iref=Iref+KNOBX*Delta 6140 IF Iref<1 THEN Iref=1 6150 IF Iref>Ndat THEN Iref=Ndat 6160 FOR J=1 TO Ncap 6170 IF Xc(J)>X(Iref) THEN 6180 Jref=J-1 6190 GOTO 6230 6200 END IF 6210 NEXT J 6220 ! 6230 GCLEAR 6240 LINE TYPE 1 6250 FRAME 6260 LINE TYPE 3 6270 WINDOW 0,16,0,10 6280 GRID 1,1 6290 LINE TYPE 1 6300 WINDOW INT(X(Iref)),INT(X(Iref)+Salto),Rmin,Rmax 6310 MOVE INT(X(Iref)),Rmin 6320 LORG 1 6330 LABEL INT(X(Iref)) 6340 MOVE INT(X(Iref)+Salto),Rmin 6350 LORG 7 6360 LABEL INT(X(Iref)+Salto) 6370 ! 6380 LINE TYPE 1 6390 MOVE X(Iref),Y(Iref) 6400 FOR I=Iref TO Iref+Salto/Dist 6410 IF I>Ndat THEN GOTO 6440 6420 DRAW X(I),Y(I) 6430 NEXT I 6440 MOVE Xc(Jref),Yc(Jref+1) 6450 FOR J=Jref TO Jref+Salto 6460 IF J>Ncap-1 THEN GOTO 6500 6470 DRAW Xc(J),Yc(J+1) 6480 DRAW Xc(J+1),Yc(J+1) 6490 NEXT J 6500 ! 6510 K=1 6520 Cor=0 6530 GOTO 5790 6540 ! 6550 OFF KBD 6560 OFF KNOB 6570 ! 6580 GCLEAR 6590 PRINT CHR$(12) 6600 GOTO 7080

88

6610 !------------------------------------------------------------------------ 6620 Ayuda: ! Subrutina para imprimir instrucciones de ayuda 6630 !----------------------------------------------------------------------- 6640 BEEP 6650 PRINT CHR$(12) 6660 GRAPHICS OFF 6670 PRINT TABXY(7,3);" OPCIONES DURANTE LA VISUALIZACION DE LOS REGISTROS " 6680 PRINT TABXY(7,6);" PARA DESPLAZAR LA DIAGRAFIA EN LA PANTALLA MUEVA EL CURSOR " 6690 PRINT TABXY(7,7);" PARA VOLCAR LA PANTALLA A LA IMPRESORA PULSE |I| " 6700 PRINT TABXY(7,8);"PARA MOVER UN INDICADOR SOBRE LA CURVA PULSE LAS FLECHAS --> o <--" 6710 PRINT TABXY(7,9);" PARA CORREGIR PULSE |ENTER| " 6720 PRINT TABXY(7,10);" PARA SALIR DEL GRAFICO PULSE LA BARRA ESPACIADORA " 6730 WAIT 5 6740 PRINT CHR$(12) 6750 GRAPHICS ON 6760 ! 6770 RETURN 6780 !----------------------------------------------------------------------- 6790 Correc1: ! Subrutina para corregir 6800 !----------------------------------------------------------------------- 6810 OFF KBD 6820 ON KBD GOTO 6840 6830 GOTO 6820 6840 Tecor$=KBD$ 6850 IF Tecor$="ÿE" THEN GOTO 7040 ! Acepta la correccion 6860 IF Tecor$="ÿ<" OR Tecor$="ÿ>" THEN GOTO 6900 ! Mueve la profundidad 6870 IF Tecor$="ÿV" OR Tecor$="ÿ^" THEN GOTO 6900 ! Mueve el valor 6880 GOTO 6820 6890 ! 6900 PEN -1 6910 MOVE Xc(Jref+K-1),Yc(Jref+K) 6920 DRAW Xc(Jref+K),Yc(Jref+K) 6930 DRAW Xc(Jref+K),Yc(Jref+K+1) 6940 IF Tecor$="ÿ>" THEN Xc(Jref+K)=Xc(Jref+K)+Dist 6950 IF Tecor$="ÿ<" THEN Xc(Jref+K)=Xc(Jref+K)-Dist 6960 IF Tecor$="ÿ^" THEN Yc(Jref+K)=Yc(Jref+K)+Marco 6970 IF Tecor$="ÿV" THEN Yc(Jref+K)=Yc(Jref+K)-Marco 6980 PEN 1 6990 MOVE Xc(Jref+K-1),Yc(Jref+K) 7000 DRAW Xc(Jref+K),Yc(Jref+K) 7010 DRAW Xc(Jref+K),Yc(Jref+K+1) 7020 GOTO 6820 7030 ! 7040 Cor=0 7050 OFF KBD 7060 RETURN 7070 !----------------------------------------------------------------------- 7080 SUBEND 7090 !-----------------------------------------------------------------------

89

10 !----------------------------------------------------------------------- 20 REM "CAPAS" 30 REM PROGRAMA PARA DETERMINACION DE ESPESORES REALES DE CAPAS 40 REM Y 50 REM CONCORDANCIA DE LAS CAPAS DE TODOS LOS REGISTROS 60 !----------------------------------------------------------------------- 70 PRINTER IS 1 80 PRINT CHR$(12) 90 CONTROL 2,0;1 100 ! 110 GRAPHICS ON 120 GINIT 130 GCLEAR 140 ! 150 FOR F=0 TO 10 STEP 2 160 VIEWPORT 0+F,133-F,10+F,100-F 170 FRAME 180 NEXT F 190 ! 200 PRINT TABXY(15,9);" -CAPAS- " 210 PRINT TABXY(15,11);" PROGRAMA PARA DETERMINACION DE ESPESORES REALES " 220 PRINT TABXY(15,12);" Y " 230 PRINT TABXY(15,13);" CONCORDANCIA DE LAS CAPAS DE TODOS LOS REGISTROS " 240 CALL Salir 250 GCLEAR 260 PRINT CHR$(12) 270 ! 280 Np=6 290 Lontit=50 300 ALLOCATE Tit$(Np)[Lontit],Fichero$(Np)[10],Postit(Np) 310 ALLOCATE Min(0:Np),Max(0:Np),Tipo$(0:Np)[6] 320 ALLOCATE Capa(1:Np,1:100),Par(1:Np,1:100) 330 ALLOCATE Capa2(1:Np,1:100),Par2(1:Np,1:100) 340 ALLOCATE Salto(1:Np,1:100),Esp(1:Np,1:100) 350 ALLOCATE Ccor(1:100),Ccor2(1:100) 360 DIM St$[30],Titulo$[300],Npto(20) 370 ! 380 Lectura=0 390 GOTO 600 400 !----------------------------------------------------------------------- 410 REM Flujos del programa 420 !----------------------------------------------------------------------- 430 BEEP 440 ON KEY 5 LABEL "LECTURA DATOS " GOTO 600 450 ON KEY 7 LABEL "DETERMINACION " GOTO 510 460 ON KEY 9 LABEL " GRABAR " GOTO 970 470 ON KEY 4 LABEL " TERMINAR " CALL Salir 480 GOTO 440 490 OFF KEY 500 !------------------------------------------------------------------------ 510 REM Determinacion de las capas 520 !------------------------------------------------------------------------ 530 OFF KEY 540 ! 550 GOSUB Calculores ! 2800

90

560 GOSUB Calculotot ! 7400 570 ! 580 GOTO 420 590 !------------------------------------------------------------------------ 600 REM Entrada de datos 610 !------------------------------------------------------------------------ 620 IF Lectura=1 AND Proceso>=1 AND Grabacion=0 THEN 630 PRINT "OJO, NO HA GRABADO LOS RESULTADOS OBTENIDOS" 640 BEEP 650 INPUT "Quiere continuar",Qcon1$ 660 IF Qcon1$<>"SI" OR Qcon1$<>"S" THEN GOTO 930 670 END IF 680 ! 690 OFF KEY 700 PRINT CHR$(12) 710 GOSUB Leefichero 720 ! 730 FOR P=1 TO Nfich 740 Increpar(P)=(Max(P)-Min(P))/100 750 NEXT P 760 ! 770 Ccor(1)=Cap0min 780 FOR P=1 TO Nfich 790 Capa(P,1)=Cap0min 800 NEXT P 810 ! 820 FOR P=1 TO Nfich 830 Ncap2(P)=Ncap(P) 840 FOR J=1 TO Ncap2(P) 850 Capa2(P,J)=Capa(P,J) 860 Par2(P,J)=Par(P,J) 870 NEXT J 880 NEXT P 890 ! 900 Lectura=1 910 Grabacion=0 920 Proceso=0 930 PRINT CHR$(12) 940 ! GOSUB Pantalla 950 GOTO 420 960 !------------------------------------------------------------------------ 970 REM Grabacion del fichero corregido 980 !------------------------------------------------------------------------ 990 OFF KEY 1000 ! 1010 IF Proceso<2 THEN 1020 PRINT TABXY(15,1);"PRIMERO DEBE CALCULAR ESPESORES Y AMPLITUDES" 1030 BEEP 1040 GOTO 1090 1050 END IF 1060 CALL Grabafich(Son$,Nfich,Ncor,X0min,Tipo$(*),Min(*),Max(*),Ccor(*),Par(*)) 1070 ! 1080 Grabacion=1 1090 GOTO 420 1100 !------------------------------------------------------------------------

91

1110 Leefichero: ! PROGRAMA PARA ENTRADA MULTIPLE DE DATOS 1120 !------------------------------------------------------------------------ 1130 Tit$(1)="Fichero de Resistividad Normal 0.4 AM ........... " 1140 Tip$(1)="R.N.C." 1150 Suf$(1)="RNC_C" 1160 Tit$(2)="Fichero de Resistividad Lateral 1.8 AO .......... " 1170 Tip$(2)="R.LAT." 1180 Suf$(2)="LAT_C" 1190 Tit$(3)="Fichero de Resistencia Puntual (MonoElectrodica). " 1200 Tip$(3)="R.M.E." 1210 Suf$(3)="RME_C" 1220 Tit$(4)="Fichero de Resistividad Normal 1.6 AM ........... " 1230 Tip$(4)="R.N.L." 1240 Suf$(4)="RNL_C" 1250 Tit$(5)="Fichero de Potencial Espontaneo ................. " 1260 Tip$(5)="P.E. " 1270 Suf$(5)="PE_C" 1280 Tit$(6)="Fichero de Gamma Natural ........................ " 1290 Tip$(6)="G.N. " 1300 Suf$(6)="GN_C" 1310 FOR P=1 TO Np 1320 Postit(P)=P*2+3 1330 Selec$(P)="" 1340 NEXT P 1350 ! 1360 PRINT TABXY(20,10);"COLOQUE EL DISCO CON LOS FICHEROS EN [1]" 1370 CALL Salir 1380 PRINT CHR$(12) 1390 ON ERROR GOTO 1360 1400 MASS STORAGE IS ":HP8290X,700,1" 1410 PRINT "CATALOGO DE FICHEROS DEL DISCO, ESPERE POR FAVOR" 1420 CAT 1430 OFF ERROR 1440 BEEP 1450 INPUT "Nombre abreviado del sondeo en los ficheros (<5 caracteres)",Son$ 1460 IF LEN(Son$)<1 OR LEN(Son$)>5 THEN GOTO 1450 1470 ! 1480 PRINT CHR$(12) 1490 PRINT TABXY(1,2);"SELECCIONE LOS FICHEROS QUE DESEA RECUPERAR (S/N)" 1500 FOR P=1 TO Np 1510 PRINT TABXY(1,Postit(P));Tit$(P) 1520 NEXT P 1530 ! 1540 ON KEY 5 LABEL " CONTINUAR " GOTO 1790 1550 ON KEY 0 LABEL " SALIR " CALL Salir 1560 ! 1570 P=1 1580 BEEP 1590 PRINT TABXY(Lontit,Postit(P)),"_" 1600 ON KBD ALL GOTO 1620 1610 GOTO 1600 1620 Tecla$=KBD$ 1630 ! 1640 IF Tecla$="ÿ5" OR Tecla$="ÿ^" OR Tecla$="ÿV" OR Tecla$="ÿE" OR Tecla$="S" OR

Tecla$="N" THEN

92

1650 PRINT TABXY(Lontit,Postit(P))," " 1660 IF Tecla$="ÿ5" THEN GOTO 1790 1670 IF Tecla$="ÿE" THEN P=P+1 1680 IF Tecla$="ÿ^" THEN P=P-1 1690 IF Tecla$="ÿV" THEN P=P+1 1700 IF Tecla$="S" OR Tecla$="N" THEN 1710 Selec$(P)=Tecla$ 1720 PRINT TABXY(Lontit+1,Postit(P));Selec$(P) 1730 END IF 1740 IF P<1 THEN P=Np 1750 IF P>Np THEN P=1 1760 PRINT TABXY(Lontit,Postit(P)),"_" 1770 END IF 1780 GOTO 1600 1790 ! 1800 Pest=0 1810 FOR P=1 TO Np 1820 IF Selec$(P)="S" THEN 1830 Pest=Pest+1 1840 Fich$(Pest)=Son$&Suf$(P) 1850 Tipo$(Pest)=Tip$(P) 1860 Lonfich=LEN(Fich$(Pest)) 1870 Reg$(Pest)=Fich$(Pest)[1,Lonfich-2] 1880 END IF 1890 NEXT P 1900 Nfich=Pest ! numero de registros que se estudian 1910 Nreg=Nfich 1920 ! 1930 IF Nfich<2 THEN 1940 PRINT TABXY(5,1);"DEBE RECUPERAR MAS DE DOS FICHEROS" 1950 GOTO 1570 1960 END IF 1970 ! 1980 OFF KEY 1990 OFF KBD 2000 !---------------------------------------------------------------------- 2010 REM Lectura de los datos digitalizados 2020 !---------------------------------------------------------------------- 2030 PRINT CHR$(12) 2040 PRINT TABXY(20,10);"COMPROBANDO FICHEROS, NO INTERRUMPIR" 2050 ON ERROR GOTO 2220 2060 MASS STORAGE IS ":HP8290X,700,1" 2070 FOR P=1 TO Nfich 2080 Lect$(P)=Reg$(P) 2090 ASSIGN @Pat_0 TO Reg$(P) 2100 ENTER @Pat_0;Ndat(P),X0(P),Dis(P),Min(P),Max(P) 2110 ASSIGN @Pat_0 TO * 2120 NEXT P 2130 FOR P=1 TO Nfich 2140 Lect$(P)=Fich$(P) 2150 ASSIGN @Pat_0 TO Fich$(P) 2160 ENTER @Pat_0;Ncap(P),Cap0(P),Parmin(P),Parmax(P) 2170 ASSIGN @Pat_0 TO * 2180 NEXT P 2190 OFF ERROR

93

2200 ! 2210 GOTO 2330 2220 OFF ERROR 2230 PRINT CHR$(12) 2240 IF ERRN<>53 AND ERRN<>56 THEN 2250 PRINT TABXY(1,1);"SE HA PRODUCIDO UN ERROR ";ERRN;"REPASE, POR FAVOR" 2260 END IF 2270 IF ERRN=53 OR ERRN=56 THEN 2280 PRINT TABXY(1,1);"EL NOMBRE DE ";Lect$(P);" NO ES CORRECTO O NO EXISTE" 2290 END IF 2300 PRINT 2310 GOTO 1390 2320 ! 2330 DEALLOCATE Capa(*),Par(*),Capa2(*),Par2(*) 2340 DEALLOCATE Salto(*),Esp(*),Ccor(*),Ccor2(*) 2350 Dist=Dis(1) 2360 X0min=X0(1) 2370 X0max=X0(1) 2380 X2min=X0(1)+Ndat(1)*Dis(1) 2390 X2max=X0(1)+Ndat(1)*Dis(1) 2400 Cap0min=Cap0(1) 2410 Ncapmax=Ncap(1) 2420 FOR P=1 TO Nfich 2430 ! IF Dis(P)<>Dist THEN PRINT "NO COINCIDEN LAS ESCALAS" 2440 IF X0(P)<X0min THEN X0min=X0(P) 2450 IF X0(P)>X0max THEN X0max=X0(P) 2460 X2(P)=X0(P)+Ndat(P)*Dis(P) 2470 IF X2(P)<X2min THEN X2min=X2(P) 2480 IF X2(P)>X2max THEN X2max=X2(P) 2490 IF Cap0(P)<Cap0min THEN Cap0min=Cap0(P) 2500 IF Ncap(P)>Ncapmax THEN Ncapmax=Ncap(P) 2510 NEXT P 2520 Nmax=(X2max-X0min)/Dist 2530 Nseg=1.2 ! SE AMPLIA POR SEGURIDAD AL INCLUIR CAPAS 2540 ALLOCATE Capa(1:Nfich,1:Nseg*Ncapmax),Par(1:Nfich,1:Nseg*Ncapmax) 2550 ALLOCATE Capa2(1:Nfich,1:Ncapmax),Par2(1:Nfich,1:Ncapmax) 2560 ALLOCATE Salto(1:Nfich,1:Nseg*Ncapmax),Esp(1:Nfich,1:Nseg*Ncapmax) 2570 ALLOCATE Ccor(1:Ncapmax),Ccor2(1:Ncapmax) 2580 ! 2590 FOR P=1 TO Nfich 2600 PRINT TABXY(12,10);"REALIZANDO LECTURA DEL FICHERO ";Fich$(P);", NO INTERRUMPIR

" 2610 ASSIGN @Pat_0 TO Fich$(P) 2620 ENTER @Pat_0;Ncap(P),Cap0(P),Parmin(P),Parmax(P) 2630 FOR J=1 TO Ncap(P) 2640 ENTER @Pat_0;Capa(P,J),Par(P,J) 2650 NEXT J 2660 ASSIGN @Pat_0 TO * 2670 NEXT P 2680 MASS STORAGE IS ": HP 8290X,700,0" 2690 ! 2700 FOR P=1 TO Nfich 2710 FOR J=INT(Ncap(P)/3) TO Ncap(P) 2720 IF Capa(P,J)>X2min THEN 2730 Ncap(P)=J

94

2740 GOTO 2770 2750 END IF 2760 NEXT J 2770 NEXT P 2780 ! 2790 PRINT CHR$(12) 2800 RETURN 2810 !------------------------------------------------------------------------ 2820 Calculores: ! Determinacion de capas de resistividad 2830 !------------------------------------------------------------------------ 2840 Proceso=1 2850 PRINT CHR$(12) 2860 ! 2870 Nres=0 2880 FOR P=1 TO Nfich 2890 IF Tipo$(P)[1,1]<>"R" THEN GOTO 2910 2900 Nres=Nres+1 2910 NEXT P 2920 IF Nres=0 THEN 2930 PRINT TABXY(23,10);"NO HA COGIDO REGISTROS DE RESISTIVIDAD" 2940 BEEP 2950 WAIT 1 2960 PRINT CHR$(12) 2970 GOTO 7410 2980 END IF 2990 IF Nres=1 THEN 3000 PRINT TABXY(23,10);" SOLO HAY UN REGISTRO DE RESISTIVIDAD " 3010 BEEP 3020 FOR P=1 TO Nfich 3030 IF Tipo$(P)[1,1]="R" THEN GOTO 3050 3040 NEXT P 3050 Ncor=Ncap(P) 3060 FOR H=1 TO Ncor 3070 Ccor(H)=Capa(P,H) 3080 NEXT H 3090 GOTO 7370 3100 END IF 3110 ! 3120 PRINT TABXY(23,10);" ADOPCION DE LAS CAPAS INICIALES " 3130 FOR P=1 TO Nfich 3140 Ncap(P)=Ncap2(P) 3150 FOR J=1 TO Ncap(P) 3160 Capa(P,J)=Capa2(P,J) 3170 Par(P,J)=Par2(P,J) 3180 NEXT J 3190 NEXT P 3200 ! 3210 PRINT TABXY(16,10);"REALIZANDO CALCULO DE INCREMENTOS, NO INTERRUMPIR" 3220 FOR P=1 TO Nfich 3230 IF Tipo$(P)[1,1]<>"R" THEN GOTO 3280 3240 FOR J=1 TO Ncap(P)-1 3250 Salto(P,J)=(Par(P,J+1)-Par(P,J))/(Max(P)-Min(P))*100 3260 NEXT J 3270 Salto(P,Ncap(P))=((Max(P)-Min(P))/2-Par(P,Ncap(P)))/(Max(P)-Min(P))*100 3280 NEXT P

95

3290 ! 3300 PRINT CHR$(12) 3310 Ncomp=Nres 3320 PRINT TABXY(20,10);"CAPAS DETERMINADAS POR";Ncomp;"RESISTIVIDADES" 3330 Proceso=1 3340 Distsimil=1 3350 Desplaz=.2 3360 FOR P=1 TO Nfich 3370 Jcomp(P)=1 3380 NEXT P 3390 FOR P=1 TO Nfich 3400 IF Tipo$(P)[1,1]<>"R" THEN GOTO 3430 3410 P1=P 3420 GOTO 3440 3430 NEXT P 3440 H=1 3450 ! 3460 FOR Cap1=1 TO 8 3470 Nsimil=1 3480 IF Jcomp(P1)+Cap1>Ncap(P1) THEN GOTO 4110 3490 FOR P2=P1+1 TO Nfich 3500 IF Tipo$(P2)[1,1]<>"R" THEN GOTO 3640 3510 FOR Cap2=1 TO 8 3520 IF Jcomp(P2)+Cap2>Ncap(P2) THEN GOTO 3640 3530 Resta=Salto(P1,Jcomp(P1)+Cap1)-Salto(P2,Jcomp(P2)+Cap2) 3540 Suma=Salto(P1,Jcomp(P1)+Cap1)+Salto(P2,Jcomp(P2)+Cap2) 3550 Dsalto=1+Resta^2/Suma^2 3560 Dprof=1+((Capa(P1,Jcomp(P1)+Cap1)-Capa(P2,Jcomp(P2)+Cap2))/2)^2 3570 Distancia=Dsalto*Dprof-1 3580 IF Distancia<Distsimil THEN 3590 Nsimil=Nsimil+1 3600 Jsimil(P2)=Jcomp(P2)+Cap2 3610 GOTO 3640 3620 END IF 3630 NEXT Cap2 3640 NEXT P2 3650 IF Nsimil=Ncomp THEN 3660 PRINT TABXY(18,11);" " 3670 Jsimil(P1)=Jcomp(P1)+Cap1 3680 H=H+1 3690 Sumaprof=0 3700 FOR P=1 TO Nfich 3710 IF Tipo$(P)[1,1]<>"R" THEN GOTO 3750 3720 Jcomp(P)=Jsimil(P) 3730 PRINT TABXY(10+P*8,11);INT(Capa(P,Jcomp(P))*10+.5)/10;"-"; 3740 Sumaprof=Sumaprof+Capa(P,Jcomp(P)) 3750 NEXT P 3760 Profmedia=Sumaprof/Ncomp 3770 PRINT TABXY(10+(Ncomp+1)*8,11);"---->";INT(Profmedia*10+.5)/10 3780 FOR P=1 TO Nfich 3790 IF Tipo$(P)[1,1]<>"R" THEN GOTO 3930 3800 Capa(P,Jcomp(P))=Profmedia 3810 IF Jcomp(P)<=2 THEN GOTO 3870 3820 FOR Jd=0 TO 1 3830 IF Capa(P,Jcomp(P)-Jd)<Capa(P,Jcomp(P)-Jd-1)+Desplaz THEN

96

3840 Capa(P,Jcomp(P)-Jd-1)=Capa(P,Jcomp(P)-Jd)-Desplaz 3850 END IF 3860 NEXT Jd 3870 IF Jcomp(P)>=Ncap(P) THEN GOTO 3930 3880 FOR Jd=0 TO 1 3890 IF Capa(P,Jcomp(P)+Jd)>Capa(P,Jcomp(P)+Jd+1)-Desplaz THEN 3900 Capa(P,Jcomp(P)+Jd+1)=Capa(P,Jcomp(P)+Jd)+Desplaz 3910 END IF 3920 NEXT Jd 3930 NEXT P 3940 Ccor(H)=Profmedia 3950 GOTO 3460 3960 END IF 3970 NEXT Cap1 3980 ! 3990 Zeta=Capa(P1,Jcomp(P1))+2 4000 FOR P=1 TO Nfich 4010 IF Tipo$(P)[1,1]<>"R" THEN GOTO 4080 4020 FOR J=Jcomp(P) TO Ncap(P) 4030 IF Capa(P,J)>=Zeta THEN 4040 Jcomp(P)=J 4050 GOTO 4080 4060 END IF 4070 NEXT J 4080 NEXT P 4090 GOTO 3460 4100 ! 4110 PRINT CHR$(12) 4120 Ncor=H 4130 ! GOSUB Pantalla 4140 H2=0 4150 FOR Ncomp=Nres-1 TO 2 STEP -1 4160 PRINT TABXY(20,10);"CAPAS DETERMINADAS POR";Ncomp;"RESISTIVIDADES" 4170 H2=0 4180 ! 4190 FOR P=1 TO Nfich 4200 Jcor(P)=1 4210 Cuenta(P)=0 4220 NEXT P 4230 ! 4240 FOR H=1 TO Ncor-1 4250 ! 4260 FOR P=1 TO Nfich 4270 IF Tipo$(P)[1,1]<>"R" THEN GOTO 4420 4280 FOR J=Jcor(P) TO Ncap(P) 4290 IF Capa(P,J)=Ccor(H) THEN J1(P)=J 4300 IF Capa(P,J)=Ccor(H+1) THEN 4310 J2(P)=J 4320 Jcor(P)=J 4330 GOTO 4420 4340 END IF 4350 IF Capa(P,J)>Ccor(H+1) THEN 4360 J2(P)=J-1 4370 Jcor(P)=J-1 4380 GOTO 4420

97

4390 END IF 4400 NEXT J 4410 J2(P)=Ncap(P) 4420 NEXT P 4430 ! 4440 FOR P1=1 TO Nfich 4450 IF Tipo$(P1)[1,1]<>"R" THEN GOTO 5310 4460 Cuenta(P1)=0 4470 FOR Cap1=1 TO 8 4480 Nsimil=1 4490 IF J1(P1)+Cap1>=J2(P1) THEN GOTO 5310 4500 FOR P2=1 TO Nfich 4510 IF Tipo$(P2)[1,1]<>"R" THEN GOTO 4680 4520 IF P2=P1 THEN GOTO 4680 4530 Cuenta(P2)=0 4540 FOR Cap2=1 TO 6 4550 IF J1(P2)+Cap2>=J2(P2) THEN GOTO 4680 4560 Resta=Salto(P1,J1(P1)+Cap1)-Salto(P2,J1(P2)+Cap2) 4570 Suma=Salto(P1,J1(P1)+Cap1)+Salto(P2,J1(P2)+Cap2) 4580 Dsalto=1+2*Resta^2/Suma^2 4590 Dprof=1+((Capa(P1,J1(P1)+Cap1)-Capa(P2,J1(P2)+Cap2))/2)^2 4600 Distancia=Dsalto*Dprof-1 4610 IF Distancia<=Distsimil THEN 4620 Nsimil=Nsimil+1 4630 Jsimil(P2)=J1(P2)+Cap2 4640 Cuenta(P2)=1 4650 GOTO 4680 4660 END IF 4670 NEXT Cap2 4680 NEXT P2 4690 ! 4700 IF Nsimil<Ncomp THEN GOTO 5300 4710 IF Nsimil=Ncomp THEN 4720 PRINT TABXY(18,11);" " 4730 Cuenta(P1)=1 4740 Jsimil(P1)=J1(P1)+Cap1 4750 H2=H2+1 4760 Sumasalto=0 4770 Sumaprof=0 4780 FOR P=1 TO Nfich 4790 IF Tipo$(P)[1,1]<>"R" THEN GOTO 4850 4800 IF Cuenta(P)=0 THEN GOTO 4850 4810 J1(P)=Jsimil(P) 4820 PRINT TABXY(10+P*8,11);INT(Capa(P,Jsimil(P))*10+.5)/10;"-"; 4830 Sumaprof=Sumaprof+Capa(P,Jsimil(P)) 4840 Sumasalto=Sumasalto+Salto(P,Jsimil(P)) 4850 NEXT P 4860 Profmedia=Sumaprof/Ncomp 4870 Saltomedio=Sumasalto/Ncomp 4880 PRINT TABXY(10+(Nres+1)*8,11);"---->";INT(Profmedia*10+.5)/10 4890 IF Profmedia-Ccor(H)<.2 OR Ccor(H+1)-Profmedia<.2 THEN GOTO 5330 4900 IF H2=1 THEN GOTO 4920 4910 IF Profmedia-Ccor2(H2-1)<.2 THEN GOTO 5300 4920 FOR P=1 TO Nfich 4930 IF Tipo$(P)[1,1]<>"R" THEN GOTO 5260

98

4940 IF Cuenta(P)=1 THEN 4950 Capa(P,Jsimil(P))=Profmedia 4960 IF Capa(P,Jsimil(P))>Capa(P,Jsimil(P)+1)-Desplaz THEN 4970 Capa(P,Jsimil(P)+1)=Capa(P,Jsimil(P))+Desplaz 4980 END IF 4990 IF Capa(P,Jsimil(P))<Capa(P,Jsimil(P)-1)+Desplaz THEN 5000 Capa(P,Jsimil(P)-1)=Capa(P,Jsimil(P))-Desplaz 5010 END IF 5020 J1(P)=Jsimil(P) 5030 END IF 5040 IF Cuenta(P)=0 THEN 5050 Ncap(P)=Ncap(P)+1 5060 FOR J3=J1(P) TO J2(P) 5070 IF Capa(P,J3)>Profmedia THEN 5080 Jmas=J3 5090 GOTO 5130 5100 END IF 5110 NEXT J3 5120 Jmas=J2(P) 5130 FOR J3=Ncap(P) TO Jmas+1 STEP -1 5140 Capa(P,J3)=Capa(P,J3-1) 5150 Par(P,J3)=Par(P,J3-1) 5160 Salto(P,J3)=Salto(P,J3-1) 5170 NEXT J3 5180 Capa(P,Jmas)=Profmedia 5190 Par(P,Jmas)=Par(P,Jmas)-SGN(Saltomedio)*Increpar(P) 5200 Salto(P,Jmas)=(Par(P,Jmas+1)-Par(P,Jmas))/(Max(P)-Min(P))*100 5210 Salto(P,Jmas-1)=(Par(P,Jmas)-Par(P,Jmas-1))/(Max(P)-Min(P))*100 5220 J1(P)=Jmas 5230 J2(P)=J2(P)+1 5240 Jcor(P)=Jcor(P)+1 5250 END IF 5260 NEXT P 5270 Ccor2(H2)=Profmedia 5280 GOTO 4440 5290 END IF 5300 NEXT Cap1 5310 NEXT P1 5320 ! 5330 NEXT H 5340 ! 5350 Ncor2=H2 5360 ! 5370 Hmas=1 ! Inclusion de las capas Cor2 en las Ccor 5380 FOR H=1 TO Ncor+Ncor2 5390 FOR H2=Hmas TO Ncor2 5400 IF Ccor2(H2)>Ccor(H) AND Ccor2(H2)<Ccor(H+1) THEN 5410 Ncor=Ncor+1 5420 FOR H3=Ncor TO H+1 STEP -1 5430 Ccor(H3)=Ccor(H3-1) 5440 NEXT H3 5450 Ccor(H+1)=Ccor2(H2) 5460 Hmas=Hmas+1 5470 GOTO 5510 5480 END IF

99

5490 IF Ccor2(H2)>=Ccor(H+1) THEN GOTO 5510 5500 NEXT H2 5510 NEXT H 5520 ! 5530 PRINT CHR$(12) 5540 ! GOSUB Pantalla 5550 NEXT Ncomp 5560 ! 5570 IF Nres=2 THEN 5580 PRINT TABXY(15,10);"INSERCION DE CAPAS DEFINIDAS POR UNA RESISTIVIDAD" 5590 Saltocrit=10 ! 10% de variacion total 5600 Distop=.6 ! Limita la distancia de las nuevas capas 5610 FOR P=1 TO Nfich 5620 Jcor(P)=1 5630 NEXT P 5640 FOR H=1 TO Ncor-1 5650 PRINT TABXY(30,11);INT(Ccor(H)*10+.5)/10;"-";INT(Ccor(H+1)*10+.5)/10 5660 Ncapint=Nres 5670 FOR P=1 TO Nfich 5680 IF Tipo$(P)[1,1]<>"R" THEN GOTO 5840 5690 FOR J=Jcor(P) TO Ncap(P) 5700 IF Capa(P,J)=Ccor(H) THEN 5710 J1(P)=J 5720 IF J1(P)=Ncap(P) THEN GOTO 6260 5730 END IF 5740 IF Capa(P,J)=Ccor(H+1) THEN 5750 J2(P)=J 5760 Jcor(P)=J 5770 GOTO 5810 5780 END IF 5790 NEXT J 5800 J2(P)=Ncap(P) 5810 IF J2(P)-J1(P)=1 THEN 5820 Ncapint=Ncapint-1 5830 END IF 5840 NEXT P 5850 IF Ncapint=0 THEN GOTO 6260 5860 FOR P=1 TO Nfich 5870 IF Tipo$(P)[1,1]<>"R" THEN GOTO 6250 5880 IF J2(P)-J1(P)=1 THEN GOTO 6250 5890 Pin=P 5900 FOR J=J1(Pin)+1 TO J2(Pin)-1 5910 IF ABS(Salto(Pin,J))>Saltocrit THEN 5920 IF Capa(Pin,J)-Ccor(H)>Distop AND Ccor(H+1)-Capa(Pin,J)>Distop THEN 5930 Jin=J 5940 Jcor(Pin)=Jin 5950 Ncor=Ncor+1 5960 FOR H2=Ncor TO H+2 STEP -1 5970 Ccor(H2)=Ccor(H2-1) 5980 NEXT H2 5990 H=H+1 6000 Ccor(H)=Capa(Pin,Jin) 6010 FOR P2=1 TO Nfich 6020 IF Tipo$(P2)[1,1]="R" AND P2<>Pin THEN Pr=P2 6030 NEXT P2

100

6040 Ncap(Pr)=Ncap(Pr)+1 6050 FOR J3=J1(Pr) TO J2(Pr) 6060 IF Capa(Pr,J3)>Capa(P,J) THEN 6070 Jmas=J3 6080 GOTO 6110 6090 END IF 6100 NEXT J3 6110 FOR J3=Ncap(Pr) TO Jmas+1 STEP -1 6120 Capa(Pr,J3)=Capa(Pr,J3-1) 6130 Par(Pr,J3)=Par(Pr,J3-1) 6140 Salto(Pr,J3)=Salto(Pr,J3-1) 6150 NEXT J3 6160 Capa(Pr,Jmas)=Capa(Pin,Jin) 6170 Par(Pr,Jmas)=Par(Pr,Jmas)-SGN(Salto(Pin,Jin))*Increpar(Pr) 6180 Salto(Pr,Jmas)=(Par(Pr,Jmas+1)-Par(Pr,Jmas))/(Max(Pr)-Min(Pr))*100 6190 Salto(Pr,Jmas-1)=(Par(Pr,Jmas)-Par(Pr,Jmas-1))/(Max(Pr)-Min(Pr))*100 6200 Jcor(Pr)=Jmas 6210 GOTO 6260 6220 END IF 6230 END IF 6240 NEXT J 6250 NEXT P 6260 NEXT H 6270 PRINT CHR$(12) 6280 ! GOSUB Pantalla 6290 END IF 6300 ! 6310 PRINT TABXY(15,10);"ELIMINACION DE CAPAS DEFINIDAS POR UNA RESISTIVIDAD" 6320 FOR P=1 TO Nfich 6330 Jcor(P)=1 6340 NEXT P 6350 FOR H=1 TO Ncor-1 6360 PRINT TABXY(30,11);INT(Ccor(H)*10+.5)/10;"-";INT(Ccor(H+1)*10+.5)/10 6370 Ncapint=Nres 6380 FOR P=1 TO Nfich 6390 IF Tipo$(P)[1,1]<>"R" THEN GOTO 6550 6400 FOR J=Jcor(P) TO Ncap(P) 6410 IF Capa(P,J)=Ccor(H) THEN 6420 J1(P)=J 6430 IF J1(P)=Ncap(P) THEN GOTO 6830 6440 END IF 6450 IF Capa(P,J)>=Ccor(H+1) THEN 6460 J2(P)=J 6470 Jcor(P)=J 6480 GOTO 6520 6490 END IF 6500 NEXT J 6510 J2(P)=Ncap(P) 6520 IF J2(P)-J1(P)=1 THEN 6530 Ncapint=Ncapint-1 6540 END IF 6550 NEXT P 6560 IF Ncapint=0 THEN GOTO 6830 6570 FOR P=1 TO Nfich 6580 IF Tipo$(P)[1,1]<>"R" THEN GOTO 6820

101

6590 IF J2(P)-J1(P)=1 THEN GOTO 6820 6600 Nint=J2(P)-J1(P)-1 6610 Ncap(P)=Ncap(P)-Nint 6620 Signo1=SGN(Salto(P,J1(P))) 6630 Signo2=SGN(Salto(P,J2(P))) 6640 Ampmedia=0 6650 FOR J=J1(P)+1 TO J2(P) 6660 Ampmedia=Ampmedia+Par(P,J)*(Capa(P,J)-Capa(P,J-1)) 6670 NEXT J 6680 Ampmedia=Ampmedia/(Capa(P,J2(P))-Capa(P,J1(P))) 6690 Signo1med=SGN(Ampmedia-Par(P,J1(P))) 6700 Signo2med=SGN(Par(P,J2(P))-Ampmedia) 6710 IF Signo1med<>Signo1 THEN Par(P,J2(P))=Par(P,J1(P)+1) 6720 IF Signo2med<>Signo2 THEN Par(P,J2(P))=Par(P,J2(P)) 6730 IF Signo1med=Signo1 AND Signo2med=Signo2 THEN Par(P,J2(P))=Ampmedia 6740 Salto(P,J1(P))=(Par(P,J2(P))-Par(P,J1(P)))/(Max(P)-Min(P))*100 6750 Salto(P,J2(P))=(Par(P,J2(P)+1)-Par(P,J2(P)))/(Max(P)-Min(P))*100 6760 FOR J=J1(P)+1 TO Ncap(P) 6770 Capa(P,J)=Capa(P,J+Nint) 6780 Par(P,J)=Par(P,J+Nint) 6790 Salto(P,J)=Salto(P,J+Nint) 6800 NEXT J 6810 Jcor(P)=J1(P)+1 6820 NEXT P 6830 NEXT H 6840 ! 6850 PRINT CHR$(12) 6860 ! GOSUB Pantalla 6870 ! 6880 PRINT TABXY(20,10);"ELIMINACION DE CAPAS DE POCO ESPESOR" 6890 FOR P=1 TO Nfich 6900 Jcor(P)=1 6910 NEXT P 6920 FOR H=1 TO Ncor-1 6930 PRINT TABXY(30,11);INT(Ccor(H)*10+.5)/10;"-";INT(Ccor(H+1)*10+.5)/10 6940 Ncapint=Nres 6950 FOR P=1 TO Nfich 6960 IF Tipo$(P)[1,1]<>"R" THEN GOTO 7090 6970 FOR J=Jcor(P) TO Ncap(P) 6980 IF Capa(P,J)=Ccor(H) THEN J1(P)=J 6990 IF Capa(P,J)=Ccor(H+1) THEN 7000 J2(P)=J 7010 Jcor(P)=J 7020 GOTO 7060 7030 END IF 7040 NEXT J 7050 J2(P)=Ncap(P) 7060 IF J2(P)-J1(P)=1 THEN 7070 Ncapint=Ncapint-1 7080 END IF 7090 NEXT P 7100 IF Ncapint=0 AND Ccor(H+1)-Ccor(H)<.4 THEN 7110 Salto1=0 7120 Salto2=0 7130 FOR P=1 TO Nfich

102

7140 IF Tipo$(P)[1,1]<>"R" THEN GOTO 7180 7150 Ncap(P)=Ncap(P)-1 7160 Salto1=Salto1+Salto(P,J1(P)) 7170 Salto2=Salto2+Salto(P,J2(P)) 7180 NEXT P 7190 FOR P=1 TO Nfich 7200 IF Tipo$(P)[1,1]<>"R" THEN GOTO 7280 7210 IF ABS(Salto1)<ABS(Salto2) THEN Capa(P,J1(P))=Capa(P,J2(P)) 7220 Salto(P,J1(P))=(Par(P,J2(P)+1)-Par(P,J1(P)))/(Max(P)-Min(P))*100 7230 FOR J=J2(P) TO Ncap(P) 7240 Capa(P,J)=Capa(P,J+1) 7250 Par(P,J)=Par(P,J+1) 7260 Salto(P,J)=Salto(P,J+1) 7270 NEXT J 7280 NEXT P 7290 Ncor=Ncor-1 7300 IF ABS(Salto1)<ABS(Salto2) THEN Ccor(H)=Ccor(H+1) 7310 FOR H2=H+1 TO Ncor 7320 Ccor(H2)=Ccor(H2+1) 7330 NEXT H2 7340 END IF 7350 NEXT H 7360 ! 7370 PRINT CHR$(12) 7380 ! GOSUB Pantalla 7390 ! IF Correccion=1 THEN GOTO 3070 7400 ! 7410 RETURN 7420 !------------------------------------------------------------------------ 7430 Calculotot: ! Determinacion de capas del conjunto de los registros 7440 !------------------------------------------------------------------------ 7450 PRINT CHR$(12) 7460 ! 7470 Npnores=0 7480 FOR P=1 TO Nfich 7490 IF Tipo$(P)[1,1]<>"R" THEN Npnores=Npnores+1 7500 NEXT P 7510 ! 7520 FOR P=1 TO Nfich 7530 IF Tipo$(P)[1,1]="R" THEN 7540 Pres=P 7550 GOTO 7580 7560 END IF 7570 NEXT P 7580 ! 7590 Proceso=2 7600 PRINT TABXY(17,10);"REALIZANDO CALCULO DE ESPESORES, NO INTERRUMPIR" 7610 FOR P=1 TO Nfich 7620 Esp(P,1)=Capa(P,1)-X0min 7630 FOR J=2 TO Ncap(P) 7640 Esp(P,J)=(Capa(P,J)-Capa(P,J-1)) 7650 IF Esp(P,J)<=0 THEN 7660 PRINT P;J;Esp(P,J) 7670 PAUSE 7680 END IF

103

7690 NEXT J 7700 NEXT P 7710 ! 7720 PRINT TABXY(15,10);"CAPAS DETERMINADAS POR EL CONJUNTO DE LOS PARAMETROS" 7730 FOR P=1 TO Nfich 7740 Jcomp(P)=1 7750 Cuenta(P)=1 7760 NEXT P 7770 ! 7780 FOR H=2 TO Ncor-1 7790 PRINT TABXY(34,11);INT(Ccor(H)*10+.5)/10;"metros " 7800 Ncomp=1 7810 Sumaprof=Ccor(H) 7820 FOR P=1 TO Nfich 7830 FOR J=Jcomp(P) TO Ncap(P) 7840 IF Capa(P,J)>=Ccor(H) THEN 7850 IF Capa(P,J)=Ccor(H) THEN Jcomp(P)=J 7860 IF Capa(P,J)>Ccor(H) THEN Jcomp(P)=J-1 7870 IF Capa(P,Jcomp(P))=Ccor(H-1) THEN Jcomp(P)=Jcomp(P)+1 7880 IF Jcomp(P)>Ncap(P)-2 THEN GOTO 8400 7890 GOTO 7930 7900 END IF 7910 NEXT J 7920 Jcomp(P)=Ncap(P) 7930 NEXT P 7940 FOR P=1 TO Nfich 7950 IF Tipo$(P)[1,1]="R" THEN GOTO 8130 7960 Cuenta(P)=0 7970 Dprof0=1+(Capa(P,Jcomp(P))-Ccor(H))^2 7980 Cocespiz0=LGT(Esp(P,Jcomp(P))/(Ccor(H)-Ccor(H-1)))^2 7990 Cocespder0=LGT(Esp(P,Jcomp(P)+1)/(Ccor(H+1)-Ccor(H)))^2 8000 Desp0=1+Cocespiz0*Cocespder0 8010 Distancia0=Dprof0*Desp0-1 8020 Dprof1=1+(Capa(P,Jcomp(P)+1)-Ccor(H))^2 8030 Cocespiz1=LGT(Esp(P,Jcomp(P)+1)/(Ccor(H)-Ccor(H-1)))^2 8040 Cocespder1=LGT(Esp(P,Jcomp(P)+2)/(Ccor(H+1)-Ccor(H)))^2 8050 Desp1=1+Cocespiz1*Cocespder1 8060 Distancia1=Dprof1*Desp1-1 8070 IF Distancia0>1 AND Distancia1>1 THEN GOTO 8130 8080 IF Distancia1<Distancia0 THEN Jcomp(P)=Jcomp(P)+1 8090 ! INCLUIR CAPAS SI SE PARECE MAS LA SIGUIENTE 8100 Cuenta(P)=1 8110 Ncomp=Ncomp+1 8120 Sumaprof=Sumaprof+Capa(P,Jcomp(P)) 8130 NEXT P 8140 Profmedia=Sumaprof/Ncomp 8150 Ccor(H)=Profmedia 8160 IF Ccor(H)>=Ccor(H+1) THEN Ccor(H)=Ccor(H+1)-.4 8170 FOR P=1 TO Nfich 8180 IF Cuenta(P)=1 AND Ncomp>1 THEN Capa(P,Jcomp(P))=Ccor(H) 8190 IF Cuenta(P)=0 THEN 8200 Ncap(P)=Ncap(P)+1 8210 IF Capa(P,Jcomp(P))<Ccor(H) THEN Jcomp(P)=Jcomp(P)+1 8220 FOR J=Ncap(P) TO Jcomp(P)+1 STEP -1 8230 Par(P,J)=Par(P,J-1)

104

8240 Capa(P,J)=Capa(P,J-1) 8250 Esp(P,J)=Esp(P,J-1) 8260 NEXT J 8270 Par(P,Jcomp(P))=Par(P,Jcomp(P)) ! MODIFICAR EN FUNCION DEL PARECIDO 8280 Capa(P,Jcomp(P))=Ccor(H) 8290 END IF 8300 IF Capa(P,Jcomp(P))<=Capa(P,Jcomp(P)-1) THEN 8310 Capa(P,Jcomp(P)-1)=Capa(P,Jcomp(P))-.4 8320 END IF 8330 IF Capa(P,Jcomp(P))>=Capa(P,Jcomp(P)+1) THEN 8340 Capa(P,Jcomp(P)+1)=Capa(P,Jcomp(P))+.4 8350 END IF 8360 Esp(P,Jcomp(P))=Profmedia-Capa(P,Jcomp(P)-1) 8370 Esp(P,Jcomp(P)+1)=Capa(P,Jcomp(P)+1)-Ccor(H) 8380 Jcomp(P)=Jcomp(P)-1 8390 NEXT P 8400 NEXT H 8410 ! 8420 PRINT CHR$(12) 8430 Proceso=3 8440 PRINT TABXY(17,10);"CAPAS DETERMINADAS POR PARAMETROS NO RESISTIVOS" 8450 FOR P=1 TO Nfich 8460 Jcomp(P)=1 8470 NEXT P 8480 ! 8490 FOR H=1 TO Ncor-1 8500 PRINT TABXY(30,11);INT(Ccor(H)*10)/10;INT(Ccor(H+1)*10)/10;"metros " 8510 Ncapint=Nfich 8520 FOR P=1 TO Nfich 8530 FOR J=Jcomp(P) TO Ncap(P) 8540 IF Capa(P,J)=Ccor(H) THEN 8550 IF Capa(P,J)=Ccor(H) THEN J1(P)=J 8560 IF J1(P)=Ncap(P) THEN GOTO 9280 8570 GOTO 8600 8580 END IF 8590 NEXT J 8600 FOR J=Jcomp(P) TO Ncap(P) 8610 IF Capa(P,J)=Ccor(H+1) THEN 8620 J2(P)=J 8630 Jcomp(P)=J 8640 GOTO 8680 8650 END IF 8660 NEXT J 8670 J2(P)=Ncap(P) 8680 IF J2(P)-J1(P)=1 THEN 8690 Ncapint=Ncapint-1 8700 END IF 8710 NEXT P 8720 IF Ncapint=0 THEN GOTO 9280 8730 IF Ncapint=1 THEN 8740 ! INCLUIR CAPAS SI EL PARAMETRO QUE LA SE¶ALA TIENE MUCHA VARIACION 8750 GOTO 9280 8760 END IF 8770 FOR P=1 TO Nfich 8780 IF J2(P)-J1(P)=1 THEN GOTO 8820

105

8790 IF Tipo$(P)[1,1]="R" THEN GOTO 8820 8800 P1=P 8810 GOTO 8830 8820 NEXT P 8830 FOR Deltaj1=1 TO J2(P1)-J1(P1)-1 ! MODIFICAR HASTA 8810 PARA Npnores>2 8840 FOR P=1 TO Nfich 8850 IF Tipo$(P)[1,1]="R" THEN GOTO 8970 8860 IF J2(P)-J1(P)=1 THEN GOTO 8970 8870 IF P=P1 THEN GOTO 8970 8880 Pmin=P 8890 Distanmin=2 8900 FOR Deltaj=1 TO J2(P)-J1(P)-1 8910 Distancia=(Capa(P,J1(P)+Deltaj)-Capa(P1,J1(P1)+Deltaj1))^2 8920 IF Distancia<Distanmin THEN 8930 Deltamin=Deltaj 8940 Distanmin=Distancia 8950 END IF 8960 NEXT Deltaj 8970 NEXT P 8980 Profmedia=(Capa(P1,J1(P1)+Deltaj1)+Capa(Pmin,J1(Pmin)+Deltamin))/2 8990 IF Distanmin<1 AND Profmedia-Ccor(H)>.4 AND Ccor(H+1)-Profmedia>.4 THEN 9000 Ncor=Ncor+1 9010 FOR H2=Ncor TO (H+1)+1 STEP -1 9020 Ccor(H2)=Ccor(H2-1) 9030 NEXT H2 9040 Ccor(H+1)=Profmedia 9050 Jcomp(P1)=J1(P1)+Deltaj1 9060 Capa(P1,J1(P1)+Deltaj1)=Profmedia 9070 FOR P=1 TO Nfich 9080 IF P=P1 THEN GOTO 9240 9090 IF J2(P)-J1(P)=1 THEN 9100 Ncap(P)=Ncap(P)+1 9110 FOR J3=Ncap(P) TO J2(P)+1 STEP -1 9120 Capa(P,J3)=Capa(P,J3-1) 9130 Par(P,J3)=Par(P,J3-1) 9140 NEXT J3 9150 Capa(P,J2(P))=Profmedia 9160 Par(P,J2(P))=Par(P,J2(P)+1) 9170 END IF 9180 IF J2(P)-J1(P)>1 THEN 9190 Capa(P,J1(P)+Deltamin)=Profmedia 9200 Jcomp(P)=J1(P)+Deltamin 9210 J1(P)=J1(P)+Deltamin 9220 IF J1(P)>=J2(P) THEN GOTO 9280 9230 END IF 9240 NEXT P 9250 GOTO 9280 9260 END IF 9270 NEXT Deltaj1 9280 NEXT H 9290 ! 9300 PRINT CHR$(12) 9310 PRINT TABXY(8,10);"ELIMINACION DE CAPAS DETERMINADAS POR UN SOLO PARAMETRO NO RESISTIVO" 9320 FOR P=1 TO Nfich 9330 Jcomp(P)=1

106

9340 NEXT P 9350 ! 9360 FOR H=1 TO Ncor 9370 PRINT TABXY(30,11);INT(Ccor(H)*10)/10;INT(Ccor(H+1)*10)/10;"metros " 9380 Ncapint=Npnores 9390 FOR P=1 TO Nfich 9400 IF Tipo$(P)[1,1]="R" THEN GOTO 9560 9410 FOR J=Jcomp(P) TO Ncap(P) 9420 IF Capa(P,J)=Ccor(H) THEN 9430 J1(P)=J 9440 IF J1(P)=Ncap(P) THEN GOTO 9750 9450 END IF 9460 IF Capa(P,J)=Ccor(H+1) THEN 9470 J2(P)=J 9480 Jcomp(P)=J 9490 GOTO 9530 9500 END IF 9510 NEXT J 9520 J2(P)=Ncap(P) 9530 IF J2(P)-J1(P)=1 THEN 9540 Ncapint=Ncapint-1 9550 END IF 9560 NEXT P 9570 IF Ncapint=0 THEN GOTO 9750 9580 FOR P=1 TO Nfich 9590 IF Tipo$(P)[1,1]="R" THEN GOTO 9740 9600 IF J2(P)-J1(P)=1 THEN GOTO 9740 9610 Nint=J2(P)-J1(P)-1 9620 Ncap(P)=Ncap(P)-Nint 9630 Ampmedia=0 9640 FOR J=J1(P)+1 TO J2(P) 9650 Ampmedia=Ampmedia+Par(P,J)*(Capa(P,J)-Capa(P,J-1)) 9660 NEXT J 9670 Ampmedia=Ampmedia/(Capa(P,J2(P))-Capa(P,J1(P))) 9680 Par(P,J2(P))=Ampmedia 9690 FOR J=J1(P)+1 TO Ncap(P) 9700 Capa(P,J)=Capa(P,J+Nint) 9710 Par(P,J)=Par(P,J+Nint) 9720 NEXT J 9730 Jcomp(P)=J1(P)+1 9740 NEXT P 9750 NEXT H 9760 ! 9770 PRINT CHR$(12) 9780 GOSUB Pantalla 9790 IF Correccion=1 THEN GOTO 7590 9800 ! 9810 RETURN 9820 !------------------------------------------------------------------------ 9830 Pantalla: ! Visualizacion de resultados normalizados 9840 !------------------------------------------------------------------------ 9850 Correccion=0 9860 Alt=100/(6*Nfich-1) 9870 Altura=6*Alt 9880 Xref=1

107

9890 Delta=16*(Dist*10) 9900 Idelta=Delta/Dist 9910 Idesp=1 9920 ! 9930 FOR P=1 TO Nfich 9940 IF Proceso=1 AND Tipo$(P)[1,1]="R" THEN 9950 Pcor1=P 9960 GOTO 10040 9970 END IF 9980 IF Proceso=2 AND Tipo$(P)[1,1]<>"R" THEN 9990 Pcor1=P 10000 GOTO 10040 10010 END IF 10020 IF Proceso=0 OR Proceso=3 THEN Pcor1=1 10030 NEXT P 10040 FOR P=Pcor1 TO Nfich 10050 IF Proceso=1 AND Tipo$(P)[1,1]="R" THEN 10060 Pcor2=P 10070 GOTO 10140 10080 END IF 10090 IF Proceso=2 AND Tipo$(P)[1,1]<>"R" THEN 10100 Pcor2=P 10110 GOTO 10140 10120 END IF 10130 IF Proceso=0 OR Proceso=3 THEN Pcor2=Nfich 10140 NEXT P 10150 Pref=Pcor1 ! PCOR2 10160 ! 10170 IF Proceso>0 THEN GOTO 10780 10180 ! 10190 LINE TYPE 1 10200 FOR P=1 TO Nfich 10210 VIEWPORT 0,133,(P-1)*Altura,P*Altura-Alt 10220 FRAME 10230 WINDOW X0min,X2max,Min(P),Max(P) 10240 MOVE Cap0(P),Par(P,1) 10250 FOR J=2 TO Ncap(P) 10260 DRAW Capa(P,J-1),Par(P,J) 10270 DRAW Capa(P,J),Par(P,J) 10280 NEXT J 10290 NEXT P 10300 ! 10310 VIEWPORT 0,133,0,100 10320 WINDOW X0min,X2max,0,100 10330 FOR J=1 TO Ncor 10340 FOR P=1 TO Nfich-1 10350 MOVE Ccor(J),P*Altura-Alt 10360 DRAW Ccor(J),P*Altura 10370 NEXT P 10380 NEXT J 10390 ! 10400 GOTO 10560 10410 GRAPHICS OFF 10420 PRINT " PARA CONTINUAR PULSE |CONT| " 10430 PRINT " PARA MOVER LA DIAGRAFIA GIRE EL CURSOR "

108

10440 PRINT " PARA SALIR DEL GRAFICO PULSE EL ESPACIADOR " 10450 PRINT " PARA VOLCAR EL DIBUJO A IMPRESORA PULSE |V| " 10460 PRINT " PARA SELECCIONAR CAPAS PULSE --> O <-- " 10470 PRINT " PARA A¶ADIR CAPAS PULSE |INS C| " 10480 PRINT " PARA QUITAR CAPAS PULSE |DEL C| " 10490 PRINT " PARA DESPLAZAR CAPAS CONJUNTAS PULSE SHIFT-I O SHIFT-D " 10500 PRINT " PARA CAMBIAR AMPLITUD O PROFUNDIDAD DE UN SOLO PARAMETRO MUEVASE " 10510 PRINT " HASTA EL PARAMETRO CON LAS FLECHAS VERTICALES Y DESPUES PULSE " 10520 PRINT " |+| , |-| , |D| o |I| PARA MODIFICAR " 10530 PAUSE 10540 PRINT CHR$(12) 10550 GRAPHICS ON 10560 ! 10570 ON KNOB .01,2 GOTO 10770 ! Mueve la diagrafia con el cursor 10580 ON KBD,2 GOTO 10600 10590 GOTO 10570 10600 Tecla$=KBD$ 10610 IF Tecla$=CHR$(32) THEN GOTO 13670 ! Sale del grafico con el space 10620 IF Tecla$=CHR$(86) OR Tecla$=CHR$(118) THEN GOTO 13650 ! Volcado impresora 10630 IF Tecla$=CHR$(65) OR Tecla$=CHR$(97) THEN GOTO 10410 ! Impresion de ayuda 10640 IF Tecla$=CHR$(255)&CHR$(60) THEN GOTO 11410 ! Desplazamiento de la ! 10650 IF Tecla$=CHR$(255)&CHR$(62) THEN GOTO 11410 ! linea de profundidad ! 10660 IF Tecla$=CHR$(255)&CHR$(43) THEN GOTO 11660 ! A·adir segmentos 10670 IF Tecla$=CHR$(255)&CHR$(45) THEN GOTO 12160 ! Quitar segmentos 10680 IF Tecla$=CHR$(100) THEN GOTO 12530 ! Segmentos hacia derecha 10690 IF Tecla$=CHR$(105) THEN GOTO 12530 ! Segmentos hacia izquierda 10700 IF Tecla$=CHR$(255)&CHR$(94) THEN GOTO 12810 ! Sube un parametro 10710 IF Tecla$=CHR$(255)&CHR$(86) THEN GOTO 12810 ! Baja un parametro 10720 IF Tecla$=CHR$(43) THEN GOTO 13010 ! Aumenta amplitud 10730 IF Tecla$=CHR$(45) THEN GOTO 13010 ! Disminuye amplitud 10740 IF Tecla$=CHR$(68) THEN GOTO 13240 ! Desplaza derecha 10750 IF Tecla$=CHR$(73) THEN GOTO 13240 ! Desplaza izquierda 10760 GOTO 10570 10770 ! 10780 ! Desplazamiento de la diagrafia 10790 GCLEAR 10800 Avance=KNOBX/10 10810 Xref=INT(Xref+Avance*Delta) 10820 IF Xref<INT(X0min) THEN Xref=INT(X0min)+1 10830 IF Xref>INT(X2max-Delta+1) THEN Xref=INT(X2max-Delta+1) 10840 Xdesp=Delta/2 10850 FOR H=1 TO Ncor 10860 IF Ccor(H)>Xref THEN GOTO 10880 10870 NEXT H 10880 Href=H 10890 ! 10900 ! Dibujo de las capas de cada parametro 10910 ! 10920 FOR P=1 TO Nfich 10930 VIEWPORT 0,133,(P-1)*Altura,P*Altura-Alt 10940 FRAME 10950 WINDOW Xref,Xref+Delta,Min(P),Max(P) 10960 AXES 1,(Max(P)-Min(P))/10,Xref,Min(P),10,10,2 10970 MOVE Xref,Min(P) 10980 LORG 1

109

10990 LABEL Xref 11000 MOVE Xref+Delta,Min(P) 11010 LORG 7 11020 LABEL INT(Min(P)) 11030 MOVE Xref+Delta,Max(P) 11040 LORG 9 11050 LABEL INT(Max(P)) 11060 ! 11070 MOVE Cap0min,Par(P,1) 11080 FOR J=2 TO Ncap(P) 11090 IF Capa(P,J)<Xref THEN GOTO 11130 11100 DRAW Capa(P,J-1),Par(P,J) 11110 DRAW Capa(P,J),Par(P,J) 11120 IF Capa(P,J)>Xref+Delta THEN GOTO 11150 11130 NEXT J 11140 ! 11150 LINE TYPE 4 11160 MOVE Cap0min,Par2(P,1) 11170 FOR J=2 TO Ncap2(P) 11180 IF Capa2(P,J)<Xref THEN GOTO 11220 11190 DRAW Capa2(P,J-1),Par2(P,J) 11200 DRAW Capa2(P,J),Par2(P,J) 11210 IF Capa2(P,J)>Xref+Delta THEN GOTO 11230 11220 NEXT J 11230 LINE TYPE 1 11240 ! 11250 NEXT P 11260 ! 11270 ! Dibujo de los limites de capas globales 11280 ! 11290 VIEWPORT 0,133,0,100 11300 WINDOW Xref,Xref+Delta,0,100 11310 FOR H=Href TO Ncor 11320 FOR P=1 TO Nfich-1 11330 MOVE Ccor(H),P*Altura-Alt 11340 DRAW Ccor(H),P*Altura 11350 NEXT P 11360 IF Ccor(H)>Xref+Delta THEN GOTO 11380 11370 NEXT H 11380 ! 11390 GOTO 10570 11400 ! 11410 ! Movimiento de la linea de referencia 11420 ! 11430 LINE TYPE 4 11440 PEN -1 11450 FOR P=1 TO Nfich-1 11460 VIEWPORT 0,133,P*Altura-Alt,P*Altura 11470 WINDOW Xref,Xref+Delta,0,1 11480 MOVE Xref+Xdesp,.2 11490 DRAW Xref+Xdesp,.8 11500 NEXT P 11510 IF Tecla$=CHR$(255)&CHR$(60) THEN Xdesp=Xdesp-Dist 11520 IF Tecla$=CHR$(255)&CHR$(62) THEN Xdesp=Xdesp+Dist 11530 IF Xdesp<0 THEN Xdesp=Delta

110

11540 IF Xdesp>Delta THEN Xdesp=0 11550 PEN 1 11560 FOR P=1 TO Nfich-1 11570 VIEWPORT 0,133,P*Altura-Alt,P*Altura 11580 WINDOW Xref,Xref+Delta,0,1 11590 MOVE Xref+Xdesp,.2 11600 DRAW Xref+Xdesp,.8 11610 NEXT P 11620 LINE TYPE 1 11630 Linearef=1 11640 GOTO 10570 11650 ! 11660 ! A·adir limites de capas 11670 ! 11680 FOR H=Href TO Ncor 11690 IF Ccor(H)>Xref+Xdesp THEN 11700 Hmas=H 11710 GOTO 11740 11720 END IF 11730 NEXT H 11740 IF Hmas=1 THEN 11750 IF Ccor(Hmas)-(Xref+Xdesp)<.4 THEN GOTO 11790 11760 GOTO 11820 11770 END IF 11780 IF (Ccor(Hmas)-(Xref+Xdesp))<.4 OR ((Xref+Xdesp)-Ccor(Hmas-1))<.4 THEN 11790 BEEP 11800 GOTO 10570 11810 END IF 11820 GCLEAR 11830 Ncor=Ncor+1 11840 FOR H=Ncor TO Hmas+1 STEP -1 11850 Ccor(H)=Ccor(H-1) 11860 NEXT H 11870 Ccor(Hmas)=INT((Xref+Xdesp)*10+.5)/10 11880 FOR P=1 TO Nfich 11890 FOR J=1 TO Ncap(P) 11900 IF ABS(Capa(P,J)-Ccor(Hmas))<.4 THEN GOTO 12050 11910 IF Capa(P,J)>Ccor(Hmas) THEN 11920 Jmas=J 11930 Ncap(P)=Ncap(P)+1 11940 GOTO 11970 11950 END IF 11960 NEXT J 11970 FOR J=Ncap(P) TO Jmas STEP -1 11980 Capa(P,J)=Capa(P,J-1) 11990 Par(P,J)=Par(P,J-1) 12000 ! Salto(P,J)=Salto(P,J-1) 12010 NEXT J 12020 Capa(P,Jmas)=Ccor(Hmas) 12030 Par(P,Jmas)=Par(P,Jmas+1) 12040 ! Salto(P,Jmas)=(Par(P,Jmas+1)-Par(P,Jmas))/(Max(P)-Min(P))*100 12050 NEXT P 12060 GRAPHICS ON 12070 FOR P=1 TO Nfich-1 12080 VIEWPORT 0,133,P*Altura-Alt,P*Altura

111

12090 WINDOW Xref,Xref+Delta,0,1 12100 MOVE Ccor(Hmas),.05 12110 DRAW Ccor(Hmas),.95 12120 NEXT P 12130 Correccion=1 12140 GOTO 10900 12150 ! 12160 ! Quitar limites de capas 12170 ! 12180 FOR H=Href TO Ncor 12190 IF ABS(Ccor(H)-(Xref+Xdesp))<=.1 THEN 12200 Hmen=H 12210 GOTO 12280 12220 END IF 12230 IF Ccor(H)>(Xref+Xdesp)+.1 THEN 12240 BEEP 12250 GOTO 10570 12260 END IF 12270 NEXT H 12280 GCLEAR 12290 FOR P=1 TO Nfich 12300 FOR J=1 TO Ncap(P) 12310 IF Capa(P,J)=Ccor(Hmen) THEN 12320 Jmen=J 12330 Ncap(P)=Ncap(P)-1 12340 GOTO 12390 12350 END IF 12360 IF Capa(P,J)>Ccor(Hmen) THEN GOTO 12450 12370 NEXT J 12380 GOTO 12450 12390 FOR J=Jmen TO Ncap(P) 12400 Capa(P,J)=Capa(P,J+1) 12410 Par(P,J)=Par(P,J+1) 12420 ! Salto(P,J)=Salto(P,J+1) 12430 NEXT J 12440 ! Salto(P,Jmen)=(Par(P,Jmen+1)-Par(P,Jmen))/(Max(P)-Min(P))*100 12450 NEXT P 12460 Ncor=Ncor-1 12470 FOR H=Hmen TO Ncor 12480 Ccor(H)=Ccor(H+1) 12490 NEXT H 12500 Correccion=1 12510 GOTO 10900 12520 ! 12530 ! Desplazamiento de capas conjuntas 12540 ! 12550 FOR H=Href TO Ncor 12560 IF ABS(Ccor(H)-(Xref+Xdesp))<=.1 THEN 12570 Hmov=H 12580 GOTO 12650 12590 END IF 12600 IF Ccor(H)>(Xref+Xdesp)+.1 THEN 12610 BEEP 12620 GOTO 10570 12630 END IF

112

12640 NEXT H 12650 GCLEAR 12660 IF Tecla$=CHR$(100) THEN Movim=.2 12670 IF Tecla$=CHR$(105) THEN Movim=-.2 12680 FOR P=1 TO Nfich 12690 FOR J=1 TO Ncap(P) 12700 IF Capa(P,J)=Ccor(Hmov) THEN 12710 Capa(P,J)=Capa(P,J)+Movim 12720 GOTO 12760 12730 END IF 12740 IF Capa(P,J)>Ccor(Hmov) THEN GOTO 12760 12750 NEXT J 12760 NEXT P 12770 Ccor(Hmov)=Ccor(Hmov)+Movim 12780 Correccion=1 12790 GOTO 10900 12800 ! 12810 ! Desplazamiento de parametro a corregir 12820 ! 12830 VIEWPORT 0,133,(Pref-1)*Altura,Pref*Altura-Alt 12840 WINDOW Xref,Xref+Delta,Min(Pref),Max(Pref) 12850 FRAME 12860 IF Tecla$=CHR$(255)&CHR$(94) THEN Pref=Pref+1 12870 IF Tecla$=CHR$(255)&CHR$(86) THEN Pref=Pref-1 12880 IF Pref>Pcor2 THEN Pref=Pcor1 12890 IF Pref<Pcor1 THEN Pref=Pcor2 12900 VIEWPORT 0,133,(Pref-1)*Altura,Pref*Altura-Alt 12910 WINDOW Xref,Xref+Delta,Min(Pref),Max(Pref) 12920 PEN -1 12930 FRAME 12940 PEN 1 12950 LINE TYPE 5 12960 FRAME 12970 LINE TYPE 1 12980 Linearef=1 12990 GOTO 10570 13000 ! 13010 ! Incremento y disminucion de amplitud 13020 ! 13030 IF Linearef=0 THEN GOTO 13080 13040 FOR J=1 TO Ncap(Pref) 13050 IF Capa(Pref,J)>=(Xref+Xdesp) THEN GOTO 13070 13060 NEXT J 13070 Jref=J 13080 VIEWPORT 0,133,(Pref-1)*Altura,Pref*Altura-Alt 13090 WINDOW Xref,Xref+Delta,Min(Pref),Max(Pref) 13100 PEN -1 13110 MOVE Capa(Pref,Jref-1),Par(Pref,Jref) 13120 DRAW Capa(Pref,Jref),Par(Pref,Jref) 13130 IF Tecla$=CHR$(43) THEN Par(Pref,Jref)=Par(Pref,Jref)+Increpar(Pref) 13140 IF Tecla$=CHR$(45) THEN Par(Pref,Jref)=Par(Pref,Jref)-Increpar(Pref) 13150 ! Salto(Pref,Jref)=(Par(Pref,Jref+1)-Par(Pref,Jref))/(Max(Pref)-Min(Pref))*100 13160 ! Salto(Pref,Jref-1)=(Par(Pref,Jref)-Par(Pref,Jref-1))/(Max(Pref)-

Min(Pref))*100 13170 PEN 1

113

13180 MOVE Capa(Pref,Jref-1),Par(Pref,Jref) 13190 DRAW Capa(Pref,Jref),Par(Pref,Jref) 13200 Linearef=0 13210 Correccion=1 13220 GOTO 10570 13230 ! 13240 ! Desplazamiento a izquierda o derecha 13250 ! 13260 IF Tipo$(Pref)[1,1]="R" THEN 13270 BEEP 13280 GOTO 10570 13290 END IF 13300 IF Linearef=0 THEN GOTO 13350 13310 FOR J=1 TO Ncap(Pref) 13320 IF Capa(Pref,J)>=(Xref+Xdesp) THEN GOTO 13340 13330 NEXT J 13340 Jref=J 13350 VIEWPORT 0,133,(Pref-1)*Altura,Pref*Altura-Alt 13360 WINDOW Xref,Xref+Delta,Min(Pref),Max(Pref) 13370 PEN -1 13380 MOVE Capa(Pref,Jref),Par(Pref,Jref) 13390 DRAW Capa(Pref,Jref),Par(Pref,Jref+1) 13400 IF Tecla$=CHR$(68) THEN 13410 Capa(Pref,Jref)=Capa(Pref,Jref)+.1 13420 IF Capa(Pref,Jref)>Capa(Pref,Jref+1)-.4 THEN 13430 Capa(Pref,Jref)=Capa(Pref,Jref)-.1 13440 BEEP 13450 GOTO 13560 13460 END IF 13470 END IF 13480 IF Tecla$=CHR$(73) THEN 13490 Capa(Pref,Jref)=Capa(Pref,Jref)-.1 13500 IF Capa(Pref,Jref)<Capa(Pref,Jref-1)+.4 THEN 13510 Capa(Pref,Jref)=Capa(Pref,Jref)+.1 13520 BEEP 13530 GOTO 13560 13540 END IF 13550 END IF 13560 Esp(Pref,Jref)=Capa(Pref,Jref)-Capa(Pref,Jref-1) 13570 Esp(Pref,Jref+1)=Capa(Pref,Jref)-Capa(Pref,Jref) 13580 PEN 1 13590 MOVE Capa(Pref,Jref),Par(Pref,Jref) 13600 DRAW Capa(Pref,Jref),Par(Pref,Jref+1) 13610 Linearef=0 13620 Correccion=1 13630 GOTO 10570 13640 ! 13650 CALL Imprimir 13660 GOTO 10570 13670 ! 13680 OFF KNOB 13690 OFF KBD 13700 GCLEAR 13710 RETURN 13720 !------------------------------------------------------------------------

114

13730 PRINT CHR$(12) 13740 PRINT " FIN DEL PROGRAMA" 13750 ! 13760 STOP 13770 END 13780 !------------------------------------------------------------------------ 13790 SUB Salir 13800 BEEP 13810 OFF KEY 13820 SUSPEND INTERACTIVE 13830 ON KEY 0 LABEL "SALIR" GOTO 13860 13840 ON KEY 5 LABEL "CONTINUAR" GOTO 13880 13850 GOTO 13830 13860 INPUT "Quiere salir al programa principal",Qsal$ 13870 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 13880 OFF KEY 13890 RESUME INTERACTIVE 13900 SUBEND 13910 !------------------------------------------------------------------------ 13920 SUB Grabafich(Son$,Nfich,Ncor,X0min,Tipo$(*),Min(*),Max(*),Ccor(*),Pcor(*)) 13930 ! 13940 REM SUBPROGRAMA DE GRABACION DE REGISTROS 13950 ! 13960 !------------------------------------------------------------------------ 13970 GRAPHICS OFF 13980 PRINT CHR$(12) 13990 SUSPEND INTERACTIVE 14000 ! 14010 ALLOCATE Col(1:Ncor,1:Nfich+1) 14020 FOR C=1 TO Ncor 14030 Col(C,1)=Ccor(C) 14040 FOR R=1 TO Nfich 14050 Col(C,R+1)=Pcor(R,C) 14060 NEXT R 14070 NEXT C 14080 Tipo$(0)=VAL$(Nfich) 14090 Min(0)=X0min 14100 Max(0)=Ncor 14110 Nr=(6+4)+(2+Ncor)*8+20 14120 ! 14130 PRINT CHR$(12) 14140 Nn$=Son$&"_CAP" 14150 MASS STORAGE IS ":HP 8290X,700,1" 14160 ON ERROR GOTO 14210 14170 CREATE BDAT Nn$,(Nfich+1),Nr 14180 OFF ERROR 14190 GOTO 14540 14200 ! 14210 IF ERRN=54 THEN 14220 INPUT "Quiere remplazar el registro ? ",Qr$ 14230 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 14300 14240 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 14250 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 14220 14260 PURGE Nn$ 14270 OFF ERROR

115

14280 CREATE BDAT Nn$,(Nfich+1),Nr 14290 GOTO 14540 14300 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 14310 IF Qc$="N" OR Qc$="NO" THEN GOTO 14190 14320 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 14330 ON KBD ALL GOTO 14340 14340 IF KBD$<>"ÿC" THEN GOTO 14340 14350 OFF KBD 14360 PRINT CHR$(12) 14370 OFF ERROR 14380 GOTO 14540 14390 END IF 14400 IF ERRN=53 THEN 14410 PRINT "Nombre del fichero impropio" 14420 PRINT TABXY(0,17);"Conviene que tenga siglas del sondeo (ej: GUAR4)" 14430 BEEP 14440 INPUT "Nombre de fichero del registro (<=5 caracteres)",Son$ 14450 IF LEN(Son$)=0 OR LEN(Son$)>5 THEN GOTO 14440 14460 Nn$=Son$&"_CAP" 14470 GOTO 14150 14480 END IF 14490 IF ERRN=56 THEN 14500 PRINT "Disco completo, revise por favor" 14510 GOTO 14150 14520 END IF 14530 ! 14540 MASS STORAGE IS ":HP 8290X,700,1" 14550 ASSIGN @Pat_0 TO Nn$ 14560 PRINT CHR$(12) 14570 PRINT TABXY(20,10);"Realizando la grabacion, NO interrumpir" 14580 FOR R=0 TO Nfich 14590 OUTPUT @Pat_0;Tipo$(R) 14600 NEXT R 14610 FOR R=0 TO Nfich 14620 OUTPUT @Pat_0;Min(R) 14630 NEXT R 14640 FOR R=0 TO Nfich 14650 OUTPUT @Pat_0;Max(R) 14660 NEXT R 14670 OUTPUT @Pat_0;Col(*) 14680 ASSIGN @Pat_0 TO * 14690 MASS STORAGE IS ": HP 8290X,700,0" 14700 ! 14710 PRINT CHR$(12) 14720 PRINT TABXY(25,10);"Grabado el fichero ";Nn$ 14730!RESUME INTERACTIVE 14740 GRAPHICS ON 14750 SUBEND 14760 !----------------------------------------------------------------------- 14770 SUB Imprimir 14780 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 14790 !------------------------------------------------------------------------ 14800 PRINTER IS 1 14810 GRAPHICS OFF 14820 INPUT "Quiere imprimir los resultados S/N ?",Qi$

116

14830 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 14890 14840 PRINT " Conecte la impresora y pulse |CONT| " 14850 PAUSE 14860 CALL Titulo 14870 GRAPHICS ON 14880 CALL Vuelcapant(701) 14890 PRINT CHR$(12) 14900 PRINTER IS 1 14910 ! 14920 SUBEND 14930 !------------------------------------------------------------------------ 14940 SUB Titulo 14950 !------------------------------------------------------------------------ 14960 DIM Titulo$[240] 14970 ! 14980 PRINT CHR$(12) 14990 INPUT "Titulo del grafico",Titulo$ 15000 IF Titulo$="" THEN GOTO 15270 15010 PRINTER IS 1 15020 GOSUB Editor 15030 INPUT "Correcto",Cort$ 15040 IF Cort$="N" OR Cort$="NO" THEN GOTO 14980 15050 PRINTER IS 701 15060 GOSUB Editor 15070 PRINTER IS 1 15080 GOTO 15270 15090 ! 15100 Editor: ! Divide el texto y lo centra 15110 Titulo$=Titulo$&" " 15120 C0=0 15130 IF C0>=LEN(Titulo$) THEN GOTO 15250 15140 Caracter=50+C0 15150 FOR C=Caracter TO 1 STEP -1 15160 IF C>LEN(Titulo$) THEN GOTO 15240 15170 IF Titulo$[C,C]=" " THEN 15180 Tx=INT((64-(C-C0))/2) 15190 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 15200 PRINT USING Ima$;Titulo$[C0+1,C] 15210 C0=C 15220 GOTO 15130 15230 END IF 15240 NEXT C 15250 RETURN 15260 ! 15270 SUBEND 15280 !------------------------------------------------------------------------ 15290 SUB Vuelcapant(INTEGER Device_selector) 15300 !------------------------------------------------------------------------ 15310 OPTION BASE 1 15320 INTEGER Row_group,Prod_num,Maxrow 15330 DIM Graphic_escape$[7] 15340 ! 15350 ON ERROR GOTO 15790 ! Error en PRINTER IS 15360 PRINTER IS Device_selector 15370 OFF ERROR

117

15380 ! 15390 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 15400 ! 15410 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 15420 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 15430 ! 15440 ON ERROR GOTO 15790 ! Error al dimensionar matrices 15450 ! 15460 IF Graphics_res=1 THEN 15470 ALLOCATE Os$[512] ! Para los modelos 9836 15480 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 15490 Maxrow=390 ! Numero de lineas del 9836 15500 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 15510 ELSE 15520 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 15530 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 15540 Maxrow=300 ! Numero de lineas del 9826 y 9816 15550 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 15560 END IF 15570 ! 15580 OFF ERROR 15590 ! 15600 GSTORE Screen(*) ! Almacena matriz de pantalla 15610 ! 15620 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 15630 ! 15640 FOR Row_group=1 TO 297 STEP 8 15650 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 15660 Gdump(Screen(*),Row_group,Os$) 15670 ! Volcado de linea de caracteres graficos 15680 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 15690 PRINT USING "7A,400A";Graphic_escape$,Os$ 15700 ELSE ! Para los modelos 9836 15710 PRINT USING "7A,512A";Graphic_escape$,Os$ 15720 END IF 15730 NEXT Row_group 15740 ! 15750 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 15760 ! 15770 SUBEXIT 15780 ! 15790 BEEP 15800 IF ERRN=52 THEN DISP "CODIGO DE IMPRESION ERRONEO" 15810 IF ERRN=2 THEN DISP "MEMORIA INSUFICIENTE" 15820 PRINT CHR$(27)&"&l6D" 15830 ! 15840 SUBEND 15850 ! 15860 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 15870 !-------------------------------------------------------------------------

118

10 !----------------------------------------------------------------------- 20 REM "CUANTUM" 30 REM PROGRAMA PARA INTERPRETACION CUANTITATIVA 40 REM DE T.S.D. CONTENIDO EN ARCILLA Y RESISTIVIDAD REAL 50 !----------------------------------------------------------------------- 60 GRAPHICS ON 70 GCLEAR 80 GINIT 90 PRINTER IS 1 100 PRINT CHR$(12) 110 CONTROL 2,0;1 120 ! 130 FOR F=0 TO 10 STEP 2 140 VIEWPORT 0+F,133-F,10+F,100-F 150 FRAME 160 NEXT F 170 ! 180 PRINT TABXY(16,9);" -CUANTUM- " 190 PRINT TABXY(16,11);" PROGRAMA PARA INTERPRETACION CUANTITATIVA " 200 PRINT TABXY(16,13);"DE T.S.D. CONTENIDO EN ARCILLA Y RESISTIVIDAD REAL" 210 CALL Salir 220 PRINT CHR$(12) 230 GCLEAR 240 ! 250 Nreg=6 260 Ncap=400 270 OPTION BASE 1 280 INTEGER Picture(7500) 290 ALLOCATE Den(1:12),Kden(1:12),Prof(0:3),Diam(0:3),Diams(0:3,1:2) 300 ALLOCATE Tipo$(0:Nreg)[6],Min(0:Nreg),Max(0:Nreg) 310 ALLOCATE Cap(1:Ncap,0:Nreg),T(1:Ncap),Col(1:Ncap,0:3) 320 ALLOCATE Par$(0:3)[7],Minimo(0:3),Maximo(0:3) 330 ALLOCATE Calculo$(1:3)[26] 340 COM /Arci/ REAL Arc(400),Arcmax,Arcmin 350 COM /Tsdi/ REAL Tsd(400),Tsdmax,Tsdmin,Rw(400),Rwmax,Rwmin 360 COM /Rhoi/ REAL Rho(400),Rhomax,Rhomin,Per(400),Permax,Permin 370 COM /Lisi/ REAL Partop 380 Lectura=0 390 Datos=0 400 !----------------------------------------------------------------------- 410 ! Flujo del Programa 420 !----------------------------------------------------------------------- 430 ON KEY 0 LABEL "ENTRADA DATOS" GOTO 730 440 ON KEY 5 LABEL "LECT. FICHEROS" GOTO 520 450 ON KEY 6 LABEL " CALCULO " GOTO 2380 460 ON KEY 7 LABEL " CORRECCION " GOTO 3270 470 ON KEY 8 LABEL " LISTADO " GOTO 3480 480 ON KEY 9 LABEL " GRABACION " GOTO 3610 490 ON KEY 4 LABEL " TERMINAR " CALL Salir 500 GOTO 430 510 !----------------------------------------------------------------------- 520 ! Condiciones de lectura 530 !----------------------------------------------------------------------- 540 IF Lectura=1 AND Datos=1 AND Calculo>0 AND Grabacion=0 THEN 550 PRINT TABXY(20,2);"NO HA GRABADO LOS RESULTADOS DE LA INTERPRETACION"

119

560 INPUT "Quiere continuar",Qcont$ 570 IF Qcont$<>"S" THEN GOTO 440 580 END IF 590 OFF KEY 600 ! 610 GOSUB Lectura 620 Lectura=1 630 Calculo=0 640 ! 650 IF Cap(Ncap,0)<Diam(Ndiam) THEN 660 BEEP 670 PRINT TABXY(16,10);"PROFUNDIDAD DEL REGISTRO MAYOR QUE LA DEL SONDEO" 680 PRINT TABXY(25,12);"REVISE EN ENTRADA DE DATOS" 690 END IF 700 ! 710 GOTO 410 720 !----------------------------------------------------------------------- 730 ! Entrada de Datos 740 !----------------------------------------------------------------------- 750 OFF KEY 760 PRINT CHR$(12) 770 ! DENSIDAD DEL LODO 780 BEEP 790 INPUT "Tipo de lodo: Revert(-1-), Bentonita (-2-) o Natural(-3-)",Tlodo 800 IF Tlodo<1 OR Tlodo>3 THEN GOTO 790 810 Conoden$="N" 820 Mat_sus=1.05 ! Desde 1.08 hasta 1 para lodos muy decantados 830 INPUT "Conoce la densidad del lodo (S/N)",Conoden$ 840 IF Conoden$<>"S" AND Conoden$<>"N" THEN GOTO 830 850 IF Conoden$="N" THEN 860 IF Tlodo=1 THEN Visc=38 870 IF Tlodo=2 THEN Visc=34 880 IF Tlodo=3 THEN Visc=30 890 PRINT TABXY(1,2);"Viscosidad de lodo tipica en torno a";Visc;"seg" 900 INPUT "Viscosidad del lodo en seg ",Visc 910 PRINT TABXY(1,2);"Viscosidad de lodo ...............";Visc;"seg " 920 Tvisc=20 930 INPUT "Temperatura de medida de Viscosidad ",Tvisc 940 IF Tvisc<=0 OR Tvisc>50 THEN GOTO 930 950 PRINT TABXY(44,2);"a";Tvisc;"³C " 960 Viscagua=23.6+2.4*(1.8*EXP(-.044*Tvisc^.85)) 970 IF Visc<Viscagua OR Visc>70 THEN GOTO 900 980 Dagua=1 990 IF Tlodo=1 THEN 1000 Dadit=Dagua+(LOG(Visc/Viscagua)/(3.4*EXP(-.03*Tvisc)))^(1/2)/100 1010 PRINT TABXY(1,3);"Lodo de tipo ..................... Organico " 1020 END IF 1030 IF Tlodo=2 THEN 1040 Dadit=Dagua+(LOG(Visc/Viscagua)/.025)^(1/2)/100 1050 PRINT TABXY(1,3);"Lodo de tipo ..................... Bentonita" 1060 END IF 1070 IF Tlodo=3 THEN 1080 Dadit=Dagua+(LOG(Visc/Viscagua)/.005)^(1/2)/100 1090 PRINT TABXY(1,3);"Lodo de tipo ..................... Natural " 1100 END IF

120

1110 Dens=Dadit*Mat_sus 1120 ELSE 1130 IF Tlodo=1 THEN Dens=(1+.003*1.11)*Mat_sus 1140 IF Tlodo=2 THEN Dens=1.03*Mat_sus 1150 IF Tlodo=3 THEN Dens=1.07*Mat_sus 1160 Dens=INT(Dens*100+.5)/100 1170 PRINT TABXY(1,4);"Densidad de lodo tipica en torno a";Dens 1180 INPUT "Densidad del lodo (en gr/cc) ",Dens 1190 IF Dens<1 OR Dens>1.5 THEN GOTO 1170 1200 END IF 1210 Dens=INT(Dens*100+.5)/100 1220 PRINT TABXY(1,4);"Densidad de lodo .................";Dens;"gr/cc " 1230 ! 1240 ! DIAMETROS DE PERFORACION 1250 BEEP 1260 Prof(0)=0 1270 INPUT "Numero de diametros encontrados durante la testificacion",Ndiam 1280 IF Ndiam<1 OR Ndiam>3 THEN GOTO 1270 1290 IF Ndiam=1 THEN 1300 INPUT "Diametro de perforacion (en cm) ",Diam(1) 1310 IF Diam(1)<10 OR Diam(1)>60 THEN GOTO 1300 1320 PRINT TABXY(1,6);"Diametro de perforacion ..........";Diam(1) 1330 INPUT "Profundidad maxima alcanzada (en m)",Prof(1) 1340 IF Prof(1)<Cap(Ncap,0) THEN GOTO 1330 1350 PRINT TABXY(42,6);"Profundidad maxima alcanzada (en m)";Prof(1) 1360 ELSE 1370 FOR D=1 TO Ndiam 1380 PRINT TABXY(1,D+5);VAL$(D)&" Tramo de perforacion - " 1390 INPUT "Diametro de perforacion (en cm) ",Diam(D) 1400 IF Diam(1)<10 OR Diam(1)>60 THEN GOTO 1300 1410 PRINT TABXY(26,D+5);"Diametro de perforacion";Diam(D) 1420 INPUT "Profundidad alcanzada (en metros) ",Prof(D) 1430 IF Prof(D)<=Prof(D-1) THEN GOTO 1420 1440 PRINT TABXY(52,D+5);", Profundidad alcanzada";Prof(D) 1450 NEXT D 1460 IF Prof(Ndiam)<Cap(Ncap,0) THEN GOTO 1370 1470 END IF 1480 Diams(0,1)=Ndiam 1490 Diams(0,2)=Prof(0) 1500 FOR D=1 TO Ndiam 1510 Diams(D,1)=Diam(D) 1520 Diams(D,2)=Prof(D) 1530 NEXT D 1540 ! 1550 ! CONDUCTIVIDAD DEL FILTRADO 1560 ! 1570 ! Coeficientes de conversion Rm/Rmf para distintas densidades 1580 RESTORE 1590 1590 DATA 1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1 1600 READ Den(*) 1610 RESTORE 1620 1620 DATA 1.079,.963,.847,.731,.625,.530,.456,.410,.385,.377,.370,.365 1630 READ Kden(*) 1640 FOR Id=1 TO 11 1650 IF Dens>=Den(Id) AND Dens<Den(Id+1) THEN

121

1660 Kdens=Kden(Id)+(Dens-Den(Id))*(Kden(Id+1)-Kden(Id))/(Den(Id+1)-Den(Id)) 1670 GOTO 1700 1680 END IF 1690 NEXT Id 1700 ! 1710 BEEP 1720 Conofil$="" 1730 INPUT "Conoce la conductividad del FILTRADO de lodo (S/N)",Conofil$ 1740 IF Conofil$<>"S" AND Conofil$<>"N" THEN GOTO 1730 1750 IF Conofil$="S" THEN 1760 INPUT "Conductividad del filtrado de Lodo (umho.cm)",Cmf 1770 IF Cmf<100 OR Cmf>35000 THEN GOTO 1760 1780 INPUT "Temperatura a la que se midio (³C) ",Tmf 1790 IF Tmf<=0 OR Tmf>60 THEN GOTO 1780 1800 Cmf25=INT(Cmf*(25+21.5)/(Tmf+21.5)) 1810 Rmf25=INT(10000/Cmf25*100+.5)/100 1820 END IF 1830 ! 1840 Conolod$="" 1850 INPUT "Conoce la conductividad del lodo (S/N)",Conolod$ 1860 IF Conolod$<>"S" AND Conolod$<>"N" THEN GOTO 1850 1870 IF Conolod$="S" THEN 1880 INPUT "Conductividad del Lodo (umho.cm) ",Cm 1890 IF Cm<100 OR Cm>35000 THEN GOTO 1880 1900 INPUT "Temperatura a la que se midio (³C)",Tm 1910 IF Tm<=0 OR Tm>60 THEN GOTO 1900 1920 Cm25=INT(Cm*(25+21.5)/(Tm+21.5)) 1930 Rm25=INT(10000/Cm25*100+.5)/100 1940 END IF 1950 ! 1960 IF Conofil$="N" AND Conolod$="N" THEN GOTO 1710 1970 IF Conofil$="N" THEN 1980 Rmf25=Kdens*Rm25^1.07 1990 Cmf25=INT(10000/Rmf25) 2000 END IF 2010 IF Conolod$="N" THEN 2020 Rm25=(Rmf25/Kdens)^(1/1.07) 2030 Cm25=INT(10000/Rm25) 2040 END IF 2050 ! 2060 PRINT TABXY(1,Ndiam+7);"Conductividad del Lodo a 25³C ....";Cm25 2070 PRINT TABXY(1,Ndiam+8);"Conductividad del filtrado a 25 ³C";Cmf25 2080 Rm=Rm25 2090 Rmf=Rmf25 2100 ! 2110 ! TEMPERATURA A LO LARGO DEL SONDEO 2120 BEEP 2130 Temp$="N" 2140 GOTO 2160 ! no se considera 2150 INPUT "Se ha realizado el registro de temperatura (S/N)",Temp$ 2160 IF Temp$="N" THEN 2170 T0=18 2180 Gr=1.5 2190 PRINT TABXY(1,Ndiam+10);"Temperatura media en superficie ..";T0;"³C" 2200 INPUT "Temperatura estimada en superficie",T0

122

2210 IF T0<0 OR T0>60 THEN GOTO 2200 2220 PRINT TABXY(1,Ndiam+10);"Temperatura estimada en superficie";T0;"³C" 2230 PRINT TABXY(1,Ndiam+11);"Gradiente termico medio en sondeo ";Gr;"³C/100 m" 2240 INPUT "Gradiente termico en ³C/100 m ",Gr 2250 IF Gr<=0 OR Gr>5 THEN GOTO 2240 2260 PRINT TABXY(1,Ndiam+11);"Gradiente termico del sondeo .....";Gr;"³C/100 m" 2270 END IF 2280 ! 2290 BEEP 2300 INPUT "Correcto (S/N)",Cor$ 2310 IF Cor$="N" THEN GOTO 760 2320 ! 2330 PRINT CHR$(12) 2340 Datos=1 2350 Calculo=0 2360 GOTO 410 2370 !----------------------------------------------------------------------- 2380 ! Direccionamiento de calculo 2390 !----------------------------------------------------------------------- 2400 IF Lectura=0 OR Datos=0 THEN 2410 PRINT TABXY(20,2);"PRIMERO DEBE INTRODUCIR LOS DATOS Y LOS FICHEROS" 2420 GOTO 410 2430 END IF 2440 ! 2450 PRINT CHR$(12) 2460 OFF KEY 2470 GCLEAR 2480 ! 2490 Calculo$(1)="CONTENIDO EN ARCILLA" 2500 Calculo$(2)="TOTAL DE SOLIDOS DISUELTOS" 2510 Calculo$(3)="RESISTIVIDAD REAL" 2520 FOR I=1 TO 3 2530 Alt(I)=100-25*I 2540 Anc(I)=10*I 2550 NEXT I 2560 ! 2570 GRAPHICS OFF 2580 VIEWPORT 0,133,10,100 2590 WINDOW 0,133,10,100 2600 FRAME 2610 LORG 5 2620 CSIZE 5 2630 FOR I=1 TO 3 2640 MOVE Anc(I)+45,Alt(I)+5 2650 LABEL Calculo$(I) 2660 NEXT I 2670 FOR I=1 TO 3 2680 VIEWPORT Anc(I),Anc(I)+90,Alt(I),Alt(I)+10 2690 FRAME 2700 NEXT I 2710 GRAPHICS ON 2720 Calc=Calculo+1 2730 GOTO 2860 2740 ! 2750 Calc=1

123

2760 ON KBD,2 GOTO 2780 2770 GOTO 2760 2780 Tecla$=KBD$ 2790 PRINT CHR$(12) 2800 IF Tecla$="ÿV" OR Tecla$="ÿ^" THEN GOTO 2830 2810 IF Tecla$="ÿE" THEN GOTO 2940 2820 GOTO 2760 2830 VIEWPORT Anc(Calc)+2,Anc(Calc)+88,Alt(Calc)+2,Alt(Calc)+8 2840 PEN -1 2850 FRAME 2860 IF Tecla$="ÿV" THEN Calc=Calc+1 2870 IF Calc>3 THEN Calc=1 2880 IF Tecla$="ÿ^" THEN Calc=Calc-1 2890 IF Calc<1 THEN Calc=3 2900 VIEWPORT Anc(Calc)+2,Anc(Calc)+88,Alt(Calc)+2,Alt(Calc)+8 2910 PEN 1 2920 FRAME 2930 GOTO 2760 2940 IF Calc>Calculo+1 THEN 2950 BEEP 2960 PRINT TABXY(20,2);"PRIMERO DEBE CALCULAR ";Calculo$(Calc-1) 2970 GOTO 2760 2980 END IF 2990 OFF KBD 3000 ! 3010 IF Calc=1 THEN 3020 LOADSUB ALL FROM "ARCILLA" 3030 GCLEAR 3040 CALL Arcilla(Cap(*),Tipo$(*),Min(*),Max(*),Diams(*),Dens) 3050 DELSUB Arcilla 3060 Calculo=1 3070 END IF 3080 ! 3090 IF Calc=2 THEN 3100 LOADSUB ALL FROM "TOTSOLDIS" 3110 GCLEAR 3120 CALL

Totsoldis(Cap(*),Tipo$(*),Min(*),Max(*),Arc(*),Tlodo,Rm,Rmf,Diams(*),T(*)) 3130 DELSUB Totsoldis 3140 Calculo=2 3150 END IF 3160 ! 3170 IF Calc=3 THEN 3180 LOADSUB ALL FROM "RHOREAL" 3190 GCLEAR 3200 CALL

Rhoreal(Cap(*),Tipo$(*),Min(*),Max(*),Rw(*),Rwmin,Rwmax,Rm,Rmf,Diams(*),T(*)) 3210 DELSUB Rhoreal 3220 Calculo=3 3230 END IF 3240 ! 3250 GOTO 420 3260 !----------------------------------------------------------------------- 3270 ! Condiciones para corregir 3280 !-----------------------------------------------------------------------

124

3290 PRINT CHR$(12) 3300 IF Calculo=0 THEN 3310 PRINT TABXY(20,2);"NO HAY PARAMETROS INTERPRETADOS QUE CORREGIR" 3320 GOTO 440 3330 END IF 3340 OFF KEY 3350 ! 3360 IF Calculo=1 THEN 3370 CALL Corregir(Cap(*),Tipo$(*),Min(*),Max(*),"ARC",Arc(*),Arcmin,Arcmax) 3380 END IF 3390 IF Calculo=2 THEN 3400 CALL Corregir(Cap(*),Tipo$(*),Min(*),Max(*),"TSD",Tsd(*),Tsdmin,Tsdmax) 3410 END IF 3420 IF Calculo=3 THEN 3430 CALL Corregir(Cap(*),Tipo$(*),Min(*),Max(*),"RHO",Rho(*),Rhomin,Rhomax) 3440 END IF 3450 ! 3460 GOTO 440 3470 !----------------------------------------------------------------------- 3480 ! Condiciones para listado 3490 !----------------------------------------------------------------------- 3500 PRINT CHR$(12) 3510 IF Calculo<3 THEN 3520 PRINT TABXY(20,2);"DEBE INTERPRETAR PRIMERO TODOS LOS PARAMETROS" 3530 GOTO 440 3540 END IF 3550 OFF KEY 3560 ! 3570 GOSUB Listado 3580 ! 3590 GOTO 440 3600 !----------------------------------------------------------------------- 3610 ! Condiciones para grabacion 3620 !----------------------------------------------------------------------- 3630 PRINT CHR$(12) 3640 IF Calculo<3 THEN 3650 PRINT TABXY(20,2);"PRIMERO DEBE REALIZAR TODOS LOS CALCULOS" 3660 GOTO 440 3670 END IF 3680 OFF KEY 3690 ! 3700 Lon=LEN(Nn$) 3710 Par$(0)=Nn$[1,Lon-4] 3720 Par$(1)="ARCILLA" 3730 Par$(2)="TOTSOLD" 3740 Par$(3)="RHOREAL" 3750 Minimo(0)=X0 3760 Minimo(1)=Arcmin 3770 Minimo(2)=Tsdmin 3780 Minimo(3)=Rhomin 3790 Maximo(0)=Ncap 3800 Maximo(1)=Arcmax 3810 Maximo(2)=Tsdmax 3820 Maximo(3)=Rhomax 3830 FOR C=1 TO Ncap

125

3840 Col(C,0)=Cap(C,0) 3850 Col(C,1)=Arc(C) 3860 Col(C,2)=Tsd(C) 3870 Col(C,3)=Rho(C) 3880 NEXT C 3890 ! 3900 CALL Grabar(Par$(*),Minimo(*),Maximo(*),Col(*)) 3910 ! 3920 Calculo=0 3930 GOTO 410 3940 !----------------------------------------------------------------------- 3950 Lectura: ! Lectura de los datos digitalizados 3960 !----------------------------------------------------------------------- 3970 OFF KEY 3980 GOTO 4090 3990 ! 4000 BEEP 4010 PRINT CHR$(12) 4020 IF ERRN=56 THEN PRINT " El fichero ";Nn$;" no se encuentra en ese disco" 4030 PRINT 4040 PRINT "Coloque el disco con los datos de la diagrafia en la disquetera [1]" 4050 PRINT TABXY(40,18);"Cuando lo haya hecho, pulse |CONT|" 4060 PAUSE 4070 PRINT CHR$(12) 4080 ! 4090 ON ERROR GOTO 4000 4100 MASS STORAGE IS ":HP 8290X,700,1" 4110 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN ESE DISCO" 4120 CAT 4130 BEEP 4140 INPUT "Nombre del Fichero de capas (extension _CAP)",Nn$ 4150 IF Nn$="" THEN GOTO 4130 4160 PRINT CHR$(12) 4170 PRINT TABXY(15,2);"Realizando la lectura de los datos, NO interrumpir" 4180 ASSIGN @Pat_0 TO Nn$ 4190 OFF ERROR 4200 ENTER @Pat_0;Nreg$ 4210 Nreg=VAL(Nreg$) ! primer string 4220 DEALLOCATE Tipo$(*),Min(*),Max(*) 4230 ALLOCATE Tipo$(0:Nreg)[6],Min(0:Nreg),Max(0:Nreg) 4240 ASSIGN @Pat_0 TO * 4250 ASSIGN @Pat_0 TO Nn$ 4260 ENTER @Pat_0;Tipo$(*) 4270 ENTER @Pat_0;Min(*) 4280 ENTER @Pat_0;Max(*) 4290 X0=Min(0) ! primer min 4300 Ncap=Max(0) ! primer max 4310 DEALLOCATE Cap(*),Col(*) 4320 ALLOCATE Cap(1:Ncap,0:Nreg),Col(1:Ncap,0:3) 4330 ENTER @Pat_0;Cap(*) 4340 ASSIGN @Pat_0 TO * 4350 MASS STORAGE IS ":HP 8290X,700,0" 4360 ! 4370 PRINT CHR$(12) 4380 PRINT TABXY(24,5);"Registro: ";Nn$

126

4390 PRINT TABXY(20,7);"NÇmero de capas ------";Ncap 4400 PRINT TABXY(20,8);"Profundidad inicial --";X0 4410 PRINT TABXY(20,9);"Profundidad final ----";Cap(Ncap,0) 4420 FOR R=1 TO Nreg 4430 PRINT TABXY(20,9+R);"Parametro";R;"---------- ";Tipo$(R);"

(";VAL$(INT(Min(R)));"->";VAL$(INT(Max(R))+1);")" 4440 NEXT R 4450 ! 4460 ! TEMPERATURA A LO LARGO DEL SONDEO 4470 DEALLOCATE T(*) 4480 ALLOCATE T(1:Ncap) 4490 IF Temp$="S" OR Temp$="SI" THEN 4500 INPUT "Nombre de fichero del registro de temperatura",Fichtemp$ 4510 ASSIGN @Pat_0 TO Fichtemp$ 4520 ENTER @Pat_0;T(*) 4530 ASSIGN @Pat_0 TO * 4540 ELSE 4550 T(1)=T0+Cap(1,0)/100*Gr 4560 FOR C=2 TO Ncap 4570 T(C)=T0+(Cap(C-1,0)+Cap(C,0))/2/100*Gr 4580 NEXT C 4590 END IF 4600 ! 4610 BEEP 4620 RETURN 4630 !------------------------------------------------------------------------ 4640 Listado: ! Lectura de los datos digitalizados 4650 !------------------------------------------------------------------------ 4660 OFF KEY 4670 BEEP 4680 INPUT "Nombre del Sondeo (<16 caracteres)",Nomson$ 4690 IF LEN(Nomson$)>16 THEN GOTO 4680 4700 ! 4710 Esptotal=Cap(Ncap,0)-X0 4720 INPUT "Espesor total de niveles optimos",Esptotal 4730 IF Esptotal>=Cap(Ncap,0)-X0 OR Esptotal<=2 THEN GOTO 4720 4740 ! 4750 CALL Listapar(Cap(*),Min(*),Max(*),"ARC",Arc(*),Arcmin,Arcmax,Esptotal) 4760 Arctop=Partop 4770 CALL Listapar(Cap(*),Min(*),Max(*),"TSD",Tsd(*),Tsdmin,Tsdmax,Esptotal) 4780 Tsdtop=Partop 4790 CALL Listapar(Cap(*),Min(*),Max(*),"RHO",Rho(*),Rhomin,Rhomax,Esptotal) 4800 Rhotop=Partop 4810 ! 4820 Rwmedia=0 4830 Tsdmedio=0 4840 Niv_tsd=0 4850 FOR C=1 TO Ncap 4860 IF Tsd(C)<Tsdtop THEN 4870 Niv_tsd=Niv_tsd+1 4880 Rwmedia=Rwmedia+Rw(C) 4890 Tsdmedio=Tsdmedio+Tsd(C) 4900 END IF 4910 NEXT C 4920 Rwmedia=Rwmedia/Niv_tsd

127

4930 Tsdmedio=Tsdmedio/Niv_tsd 4940 ! 4950 FOR C=1 TO Ncap 4960 IF Tsd(C)=10000 AND Rho(C)>Rhotop THEN 4970 Rw(C)=Rwmedia 4980 Tsd(C)=Tsdmedio 4990 END IF 5000 NEXT C 5010 ! 5020 Coef=1 5030 Qi$="N" 5040 Top_tsd=Tsdtop*(Coef*34) 5050 Top_arc=Arctop*(Coef*23) 5060 Top_rho=Rhotop/(Coef*1) 5070 Niveles=0 5080 Sum_esp=0 5090 Sum_con=0 5100 Sum_tsd=0 5110 Sum_arc=0 5120 Sum_rho=0 5130 ! TOP_PER= ! no se utiliza 2D.D para espesores 5140 Sum_per=0 5150 IMAGE

1A,2X,3D,1X,1A,1X,3D.D,1A,3D.D,1X,1A,2D.D,1X,1A,3X,3D,3X,1A,2X,5D,2X,1A,2X,5D,2X,1A,3X,3D,3X,1A,2X,D.DESZ,1X,1A

5160 PRINT "|----------------------------------------------------------------------------|" 5170 PRINT "| NIVELES OPTIMOS PARA COLOCACION DE TUBERIA FILTRANTE |"; 5180 PRINT USING "16A,1A";Nomson$,"|" 5190 PRINT "|----------------------------------------------------------------------------|" 5200 PRINT "| CAPA | PROFUNDIDAD | ESP | ARCILLA | CONDUCT | T.S.D. | RHO | PERM |" 5210 PRINT "| | (m) | (m) | (%) | umho/cm | (ppm) | (Ohm.m) | (cm/sg) |" 5220 PRINT "|----------------------------------------------------------------------------|" 5230 IF Rho(1)>Top_rho AND Arc(1)<Top_arc AND Tsd(1)<Top_tsd THEN 5240 Niveles=Niveles+1 5250 Espesor=Cap(1,0)-X0 5260 Conduct=10000/Rw(1) 5270 Sum_esp=Sum_esp+Espesor 5280 Sum_con=Sum_con+Conduct 5290 Sum_tsd=Sum_tsd+Tsd(1) 5300 Sum_arc=Sum_arc+Arc(1) 5310 Sum_rho=Sum_rho+Rho(1) 5320 Sum_per=Sum_per+Per(1) 5330 PRINT USING 5150;"|",1,"|",X0,"-

",Cap(1,0),"|",Espesor,"|",Arc(1),"|",Conduct,"|",Tsd(1),"|",Rho(1),"|",Per(1),"|"

5340 END IF 5350 FOR C=2 TO Ncap 5360 IF Rho(C)>Top_rho AND Arc(C)<Top_arc AND Tsd(C)<Top_tsd THEN 5370 Niveles=Niveles+1 5380 Espesor=Cap(C,0)-Cap(C-1,0) 5390 Conduct=10000/Rw(C) 5400 Sum_esp=Sum_esp+Espesor 5410 Sum_arc=Sum_arc+Arc(C) 5420 Sum_con=Sum_con+Conduct 5430 Sum_tsd=Sum_tsd+Tsd(C)

128

5440 Sum_rho=Sum_rho+Rho(C) 5450 Sum_per=Sum_per+Per(C) 5460 PRINT USING 5150;"|",C,"|",Cap(C-1,0),"-

",Cap(C,0),"|",Espesor,"|",Arc(C),"|",Conduct,"|",Tsd(C),"|",Rho(C),"|",Per(C),"|"

5470 END IF 5480 NEXT C 5490 Med_esp=Sum_esp/Niveles 5500 Med_arc=Sum_arc/Niveles 5510 Med_con=Sum_con/Niveles 5520 Med_tsd=Sum_tsd/Niveles 5530 Med_rho=Sum_rho/Niveles 5540 Med_per=Sum_per/Niveles 5550 PRINT "|----------------------------------------------------------------------------|" 5560 IMAGE

1A,2X,3D,1X,1A,4X,3D.D,4X,1A,2D.D,1X,1A,3X,3D,3X,1A,2X,5D,2X,1A,2X,5D,2X,1A,3X,3D,3X,1A,2X,D.DESZ,1X,1A

5570 PRINT USING 5560;"|",Niveles,"|",Sum_esp,"|",Med_esp,"|",Med_arc,"|",Med_con,"|",Med_tsd,"|",Med_rho,"|",Med_per,"|"

5580 PRINT "|----------------------------------------------------------------------------|" 5590 PRINT CHR$(12) 5600 PRINTER IS 1 5610 ! 5620 IF Qi$<>"N" THEN GOTO 5710 5630 INPUT "Quiere imprimir los niveles",Qi$ 5640 IF Qi$="NO" OR Qi$="N" THEN GOTO 5710 5650 PRINT TABXY(25,18);"CONECTE LA IMPRESORA Y PULSE |CONT|" 5660 PAUSE 5670 PRINT CHR$(12) 5680 PRINTER IS 701 5690 GOTO 5030 5700 ! 5710 INPUT "Esta de acuerdo con los niveles seleccionados",Ean$ 5720 IF Ean$="NO" OR Ean$="N" THEN 5730 PRINT TABXY(1,18);"Valor actual del coeficiente";Coef 5740 INPUT "Coeficiente de correccion de valor limite",Coef 5750 IF Coef>2 OR Coef<.5 THEN GOTO 5740 5760 GOTO 5030 5770 END IF 5780 ! 5790 INPUT "Quier conocer los valores de alguna capa",Qcon$ 5800 IF Qcon$="NO" OR Qcon$="N" THEN GOTO 5920 5810 PRINT "| CAPA | PROFUNDIDAD | ESP | ARCILLA | CONDUCT | T.S.D. | RHO |

PERM |" 5820 INPUT "Profundidad de muro",Zmuro 5830 FOR C=1 TO Ncap 5840 IF Cap(C,0)>Zmuro THEN 5850 Espesor=Cap(C,0)-Cap(C-1,0) 5860 Conduct=10000/Rw(C) 5870 PRINT USING 5150;"|",C,"|",Cap(C-1,0),"-

",Cap(C,0),"|",Espesor,"|",Arc(C),"|",Conduct,"|",Tsd(C),"|",Rho(C),"|",Per(C),"|"

5880 GOTO 5790 5890 END IF

129

5900 NEXT C 5910 GOTO 5790 5920 ! 5930 RETURN 5940 !------------------------------------------------------------------------ 5950 PRINT TABXY(30,12);"Fin del programa" 5960 STOP 5970 END 5980 !----------------------------------------------------------------------- 5990 SUB Salir 6000 BEEP 6010 OFF KEY 6020 ON KEY 0 LABEL "SALIR",2 GOTO 6050 6030 ON KEY 5 LABEL "CONTINUAR",2 GOTO 6070 6040 GOTO 6020 6050 INPUT "Quiere salir al programa principal",Qsal$ 6060 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 6070 OFF KEY 6080 SUBEND 6090 !----------------------------------------------------------------------- 6100 SUB Grabar(Par$(*),Minimo(*),Maximo(*),Col(*)) 6110 ! 6120 REM SUBPROGRAMA DE GRABACION DE REGISTROS 6130 ! 6140 !------------------------------------------------------------------------ 6150 X0=Minimo(0) 6160 Ncap=Maximo(0) 6170 Nr=(7+4)+(Ncap+2)*8+20 6180 Nom$=Par$(0)&"_COL" 6190 MASS STORAGE IS ":HP 8290X,700,1" 6200 ON ERROR GOTO 6250 6210 CREATE BDAT Nom$,4,Nr 6220 OFF ERROR 6230 GOTO 6470 6240 ! 6250 IF ERRN=54 THEN 6260 INPUT "Quiere remplazar el registro ? ",Qr$ 6270 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 6320 6280 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 6290 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 6260 6300 PURGE Nom$ 6310 GOTO 6460 6320 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 6330 IF Qc$="N" OR Qc$="NO" THEN GOTO 6190 6340 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 6350 ON KBD ALL GOTO 6360 6360 IF KBD$<>"ÿC" THEN GOTO 6360 6370 OFF KBD 6380 PRINT CHR$(12) 6390 GOTO 6460 6400 END IF 6410 PRINT "SE HA PRODUCIDO UN ERROR";ERRN;" REPASE, POR FAVOR" 6420 BEEP 81.38*15,4 6430 PAUSE 6440 GOTO 6210

130

6450 ! 6460 CREATE BDAT Nom$,4,Nr 6470 PRINT "REALIZANDO LA GRABACION DEL FICHERO DE LA COLUMNA, NO INTERRUMPIR" 6480 MASS STORAGE IS ":HP 8290X,700,1" 6490 ASSIGN @Pat_0 TO Nom$ 6500 OUTPUT @Pat_0;Par$(0),Par$(1),Par$(2),Par$(3) 6510 OUTPUT @Pat_0;Minimo(0),Minimo(1),Minimo(2),Minimo(3) 6520 OUTPUT @Pat_0;Maximo(0),Maximo(1),Maximo(2),Maximo(3) 6530 OUTPUT @Pat_0;Col(*) 6540 ASSIGN @Pat_0 TO * 6550 MASS STORAGE IS ": HP 8290X,700,0" 6560 ! 6570 PRINT CHR$(12) 6580 PRINT TABXY(25,10);"Grabado el fichero ";Nom$ 6590 OFF ERROR 6600 SUBEND 6610 !----------------------------------------------------------------------- 6620 SUB Corregir(Cap(*),Tipo$(*),Min(*),Max(*),Param$,Parsub(*),Parmin,Parmax) 6630 ! 6640 REM Visualización de los resultados 6650 !------------------------------------------------------------------------ 6660 OFF KEY 6670 PRINT CHR$(12) 6680 PRINT " PARA VISUALIZAR UN MENU DE AYUDA PULSE |A| " 6690 ! 6700 Nreg=VAL(Tipo$(0)) 6710 X0=Min(0) 6720 Ncap=Max(0) 6730 ! 6740 FOR C=Ncap TO 1 STEP -1 6750 IF Cap(C,0)<Cap(Ncap,0)-24 THEN GOTO 6770 6760 NEXT C 6770 Cmax=C 6780 ! 6790 FOR R=1 TO Nreg 6800 Pr(R)=0 6810 IF Param$="TSD" AND Tipo$(R)="P.E. " THEN Pr(R)=1 6820 IF Param$="ARC" AND Tipo$(R)="G.N. " THEN Pr(R)=1 6830 IF Param$="RHO" THEN 6840 IF Tipo$(R)="R.N.C." OR Tipo$(R)="R.N.L." OR Tipo$(R)="R.LAT." THEN Pr(R)=1 6850 END IF 6860 NEXT R 6870 ! 6880 FOR R=1 TO Nreg 6890 IF Pr(R)=1 THEN Rmin=Min(R) 6900 IF Pr(R)=1 THEN Rmax=Max(R) 6910 NEXT R 6920 FOR R=1 TO Nreg 6930 IF Pr(R)=1 THEN 6940 IF Min(R)<Rmin THEN Rmin=Min(R) 6950 IF Max(R)>Rmax THEN Rmax=Max(R) 6960 END IF 6970 NEXT R 6980 Rmin=INT(Rmin) 6990 Rmax=INT(Rmax)+1

131

7000 ! 7010 GRAPHICS ON 7020 GINIT 7030 GCLEAR 7040 ! 7050 Salto=16*2 7060 Delta=INT(Ncap/100) 7070 Incremento=(Parmax-Parmin)/50 7080 Cref=2 7090 GOTO 7420 7100 ! 7110 ON KNOB .01,1 GOTO 7380 ! Mueve la diagrafia 7120 ON KBD GOTO 7140 7130 GOTO 7120 7140 Tecla$=KBD$ 7150 IF Tecla$="A" THEN GOSUB Ayuda ! Visualiza Instrucciones 7160 IF Tecla$="I" THEN CALL Imprimir ! Impresion de pantalla 7170 IF Tecla$="ÿK" THEN PRINT CHR$(12) ! Borrar impresiones 7180 IF Tecla$=" " THEN GOTO 8090 ! Sale del bucle con el space 7190 IF Tecla$="ÿ<" OR Tecla$="ÿ>" THEN GOTO 7220 ! Mueve el indicador 7200 IF (Tecla$="ÿV" OR Tecla$="ÿ^") AND Cor=1 THEN GOTO 7960 ! Corregir 7210 GOTO 7100 7220 ! 7230 LINE TYPE 1 7240 VIEWPORT 0,130,51,59 7250 WINDOW INT(Cap(Cref,0)),INT(Cap(Cref,0)+Salto),1,9 7260 CLIP Cap(Cref+K-1,0),Cap(Cref+K,0),1,9 7270 PEN -1 7280 FRAME 7290 IF Tecla$="ÿ>" THEN K=K+1 7300 IF Tecla$="ÿ<" THEN K=K-1 7310 IF K<1 THEN K=(Ctop-Cref) 7320 IF (Cref+K)>Ctop THEN K=1 7330 CLIP Cap(Cref+K-1,0),Cap(Cref+K,0),1,9 7340 PEN 1 7350 FRAME 7360 Cor=1 7370 GOTO 7100 7380 ! 7390 Cref=Cref+KNOBX*Delta 7400 IF Cref<2 THEN Cref=2 7410 IF Cref>Cmax THEN Cref=Cmax 7420 ! 7430 FOR C=Cref TO Ncap 7440 IF Cap(C,0)>=Cap(Cref,0)+Salto OR C=Ncap THEN 7450 Ctop=C 7460 GOTO 7490 7470 END IF 7480 NEXT C 7490 ! 7500 GCLEAR 7510 VIEWPORT 0,130,10,50 7520 LINE TYPE 1 7530 FRAME 7540 WINDOW INT(Cap(Cref,0)),INT(Cap(Cref,0)+Salto),Rmin,Rmax

132

7550 MOVE INT(Cap(Cref,0)),Rmin 7560 LORG 1 7570 LABEL INT(Cap(Cref,0)) 7580 MOVE INT(Cap(Cref,0)+Salto),Rmin 7590 LORG 7 7600 LABEL INT(Cap(Cref,0)+Salto) 7610 FOR R=1 TO Nreg 7620 IF Pr(R)=1 THEN 7630 LINE TYPE R 7640 MOVE Cap(Cref-1,0),Cap(Cref,R) 7650 FOR C=Cref TO Ctop 7660 DRAW Cap(C-1,0),Cap(C,R) 7670 DRAW Cap(C,0),Cap(C,R) 7680 NEXT C 7690 END IF 7700 NEXT R 7710 LINE TYPE 1 7720 ! 7730 VIEWPORT 0,130,60,100 7740 FRAME 7750 LINE TYPE 4 7760 WINDOW 0,16,0,10 7770 GRID 1,1 7780 LINE TYPE 1 7790 WINDOW INT(Cap(Cref,0)),INT(Cap(Cref,0)+Salto),Parmin,Parmax 7800 MOVE INT(Cap(Cref,0)),Parmin 7810 LORG 1 7820 LABEL INT(Parmin) 7830 MOVE INT(Cap(Cref,0)),Parmax 7840 LORG 3 7850 LABEL INT(Parmax+1) 7860 LINE TYPE 1 7870 MOVE Cap(Cref-1,0),Parsub(Cref) 7880 FOR C=Cref TO Ctop 7890 DRAW Cap(C-1,0),Parsub(C) 7900 DRAW Cap(C,0),Parsub(C) 7910 NEXT C 7920 ! 7930 Cor=0 7940 GOTO 7100 7950 ! 7960 VIEWPORT 0,130,60,100 7970 WINDOW INT(Cap(Cref,0)),INT(Cap(Cref,0)+Salto),Parmin,Parmax 7980 LINE TYPE 1 7990 PEN -1 8000 MOVE Cap(Cref+K-1,0),Parsub(Cref+K) 8010 DRAW Cap(Cref+K,0),Parsub(Cref+K) 8020 IF Tecla$="ÿ^" THEN Parsub(Cref+K)=Parsub(Cref+K)+Incremento 8030 IF Tecla$="ÿV" THEN Parsub(Cref+K)=Parsub(Cref+K)-Incremento 8040 PEN 1 8050 MOVE Cap(Cref+K-1,0),Parsub(Cref+K) 8060 DRAW Cap(Cref+K,0),Parsub(Cref+K) 8070 GOTO 7100 8080 ! 8090 OFF KBD

133

8100 OFF KNOB 8110 GCLEAR 8120 PRINT CHR$(12) 8130 GOTO 8330 8140 !------------------------------------------------------------------------ 8150 Ayuda: ! Subrutina para imprimir instrucciones de ayuda 8160 !----------------------------------------------------------------------- 8170 BEEP 8180 PRINT CHR$(12) 8190 GRAPHICS OFF 8200 PRINT TABXY(7,3);" OPCIONES DURANTE LA VISUALIZACION DE LOS REGISTROS " 8210 PRINT TABXY(7,6);" PARA DESPLAZAR LA DIAGRAFIA EN LA PANTALLA MUEVA EL CURSOR " 8220 PRINT TABXY(7,7);" PARA VOLCAR LA PANTALLA A LA IMPRESORA PULSE |I| " 8230 PRINT TABXY(7,8);"PARA MOVER UN INDICADOR SOBRE LA CURVA PULSE LAS FLECHAS HORIZONTALES" 8240 PRINT TABXY(7,9);" PARA CORREGIR MUEVA EL INDICADOR Y DESPUES LAS FLECHAS VERTICALES " 8250 PRINT TABXY(7,10);" PARA SALIR DEL GRAFICO PULSE LA BARRA ESPACIADORA " 8260 PRINT TABXY(7,18);" PARA VOLVER AL GRAFICO PULSE |CONT| " 8270 PAUSE 8280 PRINT CHR$(12) 8290 GRAPHICS ON 8300 ! 8310 RETURN 8320 !----------------------------------------------------------------------- 8330 SUBEND 8340 !----------------------------------------------------------------------- 8350 SUB Listapar(Cap(*),Min(*),Max(*),Param$,Parsub(*),Parmin,Parmax,Esptotal) 8360 ! 8370 REM Niveles optimos de cada parametro 8380 ! 8390 COM /Lisi/ REAL Partop 8400 !----------------------------------------------------------------------- 8410 ALLOCATE Parametro$[12] 8420 IF Param$="TSD" THEN Parametro$="T.S.D. (ppm)" 8430 IF Param$="ARC" THEN Parametro$="ARCILLA (%) " 8440 IF Param$="RHO" THEN Parametro$="RHO (Ohm.m) " 8450 ! 8460 X0=Min(0) 8470 Ncap=Max(0) 8480 Partop=Parmax 8490 ! 8500 PRINT CHR$(12) 8510 PRINT TABXY(17,2);" PARAMETRO ";Parametro$ 8520 PRINT TABXY(17,4);"CALCULO DE NIVELES OPTIMOS PARA EL ESPESOR FIJADO" 8530 Inter=10 8540 Salto=(Parmax-Parmin)/Inter 8550 Partop=Parmax 8560 IF Param$="TSD" THEN Partop=1000 8570 Difanter=Cap(Ncap,0)-X0 8580 REPEAT 8590 Parsum=0 8600 Nselec=0 8610 Esppar=0 8620 Partop=Partop-Salto 8630 FOR C=1 TO Ncap 8640 IF Param$="TSD" OR Param$="ARC" THEN Dif=Partop-Parsub(C)

134

8650 IF Param$="RHO" THEN Dif=Parsub(C)-Partop 8660 IF Dif>0 THEN 8670 IF C=1 THEN 8680 Espesor=Cap(C,0)-X0 8690 GOTO 8720 8700 END IF 8710 Espesor=Cap(C,0)-Cap(C-1,0) 8720 Esppar=Esppar+Espesor 8730 Parsum=Parsum+Parsub(C) 8740 Nselec=Nselec+1 8750 END IF 8760 NEXT C 8770 IF Nselec=0 THEN 8780 Partop=Partop+Salto 8790 Salto=Salto*(1/2) 8800 GOTO 8590 8810 END IF 8820 Parmed=INT(Parsum/Nselec+.5) 8830 PRINT TABXY(25,5);"Espesor Total ............ :";INT(Esppar*10)/10;" " 8840 PRINT TABXY(25,6);"Limite de ";Parametro$;" ... :";INT(Partop*10)/10;" " 8850 PRINT TABXY(25,7);"Valor medio de ";Parametro$;":";Parmed;" " 8860 Espdif=ABS(Esptotal-Esppar) 8870 IF Espdif>Difanter THEN Salto=-Salto*(1/2) 8880 Difanter=Espdif 8890 UNTIL Espdif<1 OR ABS(Salto)<.25 8900 BEEP 8910 PAUSE 8920 ! 8930 SUBEND 8940 !-----------------------------------------------------------------------

135

10 !----------------------------------------------------------------------- 20 SUB Arcilla(Cap(*),Tipo$(*),Min(*),Max(*),Diams(*),Dens) 30 ! 40 ! Subprograma para el calculo del contenido en arcillas 50 ! 60 COM /Arci/ REAL Arc(*),Arcmax,Arcmin 70 !----------------------------------------------------------------------- 80 OFF KEY 90 ! 100 Nreg=VAL(Tipo$(0)) 110 X0=Min(0) 120 Ncap=Max(0) 130 FOR R=1 TO Nreg 140 IF Tipo$(R)="G.N. " THEN Rarc=R 150 NEXT R 160 ! 170 Ndiam=Diams(0,1) 180 FOR D=1 TO Ndiam 190 Diam(D)=Diams(D,1) 200 Prof(D)=Diams(D,2) 210 NEXT D 220 ! 230 ALLOCATE Gn(0:Ncap) 240 Nfrec=20 ! Numero de intervalos del rango de G.N. 250 ALLOCATE Intgn(0:Nfrec),Frec(0:Nfrec),Acum(0:Nfrec) 260 !----------------------------------------------------------------------- 270 REM Correccion por diametro del sondeo 280 !----------------------------------------------------------------------- 290 GCLEAR 300 GRAPHICS ON 310 ! 320 X1=25 330 Y1=15 340 X2=105 350 Y2=85 360 CSIZE (X2-X1)/30 370 VIEWPORT 0,130,0,100 380 WINDOW 0,130,0,100 390 LORG 4 400 MOVE (X1+X2)/2,Y1-5 410 LABEL "DIAMETRO (cm)" 420 MOVE (X1+X2)/2,Y2-(Y2-Y1)/5 430 LABEL "DENSIDAD" 440 LDIR PI/2 450 MOVE X1,(Y1+Y2)/2 460 LABEL "FACTOR DE CORRECCION" 470 LDIR 0 480 FOR L=0 TO 50 STEP 5 490 MOVE X1+L*(X2-X1)/50,Y2 500 LABEL L 510 NEXT L 520 LORG 2 530 FOR L=0 TO 1 STEP .1 540 MOVE X2,Y1+L*(Y2-Y1)/1 550 LABEL L+1

136

560 NEXT L 570 VIEWPORT X1,X2,Y1,Y2 580 WINDOW 0,50,1,2 590 FRAME 600 LINE TYPE 4 610 GRID 5,.1,0,1 620 LINE TYPE 1 630 Dsonda=4 ! Diametro de la sonda de G.N. 640 FOR Den0=1 TO 1.5 STEP .1 650 Murho=.057*Den0 660 MOVE Dsonda,1 670 FOR Diam0=4 TO 50 680 Factor1=(Diam0-Dsonda)/2*(Diam0+Dsonda)/(2*Diam0) 690 Factor2=SQR(Diam0/Dsonda) 700 Factor=1/(EXP(-Murho*Factor1)*(1+.97*(Murho*Factor2)^1.26)) 710 DRAW Diam0,Factor 720 NEXT Diam0 730 NEXT Den0 740 ! 750 PRINT TABXY(15,1);"Correccion de G.N. por diametro del sondeo y lodo" 760 Dsonda=4 ! Diametro de la sonda de G.N. 770 FOR D=1 TO Ndiam 780 Fact1(D)=(Diam(D)-Dsonda)/2*(Diam(D)+Dsonda)/(2*Diam(D)) 790 Fact2(D)=SQR(Diam(D)/Dsonda) 800 NEXT D 810 ! 820 Murho=.057*Dens 830 FOR C=1 TO Ncap 840 PRINT TABXY(20,2);"G.N. LEIDO =";INT(Cap(C,Rarc)*10)/10;" " 850 FOR D=1 TO Ndiam 860 IF Cap(C,0)>Prof(D-1) AND Cap(C,0)<=Prof(D) THEN 870 Gn(C)=Cap(C,Rarc)/(EXP(-Murho*Fact1(D))*(1+.97*(Murho*Fact2(D))^1.26)) 880 END IF 890 NEXT D 900 PRINT TABXY(40,2);"G.N. CORREGIDO =";INT(Gn(C)*10)/10;" " 910 NEXT C 920 ! 930 GCLEAR 940 PRINT CHR$(12) 950 !----------------------------------------------------------------------- 960 REM Calculo de limites de arcilla 970 !----------------------------------------------------------------------- 980 Gnmax=Gn(1) 990 Gnmin=Gn(1) 1000 FOR C=1 TO Ncap 1010 IF Gn(C)>Gnmax THEN Gnmax=Gn(C) 1020 IF Gn(C)<Gnmin THEN Gnmin=Gn(C) 1030 NEXT C 1040 ! 1050 Delta=(Gnmax-Gnmin)/Nfrec 1060 FOR F=0 TO Nfrec 1070 Intgn(F)=Gnmin+F*Delta 1080 Frec(F)=0 1090 NEXT F 1100 !

137

1110 Frecmax=0 1120 PRINT TABXY(20,2);"Estudio de frecuencias de intervalos de G.N." 1130 FOR C=1 TO Ncap 1140 IF (C MOD 10)=0 THEN PRINT TABXY(35,3);"capa";C 1150 FOR F=1 TO Nfrec 1160 IF Gn(C)>=Intgn(F-1) AND Gn(C)<Intgn(F) THEN 1170 Frec(F)=Frec(F)+1 1180 IF Frec(F)>Frecmax THEN Frecmax=Frec(F) 1190 GOTO 1220 1200 END IF 1210 NEXT F 1220 NEXT C 1230 PRINT CHR$(12) 1240 ! 1250 Acum(0)=0 1260 FOR F=1 TO Nfrec 1270 Acum(F)=Acum(F-1)+Frec(F) 1280 NEXT F 1290 ! 1300 FOR F=Nfrec/2 TO Nfrec 1310 IF (Acum(F)-Acum(F-1))<(Ncap-Acum(F-1))/(Nfrec-(F-1)) THEN 1320 Acumhoriz=Acum(F-1) 1330 Gnhoriz=Intgn(F-1) 1340 GOTO 1390 1350 END IF 1360 NEXT F 1370 Acumhoriz=Ncap 1380 Gnhoriz=Gnmax 1390 ! 1400 FOR F=1 TO Nfrec 1410 IF Acum(F)>Ncap*.95 THEN 1420 Acum95=INT(Ncap*.95+.5) 1430 Gn95=Intgn(F-1)+(Acum95-Acum(F-1))*(Intgn(F)-Intgn(F-1))/(Acum(F)-Acum(F-1)) 1440 GOTO 1470 1450 END IF 1460 NEXT F 1470 ! 1480 Acumtop=Acumhoriz 1490 Gntop=Gnhoriz 1500 ! 1510 CSIZE 4 1520 VIEWPORT 0,130,0,100 1530 WINDOW 0,130,0,100 1540 LORG 5 1550 MOVE 65,5 1560 LABEL "VALORES DE GAMMA NATURAL" 1570 LORG 2 1580 MOVE 10,5 1590 LABEL INT(Gnmin+.5) 1600 LORG 8 1610 MOVE 120,5 1620 LABEL INT(Gnmax+.5) 1630 LORG 7 1640 MOVE 10,10 1650 LABEL "0"

138

1660 LORG 9 1670 MOVE 10,90 1680 LABEL "100" 1690 LDIR PI/2 1700 LORG 5 1710 MOVE 5,50 1720 LABEL "FRECUENCIA ACUMULADA" 1730 LDIR 0 1740 VIEWPORT 10,120,10,90 1750 FRAME 1760 WINDOW Gnmin,Gnmax,0,Ncap 1770 LINE TYPE 4 1780 GRID 10,Ncap/10,10,0 1790 LINE TYPE 1 1800 MOVE Intgn(0),Acum(0) 1810 FOR F=1 TO Nfrec 1820 DRAW Intgn(F),Acum(F) 1830 NEXT F 1840 ! 1850 Portop=INT(Acumtop/Ncap*100) 1860 LORG 6 1870 LDIR 0 1880 MOVE (Gnmin+Gntop)/2-2,Acumtop-5 1890 LABEL "% ACUMULADO";Portop 1900 LDIR PI/2 1910 MOVE Gntop,Acumtop/2 1920 LABEL "VALOR DE DISCRIMINACION";INT(Gntop+.5) 1930 PRINT TABXY(20,2);"Gamma Natural";INT(Gntop+.5);"---> % Acumulado";Portop 1940 MOVE Gntop,0 1950 DRAW Gntop,Ncap 1960 MOVE 0,Acumtop 1970 DRAW Gnmax,Acumtop 1980 ! 1990 BEEP 2000 ON KBD GOTO 2020 2010 GOTO 2000 2020 Tecla$=KBD$ 2030 IF Tecla$="I" THEN CALL Imprimir 2040 IF Tecla$<>"ÿ>" AND Tecla$<>"ÿ<" AND Tecla$<>" " THEN GOTO 2000 2050 PEN -1 2060 MOVE Gntop,0 2070 DRAW Gntop,Ncap 2080 MOVE 0,Acumtop 2090 DRAW Gnmax,Acumtop 2100 LORG 6 2110 LDIR 0 2120 MOVE (Gnmin+Gntop)/2-2,Acumtop-5 2130 LABEL "% ACUMULADO";Portop 2140 LDIR PI/2 2150 MOVE Gntop,Acumtop/2 2160 LABEL "VALOR DE DISCRIMINACION";INT(Gntop+.5) 2170 PEN 1 2180 IF Tecla$="ÿ>" THEN Gntop=Gntop+Delta 2190 IF Tecla$="ÿ<" THEN Gntop=Gntop-Delta 2200 FOR F=Nfrec/2 TO Nfrec

139

2210 IF Gntop>=Intgn(F-1) AND Gntop<Intgn(F) THEN 2220 Acumtop=Acum(F-1)+(Gntop-Intgn(F-1))*(Acum(F)-Acum(F-1))/(Intgn(F)-Intgn(F-1)) 2230 GOTO 2260 2240 END IF 2250 NEXT F 2260 IF Tecla$=" " THEN GOTO 2290 2270 GOTO 1850 2280 !----------------------------------------------------------------------- 2290 REM Transformacion a porcentaje de arcilla 2300 !----------------------------------------------------------------------- 2310 GCLEAR 2320 PRINT CHR$(12) 2330 ! 2340 FOR C=1 TO Ncap 2350 Arc(C)=(Gn(C)-Gnmin)/(Gntop-Gnmin)*100 2360 NEXT C 2370 ! 2380 Arcmin=Arc(1) 2390 Arcmax=Arc(1) 2400 FOR C=1 TO Ncap 2410 IF Arc(C)<Arcmin THEN Arcmin=Arc(C) 2420 IF Arc(C)>Arcmax THEN Arcmax=Arc(C) 2430 NEXT C 2440 ! 2450 SUBEND 2460 !----------------------------------------------------------------------- 2470 SUB Imprimir 2480 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 2490 !------------------------------------------------------------------------ 2500 PRINTER IS 1 2510 GRAPHICS OFF 2520 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 2530 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 2590 2540 PRINT " Conecte la impresora y pulse |CONT| " 2550 PAUSE 2560 CALL Titulo 2570 GRAPHICS ON 2580 CALL Vuelcapant(701) 2590 PRINT CHR$(12) 2600 GRAPHICS ON 2610 PRINTER IS 1 2620 ! 2630 SUBEND 2640 !------------------------------------------------------------------------ 2650 SUB Titulo 2660 !------------------------------------------------------------------------ 2670 DIM Titulo$[240] 2680 ! 2690 PRINT CHR$(12) 2700 INPUT "Titulo del grafico",Titulo$ 2710 IF Titulo$="" THEN GOTO 2980 2720 PRINTER IS 1 2730 GOSUB Editor 2740 INPUT "Correcto",Cort$ 2750 IF Cort$="N" OR Cort$="NO" THEN GOTO 2690

140

2760 PRINTER IS 701 2770 GOSUB Editor 2780 PRINTER IS 1 2790 GOTO 2980 2800 ! 2810 Editor: ! Divide el texto y lo centra 2820 Titulo$=Titulo$&" " 2830 C0=0 2840 IF C0>=LEN(Titulo$) THEN GOTO 2960 2850 Caracter=50+C0 2860 FOR C=Caracter TO 1 STEP -1 2870 IF C>LEN(Titulo$) THEN GOTO 2950 2880 IF Titulo$[C,C]=" " THEN 2890 Tx=INT((64-(C-C0))/2) 2900 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 2910 PRINT USING Ima$;Titulo$[C0+1,C] 2920 C0=C 2930 GOTO 2840 2940 END IF 2950 NEXT C 2960 RETURN 2970 ! 2980 SUBEND 2990 !------------------------------------------------------------------------ 3000 SUB Vuelcapant(INTEGER Device_selector) 3010 !------------------------------------------------------------------------ 3020 OPTION BASE 1 3030 INTEGER Row_group,Prod_num,Maxrow 3040 DIM Graphic_escape$[7] 3050 ! 3060 ON ERROR GOTO 3460 3070 PRINTER IS Device_selector 3080 OFF ERROR 3090 ! 3100 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 3110 ! 3120 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 3130 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 3140 ! 3150 IF Graphics_res=1 THEN 3160 ALLOCATE Os$[512] ! Para los modelos 9836 3170 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 3180 Maxrow=390 ! Numero de lineas del 9836 3190 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 3200 ELSE 3210 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 3220 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 3230 Maxrow=300 ! Numero de lineas del 9826 y 9816 3240 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 3250 END IF 3260 ! 3270 GSTORE Screen(*) ! Almacena matriz de pantalla 3280 ! 3290 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 3300 !

141

3310 FOR Row_group=1 TO 297 STEP 8 3320 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 3330 Gdump(Screen(*),Row_group,Os$) 3340 ! Volcado de linea de caracteres graficos 3350 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 3360 PRINT USING "7A,400A";Graphic_escape$,Os$ 3370 ELSE ! Para los modelos 9836 3380 PRINT USING "7A,512A";Graphic_escape$,Os$ 3390 END IF 3400 NEXT Row_group 3410 ! 3420 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 3430 ! 3440 SUBEXIT 3450 ! 3460 BEEP ! Caso de encontrarse error en "PRINTER IS" 3470 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 3480 ! 3490 SUBEND 3500 ! 3510 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 3520 !-------------------------------------------------------------------------

142

10 !----------------------------------------------------------------------- 20 SUB Totsoldis(Cap(*),Tipo$(*),Min(*),Max(*),Arc(*),Tlodo,Rm,Rmf,Diams(*),T(*)) 30 ! 40 ! Subprograma para el calculo del total de solidos disueltos 50 ! 60 COM /Tsdi/ REAL Tsd(*),Tsdmax,Tsdmin,Rw(*),Rwmax,Rwmin 70 !------------------------------------------------------------------------ 80 OFF KEY 90 PRINT CHR$(12) 100 GCLEAR 110 ! 120 Nreg=VAL(Tipo$(0)) 130 X0=Min(0) 140 Ncap=Max(0) 150 FOR R=1 TO Nreg 160 IF Tipo$(R)="P.E. " THEN Rpe=R 170 IF Tipo$(R)="G.N. " THEN Rgn=R 180 IF Tipo$(R)="R.N.C." THEN Rrnc=R 190 NEXT R 200 ! 210 ALLOCATE INTEGER Cod_perm(1:Ncap) 220 ! Gnperm=Min(Rgn)+3*(Max(Rgn)-Min(Rgn))/4 230 Rncperm=Min(Rrnc)+(Max(Rrnc)-Min(Rrnc))/4 240 FOR C=1 TO Ncap 250 IF Arc(C)>50 AND Arc(C)<110 AND Cap(C,Rrnc)<Rncperm THEN Cod_perm(C)=1 260 IF Arc(C)>25 AND Cap(C,Rrnc)<Rncperm/2 THEN Cod_perm(C)=1 270 NEXT C 280 ! 290 ALLOCATE D(1:12),K(1:12),Rt_rm(1:8) 300 ALLOCATE Pee(1:Ncap),Kc(1:Ncap) 310 ALLOCATE Rwe(1:Ncap),Cwe(1:Ncap),Cw(1:Ncap) 320 ALLOCATE Titulo$(1:4)[21],X(1:10),Y(1:10) 330 ! 340 Ndiam=Diams(0,1) 350 FOR Id=1 TO Ndiam 360 Diam(Id)=Diams(Id,1)/100 ! se pasa el diametro a metros 370 Prof(Id)=Diams(Id,2) 380 NEXT Id 390 ! 400 IF Rpe=0 THEN 410 BEEP 420 PRINT TABXY(20,10);"NO SE ENCUENTRA EL REGISTRO DE P.E." 430 INPUT "Valor de conductividad del agua estimado",Cagua 440 IF Cagua<200 OR Cagua>2000 THEN GOTO 430 450 FOR C=1 TO Ncap 460 Cw(C)=Cagua 470 Rw(C)=10000/Cagua 480 NEXT C 490 GOTO 2740 500 END IF 510 ! 520 Cambio=0 530 !------------------------------------------------------------------------ 540 REM CALCULO DE ANOMALIA DE P.E. ESTATICO 550 !------------------------------------------------------------------------

143

560 OFF KEY 570 PRINT CHR$(12) 580 GCLEAR 590 ! 600 PRINT TABXY(15,1);"Correccion por diametro del sondeo y espesor de capa" 610 X1=25 620 Y1=15 630 X2=105 640 Y2=85 650 CSIZE (X2-X1)/30 660 VIEWPORT 0,130,0,100 670 WINDOW 0,130,0,100 680 LORG 6 690 MOVE (X1+X2)/2,Y1 700 LABEL "ESPESOR DE CAPA / DIAMETRO" 710 MOVE (X1+X2)/2,Y2-(Y2-Y1)/5 720 LABEL "RHO REAL / RHO LODO" 730 LDIR PI/2 740 LORG 4 750 MOVE X1,(Y1+Y2)/2 760 LABEL "FACTOR DE CORRECCION" 770 LDIR 0 780 LORG 2 790 FOR L=0 TO 8 800 MOVE X2,Y1+L*(Y2-Y1)/8 810 LABEL L 820 NEXT L 830 LORG 4 840 FOR L=0 TO 8 850 MOVE X1+L*(X2-X1)/8,Y2 860 LABEL L 870 NEXT L 880 VIEWPORT X1,X2,Y1,Y2 890 WINDOW 0,8,0,8 900 FRAME 910 LINE TYPE 4 920 GRID 1,1 930 LINE TYPE 1 940 ! 950 Nrt=6 960 DEALLOCATE Rt_rm(*) 970 ALLOCATE Rt_rm(1:Nrt) 980 DATA 5 ,20,50,100,200,400 990 READ Rt_rm(*) 1000 FOR R=1 TO Nrt 1010 Cte=.34*Rt_rm(R)^(.75) 1020 Ete=1.64*Rt_rm(R)^(-.04) 1030 MOVE .2,1+Cte*(.2)^(-Ete) 1040 FOR Esprel=.2 TO 10 STEP .2 1050 Factor=1+Cte*Esprel^(-Ete) 1060 DRAW Esprel,Factor 1070 NEXT Esprel 1080 NEXT R 1090 ! 1100 FOR C=2 TO Ncap

144

1110 PRINT TABXY(25,2);"P.E. =";INT(Cap(C,Rpe)*10)/10;" " 1120 Rtrm=Cap(C,Rnc)/Rm 1130 FOR Id=0 TO Ndiam 1140 IF Cap(C,0)>=Prof(Id) AND Cap(C,0)<Prof(Id) THEN 1150 Esprel=(Cap(C,0)-Cap(C-1,0))/Diam(Id) 1160 END IF 1170 NEXT Id 1180 Cte=.34*Rtrm^(.75) 1190 Ete=1.64*Rtrm^(-.04) 1200 Factor=1+Cte*Esprel^(-Ete) 1210 Pee(C)=Cap(C,Rpe)*Factor 1220 ! IF ABS(Cap(C,Pe)-Min(Rpe))<(Max(Rpe)-Min(Rpe))/20 THEN Pee(C)=0 1230 PRINT TABXY(45,2);"P.E.E. =";INT(Pee(C)*10)/10;" " 1240 NEXT C 1250 ! 1260 GCLEAR 1270 PRINT CHR$(12) 1280 !------------------------------------------------------------------------ 1290 REM CALCULO DE LA CONSTANTE FUNCION DE LA TEMPERATURA 1300 REM Y CALCULO DE LA CONDUCTIVIDAD EQUIVALENTE 1310 !------------------------------------------------------------------------ 1320 PRINT TABXY(15,1);"Obtencion de valores Conductividad equivalente " 1330 PRINT TABXY(15,10);" Anomalia de P.E. | Conductividad equivalente " 1340 ! 1350 FOR C=1 TO Ncap 1360 Kc(C)=65+.24*T(C) 1370 NEXT C 1380 ! 1390 FOR C=1 TO Ncap 1400 PRINT TABXY(22,11);INT(Pee(C)*10)/10 1410 Rwe(C)=Rmf/10^(Pee(C)/(-Kc(C))) 1420 IF Cod_perm(C)=1 THEN Rwe(C)=4 ! Valor de rho aprox. en margas y arcillas 1430 Cwe(C)=10000/Rwe(C) 1440 PRINT TABXY(42,11);INT(Cwe(C)) 1450 NEXT C 1460 !------------------------------------------------------------------------ 1470 REM CALCULO DE Rw EN FUNCION DEL TIPO DE LODO 1480 !------------------------------------------------------------------------ 1490 PRINT CHR$(12) 1500 Titulo$(1)="LODO TIPO REVERT " 1510 Titulo$(2)="LODO TIPO BENTONITA " 1520 Titulo$(3)="LODO TIPO NATURAL " 1530 Titulo$(4)="LODO TIPO PROMEDIO " 1540 IF Cambio=0 THEN GOTO 1620 1550 FOR Tl=1 TO 4 1560 PRINT TABXY(20,Tl+1);"TIPO =";Tl;" - ";Titulo$(Tl) 1570 NEXT Tl 1580 BEEP 1590 INPUT "Tipo de lodo ?",Tlodo 1600 IF Tlodo<1 OR Tlodo>4 THEN GOTO 1590 1610 PRINT CHR$(12) 1620 ! 1630 DEALLOCATE X(*),Y(*) 1640 IF Tlodo=1 THEN GOTO 2060 ! REVERT 1650 IF Tlodo=2 THEN GOTO 2400 ! BENTONITA

145

1660 IF Tlodo=3 THEN GOTO 2570 ! AGUA 1670 IF Tlodo=4 THEN GOTO 2230 ! PROMEDIO 1680 ! 1690 Tipo=Tlodo 1700 GOSUB Dibujo 1710 FOR C=1 TO Ncap 1720 IF Rwe(C)>X(1) THEN PRINT TABXY(1,7);"Resistividad de capa";C;">";X(1) 1730 IF Rwe(C)<X(Ncal) THEN PRINT TABXY(1,7);"Resistividad de capa";C;"<";X(Ncal) 1740 NEXT C 1750 WAIT 1 1760 PRINT CHR$(12) 1770 ! 1780 PRINT TABXY(1,7);"Cond equivalente | Cond del agua" 1790 PRINT TABXY(1,8);"-----------------|--------------" 1800 ! 1810 FOR C=1 TO Ncap 1820 IF Rwe(C)>X(1) THEN 1830 Rw(C)=Ctr*Rwe(C)^Etr 1840 ! Rw(C)=Y(1) 1850 GOTO 1970 1860 END IF 1870 IF Rwe(C)<X(Ncal) THEN 1880 Rw(C)=Y(Ncal)+(0-Y(Ncal))/(0-X(Ncal))*(Rwe(C)-X(Ncal)) 1890 ! Rw(C)=Y(NCAL) 1900 GOTO 1970 1910 END IF 1920 FOR J=1 TO Ncal-1 1930 IF Rwe(C)<X(J) AND Rwe(C)>=X(J+1) THEN 1940 Rw(C)=Y(J)+(Y(J+1)-Y(J))/(X(J+1)-X(J))*(Rwe(C)-X(J)) 1950 END IF 1960 NEXT J 1970 IF Cod_perm(C)=1 THEN Rw(C)=4 1980 Cw(C)=10000/Rw(C) 1990 PRINT TABXY(6,9);INT(Cwe(C));" ";INT(Cw(C));" " 2000 NEXT C 2010 ! 2020 GCLEAR 2030 PRINT CHR$(12) 2040 GOTO 2740 2050 !------------------------------------------------------------------------ 2060 REM LODOS TIPO REVERT, CURVA Rw y Rwe 2070 !------------------------------------------------------------------------ 2080 Ncal=23 2090 ALLOCATE X(1:Ncal),Y(1:Ncal) 2100 ! 2110 RESTORE 2120 2120 DATA 22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,.78 2130 READ X(*) 2140 RESTORE 2150 2150 DATA

40,38,36,34,32,30,29,27.5,26,24,22,21,20,19,17.5,16,14.5,12,9.5,7,4.8,2,1.4 2160 READ Y(*) 2170 ! 2180 Ctr=3.8 2190 Etr=.8

146

2200 ! 2210 GOTO 1680 2220 !------------------------------------------------------------------------ 2230 REM LODO MEDIO. CURVA EMPIRICA CUENCA DEL DUERO 2240 !------------------------------------------------------------------------ 2250 Ncal=13 2260 ALLOCATE X(1:Ncal),Y(1:Ncal) 2270 ! 2280 RESTORE 2290 2290 DATA 16.0,14.2,12.4,10.7,9.1,7.5,6.0,4.5,3.5,2.5,2.0,1.5,1.0 2300 READ X(*) 2310 RESTORE 2320 2320 DATA 39 ,35 ,32 ,28 ,25 ,21 ,18 ,13 ,9.5,6.5,4.5,2.7,1.5 2330 READ Y(*) 2340 ! 2350 Ctr=4.2 2360 Etr=.8 2370 ! 2380 GOTO 1680 2390 !------------------------------------------------------------------------ 2400 REM LODOS BENTONITICOS, CURVA Rw y Rwe 2410 !------------------------------------------------------------------------ 2420 Ncal=21 2430 ALLOCATE X(1:Ncal),Y(1:Ncal) 2440 ! 2450 RESTORE 2460 2460 DATA

4.0,3.8,3.6,3.4,3.2,3.0,2.8,2.6,2.4,2.2,2.0,1.8,1.6,1.4,1.2,1.0,0.8,0.6,0.4,0.2,0.1

2470 READ X(*) 2480 RESTORE 2490 2490 DATA 23,22.5,22,21.6,21.3,21,20,19,18,16,14,10,6,4,3,2.4,1.5,.9,.5,.2,.1 2500 READ Y(*) 2510 ! 2520 Ctr=10 2530 Etr=.6 2540 ! 2550 GOTO 1680 2560 !------------------------------------------------------------------------ 2570 REM LODO AGUA, CURVA EMPIRICA Rw y Rwe 2580 !------------------------------------------------------------------------ 2590 Ncal=24 2600 ALLOCATE X(1:Ncal),Y(1:Ncal) 2610 ! 2620 RESTORE 2630 2630 DATA 28,26,24,22,20,18,16,15,12,10,9.5,9,8,7.5,7,6.5,6,5,4,3,2.5,2,1.5,.95 2640 READ X(*) 2650 RESTORE 2660 2660 DATA

40,36,34.5,32,28,26,23,21,17,16,15,14,13,12,9.8,9,8.3,6.8,5.4,4,3.3,2.7,1.8,1.4

2670 READ Y(*) 2680 ! 2690 Ctr=1.44 2700 Etr=1

147

2710 ! 2720 GOTO 1680 2730 !------------------------------------------------------------------------ 2740 REM CALCULO DEL TOTAL DE SOLIDOS DISUELTOS 2750 REM EN FUNCION DEL TIPO DE AGUA 2760 !------------------------------------------------------------------------ 2770 PRINT CHR$(12) 2780 Titulo$(1)="CLORURADA SODICA " 2790 Titulo$(2)="BICARBONATADA SODICA " 2800 Titulo$(3)="SULFATADA SODICA " 2810 Titulo$(4)="BICARBONATADA CALCICA" 2820 FOR Ta=1 TO 4 2830 PRINT TABXY(20,Ta+1);"TIPO =";Ta;" - ";Titulo$(Ta) 2840 NEXT Ta 2850 BEEP 2860 INPUT "Tipo de agua ",Tagua 2870 IF Tagua<1 OR Tagua>4 THEN GOTO 2860 2880 PRINT CHR$(12) 2890 ! 2900 DEALLOCATE X(*),Y(*) 2910 Ncal=27 2920 ALLOCATE X(1:Ncal),Y(1:Ncal) 2930 RESTORE 2940 2940 DATA

40,38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,9,8,7,6,5,4,3,2.5,2,1.6,1.4 2950 READ X(*) 2960 FOR J=1 TO Ncal 2970 X(J)=10000/X(J) ! Conversion a valores de conductividad 2980 NEXT J 2990 Cmax=10000/1.4 3000 Cmin=10000/40 3010 IF Tagua=1 THEN GOTO 3570 ! Cl2Na 3020 IF Tagua=2 THEN GOTO 3660 ! (CO3)=Na 3030 IF Tagua=3 THEN GOTO 3750 ! (SO3)Na 3040 IF Tagua=4 THEN GOTO 3840 ! (CO3)=Ca 3050 ! 3060 Tipo=Tagua 3070 GOSUB Dibujo 3080 FOR C=1 TO Ncap 3090 IF Cw(C)>Cmax THEN PRINT TABXY(1,5);"Conduct. de capa";C;">";INT(Cmax) 3100 IF Cw(C)<Cmin THEN PRINT TABXY(1,5);"Conduct. de capa";C;"<";INT(Cmin) 3110 NEXT C 3120 PRINT 3130 PRINT TABXY(1,17);"Por interpolacion ------- 1" 3140 PRINT TABXY(1,18);"Por regresion ----------- 2" 3150 BEEP 3160 INPUT "Modo de calculo del Total de Solidos Disueltos",Calc 3170 IF Calc<1 OR Calc>2 THEN GOTO 3160 3180 IF Calc=2 THEN GOSUB Regresion 3190 PRINT CHR$(12) 3200 ! 3210 PRINT TABXY(1,7);"Conductividad | T.S.D. " 3220 PRINT TABXY(1,8);"--------------|--------------" 3230 ! 3240 IF Calc=1 THEN

148

3250 FOR C=1 TO Ncap 3260 IF Cw(C)>Cmax THEN 3270 Tsd(C)=Y(Ncal) 3280 GOTO 3390 3290 END IF 3300 IF Cw(C)<Cmin THEN 3310 Tsd(C)=Y(1) 3320 GOTO 3390 3330 END IF 3340 FOR J=1 TO Ncal-1 3350 IF Cw(C)>X(J) AND Cw(C)<=X(J+1) THEN 3360 Tsd(C)=Y(J)+(Y(J+1)-Y(J))/(X(J+1)-X(J))*(Cw(C)-X(J)) 3370 END IF 3380 NEXT J 3390 IF Cod_perm(C)=1 THEN Tsd(C)=10000 3400 PRINT TABXY(5,9);INT(Cw(C));" ";INT(Tsd(C));" " 3410 NEXT C 3420 END IF 3430 ! 3440 IF Calc=2 THEN 3450 FOR C=1 TO Ncap 3460 Tsd(C)=(Kr0+Kr1*Cw(C)) 3470 IF Tsd(C)<10 THEN Tsd(C)=10 3480 IF Cod_perm(C)=1 THEN Tsd(C)=10000 3490 PRINT TABXY(5,9);INT(Cw(C));" ";INT(Tsd(C)) 3500 NEXT C 3510 END IF 3520 ! 3530 GCLEAR 3540 PRINT CHR$(12) 3550 GOTO 4690 3560 !------------------------------------------------------------------------ 3570 REM AGUA CLORURADA SODICA CURVA EMPIRICA 3580 !------------------------------------------------------------------------ 3590 ! X = 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 9, 8,

7, 6, 5, 4, 3, 2.5, 2, 1.6, 1.4 3600 RESTORE 3610 3610 DATA

125,132,140,150,160,175,187,205,225,245,275,310,358,420,500,600,670,780,870,1020,1250,1580,2200,2600,3200,4020,4700

3620 READ Y(*) 3630 ! 3640 GOTO 3050 3650 !------------------------------------------------------------------------ 3660 REM AGUA BICARBONATADA SODICA, CURVA EMPIRICA TSD/Rw 3670 !------------------------------------------------------------------------ 3680 ! X = 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 9, 8,

7, 6, 5, 4, 3, 2.5, 2, 1.6, 1.4 3690 RESTORE 3700 3700 DATA

180,200,215,235,250,260,280,305,330,370,400,445,500,575,675,800,895,1000,1150,1340,1690,2100,2950,3650,4800,6300,7500

3710 READ Y(*) 3720 ! 3730 GOTO 3050

149

3740 !------------------------------------------------------------------------ 3750 REM AGUA SULFATADA SODICA CURVA TEORICA TSD y Rw 3760 !------------------------------------------------------------------------ 3770 ! X = 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 9, 8,

7, 6, 5, 4, 3, 2.5, 2, 1.6, 1.4 3780 RESTORE 3790 3790 DATA

160,170,180,190,200,220,240,260,280,310,350,400,455,530,640,775,880,1000,1150,1350,1700,2200,3100,3800,5100,6900,8300

3800 READ Y(*) 3810 ! 3820 GOTO 3050 3830 !------------------------------------------------------------------------ 3840 REM AGUA BICARBONATADA CALCICA, CURVA TEORICA TSD y Rw 3850 !------------------------------------------------------------------------ 3860 ! X = 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 9,

8, 7, 6, 5, 4, 3, 2.5, 2, 1.6, 1.4 3870 RESTORE 3880 3880 DATA

318,350,370,390,415,450,480,525,560,610,670,750,840,960,1130,1350,1500,1700,1920,2300,2800,3500,4700,5700,7100,8800,10050

3890 READ Y(*) 3900 ! 3910 GOTO 3050 3920 !------------------------------------------------------------------------ 3930 REM DIRECCIONAMIENTO DEL PROGRAMA 3940 !------------------------------------------------------------------------ 3950 DISP TAB(12);"MODIFICACION DE LOS PARAMETROS DE INTERPRETACION DE P.E." 3960 ON KEY 6 LABEL " TIPO DE LODO " GOTO 1470 3970 ON KEY 7 LABEL " TIPO DE AGUA " GOTO 2740 3980 ON KEY 9 LABEL " CONTINUAR " GOTO 4730 3990 GOTO 3950 4000 !------------------------------------------------------------------------ 4010 Regresion: ! Subprograma para rectas de regresion 4020 !------------------------------------------------------------------------ 4030 ! Aproximacion a una recta de regresion Y(I) = Kr0 + Kr1 * X(I) 4040 ! 4050 Sumx=0 4060 Sumy=0 4070 Sumx2=0 4080 Sumxy=0 4090 FOR I=1 TO Ncal 4100 Sumx=Sumx+X(I) 4110 Sumy=Sumy+Y(I) 4120 Sumx2=Sumx2+X(I)^2 4130 Sumxy=Sumxy+X(I)*Y(I) 4140 NEXT I 4150 Kr0=(Sumy*Sumx2-Sumx*Sumxy)/(Ncal*Sumx2-Sumx*Sumx) 4160 Kr1=(Ncal*Sumxy-Sumy*Sumx)/(Ncal*Sumx2-Sumx*Sumx) 4170 ! 4180 RETURN 4190 !------------------------------------------------------------------------ 4200 Dibujo: ! Dibujo de los datos de calibracion 4210 !------------------------------------------------------------------------ 4220 Xrmin=X(1)

150

4230 Xrmax=X(1) 4240 Yrmin=Y(1) 4250 Yrmax=Y(1) 4260 FOR J=2 TO Ncal 4270 IF X(J)<Xrmin THEN Xrmin=X(J) 4280 IF X(J)>Xrmax THEN Xrmax=X(J) 4290 IF Y(J)<Yrmin THEN Yrmin=Y(J) 4300 IF Y(J)>Yrmax THEN Yrmax=Y(J) 4310 NEXT J 4320 Xrmin=INT(Xrmin) 4330 Xrmax=INT(Xrmax)+1 4340 Yrmin=INT(Yrmin) 4350 Yrmax=INT(Yrmax+1) 4360 ! 4370 GRAPHICS ON 4380 GINIT 4390 GCLEAR 4400 ! 4410 CSIZE 4 4420 MOVE 97,100 4430 LORG 6 4440 LABEL Titulo$(Tipo) 4450 MOVE 60,40 4460 LORG 3 4470 LABEL Xrmin 4480 MOVE 133,40 4490 LORG 9 4500 LABEL Xrmax 4510 MOVE 60,40 4520 LORG 7 4530 LABEL Yrmin 4540 MOVE 60,100 4550 LORG 9 4560 LABEL Yrmax 4570 ! 4580 VIEWPORT 60,133,40,100 4590 FRAME 4600 WINDOW Xrmin,Xrmax,Yrmin,Yrmax 4610 ! 4620 MOVE X(1),Y(1) 4630 FOR J=2 TO Ncal 4640 DRAW X(J),Y(J) 4650 NEXT J 4660 ! 4670 RETURN 4680 !------------------------------------------------------------------------ 4690 REM Finaliza el subprograma con el calculo de maximos y minimos 4700 !------------------------------------------------------------------------ 4710 PRINT CHR$(12) 4720 ! 4730 Cambio=0 4740 IF Rpe=0 THEN GOTO 4760 4750 PRINT TABXY(25,10);" CAMBIA EL TIPO DE LODO -1-" 4760 PRINT TABXY(25,11);" CAMBIA EL TIPO DE AGUA -2-" 4770 PRINT TABXY(25,13);" SALIR (ENTER)"

151

4780 BEEP 4790 INPUT "",Cambio 4800 PRINT CHR$(12) 4810 IF Cambio=1 AND Rpe<>0 THEN GOTO 1470 4820 IF Cambio=2 THEN GOTO 2740 4830 ! 4840 Tsdmax=Tsd(1) 4850 Tsdmin=Tsd(1) 4860 Rwmax=Rw(1) 4870 Rwmin=Rw(1) 4880 FOR C=1 TO Ncap 4890 IF Tsd(C)>Tsdmax THEN Tsdmax=Tsd(C) 4900 IF Tsd(C)<Tsdmin THEN Tsdmin=Tsd(C) 4910 IF Rw(C)>Rwmax THEN Rwmax=Rw(C) 4920 IF Rw(C)<Rwmin THEN Rwmin=Rw(C) 4930 NEXT C 4940 ! 4950 SUBEND 4960 !------------------------------------------------------------------------

152

10 !----------------------------------------------------------------------- 20 SUB

Rhoreal(Cap(*),Tipo$(*),Min(*),Max(*),Rw(*),Rwmin,Rwmax,Rm,Rmf,Diams(*),T(*)) 30 ! Subprograma para el calculo de resistividad cuasireal 40 ! 50 COM /Rhoi/ REAL Rho(*),Rhomax,Rhomin,Per(*),Permax,Permin 60 !----------------------------------------------------------------------- 70 OFF KEY 80 Correccion=0 90 ! 100 Nreg=VAL(Tipo$(0)) 110 X0=Min(0) 120 Ncap=Max(0) 130 ! 140 Nres=0 150 FOR R=1 TO Nreg 160 IF Tipo$(R)="R.N.C." THEN 170 R0_4=R 180 Ldisp(R0_4)=.4 190 Nres=Nres+1 200 END IF 210 IF Tipo$(R)="R.N.L." THEN 220 R1_6=R 230 Ldisp(R1_6)=1.6 240 Nres=Nres+1 250 END IF 260 IF Tipo$(R)="R.LAT." THEN 270 Rlat=R 280 Ldisp(Rlat)=1.8 290 Nres=Nres+1 300 END IF 310 NEXT R 320 ! 330 IF Nres=0 THEN 340 BEEP 350 PRINT TABXY(15,5);"NO APARECE NINGUN REGISTRO GRABADO COMO RESISTIVIDAD" 360 PRINT TABXY(20,6);"CONVENCIONAL. COMPRUEBE EL FICHERO _CAP" 370 WAIT 1 380 PRINT CHR$(12) 390 GOTO 8260 400 END IF 410 ! 420 IF Rwmin=0 AND Rwmax=0 THEN 430 Resagua=0 440 ELSE 450 Resagua=1 460 END IF 470 ! 480 Ndiam=Diams(0,1) 490 FOR D=1 TO Ndiam 500 Diam(D)=Diams(D,1) 510 Prof(D)=Diams(D,2) 520 NEXT D 530 ! 540 ! Correccion por Temperatura

153

550 ! 560 PRINT TABXY(25,7);"Correccion por Temperatura" 570 FOR R=1 TO Nreg 580 IF Tipo$(R)="R.N.C." OR Tipo$(R)="R.N.L." OR Tipo$(R)="R.LAT." THEN 590 FOR C=1 TO Ncap 600 PRINT TABXY(30,R+8);Tipo$(R);INT(Cap(C,R)) 610 Cap(C,R)=Cap(C,R)*(T(C)+21.5)/(25+21.5) 620 PRINT TABXY(42,R+8);"-->";INT(Cap(C,R)) 630 NEXT C 640 END IF 650 NEXT R 660 PRINT CHR$(12) 670 ! 680 ALLOCATE Diametro(1:10),Resrel(1:10) 690 ALLOCATE Rhoesp(1:Ncap),Rhodiam(1:Ncap) 700 ALLOCATE Rho0_4(1:Ncap),Rho1_6(1:Ncap),Rholat(1:Ncap) 710 ALLOCATE Cemen(1:4),Ajuste(1:4),Por(1:Ncap) 720 !----------------------------------------------------------------------- 730 ! Calculo de resistividad para un solo dispositivo 740 !----------------------------------------------------------------------- 750 IF R0_4=0 OR (R1_6=0 AND Rlat=0) THEN 760 BEEP 770 PRINT TABXY(20,5);"LOS CALCULOS QUE SE VAN A REALIZAR NO CONSIDERAN " 780 PRINT TABXY(20,6);" LOS FENOMENOS DE INVASION DE LODO " 790 WAIT 1 800 END IF 810 ! 820 ! Calculo de resistividad en ausencia de Rho 1.6 y Rlat 830 ! Aproximacion de Rho 0.4 a Rxo (metodo aproximado) 840 ! 850 IF R1_6=0 AND Rlat=0 THEN 860 PRINT TABXY(20,8);" SE UTILIZA SOLO Rho 0.4 (aprox. media) " 870 GOSUB Dibunor 880 Rnor=R0_4 890 Londisp=.4 900 GOSUB Normal 910 FOR C=1 TO Ncap 920 Rho(C)=Rho0_4(C)*Rw(C)/Rmf 930 NEXT C 940 GCLEAR 950 GOTO 2670 960 END IF 970 ! 980 ! Calculo de resistividad en ausencia de Rho 0.4 990 ! Aproximacion de Rho 1.6 o Rho Lat a Ro (metodo aproximado) 1000 ! 1010 IF R0_4=0 THEN 1020 IF Rlat<>0 THEN 1030 PRINT TABXY(20,8);" SE UTILIZA SOLO LATERAL (aprox. media) " 1040 GOSUB Dibulat 1050 GOSUB Lateral 1060 FOR C=1 TO Ncap 1070 Rho(C)=Rholat(C) 1080 NEXT C 1090 GCLEAR

154

1100 GOTO 2670 1110 END IF 1120 IF R1_6<>0 THEN 1130 PRINT TABXY(20,8);" SE UTILIZA SOLO Rho 1.6 (aprox. grosera) " 1140 GOSUB Dibunor 1150 Rnor=R1_6 1160 Londisp=1.6 1170 GOSUB Normal 1180 FOR C=1 TO Ncap 1190 Rho(C)=Rho1_6(C) 1200 NEXT C 1210 GCLEAR 1220 GOTO 2670 1230 END IF 1240 END IF 1250 !----------------------------------------------------------------------- 1260 REM Seleccion de tipo de calculo para varias resistividades 1270 !----------------------------------------------------------------------- 1280 PRINT CHR$(12) 1290 PRINT TABXY(20,10);" Tipo - 1 (Rho 1.6)^2 / (Rho 0.4) " 1300 PRINT TABXY(20,11);" Tipo - 2 LIMITES LINEALES " 1310 PRINT TABXY(20,12);" Tipo - 3 ASINTOTAS HIPERBOLICAS " 1320 INPUT "Que tipo de calculo de resistividad quiere ? ",Tipocalc 1330 IF Tipocalc<1 OR Tipocalc>3 THEN GOTO 1320 1340 PRINT CHR$(12) 1350 ON Tipocalc GOTO 1390,1560,1560 1360 ! 1370 GOTO 2670 1380 !----------------------------------------------------------------------- 1390 REM Resistividad real = (Rho 1.6)^2 / (Rho 0.4) 1400 !----------------------------------------------------------------------- 1410 ! Metodo empleado por algunos autores (Aproximacion grosera) para 1420 ! lodos no conductores y casi sin invasion 1430 ! 1440 IF R0_4=0 OR R1_6=0 THEN 1450 BEEP 1460 PRINT TABXY(20,5);"NO ES POSIBLE ESTE CALCULO" 1470 GOTO 1260 1480 END IF 1490 ! 1500 FOR C=1 TO Ncap 1510 Rho(C)=Cap(C,R1_6)^2/Cap(C,R0_4) 1520 NEXT C 1530 ! 1540 GOTO 1360 1550 !----------------------------------------------------------------------- 1560 REM Metodo de calculo de valores asintoticos 1570 !----------------------------------------------------------------------- 1580 IF Correccion=1 THEN GOTO 1730 1590 GOSUB Dibunor 1600 Rnor=R0_4 1610 Londisp=.4 1620 GOSUB Normal 1630 IF R1_6=0 THEN GOTO 1670 1640 Rnor=R1_6

155

1650 Londisp=1.6 1660 GOSUB Normal 1670 GCLEAR 1680 IF Rlat=0 THEN GOTO 1720 1690 GOSUB Dibulat 1700 GOSUB Lateral 1710 GCLEAR 1720 Correccion=1 1730 ! 1740 IF Resagua=0 THEN ! aproximacion cuando no se conoce Rw de cada nivel 1750 INPUT "Resistividad media del agua de formacion",Rwmedia 1760 FOR C=1 TO Ncap 1770 Rw(C)=Rwmedia 1780 NEXT C 1790 END IF 1800 PRINT CHR$(12) 1810 ! 1820 VIEWPORT 10,120,20,80 1830 WINDOW 0,2,0,300 1840 CSIZE 4 1850 LINE TYPE 1 1860 LORG 5 1870 ! 1880 FOR C=1 TO Ncap 1890 ! 1900 PRINT TABXY(20,2);"Resistividad del agua de la formacion";INT(Rw(C));" " 1910 Rw_rmf=Rw(C)/Rmf 1920 Rw_rmf2=INT(Rw_rmf*10)/10 1930 PRINT TABXY(20,3);"Resistividad agua/Resistividad lodo =";Rw_rmf2;" " 1940 PRINT TABXY(26,4);INT(Rho0_4(C));" " 1950 PRINT TABXY(32,4);INT(Rho1_6(C));" " 1960 PRINT TABXY(38,4);INT(Rholat(C));" " 1970 ! 1980 GOTO 2060 1990 FRAME 2000 MOVE Ldisp(R0_4),Cap(C,R0_4) 2010 LABEL "+" 2020 MOVE Ldisp(R1_6),Cap(C,R1_6) 2030 LABEL "+" 2040 MOVE Ldisp(Rlat),Cap(C,Rlat) 2050 LABEL "+" 2060 ! 2070 IF Rw(C)<=4 THEN ! CONDICION DE IMPERMEABLES 2080 Rho(C)=(Rho0_4(C)+Rho1_6(C)+Rholat(C))/Nres 2090 Rxo=Rho(C) 2100 GOTO 2530 2110 END IF 2120 ! 2130 Lat_rnc=Rholat(C)/Rho0_4(C) 2140 Rnl_rnc=Rho1_6(C)/Rho0_4(C) 2150 ! 2160 IF Rw_rmf>1 THEN 2170 IF Rholat(C)/Rho0_4(C)>Rw_rmf OR Rho1_6(C)/Rho0_4(C)>Rw_rmf THEN 2180 IF Rholat(C)/Rho0_4(C)>Rw_rmf THEN Rho(C)=Rholat(C) 2190 IF Rho1_6(C)/Rho0_4(C)>Rw_rmf THEN Rho(C)=Rho1_6(C)

156

2200 IF Rholat(C)/Rho0_4(C)>Rw_rmf AND Rho1_6(C)/Rho0_4(C)>Rw_rmf THEN 2210 Rho(C)=(Rholat(C)+Rho1_6(C))/2 2220 END IF 2230 Rxo=Rho(C)/Rw_rmf 2240 GOTO 2520 2250 END IF 2260 END IF 2270 ! 2280 IF Rw_rmf<1 THEN 2290 IF Lat_rnc>1 OR Rnl_rnc>1 THEN 2300 PRINT TABXY(2,18);"RL>RC REPASE" 2310 BEEP 81.38*15,.1 2320 PAUSE 2330 PRINT TABXY(2,18);" " 2340 END IF 2350 IF (Rlat<>0 AND Lat_rnc<Rw_rmf) OR (R1_6<>0 AND Rnl_rnc<Rw_rmf) THEN 2360 IF Rlat<>0 AND Lat_rnc<Rw_rmf THEN Rho(C)=Rholat(C) 2370 IF R1_6<>0 AND Rnl_rnc<Rw_rmf THEN Rho(C)=Rho1_6(C) 2380 IF (Rlat<>0 AND Lat_rnc<Rw_rmf) AND (R1_6<>0 AND Rnl_rnc<Rw_rmf) THEN 2390 Rho(C)=(Rholat(C)+Rho1_6(C))/2 2400 END IF 2410 Rxo=Rho(C)/Rw_rmf 2420 GOTO 2520 2430 END IF 2440 END IF 2450 ! 2460 IF Tipocalc=2 THEN GOSUB Lineal ! SENTENCIA 6620 2470 IF Tipocalc=3 THEN GOSUB Hiper ! SENTENCIA 6770 2480 ! 2490 IF Rw_rmf>1 AND Rho2/Rho0_4(C)>Rw_rmf THEN Rho2=Rho0_4(C)*Rw_rmf 2500 IF Rw_rmf<1 AND Rho2/Rho0_4(C)<Rw_rmf THEN Rho2=Rho0_4(C)*Rw_rmf 2510 ! 2520 IF Rho(C)<4 THEN Rho(C)=(Rho0_4(C)+Rho1_6(C)+Rholat(C))/Nres 2530 PRINT TABXY(44,4);"--->";INT(Rho(C));" " 2540 ! 2550 GOTO 2620 2560 MOVE 0,Rxo 2570 DRAW 2,Rxo 2580 MOVE 2,Rho(C) 2590 DRAW 0,Rho(C) 2600 WAIT .1 2610 GCLEAR 2620 ! 2630 NEXT C 2640 ! 2650 GOTO 1360 2660 !----------------------------------------------------------------------- 2670 REM Impresion de Resistividades 2680 !----------------------------------------------------------------------- 2690 PRINT CHR$(12) 2700 IMAGE 3X,3D.D,1X,3D.D,4X,3D,5X,3D,5X,3D,5X,3D,6X,3D,6X,3D,6X,3D 2710 ! PRINTER IS 701 2720 FOR C=2 TO Ncap 2730 IF (C MOD 20)=0 THEN 2740 PRINT " ------------|-------|-------|-------|--------|--------|--------|--------"

157

2750 PRINT " PROFUNDIDAD Ra(0.4) Ra(1.6) Ra(LAT) RHO(0.4) RHO(1.6) RHO(LAT) RHO " 2760 PRINT " ------------|-------|-------|-------|--------|--------|--------|--------" 2770 END IF 2780 Rap0_4=Cap(C,R0_4) 2790 Rap1_6=Cap(C,R1_6) 2800 Raplat=Cap(C,Rlat) 2810 IF R0_4=0 THEN Rap0_4=0 2820 IF R1_6=0 THEN Rap1_6=0 2830 IF Rlat=0 THEN Raplat=0 2840 PRINT USING 2700;Cap(C-

1,0),Cap(C,0),Rap0_4,Rap1_6,Raplat,Rho0_4(C),Rho1_6(C),Rholat(C),Rho(C) 2850 NEXT C 2860 PRINTER IS 1 2870 ! 2880 Ea$="" 2890 INPUT "Esta de acuerdo con los valores de resistividad real",Ea$ 2900 IF Ea$="NO" OR Ea$="N" THEN GOTO 730 2910 PRINT CHR$(12) 2920 ! 2930 GOSUB Porosidad ! SENTENCIA 7090 2940 GOSUB Permeab ! SENTENCIA 7680 2950 ! 2960 GOTO 8170 2970 !----------------------------------------------------------------------- 2980 Dibunor: ! Representacion de correcciones para dispositivo Normal 2990 ! por diametro de sondeo y espesor de capa 3000 !----------------------------------------------------------------------- 3010 GCLEAR 3020 ! Correccion del valor relativo adyacente por espesor de capa 3030 X1=5 3040 Y1=45 3050 X2=60 3060 Y2=95 3070 CSIZE (X2-X1)/30 3080 ! 3090 VIEWPORT 0,130,0,100 3100 WINDOW 0,130,0,100 3110 LORG 6 3120 MOVE (X1+X2)/2,Y1 3130 LABEL "ESPESOR CAPA / DISPOSITIVO NORMAL" 3140 MOVE (X1+X2)/2,Y2-(Y2-Y1)/5 3150 LABEL "RHO NORMAL / RHO ADYACENTE" 3160 LDIR PI/2 3170 LORG 4 3180 MOVE X1,(Y1+Y2)/2 3190 LABEL "FACTOR DE CORRECCION" 3200 LDIR 0 3210 LORG 4 3220 FOR L=0 TO 10 3230 MOVE X1+L*(X2-X1)/10,Y2 3240 LABEL L 3250 NEXT L 3260 LORG 2 3270 FOR L=0 TO 8 3280 MOVE X2,Y1+L*(Y2-Y1)/8

158

3290 LABEL L 3300 NEXT L 3310 VIEWPORT X1,X2,Y1,Y2 3320 WINDOW 0,10,0,8 3330 FRAME 3340 LINE TYPE 4 3350 GRID 1,1 3360 LINE TYPE 1 3370 ! 3380 DEALLOCATE Resrel(*) 3390 ALLOCATE Resrel(1:6) 3400 DATA 2.0,5.0,10 ,20 ,50 ,100 3410 RESTORE 3400 3420 READ Resrel(*) 3430 FOR Rr=1 TO 6 3440 F0=1+.07*LOG(Resrel(Rr)) 3450 F1=60*LOG(Resrel(Rr)) 3460 Cte=3 3470 Ete=.5 3480 MOVE 0,F0+F1*EXP(-Cte*0.^Ete) 3490 FOR Er=.2 TO 10 STEP .2 3500 Factor=F0+F1*EXP(-Cte*Er^Ete) 3510 DRAW Er,Factor 3520 NEXT Er 3530 NEXT Rr 3540 ! Correccion por diametro del sondeo 3550 X1=70 3560 Y1=45 3570 X2=125 3580 Y2=95 3590 CSIZE (X2-X1)/30 3600 ! 3610 VIEWPORT 0,130,0,100 3620 WINDOW 0,130,0,100 3630 LORG 6 3640 MOVE (X1+X2)/2,Y1 3650 LABEL "RHO NORMAL / RHO LODO" 3660 MOVE (X1+X2)/2,Y2-(Y2-Y1)/5 3670 LABEL "DIAMETRO DEL SONDEO" 3680 LDIR PI/2 3690 LORG 4 3700 MOVE X1,(Y1+Y2)/2 3710 LABEL "RHO CORREGIDA / RHO LODO" 3720 LDIR 0 3730 LORG 4 3740 FOR L=0 TO 4 3750 MOVE X1+L*(X2-X1)/4,Y2 3760 LABEL 10^L 3770 NEXT L 3780 LORG 2 3790 FOR L=0 TO 3 3800 MOVE X2,Y1+L*(Y2-Y1)/3 3810 LABEL 10^L 3820 NEXT L 3830 VIEWPORT X1,X2,Y1,Y2

159

3840 WINDOW 0,4,0,3 3850 FRAME 3860 GRID 1,1 3870 LINE TYPE 4 3880 FOR L=0 TO 4 3890 FOR Ilog=10^L TO 10^(L+1) STEP 10^L 3900 MOVE LGT(Ilog),0 3910 DRAW LGT(Ilog),3 3920 NEXT Ilog 3930 NEXT L 3940 LINE TYPE 1 3950 ! 3960 DEALLOCATE Diametro(*) 3970 ALLOCATE Diametro(1:6) 3980 DATA 1 ,2 ,4 ,8 ,16,32 3990 RESTORE 3980 4000 READ Diametro(*) 4010 FOR D=1 TO 6 4020 K0=0 4030 K1=.69*EXP(.0175*Diametro(D)) 4040 K2=.044+.02136*Diametro(D)-.000988*Diametro(D)^2+.0000129*Diametro(D)^3 4050 MOVE 0,0 4060 FOR Rr=.2 TO 4 STEP .2 4070 Rrcor=K0+K1*Rr+K2*Rr^2 4080 DRAW Rr,Rrcor 4090 NEXT Rr 4100 NEXT D 4110 ! 4120 RETURN 4130 !----------------------------------------------------------------------- 4140 Normal: ! Correcciones por diametro y espesor para dispositivo Normal 4150 !----------------------------------------------------------------------- 4160 PRINT CHR$(12) 4170 ! 4180 ! Correccion del valor relativo adyacente por espesor de capa 4190 ! 4200 FOR C=1 TO Ncap 4210 PRINT TABXY(10,16);"RHO NORMAL =";INT(Cap(C,Rnor));" " 4220 IF C=1 THEN 4230 Esprel=(Cap(C,0)-X0)/Londisp 4240 Rhoady=Cap(C+1,Rnor) 4250 GOTO 4340 4260 END IF 4270 IF C=Ncap THEN 4280 Esprel=(Cap(C,0)-Cap(C-1,0))/Londisp 4290 Rhoady=Cap(C-1,Rnor) 4300 GOTO 4340 4310 END IF 4320 Esprel=(Cap(C,0)-Cap(C-1,0))/Londisp 4330 Rhoady=(Cap(C-1,Rnor)+Cap(C+1,Rnor))/2 4340 Rhorel=Cap(C,Rnor)/Rhoady 4350 IF Rhorel>=1 THEN 4360 F1=60*LOG(Rhorel) 4370 Factor=1+F1/800+F1*EXP(-3*Esprel^.5) 4380 END IF

160

4390 IF Rhorel<1 THEN 4400 F1=-SQR(1-Rhorel^2) 4410 Factor=1+F1*EXP(-.5*Esprel^1) 4420 END IF 4430 Rhoesp(C)=Cap(C,Rnor)*Factor 4440 PRINT TABXY(10,17);"RHO COR. ESP. =";INT(Rhoesp(C));" " 4450 NEXT C 4460 ! 4470 ! Correccion por diametro de sondeo 4480 ! 4490 FOR C=1 TO Ncap 4500 PRINT TABXY(50,16);"RHO COR. ESP. =";INT(Rhoesp(C));" " 4510 FOR D=1 TO Ndiam 4520 IF Cap(C,0)>=Prof(D-1) AND Cap(C,0)<Prof(D) THEN 4530 Diamet=Diam(D)*(.4/Londisp)/2.54 ! Diametro relativo en pulgadas 4540 END IF 4550 NEXT D 4560 K1=.723*EXP(.0174*Diamet) 4570 K2=.009507+.02136*Diamet-.000987*Diamet^2+.0000129*Diamet^3 4580 Rholodo=Rhoesp(C)/Rm 4590 Rholodocor=10^(K1*LGT(Rholodo)+K2*(LGT(Rholodo))^2) 4600 Rhodiam(C)=Rholodocor*Rm 4610 PRINT TABXY(50,17);"RHO CORREGIDA =";INT(Rhodiam(C));" " 4620 NEXT C 4630 ! 4640 FOR C=1 TO Ncap 4650 IF Rnor=R0_4 THEN Rho0_4(C)=Rhodiam(C) 4660 IF Rnor=R1_6 THEN Rho1_6(C)=Rhodiam(C) 4670 NEXT C 4680 ! 4690 PRINT CHR$(12) 4700 RETURN 4710 !----------------------------------------------------------------------- 4720 Dibulat: ! Representacion de correcciones para dispositivo lateral 4730 ! por diametro de sondeo y espesor de capa 4740 !----------------------------------------------------------------------- 4750 GCLEAR 4760 ! Correccion del valor relativo adyacente por espesor de capa 4770 X1=5 4780 Y1=45 4790 X2=60 4800 Y2=95 4810 CSIZE (X2-X1)/30 4820 ! 4830 VIEWPORT 0,130,0,100 4840 WINDOW 0,130,0,100 4850 LORG 6 4860 MOVE (X1+X2)/2,Y1 4870 LABEL "ESPESOR CAPA / DISPOSITIVO LATERAL" 4880 MOVE (X1+X2)/2,Y2-(Y2-Y1)/5 4890 LABEL "RHO LATERAL / RHO ADYACENTE" 4900 LDIR PI/2 4910 LORG 4 4920 MOVE X1,(Y1+Y2)/2 4930 LABEL "FACTOR DE CORRECCION"

161

4940 LDIR 0 4950 LORG 4 4960 FOR L=0 TO 5 4970 L2=L*.4 4980 MOVE X1+L*(X2-X1)/5,Y2 4990 LABEL L2 5000 NEXT L 5010 LORG 2 5020 FOR L=0 TO 8 5030 MOVE X2,Y1+L*(Y2-Y1)/8 5040 LABEL L 5050 NEXT L 5060 VIEWPORT X1,X2,Y1,Y2 5070 WINDOW 0,2,0,8 5080 FRAME 5090 GRID 1,10,1,1 5100 LINE TYPE 4 5110 GRID .2,1,0,0 5120 LINE TYPE 1 5130 ! 5140 DEALLOCATE Resrel(*) 5150 ALLOCATE Resrel(1:6) 5160 DATA 2.0,2.5,2.8,3.2,3.5,4.0 5170 RESTORE 5160 5180 READ Resrel(*) 5190 FOR Rr=1 TO 6 5200 K0=1 5210 K1=.156*Resrel(Rr)^3 5220 K2=-.050*Resrel(Rr)^4.4 5230 K3=.008*Resrel(Rr)^6 5240 F0=.91 5250 Cte=.09+K1+K2+K3 5260 Ete=.079*Cte^.419 5270 MOVE 0,1 5280 FOR Er=.02 TO 2 STEP .02 5290 IF Er<=1 THEN Factor=K0+K1*Er+K2*Er^2+K3*Er^3 5300 IF Er>1 THEN 5310 Xer=(Er-1.0151)*(1.5*PI/.4) 5320 Factor=F0+Cte*SIN(Xer)/Xer*EXP(-Ete*Xer^2) 5330 END IF 5340 DRAW Er,Factor 5350 NEXT Er 5360 NEXT Rr 5370 ! Correccion por diametro del sondeo 5380 X1=70 5390 Y1=45 5400 X2=125 5410 Y2=95 5420 CSIZE (X2-X1)/30 5430 ! 5440 VIEWPORT 0,130,0,100 5450 WINDOW 0,130,0,100 5460 LORG 6 5470 MOVE (X1+X2)/2,Y1 5480 LABEL "RHO LATERAL / RHO LODO"

162

5490 MOVE (X1+X2)/2,Y2-(Y2-Y1)/5 5500 LABEL "DIAMETRO DEL SONDEO" 5510 LDIR PI/2 5520 LORG 4 5530 MOVE X1,(Y1+Y2)/2 5540 LABEL "RHO CORREGIDA / RHO LODO" 5550 LDIR 0 5560 LORG 4 5570 FOR L=0 TO 4 5580 MOVE X1+L*(X2-X1)/4,Y2 5590 LABEL 10^L 5600 NEXT L 5610 LORG 2 5620 FOR L=0 TO 3 5630 MOVE X2,Y1+L*(Y2-Y1)/3 5640 LABEL 10^L 5650 NEXT L 5660 VIEWPORT X1,X2,Y1,Y2 5670 WINDOW 0,4,0,3 5680 FRAME 5690 GRID 1,1 5700 LINE TYPE 4 5710 FOR L=0 TO 4 5720 FOR Ilog=10^L TO 10^(L+1) STEP 10^L 5730 MOVE LGT(Ilog),0 5740 DRAW LGT(Ilog),3 5750 NEXT Ilog 5760 NEXT L 5770 LINE TYPE 1 5780 ! 5790 DEALLOCATE Diametro(*) 5800 ALLOCATE Diametro(1:6) 5810 DATA 8 ,12,18,26,38,60 5820 RESTORE 5810 5830 READ Diametro(*) 5840 FOR D=1 TO 6 5850 K0=0 5860 K1=1.10-.04*LOG(Diametro(D)) 5870 K2=-(.08+.001*Diametro(D)^1.1) 5880 K4=.001+.0002*Diametro(D)^1.5 5890 MOVE 0,0 5900 FOR Rr=.2 TO 4 STEP .2 5910 Rrcor=K0+K1*Rr+K2*Rr^2+K4*Rr^4 5920 DRAW Rr,Rrcor 5930 NEXT Rr 5940 NEXT D 5950 ! 5960 RETURN 5970 !----------------------------------------------------------------------- 5980 Lateral: ! Correcciones por diametro y espesor para dispositivo Lateral 5990 !----------------------------------------------------------------------- 6000 PRINT CHR$(12) 6010 Londisp=1.8 6020 ! 6030 ! Correccion del valor relativo adyacente por espesor de capa

163

6040 ! 6050 FOR C=1 TO Ncap 6060 PRINT TABXY(10,16);"RHO LATERAL =";INT(Cap(C,Rlat));" " 6070 IF C=1 THEN 6080 Esprel=(Cap(C,0)-X0)/Londisp 6090 Rhoady=Cap(C+1,Rlat) 6100 GOTO 6190 6110 END IF 6120 IF C=Ncap THEN 6130 Esprel=(Cap(C,0)-Cap(C-1,0))/Londisp 6140 Rhoady=Cap(C-1,Rlat) 6150 GOTO 6190 6160 END IF 6170 Esprel=(Cap(C,0)-Cap(C-1,0))/Londisp 6180 Rhoady=(Cap(C-1,Rlat)+Cap(C+1,Rlat))/2 6190 Rhorel=Cap(C,Rlat)/Rhoady 6200 Signo=SGN(Rhorel-1) 6210 IF Rhorel<1 THEN R2rel=2*(1-.4*Rhorel^1.5) 6220 IF Rhorel>=1 THEN R2rel=Rhorel 6230 K0=1 6240 K1=.156*R2rel^3*Signo 6250 K2=-.050*R2rel^3*Signo ! ^4.4 6260 K3=.008*R2rel^3*Signo ! ^6 6270 Cte=K1+K2+K3 6280 Ete=.079*ABS(Cte)^.419 6290 IF Esprel<=1 THEN Factor=K0+K1*Esprel+K2*Esprel^2+K3*Esprel^3 6300 IF Esprel>1 THEN 6310 Ekis=(Esprel-1.0151)*(1.5*PI/.4) 6320 Factor=1+Cte*SIN(Ekis)/Ekis*EXP(-Ete*Ekis^2) 6330 END IF 6340 Rhoesp(C)=Cap(C,Rlat)*Factor 6350 PRINT TABXY(10,17);"RHO COR. ESP. =";INT(Rhoesp(C));" " 6360 IF Rhoesp(C)>4*Cap(C,Rlat) THEN Rhoesp(C)=4*Cap(C,Rlat) 6370 NEXT C 6380 ! 6390 ! Correccion por diametro de sondeo 6400 ! 6410 FOR C=1 TO Ncap 6420 PRINT TABXY(50,16);"RHO COR. ESP. =";INT(Rhoesp(C));" " 6430 FOR D=1 TO Ndiam 6440 IF Cap(C,0)>=Prof(D-1) AND Cap(C,0)<Prof(D) THEN 6450 Diamet=(Diam(D)/2.54)*(5.69/Londisp) ! Diametro relativo en pulgadas 6460 END IF 6470 NEXT D 6480 K0=0 6490 K1=1.10-.04*LOG(Diamet) 6500 K2=-(.08+.001*Diamet^1.1) 6510 K4=.001+.0002*Diamet^1.5 6520 Rholodo=Rhoesp(C)/Rm 6530 Rholodocor=10^(K1*LGT(Rholodo)+K2*(LGT(Rholodo))^2+K4*(LGT(Rholodo))^4) 6540 Rhodiam(C)=Rholodocor*Rm 6550 PRINT TABXY(50,17);"RHO CORREGIDA =";INT(Rhodiam(C));" " 6560 NEXT C 6570 ! 6580 FOR C=1 TO Ncap

164

6590 Rholat(C)=Rhodiam(C) 6600 NEXT C 6610 ! 6620 PRINT CHR$(12) 6630 RETURN 6640 !----------------------------------------------------------------------- 6650 Lineal: ! Calculo lineal de resistividad real 6660 !----------------------------------------------------------------------- 6670 Sumdin=Ldisp(R0_4)+Ldisp(R1_6)+Ldisp(Rlat) 6680 Sumrho=Rho0_4(C)+Rho1_6(C)+Rholat(C) 6690 Sumdin2=Ldisp(R0_4)^2+Ldisp(R1_6)^2+Ldisp(Rlat)^2 6700 Sumdinrho=.4*Rho0_4(C)+1.6*Rho1_6(C)+1.8*Rholat(C) 6710 Kr0=(Sumrho*Sumdin2-Sumdin*Sumdinrho)/(Nres*Sumdin2-Sumdin*Sumdin) 6720 Kr1=(Nres*Sumdinrho-Sumrho*Sumdin)/(Nres*Sumdin2-Sumdin*Sumdin) 6730 Rho1=Kr0 6740 Rho2=Kr0+Kr1*2 ! Rho1*Rw_rmf 6750 Rho(C)=Rho2 6760 Rxo=Rho1 6770 ! 6780 RETURN 6790 !----------------------------------------------------------------------- 6800 Hiper: ! Calculo hiperbolico de resistividad real 6810 !----------------------------------------------------------------------- 6820 E=EXP(1) 6830 Erro1=Rho0_4(C) 6840 FOR Rho1=Rho0_4(C) TO INT(Rho0_4(C)/Rw(C)/Rmf) STEP -1 6850 Erroant1=Erro1 6860 Rho2=Rho1*Rw_rmf 6870 Erro2=Rho1_6(C) 6880 FOR J=1 TO 100 6890 Erroant2=Erro2 6900 Cte=J*.05 6910 IF R1_6<>0 THEN 6920 Heta=Cte*1.6-E 6930 Tanh=(EXP(Heta)-EXP(-Heta))/(EXP(Heta)+EXP(-Heta)) 6940 Rhoprov=(Rho2+Rho1)/2+(Rho2-Rho1)/2*Tanh 6950 Erro1_6=ABS(Rhoprov-Rho1_6(C)) 6960 END IF 6970 IF Rlat<>0 THEN 6980 Heta=Cte*1.8-E 6990 Tanh=(EXP(Heta)-EXP(-Heta))/(EXP(Heta)+EXP(-Heta)) 7000 Rhoprov=(Rho2+Rho1)/2+(Rho2-Rho1)/2*Tanh 7010 Errolat=ABS(Rhoprov-Rholat(C)) 7020 END IF 7030 Erro2=(Errolat+Erro1_6)/2 7040 IF Erro2>Erroant2 THEN GOTO 7060 7050 NEXT J 7060 Heta=Cte*.4-E 7070 Tanh=(EXP(Heta)-EXP(-Heta))/(EXP(Heta)+EXP(-Heta)) 7080 Rhoprov=(Rho2+Rho1)/2+(Rho2-Rho1)/2*Tanh 7090 Erro1=ABS(Rhoprov-Rho0_4(C)) 7100 IF Erro1>Erroant1 THEN GOTO 7120 7110 NEXT Rho1 7120 ! 7130 Rho(C)=Rho2

165

7140 Rxo=Rho1 7150 ! 7160 RETURN 7170 !----------------------------------------------------------------------- 7180 Porosidad: ! Calculo de la Porosidad 7190 !----------------------------------------------------------------------- 7200 GCLEAR 7210 VIEWPORT 0,130,0,100 7220 WINDOW 0,130,0,100 7230 CSIZE 5,.6 7240 LORG 5 7250 MOVE 65,5 7260 LABEL "RESISTIVIDAD" 7270 LDIR PI/2 7280 MOVE 15,50 7290 LABEL "POROSIDAD" 7300 LDIR 0 7310 VIEWPORT 20,110,10,90 7320 WINDOW 0,1000,0,100 7330 FRAME 7340 LINE TYPE 4 7350 GRID 100,10 7360 LINE TYPE 1 7370 ! 7380 ! Humblet , Archie , Medio , Charmichael 7390 DATA 0.62 , 1.00 , 0.90 , 0.81 7400 RESTORE 7390 7410 READ Ajuste(*) 7420 DATA 2.15 , 2.00 , 1.60 , 1.37 7430 RESTORE 7420 7440 READ Cemen(*) 7450 ! 7460 IMAGE 3A,1X,D.DD,1X,5A,1X,D.DD,1X,4A,1X,D 7470 LORG 3 7480 FOR J1=1 TO 4 7490 Fa=Ajuste(J1) 7500 Fc=Cemen(J1) 7510 MOVE 110,98-J1*10 7520 LABEL USING 7460;"F =",Fa,"/ FI^",Fc,"--->",J1 7530 Ragua=10000/400 7540 MOVE 10,100*(Fa*Ragua/10)^(1/Fc) 7550 FOR J2=10 TO 1000 STEP 10 7560 Resis=J2 7570 DRAW Resis,100*(Fa*Ragua/Resis)^(1/Fc) 7580 NEXT J2 7590 NEXT J1 7600 Cf=3 7610 INPUT "Coeficientes del Factor de Formacion",Cf 7620 IF Cf<1 OR Cf>4 THEN GOTO 7600 7630 ! 7640 Fa=Ajuste(Cf) ! 0.9 7650 Fc=Cemen(Cf) ! 1.6 7660 FOR C=2 TO Ncap 7670 Por(C)=(Fa*Rw(C)/Rho(C))^(1/Fc) 7680 IF Por(C)>.50 THEN Por(C)=.50

166

7690 Por2dec=INT(Por(C)*100+.5)/100 7700 PRINT TABXY(25,2);"Resistividad";INT(Rho(C));" Porosidad";Por2dec;" " 7710 NEXT C 7720 ! 7730 GCLEAR 7740 PRINT CHR$(12) 7750 RETURN 7760 !----------------------------------------------------------------------- 7770 Permeab: ! Calculo de la Permeabilidad 7780 !----------------------------------------------------------------------- 7790 GCLEAR 7800 VIEWPORT 0,130,0,100 7810 WINDOW 0,130,0,100 7820 CSIZE 5,.6 7830 LORG 5 7840 MOVE 65,5 7850 LABEL "POROSIDAD" 7860 LDIR PI/2 7870 MOVE 15,50 7880 LABEL "PERMEABILIDAD" 7890 LDIR 0 7900 VIEWPORT 20,110,10,90 7910 WINDOW 0,.50,-8,1 7920 FRAME 7930 LINE TYPE 4 7940 GRID .1,1 7950 LINE TYPE 1 7960 ! 7970 MOVE .03,LGT((13*(1-.03)^4*.03)^20) 7980 FOR P=3 TO 52 7990 Poros=P*.01 8000 DRAW Poros,LGT((13*(1-Poros)^4*Poros)^20) 8010 NEXT P 8020 ! 8030 Permin=0 8040 Permax=.001 8050 FOR C=1 TO Ncap 8060 Per(C)=(13*(1-Por(C))^4*Por(C))^20 8070 Por2dec=INT(Por(C)*100+.5)/100 8080 PRINT TABXY(20,2);"Porosidad";Por2dec;" Permeabilidad";Per(C);" " 8090 IF Per(C)>Permax THEN Permax=Per(C) 8100 IF Per(C)<Permin THEN Permin=Per(C) 8110 NEXT C 8120 ! 8130 GCLEAR 8140 PRINT CHR$(12) 8150 RETURN 8160 !----------------------------------------------------------------------- 8170 REM Sale del programa con el calculo de extremos 8180 !----------------------------------------------------------------------- 8190 Rhomax=Rho(1) 8200 Rhomin=Rho(1) 8210 FOR C=1 TO Ncap 8220 IF Rho(C)>Rhomax THEN Rhomax=Rho(C) 8230 IF Rho(C)<Rhomin THEN Rhomin=Rho(C)

167

8240 NEXT C 8250 ! 8260 SUBEND 8270 !-----------------------------------------------------------------------

168

10 !----------------------------------------------------------------------- 20 REM "LITOLOGICA" 30 REM PROGRAMA PARA INTERPRETACION LITOLOGICA DE DIAGRAFIAS 40 REM A PARTIR DE LOS VALORES DE CAPAS PARAMETRICAS 50 !----------------------------------------------------------------------- 60 PRINTER IS 1 70 PRINT CHR$(12) 80 CONTROL 2,0;1 90 ! 100 GRAPHICS ON 110 GINIT 120 GCLEAR 130 ! 140 FOR F=0 TO 10 STEP 2 150 VIEWPORT 0+F,133-F,10+F,100-F 160 FRAME 170 NEXT F 180 ! 190 PRINT TABXY(15,9);" -LITOLOGICA- " 200 PRINT TABXY(15,11);" PROGRAMA PARA INTERPRETACION DE DIAGRAFIAS " 210 PRINT TABXY(15,13);" A PARTIR DE LOS VALORES DE CAPAS PARAMETRICAS " 220 CALL Salir 230 GCLEAR 240 PRINT CHR$(12) 250 ! 260 Np=3 270 Nlit=10 280 ALLOCATE Lit$(1:Nlit)[13],Litabr$(1:Nlit)[7] 290 ALLOCATE Parmin(1:Np),Parmax(1:Np) 300 ALLOCATE Rango(1:Nlit,1:Np,0:1) 310 ALLOCATE Ran0rel1(1:10),Ran1rel1(1:10),Ran0rel3(1:10),Ran1rel3(1:10) 320 ALLOCATE INTEGER Clit(1:Nlit),INTEGER Litc(0:100) 330 ALLOCATE Lit_des$(1:Nlit)[7],INTEGER Cod_des(1:Nlit) 340 Ncap=100 350 ALLOCATE Col(1:Ncap,0:Np),Par$(0:Np)[7],Min(0:Np),Max(0:Np) 360 ALLOCATE INTEGER Cod(1:Ncap) 370 Ncor=100 380 ALLOCATE Col2(1:Ncor,0:Np) 390 ALLOCATE INTEGER Dist(1:Ncor,1:Ncor) 400 ALLOCATE Distan(1:20),Angulo(1:20),INTEGER Comp(1:20) 410 Ncaplit=100 420 ALLOCATE Caplit(1:Ncaplit),Codlit(1:Ncaplit) 430 ! 440 Lectura=0 450 Grabacion=0 460 GOTO 620 470 !----------------------------------------------------------------------- 480 REM Flujos del programa 490 !----------------------------------------------------------------------- 500 BEEP 510 ON KEY 5 LABEL "LECTURA DATOS " GOTO 620 ! Leecapas 1020 520 ON KEY 6 LABEL "CLAS. DIRECTA " GOSUB Directa ! 1590 530 ON KEY 1 LABEL " AUTOMATICA " GOSUB Automatica ! 3820 540 ON KEY 7 LABEL " CODIGOS LITO." GOSUB Codigos ! 7190 550 ON KEY 2 LABEL " COLUMNA FINAL" GOSUB Columna ! 8410

169

560 ON KEY 8 LABEL " VIS. COLUMNA " GOSUB Pantalla ! 8680 570 ON KEY 3 LABEL "GRABAR COLUMNA" GOTO 800 ! Grabafich 10850 580 ON KEY 4 LABEL " TERMINAR " CALL Salir 590 GOTO 510 600 OFF KEY 610 !------------------------------------------------------------------------ 620 REM Entrada de datos 630 !------------------------------------------------------------------------ 640 OFF KEY 650 PRINT CHR$(12) 660 ! 670 IF Lectura=1 AND Proceso>=1 AND Grabacion=0 THEN 680 PRINT "OJO, NO HA GRABADO LOS RESULTADOS OBTENIDOS" 690 BEEP 700 INPUT "Quiere continuar",Qcon1$ 710 IF Qcon1$<>"SI" OR Qcon1$<>"S" THEN GOTO 770 720 END IF 730 ! 740 GOSUB Leecapas 750 ! 760 Lectura=1 770 PRINT CHR$(12) 780 GOTO 490 790 !------------------------------------------------------------------------ 800 REM Grabacion del fichero corregido 810 !------------------------------------------------------------------------ 820 OFF KEY 830 PRINT CHR$(12) 840 ! 850 IF Proceso=4 AND Percent=100 THEN GOTO 970 860 IF Proceso=0 THEN PRINT TABXY(25,10);"ANTES DEBE REALIZAR INTERPRETACION" 870 IF Proceso=1 OR Proceso=2 THEN PRINT TABXY(20,10);"ANTES DEBE ASIGNAR LOS

CODIGOS LITOLOGICOS" 880 IF Proceso=3 THEN PRINT TABXY(25,10);"ANTES DEBE CREAR COLUMNA DEFINITIVA" 890 IF Proceso=4 AND Percent<100 THEN 900 PRINT TABXY(20,10);"Se han definido el";Percent;"por ciento de las capas" 910 INPUT "Quiere grabar esa columna obtenida",Qgrab$ 920 IF Qgrab$="SI" OR Qgrab$="S" THEN GOTO 970 930 END IF 940 BEEP 950 GOTO 1010 960 ! 970 Nomlit$=Npref$&"_LIT" 980 CALL Grabafich(Nomlit$,Ncaplit,Caplit(*),Codlit(*)) 990 Grabacion=1 1000 ! 1010 PRINT CHR$(12) 1020 GOTO 490 1030 !------------------------------------------------------------------------ 1040 Leecapas: ! 1050 !----------------------------------------------------------------------- 1060 GOTO 1170 1070 ! 1080 BEEP 1090 PRINT CHR$(12)

170

1100 IF ERRN=56 THEN PRINT " El fichero ";Nn$;" no se encuentra en ese disco" 1110 PRINT 1120 PRINT "Coloque el disco con los datos de la diagrafia en disquetera [1]" 1130 PRINT TABXY(40,18);"Cuando lo haya hecho, pulse |CONT|" 1140 PAUSE 1150 PRINT CHR$(12) 1160 ! 1170 ON ERROR GOTO 1080 1180 MASS STORAGE IS ":HP 8290X,700,1" 1190 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN ESE DISCO" 1200 CAT 1210 BEEP 1220 INPUT "Nombre para ficheros (<5 caracteres) del sondeo (Ej: ARMU5)",Npref$ 1230 IF LEN(Npref$)=0 OR LEN(Npref$)>6 THEN GOTO 1210 1240 Nn$=Npref$&"_COL" 1250 PRINT CHR$(12) 1260 PRINT TABXY(15,2);"Realizando la lectura de los datos, NO interrumpir" 1270 ASSIGN @Pat_0 TO Nn$ 1280 OFF ERROR 1290 ASSIGN @Pat_0 TO Nn$ 1300 ENTER @Pat_0;Par$(*) 1310 ENTER @Pat_0;Min(*) 1320 ENTER @Pat_0;Max(*) 1330 X0=Min(0) ! primer min 1340 Ncap=Max(0) ! primer max 1350 DEALLOCATE Col(*) 1360 ALLOCATE Col(1:Ncap,0:3) 1370 ENTER @Pat_0;Col(*) 1380 ASSIGN @Pat_0 TO * 1390 MASS STORAGE IS ":HP 8290X,700,0" 1400 ! 1410 FOR P=1 TO Np 1420 Parmin(P)=Min(P) 1430 Parmax(P)=Max(P) 1440 NEXT P 1450 ! 1460 PRINT CHR$(12) 1470 PRINT TABXY(24,5);"Registro: ";Nn$ 1480 PRINT TABXY(20,7);"NÇmero de capas ------";Ncap 1490 PRINT TABXY(20,8);"Profundidad inicial --";X0 1500 PRINT TABXY(20,9);"Profundidad final ----";Col(Ncap,0) 1510 FOR R=1 TO 3 1520 PRINT TABXY(20,9+R);"Parametro";R;"---------- ";Par$(R);"

(";VAL$(INT(Parmin(R)));"->";VAL$(INT(Parmax(R)+.5));")" 1530 NEXT R 1540 ! 1550 CALL Salir 1560 Proceso=0 1570 RETURN 1580 !----------------------------------------------------------------------- 1590 Directa: ! Litologias y rangos predeterminados 1600 !------------------------------------------------------------------------ 1610 OFF KEY 1620 PRINT CHR$(12) 1630 !

171

1640 Nlit=14 1650 Lonlit=17 1660 DEALLOCATE Lit$(*),Litabr$(*),Clit(*) 1670 ALLOCATE Lit$(0:Nlit)[Lonlit],Litabr$(0:Nlit)[7],INTEGER Clit(0:Nlit) 1680 ! Codigos de dos numeros: NN para puras y NM para mixtas 1690 Lit$(0)=" " ! TUBERIA 1700 Litabr$(0)=" " 1710 Clit(0)=0 1720 Lit$(1)="GRAVAS" ! PURA (1) 1730 Litabr$(1)="GRAVAS" 1740 Clit(1)=11 1750 Lit$(2)="ARENAS" ! PURA (2) 1760 Litabr$(2)="ARENAS" 1770 Clit(2)=22 1780 Lit$(3)="LIMOS" ! PURA (3) 1790 Litabr$(3)="LIMOS" 1800 Clit(3)=33 1810 Lit$(4)="GRAVAS ARCILLOSAS" ! MIXTA 1820 Litabr$(4)="GRA-ARC" 1830 Clit(4)=14 1840 Lit$(5)="ARENAS ARCILLOSAS" ! MIXTA 1850 Litabr$(5)="ARE-ARC" 1860 Clit(5)=24 1870 Lit$(6)="ARCILLAS ARENOSAS" ! MIXTA 1880 Litabr$(6)="ARC-ARE" 1890 Clit(6)=42 1900 Lit$(7)="ARCILLAS" ! PURA (4) 1910 Litabr$(7)="ARCILLA" 1920 Clit(7)=44 1930 Lit$(8)="MARGAS" ! MIXTA 1940 Litabr$(8)="MARGAS" 1950 Clit(8)=45 1960 Lit$(9)="CALIZAS" ! PURA (5) 1970 Litabr$(9)="CALIZAS" 1980 Clit(9)=55 1990 Lit$(10)="YESOS" ! PURA (6) 2000 Litabr$(10)="YESOS" 2010 Clit(10)=66 2020 Lit$(11)="MATERIA ORGANICA" ! PURA 2030 Litabr$(11)="MAT-ORG" 2040 Clit(11)=77 2050 Lit$(12)="ARENAS RADIACT. " ! MIXTA EQUIVALENTE GRANITO ALTERADO 2060 Litabr$(12)="ARE-RAD" 2070 Clit(12)=84 2080 Lit$(13)="GRANITO" ! PURA 2090 Litabr$(13)="GRANITO" 2100 Clit(13)=88 2110 Lit$(14)="OTROS" ! A ELEGIR 2120 Litabr$(14)="OTROS" 2130 Clit(14)=99 2140 ! 2150 PRINT CHR$(12) 2160 FOR L=1 TO Nlit 2170 PRINT TABXY(30,L+2);L;" : ";Lit$(L) 2180 NEXT L

172

2190 Cor1=0 2200 INPUT "Correcto ? Si(-0-) , No(-Cual-)",Cor1 2210 IF Cor1<0 OR Cor1>10 THEN GOTO 2200 2220 IF Cor1=0 THEN GOTO 2260 2230 INPUT "Nueva litologia ",Lit$(Cor1) 2240 Litabr$(Cor1)=Lit$(Cor1)[1,6] 2250 GOTO 2150 2260 PRINT CHR$(12) 2270 !------------------------------------------------------------------------ 2280 REM Parametros de las litologias 2290 !------------------------------------------------------------------------ 2300 DEALLOCATE Ran0rel1(*),Ran1rel1(*),Ran0rel3(*),Ran1rel3(*) 2310 ALLOCATE Ran0rel1(1:Nlit),Ran1rel1(1:Nlit),Ran0rel3(1:Nlit),Ran1rel3(1:Nlit) 2320 DEALLOCATE Rango(*) 2330 ALLOCATE Rango(1:Nlit,1:Np,0:1) 2340 ! 2350 ! GRAVAS,AREN,LIMO,GRARC,ARARC,ARCAR,ARCI,MARG,CALI,YESO,MORG,G-ALT,GRAN,OTROS 2360 DATA 0 , 0 , 0 , 20 , 20 , 20 , 20 , 30 , -1 , -1 ,100 , 55 ,101 , 300 2370 RESTORE 2350 ! Limites inferiores arcillosidad 2380 READ Ran0rel1(*) ! 2390 DATA 20 , 20 , 20 , 45 , 50 , 95 ,100 , 60 , 0 , 0 ,200 , 120 ,220 , 400 2400 RESTORE 2390 ! Limites superiores arcillosidad 2410 READ Ran1rel1(*) ! 2420 DATA 60 , 20 , 0 , 50 , 5 , 5 , 0 , -1 ,100 , -1 , 0 , 10 , 60 , 200 2430 RESTORE 2420 ! Limites inferiores resistividad 2440 READ Ran0rel3(*) ! 2450 DATA 100 , 60 , 20 , 80 , 50 , 30 , 5 , 0 ,150 , 0 , 22 , 60 ,130 , 300 2460 RESTORE 2450 ! Limites superiores resistividad 2470 READ Ran1rel3(*) ! 2480 ! 2490 IF Lit$(Nlit)<>"OTROS" THEN 2500 INPUT "Limite inferior de arcillosidad para nueva litologia",Ran0rel1(14) 2510 INPUT "Limite superior de arcillosidad para nueva litologia",Ran1rel1(14) 2520 INPUT "Limite inferior de resistividad para nueva litologia",Ran0rel3(14) 2530 INPUT "Limite superior de resistividad para nueva litologia",Ran1rel3(14) 2540 END IF 2550 ! 2560 FOR L=1 TO Nlit 2570 Rango(L,1,0)=((Ran0rel1(L)/100*(100-Parmin(1))+Parmin(1))) 2580 Rango(L,3,0)=((Ran0rel3(L)/100*(Parmax(3)-Parmin(3))+Parmin(3))) 2590 Rango(L,1,1)=((Ran1rel1(L)/100*(100-Parmin(1))+Parmin(1))) 2600 Rango(L,3,1)=((Ran1rel3(L)/100*(Parmax(3)-Parmin(3))+Parmin(3))) 2610 NEXT L 2620 !------------------------------------------------------------------------ 2630 REM Correccion de rangos en pantalla 2640 !------------------------------------------------------------------------ 2650 PRINT CHR$(12) 2660 FOR L=1 TO Nlit 2670 PRINT TABXY(1,L+2);Lit$(L) 2680 NEXT L 2690 ! 2700 Xpos(1)=30 2710 Xpos(3)=83 2720 Ysup=92 2730 Yinf=92-Nlit*4

173

2740 ! 2750 GINIT 2760 CSIZE 3.5 2770 VIEWPORT 0,133,0,100 2780 WINDOW 0,133,0,100 2790 FOR P=1 TO 3 STEP 2 2800 MOVE Xpos(P)+25,98 2810 LORG 5 2820 LABEL Par$(P) 2830 MOVE Xpos(P),94 2840 LORG 2 2850 LABEL INT(Parmin(P)) 2860 MOVE Xpos(P)+50,94 2870 LORG 8 2880 LABEL INT(Parmax(P)+.5) 2890 NEXT P 2900 LORG 3 2910 MOVE 30,35 2920 LABEL "PULSE |A| O |R| PARA ARCILLOSIDAD O RESISTIVIDAD" 2930 MOVE 30,30 2940 LABEL "UTILICE LAS FLECHAS PARA SITUARSE EN UN RANGO" 2950 MOVE 30,25 2960 LABEL "PULSE |+| O |-| PARA MODIFICAR RANGO SELECCIONADO" 2970 MOVE 30,20 2980 LABEL "PARA SALIR PULSE |CONT|" 2990 ! 3000 LORG 5 3010 CSIZE 3 3020 FOR Pcor=1 TO 3 STEP 2 3030 VIEWPORT Xpos(Pcor),Xpos(Pcor)+50,Yinf,Ysup 3040 WINDOW Parmin(Pcor),Parmax(Pcor),Nlit,0 3050 FRAME 3060 FOR Lcor=1 TO Nlit 3070 GOSUB Dib_rango 3080 NEXT Lcor 3090 NEXT Pcor 3100 ! 3110 Lcor=1 3120 Pcor=2 3130 Rcor=0 3140 Incr(1)=INT((Parmax(1)-Parmin(1))/50)+1 3150 Incr(3)=INT((Parmax(3)-Parmin(3))/50)+1 3160 ! 3170 ON KBD GOTO 3180 ! ALL 3180 Tecla$=KBD$ 3190 ! 3200 PEN -1 3210 MOVE Rango(Lcor,Pcor,Rcor),Lcor-.5 3220 LABEL "<>" 3230 ! 3240 IF Tecla$="ÿC" THEN GOTO 3490 ! CONT 3250 IF Tecla$="A" THEN Pcor=1 ! ARCILLOSIDAD 3260 IF Tecla$="R" THEN Pcor=3 ! RESISTIVIDAD 3270 VIEWPORT Xpos(Pcor),Xpos(Pcor)+50,Yinf,Ysup 3280 WINDOW Parmin(Pcor),Parmax(Pcor),Nlit,0

174

3290 IF Tecla$="ÿV" THEN Lcor=Lcor+1 ! BAJA LITOLOGIA 3300 IF Tecla$="ÿ^" THEN Lcor=Lcor-1 ! SUBE LITOLOGIA 3310 IF Lcor>Nlit THEN Lcor=1 ! 3320 IF Lcor<1 THEN Lcor=Nlit ! 3330 IF Tecla$="ÿ<" THEN Rcor=0 ! RANGO INFERIOR 3340 IF Tecla$="ÿ>" THEN Rcor=1 ! RANGO SUPERIOR 3350 IF Tecla$="-" OR Tecla$="+" THEN ! DESPLAZA RANGO 3360 PEN -1 3370 GOSUB Dib_rango 3380 IF Tecla$="-" THEN Rango(Lcor,Pcor,Rcor)=Rango(Lcor,Pcor,Rcor)-Incr(Pcor) 3390 IF Tecla$="+" THEN Rango(Lcor,Pcor,Rcor)=Rango(Lcor,Pcor,Rcor)+Incr(Pcor) 3400 PEN 1 3410 GOSUB Dib_rango 3420 END IF 3430 ! 3440 PEN 1 3450 MOVE Rango(Lcor,Pcor,Rcor),Lcor-.5 3460 LABEL "<>" 3470 GOTO 3170 3480 ! 3490 OFF KBD 3500 GCLEAR 3510 PRINT CHR$(12) 3520 ! 3530 GOTO 3610 3540 Dib_rango: ! 3550 MOVE Rango(Lcor,Pcor,0),Lcor-.2 3560 DRAW Rango(Lcor,Pcor,0),Lcor-.8 3570 DRAW Rango(Lcor,Pcor,1),Lcor-.8 3580 DRAW Rango(Lcor,Pcor,1),Lcor-.2 3590 DRAW Rango(Lcor,Pcor,0),Lcor-.2 3600 RETURN 3610 ! 3620 PRINT USING "18A,#";" " 3630 FOR P=1 TO 3 STEP 2 3640 PRINT USING "18A,#";Par$(P) 3650 NEXT P 3660 PRINT 3670 FOR L=1 TO Nlit 3680 PRINT 3690 PRINT USING "18A,3X,#";Lit$(L) 3700 FOR P=1 TO 3 STEP 2 3710 IF Rango(L,P,1)>999 THEN Rango(L,P,1)=999 3720 PRINT USING "3D,1A,3D,6X,#";Rango(L,P,0),":",Rango(L,P,1) 3730 NEXT P 3740 NEXT L 3750 INPUT "Esta de acuerdo con los rangos de cada litologia",Cor2$ 3760 IF Cor2$="NO" OR Cor2$="N" OR Cor2$="no" OR Cor2$="n" THEN GOTO 3640 3770 PRINT CHR$(12) 3780 ! 3790 Proceso=1 3800 GOSUB Repre 3810 RETURN 3820 !------------------------------------------------------------------------ 3830 Automatica: !

175

3840 !------------------------------------------------------------------------ 3850 OFF KEY 3860 PRINT CHR$(12) 3870 Proceso=2 3880 ! 3890 Ncor=Ncap 3900 DEALLOCATE Col2(*) 3910 ALLOCATE Col2(1:Ncor,1:Np) 3920 FOR P=1 TO 3 STEP 2 3930 FOR C=1 TO Ncor 3940 Col2(C,P)=Col(C,P) 3950 IF Col2(C,P)>300 THEN Col2(C,P)=300 3960 NEXT C 3970 NEXT P 3980 T0=(TIMEDATE MOD 86400) 3990 ! 4000 PRINT CHR$(12) 4010 Diagonal=SQR((Parmax(1)-Parmin(1))^2+(Parmax(3)-Parmin(3))^2) 4020 FOR K=1 TO 4 4030 Distref=(Diagonal/300)*K ! PARA 100*100 GRUPOS DESDE DIST=.5 HASTA 1.5 4040 PRINT TABXY(17,9);"ELIMINACION DE PARES BAJO UN NIVEL DE DISTANCIA" 4050 PRINT TABXY(35,10);Ncor;"capas " 4060 FOR I=1 TO Ncor 4070 FOR J=I+1 TO Ncor 4080 D2=Col2(I,1)-Col2(J,1) 4090 D3=Col2(I,3)-Col2(J,3) 4100 Distancia=SQR(D2*D2+D3*D3) 4110 IF Distancia<Distref THEN 4120 Col2(I,1)=(Col2(I,1)+Col2(J,1))/2 ! AGRUPA CAPAS 4130 Col2(I,3)=(Col2(I,3)+Col2(J,3))/2 ! I CON J 4140 Ncor=Ncor-1 4150 FOR J2=J TO Ncor 4160 Col2(J2,1)=Col2(J2+1,1) ! SUPRIME 4170 Col2(J2,3)=Col2(J2+1,3) ! CAPA J 4180 NEXT J2 4190 END IF 4200 NEXT J 4210 NEXT I 4220 PRINT TABXY(35,10);Ncor;"capas " 4230 PRINT TABXY(70,18);INT(((TIMEDATE MOD 86400)-T0)/60*10)/10;"min " 4240 Distancia=Distref 4250 ! GOSUB Repre 4260 NEXT K 4270 ! 4280 DEALLOCATE Dist(*) 4290 ALLOCATE INTEGER Dist(1:Ncor,1:Ncor) 4300 ! DISTANCIA EUCLIDEANA CONVERTIDA A NUMEROS ENTEROS POR MEMORIA 4310 Distmax=INT(SQR((Parmax(1)-Parmin(1))^2+(Parmax(3)-Parmin(3))^2)*100) 4320 T0=(TIMEDATE MOD 86400) 4330 ! 4340 PRINT CHR$(12) 4350 PRINT TABXY(17,9);" CALCULO DE LA MATRIZ DE DISTANCIAS " 4360 FOR I=1 TO Ncor 4370 FOR J=I+1 TO Ncor 4380 D2=Col2(I,1)-Col2(J,1)

176

4390 D3=Col2(I,3)-Col2(J,3) 4400 Dist(I,J)=INT(SQR(D2*D2+D3*D3)*100) 4410 NEXT J 4420 NEXT I 4430 ! 4440 PRINT TABXY(17,9);" BUSQUEDA DEL PAR DE CAPAS MAS SIMILARES " 4450 Distmin=Distmax 4460 FOR I=1 TO Ncor 4470 FOR J=I+1 TO Ncor 4480 IF Dist(I,J)<Distmin THEN 4490 Distmin=Dist(I,J) 4500 Imin=I 4510 Jmin=J 4520 END IF 4530 NEXT J 4540 NEXT I 4550 PRINT TABXY(27,10);"Capa";Imin;"-

";INT(Col2(Imin,1)*10)/10;",";INT(Col2(Imin,3)*10)/10 4560 PRINT TABXY(27,11);"Capa";Jmin;"-

";INT(Col2(Jmin,1)*10)/10;",";INT(Col2(Jmin,3)*10)/10 4570 PRINT TABXY(30,12);"Distancia =";Distmin/100 4580 ! 4590 IF Distmin/100>Diagonal/4 THEN GOTO 5030 ! 1³ CONDICION PARA TERMINAR 4600 ! 4610 ! ! CONVIERTE CAPAS Imin Y Jmin EN NUEVA Imin 4620 Col2(Imin,1)=(Col2(Imin,1)+Col2(Jmin,1))/2 4630 Col2(Imin,3)=(Col2(Imin,3)+Col2(Jmin,3))/2 4640 FOR I=1 TO Imin-1 ! CORRIGE COLUMNA Jmin HASTA Imin 4650 D2=Col2(I,1)-Col2(Imin,1) 4660 D3=Col2(I,3)-Col2(Imin,3) 4670 Dist(I,Jmin)=INT(SQR(D2*D2+D3*D3)*100) 4680 NEXT I 4690 FOR J=Imin+1 TO Ncor ! CORRIGE FILA Imin DESDE Imin 4700 D2=Col2(J,1)-Col2(Imin,1) 4710 D3=Col2(J,3)-Col2(Imin,3) 4720 Dist(Imin,J)=INT(SQR(D2*D2+D3*D3)*100) 4730 NEXT J 4740 Ncor=Ncor-1 4750 FOR J=Jmin TO Ncor ! SUPRIME CAPA Jmin 4760 Col2(J,1)=Col2(J+1,1) 4770 Col2(J,3)=Col2(J+1,3) 4780 NEXT J 4790 PRINT TABXY(17,9);" DESPLAZA COLUMNAS A IZQUIERDA (ZONA CUADRADA) " 4800 FOR I=1 TO Jmin-1 4810 FOR J=Jmin TO Ncor 4820 Dist(I,J)=Dist(I,J+1) 4830 NEXT J 4840 NEXT I 4850 PRINT TABXY(17,9);"DESPLAZA COLUMNAS A IZQUIERDA (ZONA TRIANGULAR)" 4860 FOR I=Jmin TO Ncor 4870 FOR J=I+1 TO Ncor 4880 Dist(I,J)=Dist(I+1,J+1) 4890 NEXT J 4900 NEXT I 4910 PRINT TABXY(70,18);INT(((TIMEDATE MOD 86400)-T0)/60*10)/10;"min "

177

4920 ! 4930 IF Ncor<=20 THEN 4940 Distancia=Distmin/100 4950 GOSUB Repre 4960 INPUT "Quiere disminuir el numero de grupos",Qdis$ 4970 IF Qdis$="NO" OR Qdis$="N" THEN GOTO 5060 4980 END IF 4990 ! 5000 IF Ncor<=10 THEN GOTO 5030 ! 2³ CONDICION PARA TERMINAR 5010 GOTO 4440 5020 ! 5030 Distancia=Distmin/100 5040 GOSUB Repre 5050 ! 5060 ! Introduccion de Litologias 5070 ! 5080 Nlit=Ncor 5090 Lonlit=17 5100 DEALLOCATE Lit_des$(*),Cod_des(*) 5110 ALLOCATE Lit_des$(0:Nlit)[7],INTEGER Cod_des(1:Nlit) 5120 INPUT "Numero de litologias puras (maximo 9)",Npuras 5130 IF Npuras<1 OR Npuras>9 THEN GOTO 5120 5140 PRINT CHR$(12) 5150 PRINT TABXY(1,1);" INTRODUZCA LAS LITOLOGIAS EN ORDEN DE SIMILITUD " 5160 PRINT TABXY(1,3);" Nucleo | Arcilla | Resistividad | N³ orden | Litologia" 5170 FOR L=1 TO Nlit 5180 PRINT TABXY(3,4+L);L 5190 Arc$=VAL$(INT(Col2(L,1))) 5200 Rho$=VAL$(INT(Col2(L,3))) 5210 PRINT TABXY(13,4+L);Arc$ 5220 PRINT TABXY(25,4+L);Rho$ 5230 NEXT L 5240 FOR L=1 TO Npuras 5250 PRINT TABXY(0,19);"LITOLOGIA PURA ";VAL$(L);"³" 5260 INPUT "Nucleo ",L2 5270 IF L2<1 OR L2>Npuras THEN GOTO 5260 5280 INPUT "Nombre abreviado (<7 caracteres) de la litologia",Lit_des$(L2) 5290 IF LEN(Lit_des$(L2))>7 THEN GOTO 5280 5300 Cod_des(L2)=L*10+L 5310 PRINT TABXY(39,L2+4);VAL$(Cod_des(L2)) 5320 PRINT TABXY(48,L2+4);Lit_des$(L2) 5330 NEXT L 5340 FOR L=1 TO Nlit-Npuras 5350 PRINT TABXY(0,19);"LITOLOGIA MIXTA ";VAL$(L);"³" 5360 INPUT "Nucleo ",L2 5370 IF L2<1 OR L2>Nlit THEN GOTO 5360 5380 INPUT "Litologias que comprende (N,M) ",Lit1,Lit2 5390 IF Lit1<1 OR Lit1>Npuras OR Lit2<1 OR Lit2>Npuras THEN GOTO 5380 5400 Lit_des$(L2)=Lit_des$(Lit1)[1,3]&Lit_des$(Lit2)[1,3] 5410 Cod_des(L2)=INT(Cod_des(Lit1)/10)*10+INT(Cod_des(Lit2)/10) 5420 PRINT TABXY(39,L2+4);VAL$(Cod_des(L2)) 5430 PRINT TABXY(48,L2+4);Lit_des$(L2) 5440 NEXT L 5450 PRINT TABXY(0,19);" " 5460 INPUT "Correcto",Cor$

178

5470 IF Cor$="NO" OR Cor$="N" THEN GOTO 5120 5480 PRINT CHR$(12) 5490 ! 5500 DEALLOCATE Litabr$(*),Clit(*) 5510 ALLOCATE Litabr$(0:Nlit)[7],INTEGER Clit(1:Nlit) 5520 Codmin1=0 5530 FOR L=1 TO Nlit 5540 Codmin2=100 5550 FOR L2=1 TO Nlit 5560 IF Cod_des(L2)<=Codmin1 THEN GOTO 5620 5570 IF Cod_des(L2)<Codmin2 THEN 5580 Litabr$(L)=Lit_des$(L2) 5590 Clit(L)=Cod_des(L2) 5600 Codmin2=Cod_des(L2) 5610 END IF 5620 NEXT L2 5630 Codmin1=Codmin2 5640 PRINT TABXY(30,L);Litabr$(L)&":" 5650 PRINT TABXY(40,L);L 5660 NEXT L 5670 ! 5680 RETURN 5690 !------------------------------------------------------------------------ 5700 Repre: ! Representacion en 2D de los valores de las capas 5710 !------------------------------------------------------------------------ 5720 GCLEAR 5730 GINIT 5740 PRINT CHR$(12) 5750 ! 5760 Xmin=INT(Parmin(1)/10)*10 5770 Xmax=INT(Parmax(1)/10+1)*10 5780 Ymin=INT(Parmin(3)/10)*10 5790 Ymax=INT(Parmax(3)/10+1)*10 5800 ! 5810 VIEWPORT 0,130,0,100 5820 WINDOW 0,130,0,100 5830 CSIZE 5 5840 MOVE 65,5 5850 LORG 5 5860 LABEL "% ARCILLA" 5870 LDIR PI/2 5880 MOVE 5,50 5890 LABEL "RESISTIVIDAD" 5900 LDIR 0 5910 ! 5920 CSIZE 4 5930 LORG 4 5940 FOR Lx=Xmin TO Xmax STEP 20 5950 MOVE 10+Lx*(120-10)/(Xmax-Xmin),90 5960 LABEL Lx 5970 NEXT Lx 5980 LORG 2 5990 FOR Ly=Ymin TO Ymax STEP 40 6000 MOVE 120,10+Ly*(90-10)/(Ymax-Ymin) 6010 LABEL Ly

179

6020 NEXT Ly 6030 ! 6040 VIEWPORT 10,120,10,90 6050 WINDOW Xmin,Xmax,Ymin,Ymax 6060 FRAME 6070 LORG 5 6080 FOR C=1 TO Ncap 6090 MOVE Col(C,1),Col(C,3) 6100 LABEL "+" 6110 NEXT C 6120 ! 6130 IF Proceso=1 THEN ! SOLO SE SOLAPA UN VERTICE 6140 LINE TYPE 1 6150 FOR L1=1 TO Nlit 6160 X0l1=Rango(L1,1,0) 6170 X1l1=Rango(L1,1,1) 6180 Y0l1=Rango(L1,3,0) 6190 Y1l1=Rango(L1,3,1) 6200 MOVE X0l1,Y0l1 6210 FOR L2=1 TO Nlit ! INFERIOR IZQUIERDO 6220 IF L2=L1 THEN GOTO 6290 6230 GOSUB L2ext 6240 IF X0l2=X0l1 AND Y0l2<=Y0l1 THEN GOTO 6300 6250 IF X0l2<=X0l1 AND X1l2>X0l1 AND Y0l2<=Y0l1 AND Y1l2>Y0l1 THEN 6260 MOVE X1l2,Y0l1 6270 GOTO 6300 6280 END IF 6290 NEXT L2 6300 FOR L2=1 TO Nlit ! INFERIOR DERECHO 6310 IF L2=L1 THEN GOTO 6380 6320 GOSUB L2ext 6330 IF X0l2<X1l1 AND X1l2>=X1l1 AND Y1l2>Y0l1 AND Y0l2<=Y0l1 AND Y1l1>Y1l2 THEN 6340 DRAW X0l2,Y0l1 6350 DRAW X1l1,Y1l2 6360 GOTO 6400 6370 END IF 6380 NEXT L2 6390 DRAW X1l1,Y0l1 6400 FOR L2=1 TO Nlit ! SUPERIOR DERECHO 6410 IF L2=L1 THEN GOTO 6480 6420 GOSUB L2ext 6430 IF X0l2<X1l1 AND X1l2>=X1l1 AND Y0l2<Y1l1 AND Y1l2>=Y1l1 THEN 6440 DRAW X1l1,Y0l2 6450 DRAW X0l2,Y1l1 6460 GOTO 6500 6470 END IF 6480 NEXT L2 6490 DRAW X1l1,Y1l1 6500 FOR L2=1 TO Nlit ! SUPERIOR IZQUIERDO 6510 IF L2=L1 THEN GOTO 6580 6520 GOSUB L2ext 6530 IF X0l2<=X0l1 AND X1l2>X0l1 AND Y1l2>=Y1l1 AND Y0l2<Y1l1 THEN 6540 DRAW X1l2,Y1l1 6550 DRAW X0l1,Y0l2 6560 GOTO 6600

180

6570 END IF 6580 NEXT L2 6590 DRAW X0l1,Y1l1 6600 FOR L2=1 TO Nlit ! INFERIOR IZQUIERDO 6610 IF L2=L1 THEN GOTO 6690 6620 GOSUB L2ext 6630 IF X0l2=X0l1 AND Y0l2<=Y0l1 THEN GOTO 6710 6640 IF X0l2<=X0l1 AND X1l2>X0l1 AND Y1l2>Y0l1 AND Y0l2<=Y0l1 THEN 6650 DRAW X0l1,Y1l2 6660 DRAW X1l2,Y0l1 6670 GOTO 6710 6680 END IF 6690 NEXT L2 6700 DRAW X0l1,Y0l1 6710 NEXT L1 6720 LINE TYPE 1 6730 END IF 6740 ! 6750 GOTO 6820 6760 L2ext: ! 6770 X0l2=Rango(L2,1,0) 6780 X1l2=Rango(L2,1,1) 6790 Y0l2=Rango(L2,3,0) 6800 Y1l2=Rango(L2,3,1) 6810 RETURN 6820 ! 6830 IF Proceso=2 THEN 6840 Radio=Distancia 6850 FOR C=1 TO Ncor 6860 FOR C2=1 TO Ncor 6870 Comp(C2)=0 6880 IF C2=C THEN GOTO 6980 6890 D2=Col2(C2,1)-Col2(C,1) 6900 D3=Col2(C2,3)-Col2(C,3) 6910 Distancia=SQR(D2*D2+D3*D3) 6920 IF Distancia<2*Radio THEN 6930 Comp(C2)=1 ! = 0 PARA NO EJECUTAR 6940 Distan(C2)=Distancia 6950 IF D3>=0 THEN Angulo(C2)=ACS(D2/Distancia) 6960 IF D3<0 THEN Angulo(C2)=2*PI-ACS(D2/Distancia) 6970 END IF 6980 NEXT C2 6990 FOR G=0 TO 360 STEP 6 7000 Radian=G*PI/180 7010 Xr=Radio*COS(Radian) 7020 Yr=Radio*SIN(Radian) 7030 Xcir=Col2(C,1)+Xr 7040 Ycir=Col2(C,3)+Yr 7050 Distcomp=Radio 7060 FOR C2=1 TO Ncor 7070 IF Comp(C2)=0 THEN GOTO 7190 7080 D2=Xcir-Col2(C2,1) 7090 D3=Ycir-Col2(C2,3) 7100 Distancia=SQR(D2*D2+D3*D3) 7110 IF Distancia<Distcomp THEN

181

7120 R2=(Distan(C2)/2)/COS(Radian-Angulo(C2)) 7130 Xr=R2*COS(Radian) 7140 Yr=R2*SIN(Radian) 7150 Xcir=Col2(C,1)+Xr 7160 Ycir=Col2(C,3)+Yr 7170 Distcomp=Distancia 7180 END IF 7190 NEXT C2 7200 IF G=0 THEN MOVE Xcir,Ycir 7210 DRAW Xcir,Ycir 7220 NEXT G 7230 NEXT C 7240 END IF 7250 ! 7260 ON KBD GOTO 7270 7270 Tecla$=KBD$ 7280 IF Tecla$="ÿC" THEN GOTO 7350 ! Sale del grafico con el |CONT| 7290 IF Tecla$="V" THEN GOTO 7320 ! Volcado impresora 7300 GOTO 7260 7310 ! 7320 CALL Imprimir 7330 GOTO 7260 7340 ! 7350 OFF KNOB 7360 OFF KBD 7370 GCLEAR 7380 ! 7390 RETURN 7400 !------------------------------------------------------------------------ 7410 Codigos: ! Asignacion de codigos litologicos 7420 !------------------------------------------------------------------------ 7430 OFF KEY 7440 PRINT CHR$(12) 7450 PRINT TABXY(22,10);"ASIGNACION DE CODIGOS LITOLOGICOS" 7460 ! 7470 ! Asignacion para interpretacion directa 7480 ! 7490 IF Proceso=1 THEN 7500 DEALLOCATE Litc(*),Cod(*) 7510 ALLOCATE INTEGER Litc(0:100),INTEGER Cod(1:Ncap) 7520 FOR L=1 TO Nlit 7530 Litc(Clit(L))=L 7540 NEXT L 7550 ! 7560 FOR C=1 TO Ncap 7570 IF (C MOD 10)=0 THEN PRINT TABXY(34,11);"Capa";C 7580 Nclas=0 7590 FOR L=1 TO Nlit 7600 Con=0 7610 FOR P=1 TO 3 STEP 2 7620 IF Col(C,P)>Rango(L,P,0) AND Col(C,P)<=Rango(L,P,1) THEN Con=Con+1 7630 NEXT P 7640 IF Con=2 THEN 7650 Nclas=Nclas+1 7660 Lclas(Nclas)=L

182

7670 END IF 7680 NEXT L 7690 IF Nclas=0 THEN Cod(C)=0 7700 IF Nclas=1 THEN Cod(C)=Clit(Lclas(1)) 7710 IF Nclas=2 THEN 7720 X0l1=Rango(Lclas(1),1,0) 7730 X1l1=Rango(Lclas(1),1,1) 7740 Y0l1=Rango(Lclas(1),3,0) 7750 Y1l1=Rango(Lclas(1),3,1) 7760 IF Rango(Lclas(2),1,1)<=X0l1 OR X1l1<=Rango(Lclas(2),1,0) THEN 7920 7770 IF Rango(Lclas(2),3,1)<=Y0l1 OR Y1l1<=Rango(Lclas(2),3,0) THEN 7920 7780 FOR Arista2=1 TO 4 7790 Abc2=Rango(Lclas(2),1,Arista2 MOD 2) ! 4----3 7800 Ord2=Rango(Lclas(2),3,Arista2 DIV 3) ! 2----1 7810 IF (Abc2>=X0l1 AND Abc2<=X1l1) AND (Ord2>=Y0l1 AND Ord2<=Y1l1) THEN 7820 Arista1=5-Arista2 7830 Abc1=Rango(Lclas(1),1,Arista1 MOD 2) 7840 Ord1=Rango(Lclas(1),3,Arista1 DIV 3) 7850 Distancia1=SQR((Col(C,1)-Abc1)^2+(Col(C,3)-Ord1)^2) 7860 Distancia2=SQR((Col(C,1)-Abc2)^2+(Col(C,3)-Ord2)^2) 7870 IF Distancia1<Distancia2 THEN Cod(C)=Clit(Lclas(1)) 7880 IF Distancia2<Distancia1 THEN Cod(C)=Clit(Lclas(2)) 7890 GOTO 7970 7900 END IF 7910 NEXT Arista2 7920 END IF 7930 IF Nclas>2 THEN 7940 PRINT TABXY(30,12);"Capa";C;"pertenece a mas de dos clases. REVISE" 7950 PAUSE 7960 END IF 7970 NEXT C 7980 END IF 7990 ! 8000 ! Asignacion para clasificacion automatica 8010 ! 8020 IF Proceso=2 THEN 8030 DEALLOCATE Litc(*),Cod(*) 8040 ALLOCATE INTEGER Litc(0:100),INTEGER Cod(1:Ncap) 8050 FOR L=1 TO Nlit 8060 Litc(Cod_des(L))=L 8070 NEXT L 8080 ! 8090 FOR C=1 TO Ncap 8100 IF (C MOD 10)=0 THEN PRINT TABXY(34,11);"Capa";C 8110 FOR L=1 TO Nlit 8120 D2=Col(C,1)-Col2(L,1) 8130 D3=Col(C,3)-Col2(L,3) 8140 Dist_c_l=SQR(D2*D2+D3*D3) 8150 IF Dist_c_l<Distancia THEN Cod(C)=Clit(L) 8160 NEXT L 8170 NEXT C 8180 END IF 8190 ! 8200 ! Porcentaje de capas determinadas y situacion de capas indeterminadas 8210 !

183

8220 PRINT CHR$(12) 8230 VIEWPORT 50,130,35,95 8240 WINDOW Parmin(1),Parmax(1),Parmin(3),Parmax(3) 8250 FRAME 8260 Xsp=(Parmax(1)-Parmin(1))/10 8270 Ysp=(Parmax(3)-Parmin(3))/10 8280 LINE TYPE 4 8290 Xy=Parmin(1) 8300 Yx=Parmin(3) 8310 GRID Xsp,Ysp,Xy,Yx 8320 LINE TYPE 1 8330 LORG 5 8340 PRINT 8350 PRINT " CAPA | GN-RHO " 8360 PRINT "------------|---------" 8370 IMAGE 3D.D,1X,3D.D,3X,3D,1X,3D 8380 Ndef=0 8390 FOR C=1 TO Ncap 8400 IF Cod(C)=0 THEN 8410 MOVE Col(C,1),Col(C,3) 8420 LABEL "+" 8430 PRINT USING 8370;Col(C-1,0),Col(C,0),Col(C,1),Col(C,3) 8440 INPUT "Quiere asignarle codigo (Si:cuál) (No:ENTER)",Cod(C) 8450 END IF 8460 IF Cod(C)>0 THEN 8470 Ndef=Ndef+1 8480 Litologia$=Litabr$(Litc(Cod(C))) 8490 ! PRINT USING "3D,5X,2D,5X,8A";C,Cod(C),Litologia$ 8500 END IF 8510 NEXT C 8520 PRINT 8530 Percent=INT(Ndef/Ncap*100*10+.5)/10 8540 PRINT "Se han definido el";Percent;"por ciento de las capas " 8550 INPUT "Esta de acuerdo con la resolucion ",Cor3$ 8560 IF Cor3$="NO" OR Cor3$="N" OR Cor3$="no" OR Cor3$="n" THEN GOTO 8590 8570 ! 8580 Proceso=3 8590 GCLEAR 8600 PRINT CHR$(12) 8610 RETURN 8620 !------------------------------------------------------------------------ 8630 Columna: ! Determinacion de la columna definitiva 8640 !------------------------------------------------------------------------ 8650 OFF KEY 8660 PRINT TABXY(25,8);"Eliminacion de capas intermedias " 8670 ! 8680 Ncaplit=Ncap 8690 FOR C=2 TO Ncap 8700 IF Cod(C)=Cod(C-1) THEN Ncaplit=Ncaplit-1 8710 NEXT C 8720 DEALLOCATE Caplit(*),Codlit(*) 8730 ALLOCATE Caplit(1:Ncaplit),Codlit(1:Ncaplit) 8740 ! 8750 C2=1 8760 Caplit(C2)=Col(C2,0)

184

8770 Codlit(C2)=Cod(C2) 8780 FOR C=2 TO Ncap 8790 IF Cod(C)=Cod(C-1) THEN 8800 PRINT TABXY(25,9);"Codigos de";INT(Col(C,0)*10)/10;"y";INT(Col(C-

1,0)*10)/10;"iguales " 8810 Caplit(C2-1)=Col(C,0) 8820 GOTO 8870 8830 END IF 8840 C2=C2+1 8850 Caplit(C2)=Col(C,0) 8860 Codlit(C2)=Cod(C) 8870 NEXT C 8880 ! 8890 Proceso=4 8900 RETURN 8910 !------------------------------------------------------------------------ 8920 Pantalla: ! Visualizacion de resultados normalizados 8930 !------------------------------------------------------------------------ 8940 OFF KEY 8950 GCLEAR 8960 PRINT CHR$(12) 8970 ! 8980 Equi=.2 8990 Iref=1 9000 Delta=Ncap/(Col(Ncap,0)-Col(1,0))*15*(Equi*10) 9010 Alt=100/(Np*2-1) 9020 GOTO 9260 9030 ! 9040 GRAPHICS OFF 9050 PRINT TABXY(17,8);" PARA MOVER LA DIAGRAFIA GIRE EL CURSOR " 9060 PRINT TABXY(17,9);" PARA SALIR DEL GRAFICO PULSE EL ESPACIADOR " 9070 PRINT TABXY(17,10);" PARA VOLCAR EL DIBUJO A IMPRESORA PULSE V " 9080 PRINT TABXY(17,11);" PARA SELECCIONAR CAPAS PULSE ---> O <--- " 9090 PRINT TABXY(17,12);"PARA CORREGIR EL CODIGO DE LA CAPA PULSE ENTER " 9100 PRINT TABXY(40,18);" PARA CONTINUAR PULSE CONT " 9110 PAUSE 9120 PRINT CHR$(12) 9130 GRAPHICS ON 9140 ! 9150 ON KNOB .01,2 GOTO 9250 ! Mueve la diagrafia con el cursor 9160 ON KBD,2 GOTO 9170 9170 Tecla$=KBD$ 9180 IF Tecla$=CHR$(86) THEN GOTO 10200 ! Volcado impresora 9190 IF Tecla$=CHR$(65) THEN GOTO 9040 ! Impresion de ayuda 9200 IF Tecla$=CHR$(255)&CHR$(60) THEN GOTO 9750 ! Desplazamiento del ! 9210 IF Tecla$=CHR$(255)&CHR$(62) THEN GOTO 9750 ! marco de profundidad ! 9220 IF Tecla$=CHR$(255)&CHR$(69) THEN GOTO 9970 ! Correccion de codigos 9230 IF Tecla$=CHR$(255)&CHR$(67) THEN GOTO 10230 ! Sale del grafico con CONT 9240 GOTO 9150 9250 ! Desplazamiento de la diagrafia 9260 GCLEAR 9270 Iref=INT(Iref+KNOBX*Delta*Equi) 9280 IF Iref<1 THEN Iref=1 9290 IF Iref>(Ncap-Delta) THEN Iref=(Ncap-Delta) 9300 Desp=0

185

9310 ! 9320 ! Dibujo de los ejes 9330 LDIR 0 9340 VIEWPORT 0,133,0,100 9350 WINDOW INT(Col(Iref,0)),INT(Col(Iref+Delta,0)),0,Np*2-1 9360 FOR P=0 TO Np*2-1 9370 AXES 1,1,0,P,1,1 9380 NEXT P 9390 MOVE INT(Col(Iref,0)),3 9400 LORG 1 9410 LABEL VAL$(INT(Col(Iref,0))) 9420 MOVE INT(Col(Iref+Delta,0)),3 9430 LORG 7 9440 LABEL VAL$(INT(Col(Iref+Delta,0))) 9450 ! 9460 ! Dibujo de las capas de cada parametro 9470 FOR P=1 TO Np 9480 VIEWPORT 0,133,(2*P-2)*Alt,(2*P-1)*Alt 9490 WINDOW 0,133,0,100 9500 CSIZE 4,.6 9510 LORG 6 9520 MOVE 65,100 9530 LABEL Par$(P) 9540 WINDOW INT(Col(Iref,0)),INT(Col(Iref+Delta,0)+1),Parmin(P),Parmax(P) 9550 MOVE Col(Iref,0),Col(Iref,P) 9560 FOR C=Iref TO Iref+Delta 9570 DRAW Col(C,0),Col(C,P) 9580 DRAW Col(C+1,0),Col(C,P) 9590 NEXT C 9600 NEXT P 9610 ! Dibujo de las Litologias 9620 CSIZE 3.5,.6 9630 LDIR PI/2 9640 LORG 5 9650 VIEWPORT 0,133,1*Alt,(1+1)*Alt 9660 WINDOW INT(Col(Iref,0)),INT(Col(Iref+Delta,0)+1),0,1 9670 FOR C=Iref TO Iref+Delta 9680 MOVE Col(C,0),0 9690 DRAW Col(C,0),1 9700 MOVE Col(C,0)+(Col(C+1,0)-Col(C,0))/2,.5 9710 LABEL Litabr$(Litc(Cod(C))) 9720 NEXT C 9730 ! 9740 GOTO 9150 9750 ! ! Movimiento del marco de referencia 9760 ! 9770 VIEWPORT 0,133,3*Alt,(3+1)*Alt 9780 WINDOW INT(Col(Iref,0)),INT(Col(Iref+Delta,0)+1),0,1 9790 PEN -1 9800 MOVE Col(Iref+Desp,0),.1 9810 DRAW Col(Iref+Desp,0),.9 9820 DRAW Col(Iref+Desp+1,0),.9 9830 DRAW Col(Iref+Desp+1,0),.1 9840 DRAW Col(Iref+Desp,0),.1 9850 IF Tecla$=CHR$(255)&CHR$(60) THEN Desp=Desp-1

186

9860 IF Tecla$=CHR$(255)&CHR$(62) THEN Desp=Desp+1 9870 IF Desp<0 THEN Desp=Delta-1 9880 IF Desp>Delta THEN Desp=0 9890 PEN 1 9900 MOVE Col(Iref+Desp,0),.1 9910 DRAW Col(Iref+Desp,0),.9 9920 DRAW Col(Iref+Desp+1,0),.9 9930 DRAW Col(Iref+Desp+1,0),.1 9940 DRAW Col(Iref+Desp,0),.1 9950 GOTO 9150 9960 ! 9970 ! Correccion de Codigos 9980 ! 9990 VIEWPORT 0,133,1*Alt,(1+1)*Alt 10000 WINDOW INT(Col(Iref,0)),INT(Col(Iref+Delta,0)+1),0,1 10010 PEN -1 10020 MOVE Col(Iref+Desp,0)+(Col(Iref+Desp+1,0)-Col(Iref+Desp,0))/2,.5 10030 LABEL Litabr$(Litc(Cod(Iref+Desp))) 10040 GRAPHICS OFF 10050 PRINT 10060 FOR L=1 TO Nlit 10070 PRINT TABXY(30,L);Litabr$(L)&":" 10080 PRINT TABXY(40,L);L 10090 NEXT L 10100 INPUT "Nueva litologia",Newlit 10110 IF Newlit<1 OR Newlit>Nlit THEN GOTO 10100 10120 Cod(Iref+Desp)=Clit(Newlit) 10130 PRINT CHR$(12) 10140 GRAPHICS ON 10150 PEN 1 10160 MOVE Col(Iref+Desp,0)+(Col(Iref+Desp+1,0)-Col(Iref+Desp,0))/2,.5 10170 LABEL Litabr$(Litc(Cod(Iref+Desp))) 10180 GOTO 9150 10190 ! 10200 CALL Imprimir 10210 PRINTER IS 1 10220 GOTO 9150 10230 ! 10240 OFF KNOB 10250 OFF KBD 10260 GCLEAR 10270 RETURN 10280 !------------------------------------------------------------------------ 10290 PRINT CHR$(12) 10300 PRINT " FIN DEL PROGRAMA" 10310 ! 10320 STOP 10330 END 10340 !------------------------------------------------------------------------ 10350 SUB Salir 10360 BEEP 10370 OFF KEY 10380 SUSPEND INTERACTIVE 10390 ON KEY 0 LABEL " SALIR ",15 GOTO 10420 10400 ON KEY 5 LABEL " CONTINUAR ",15 GOTO 10440

187

10410 GOTO 10390 10420 INPUT "Quiere salir al programa principal",Qsal$ 10430 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 10440 OFF KEY 10450 RESUME INTERACTIVE 10460 SUBEND 10470 !------------------------------------------------------------------------ 10480 SUB Grabafich(Nn$,Ncaplit,Caplit(*),Codlit(*)) 10490 ! 10500 REM SUBPROGRAMA DE GRABACION DE REGISTROS 10510 ! 10520 !------------------------------------------------------------------------ 10530 GRAPHICS OFF 10540 PRINT CHR$(12) 10550 SUSPEND INTERACTIVE 10560 ! 10570 MASS STORAGE IS ":HP 8290X,700,1" 10580 ON ERROR GOTO 10640 10590 Nr=(Ncaplit+1)*8+20 10600 CREATE BDAT Nn$,2,Nr 10610 OFF ERROR 10620 GOTO 11070 10630 ! 10640 IF ERRN=54 THEN 10650 INPUT "Quiere remplazar el registro ? ",Qr$ 10660 IF Qr$="SI" OR Qr$="S" THEN 10670 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 10680 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 10720 10690 PURGE Nn$ 10700 GOTO 10600 10710 END IF 10720 INPUT "Quiere cambiar nombre del fichero ?",Qn$ 10730 IF Qn$="SI" OR Qn$="S" THEN 10740 INPUT "Nuevo nombre de fichero del sondeo (<=6 caracteres)",Nfich$ 10750 IF LEN(Nfich$)=0 OR LEN(Nfich$)>6 THEN GOTO 10740 10760 Nn$=Nfich$&"_LIT" 10770 GOTO 10600 10780 END IF 10790 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 10800 IF Qc$="S" OR Qc$="SI" THEN 10810 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 10820 ON KBD ALL GOTO 10830 10830 IF KBD$<>"ÿC" THEN GOTO 10820 10840 OFF KBD 10850 PRINT CHR$(12) 10860 GOTO 10600 10870 END IF 10880 GOTO 10650 10890 END IF 10900 IF ERRN=80 THEN 10910 PRINT TABXY(15,10);"Inserte un disco en la disquetera [1] y pulse |CONT|" 10920 ON KBD ALL GOTO 10930 10930 IF KBD$<>"ÿC" THEN GOTO 10920 10940 OFF KBD 10950 PRINT CHR$(12)

188

10960 GOTO 10600 10970 END IF 10980 IF ERRN=53 THEN 10990 PRINT "Nombre del fichero impropio" 11000 GOTO 11220 11010 END IF 11020 IF ERRN=56 THEN 11030 PRINT "Disco completo, revise por favor" 11040 GOTO 11220 11050 END IF 11060 ! 11070 MASS STORAGE IS ":HP 8290X,700,1" 11080 ASSIGN @Pat_0 TO Nn$ 11090 PRINT CHR$(12) 11100 PRINT TABXY(20,10);"Realizando la grabacion, NO interrumpir" 11110 OUTPUT @Pat_0;Ncaplit,Nada 11120 FOR C=1 TO Ncaplit 11130 OUTPUT @Pat_0;Caplit(C),Codlit(C) 11140 NEXT C 11150 ASSIGN @Pat_0 TO * 11160 MASS STORAGE IS ": HP 8290X,700,0" 11170 ! 11180 PRINT CHR$(12) 11190 PRINT TABXY(25,10);"Grabado el fichero ";Nn$ 11200 RESUME INTERACTIVE 11210 GRAPHICS ON 11220 SUBEND 11230 !----------------------------------------------------------------------- 11240 SUB Imprimir 11250 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 11260 !------------------------------------------------------------------------ 11270 PRINTER IS 1 11280 GRAPHICS OFF 11290 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 11300 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 11360 11310 PRINT " Conecte la impresora y pulse |CONT| " 11320 PAUSE 11330 CALL Titulo 11340 GRAPHICS ON 11350 CALL Vuelcapant(701) 11360 PRINT CHR$(12) 11370 GRAPHICS ON 11380 PRINTER IS 1 11390 ! 11400 SUBEND 11410 !------------------------------------------------------------------------ 11420 SUB Titulo 11430 !------------------------------------------------------------------------ 11440 DIM Titulo$[240] 11450 ! 11460 PRINT CHR$(12) 11470 INPUT "Titulo del grafico",Titulo$ 11480 IF Titulo$="" THEN GOTO 11750 11490 PRINTER IS 1 11500 GOSUB Editor

189

11510 INPUT "Correcto",Cort$ 11520 IF Cort$="N" OR Cort$="NO" THEN GOTO 11460 11530 PRINTER IS 701 11540 GOSUB Editor 11550 PRINTER IS 1 11560 GOTO 11750 11570 ! 11580 Editor: ! Divide el texto y lo centra 11590 Titulo$=Titulo$&" " 11600 C0=0 11610 IF C0>=LEN(Titulo$) THEN GOTO 11730 11620 Caracter=50+C0 11630 FOR C=Caracter TO 1 STEP -1 11640 IF C>LEN(Titulo$) THEN GOTO 11720 11650 IF Titulo$[C,C]=" " THEN 11660 Tx=INT((64-(C-C0))/2) 11670 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 11680 PRINT USING Ima$;Titulo$[C0+1,C] 11690 C0=C 11700 GOTO 11610 11710 END IF 11720 NEXT C 11730 RETURN 11740 ! 11750 SUBEND 11760 !------------------------------------------------------------------------ 11770 SUB Vuelcapant(INTEGER Device_selector) 11780 !------------------------------------------------------------------------ 11790 OPTION BASE 1 11800 INTEGER Row_group,Prod_num,Maxrow 11810 DIM Graphic_escape$[7] 11820 ! 11830 ON ERROR GOTO 12230 11840 PRINTER IS Device_selector 11850 OFF ERROR 11860 ! 11870 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 11880 ! 11890 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 11900 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 11910 ! 11920 IF Graphics_res=1 THEN 11930 ALLOCATE Os$[512] ! Para los modelos 9836 11940 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 11950 Maxrow=390 ! Numero de lineas del 9836 11960 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 11970 ELSE 11980 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 11990 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 12000 Maxrow=300 ! Numero de lineas del 9826 y 9816 12010 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 12020 END IF 12030 ! 12040 GSTORE Screen(*) ! Almacena matriz de pantalla 12050 !

190

12060 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 12070 ! 12080 FOR Row_group=1 TO 297 STEP 8 12090 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 12100 Gdump(Screen(*),Row_group,Os$) 12110 ! Volcado de linea de caracteres graficos 12120 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 12130 PRINT USING "7A,400A";Graphic_escape$,Os$ 12140 ELSE ! Para los modelos 9836 12150 PRINT USING "7A,512A";Graphic_escape$,Os$ 12160 END IF 12170 NEXT Row_group 12180 ! 12190 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 12200 ! 12210 SUBEXIT 12220 ! 12230 BEEP ! Caso de encontrarse error en "PRINTER IS" 12240 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 12250 ! 12260 SUBEND 12270 ! 12280 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 12290 !-------------------------------------------------------------------------

191

10 !----------------------------------------------------------------------- 20 REM "CORRELACAP" 30 REM PROGRAMA PARA LA CORRELACION DE DIAGRAFIAS 40 !----------------------------------------------------------------------- 50 GRAPHICS ON 60 GCLEAR 70 GINIT 80 PRINTER IS 1 90 PRINT CHR$(12) 100 CONTROL 2,0;1 110 ! 120 FOR K=1 TO 10 STEP 2 130 VIEWPORT 0+K,133-K,10+K,100-K 140 FRAME 150 NEXT K 160 ! 170 PRINT TABXY(16,10);" -CORRELACAP- " 180 PRINT TABXY(16,12);"PROGRAMA PARA LA CORRELACION DE CAPAS DE DIAGRAFIAS" 190 CALL Salir 200 PRINT CHR$(12) 210 GCLEAR 220 ! 230 OPTION BASE 0 240 INTEGER Fil,Col,Filsig,Colsig,Colant 250 Lit=0 260 Dil=0 270 ALLOCATE Clit(20),Desp(1:100) 280 ALLOCATE Z(1:2,1:100),Esp(1:2,1:100),Cod(1:2,1:100),C(1:2,1:100) 290 ALLOCATE INTEGER D(0:100,0:100) 300 !----------------------------------------------------------------------- 310 REM Flujo del Programa 320 !----------------------------------------------------------------------- 330 ON KEY 5 LABEL "LECT. FICHEROS" GOTO 610 340 ON KEY 6 LABEL " CORRELACION " GOTO 1770 350 ON KEY 7 LABEL "REPRESENTACION" GOSUB Repre 360 ON KEY 8 LABEL "DESPLAZAMIENTO" GOTO 2420 370 ON KEY 9 LABEL "% CORRELACION " GOTO 2770 380 ON KEY 4 LABEL " TERMINAR " CALL Salir 390 GOTO 330 400 !----------------------------------------------------------------------- 410 REM Datos para pruebas 420 !----------------------------------------------------------------------- 430 OFF KEY 440 ! 450 Ncap(1)=10 460 Ncap(2)=10 470 Ndim=10 480 DEALLOCATE Z(*),Esp(*),Cod(*),C(*),D(*) 490 ALLOCATE Z(1:2,1:10+1),Esp(1:2,1:10),Cod(1:2,1:10),C(1:2,1:20) 500 ALLOCATE INTEGER D(0:10,0:10) 510 RESTORE 520 DATA 0 ,6 ,10,12,20,26,30,32,39,40,41,0 ,7 ,11,13,22,27,31,33,37,41,45 530 READ Z(*) 540 DATA 6 ,4 ,2 ,8 ,6 ,4 ,2 ,7 ,1 ,1 ,7 ,4 ,2 ,9 ,5 ,4 ,2 ,4 ,4 ,4 550 READ Esp(*)

192

560 DATA 12,23,31,44,14,44,14,12,51,31, 12,51,31,41,52,14,12,14,52,31 570 READ Cod(*) 580 ! 590 GOTO 1490 600 !----------------------------------------------------------------------- 610 REM Lectura de los datos digitalizados 620 !----------------------------------------------------------------------- 630 OFF KEY 640 ! 650 INPUT "Nombre del fichero del primer sondeo ",Nn$(1) 660 IF LEN(Nn$(1))>5 THEN GOTO 650 670 Nn$(1)=Nn$(1)&"_LIT" 680 PRINT "Nombre del fichero del primer sondeo ";Nn$(1) 690 INPUT "Nombre del fichero del segundo sondeo ",Nn$(2) 700 IF LEN(Nn$(2))>5 THEN GOTO 650 710 Nn$(2)=Nn$(2)&"_LIT" 720 PRINT "Nombre del fichero del segundo sondeo ";Nn$(2) 730 BEEP 740 PRINT 750 PRINT "Coloque el disco con los datos de las diagrafias en 1," 760 PRINT " luego pulse continuar " 770 PAUSE 780 PRINT CHR$(12) 790 ! 800 MASS STORAGE IS ":HP 8290X,700,1" 810 FOR R=1 TO 2 820 ASSIGN @Pat_0 TO Nn$(R) 830 ENTER @Pat_0;Ncap(R),Nfil(R) 840 ASSIGN @Pat_0 TO * 850 NEXT R 860 ! 870 IF Ncap(1)>Ncap(2) THEN Ndim=Ncap(1) 880 IF Ncap(1)<=Ncap(2) THEN Ndim=Ncap(2) 890 Ndim=Ndim+2 900 DEALLOCATE Z(*),Esp(*),Cod(*),C(*),D(*),Desp(*) 910 ALLOCATE Z(2,1:Ndim),Esp(2,1:Ndim),Cod(2,1:Ndim),C(2,2*Ndim),Desp(Ndim) 920 ALLOCATE INTEGER D(0:Ncap(1),0:Ncap(2)+1) 930 ! 940 FOR R=1 TO 2 950 ASSIGN @Pat_0 TO Nn$(R) 960 ENTER @Pat_0;Nada,Nada 970 FOR I=1 TO Ncap(R) 980 ENTER @Pat_0;Z(R,I),Cod(R,I) 990 NEXT I 1000 ASSIGN @Pat_0 TO * 1010 NEXT R 1020 MASS STORAGE IS ": HP 8290X,700,0" 1030 ! 1040 ! Correcciones de datos 1050 ! 1060 ! Inclusion de la tuberia 1070 IF Cod(1,1)<>99 OR Z(1,1)=Z(2,1) THEN GOTO 1290 1080 IF Z(1,1)>Z(2,1) THEN GOTO 1170 1090 Ncap(2)=Ncap(2)+1 1100 FOR I=Ncap(2) TO 2 STEP -1

193

1110 Cod(2,I)=Cod(2,I-1) 1120 Z(2,I)=Z(2,I-1) 1130 NEXT I 1140 Z(2,1)=Z(1,1) 1150 Cod(2,1)=0 1160 GOTO 1290 1170 ! 1180 FOR I=1 TO Ncap(2) 1190 IF Z(2,I)>Z(1,1) THEN GOTO 1210 1200 NEXT I 1210 I1=I-2 1220 Ncap(2)=Ncap(2)-I1 1230 Z(2,1)=Z(1,1) 1240 Cod(2,1)=0 1250 FOR I=2 TO Ncap(2) 1260 Z(2,I)=Z(2,I+I1) 1270 Cod(2,I)=Cod(2,I+I1) 1280 NEXT I 1290 ! 1300 ! CALCULO DE ESPESORES 1310 ! 1320 IF Z(1,1)<Z(2,1) THEN Z0=Z(1,1)-2 1330 IF Z(2,1)<Z(1,1) THEN Z0=Z(2,1)-2 1340 FOR R=1 TO 2 1350 Esp(R,1)=Z(R,1)-Z0 1360 FOR I=2 TO Ncap(R) 1370 Esp(R,I)=Z(R,I)-Z(R,I-1) 1380 NEXT I 1390 NEXT R 1400 ! 1410 ! PASO A PROFUNDIDADES DE TECHO 1420 FOR R=1 TO 2 1430 FOR I=1 TO Ncap(R) 1440 Z(R,I)=Z(R,I)-Esp(R,I) 1450 NEXT I 1460 Z(R,Ncap(R)+1)=Z(R,Ncap(R))+Esp(R,Ncap(R)) 1470 NEXT R 1480 ! 1490 ! Visualizacion de los datos 1500 ! 1510 GOTO 1750 1520 ! PRINTER IS 701 1530 PRINT 1540 PRINT "-------------------------------------------------------------" 1550 PRINT " DATOS UTILIZADOS " 1560 PRINT "-------------------------------------------------------------" 1570 PRINT " 1³ SONDEO 2³ SONDEO " 1580 PRINT "-------------------------------------------------------------" 1590 PRINT "Capa Profundidad Litologia Profundidad Litologia " 1600 PRINT "-------------------------------------------------------------" 1610 FOR I=1 TO Ndim 1620 IF I>Ncap(1) THEN 1630 PRINT "","","","", 1640 GOTO 1670 1650 END IF

194

1660 PRINT I,Z(1,I),Cod(1,I),"", 1670 IF I>Ncap(2) THEN 1680 PRINT "","" 1690 GOTO 1720 1700 END IF 1710 PRINT Z(2,I),Cod(2,I) 1720 NEXT I 1730 PRINT 1740 ! 1750 GOTO 330 1760 !------------------------------------------------------------------------ 1770 REM Correlacion de los registros 1780 !------------------------------------------------------------------------ 1790 OFF KEY 1800 ! Criterio de equivalencia de capas 1810 PRINT CHR$(12) 1820 PRINT 1830 PRINT " | Litologias iguales ------------- 1 " 1840 PRINT " | Alternancia del predominante --- 2 " 1850 PRINT "Criterios de correlación | Mismo predominante, 2=3=4, 4=5 - 3 " 1860 PRINT " | Mismo predominante puras y 2a8 - 4 " 1870 PRINT " | Mismo predominante y 2a8 ------- 5 " 1880 PRINT 1890 BEEP 1900 INPUT "Criterio de correlacion entre capas (1,2,3,4, ó 5) ? ",Fuz 1910 IF Fuz<1 OR Fuz>6 THEN GOTO 1890 1920 PRINT "Criterio de correlacion entre capas elegido ---------------";Fuz 1930 PRINT 1940 ! 1950 GOSUB Crosasociacion 1960 ! 1970 IF Ncor=0 THEN 1980 PRINT TAB(1);"No se ha correlacionado ninguna capa" 1990 GOTO 1900 2000 END IF 2010 ! 2020 Mc=0 ! TOTAL DE METROS CORRELACIONADOS 2030 FOR K=1 TO Ncor 2040 Mc=Mc+Esp(1,INT(C(2,K))) 2050 NEXT K 2060 ! 2070 PRINTER IS 1 2080 PRINT 2090 PRINT "-------------------------------------------------------" 2100 PRINT " SONDEOS ";Nn$(1);" y ";Nn$(2) 2110 PRINT "-------------------------------------------------------" 2120 PRINT " ";Ncap(1);"capas 1³ registro | ";Ncap(2);"capas 2³ registro" 2130 PRINT "-------------------------------------------------------" 2140 PRINT " Correlaciones con criterio";Fuz;"-";Ncor 2150 PRINT "-------------------------------------------------------" 2160 PRINT " Metros correlacionados";Mc 2170 PRINT "-------------------------------------------------------" 2180 PRINT " Columna 1³ diagrafia | Columna 2³ diagrafia " 2190 PRINT "---------------------------|---------------------------" 2200 PRINT " Capa |Codigo| Prof | Esp. | Capa |Codigo| Prof | Esp. "

195

2210 PRINT "------|------|------|------|------|------|------|------" 2220 IMAGE 1X,3D,5X,2D,4X,3D,5X,2D,4X,3D,5X,2D,4X,3D,4X,3D 2230 FOR K=1 TO Ncor 2240 Fil=INT(C(2,K)) 2250 Col=((C(2,K)-INT(C(2,K)))*1000) 2260 PRINT USING

2220;Fil,Cod(1,Fil),Z(1,Fil),Esp(1,Fil),Col,Cod(2,Col),Z(2,Col),Esp(2,Col) 2270 NEXT K 2280 PRINT 2290 ! 2300 PRINTER IS 1 2310 INPUT "Quiere imprimir un listado con las correlaciones ",Qi$ 2320 IF Qi$="SI" OR Qi$="S" THEN 2330 PRINTER IS 701 2340 GOTO 2080 2350 END IF 2360 PRINT CHR$(12) 2370 ! 2380 GOSUB Repre 2390 GCLEAR 2400 GOTO 330 2410 !------------------------------------------------------------------------ 2420 REM Desplazamiento de las capas correlacionadas 2430 !------------------------------------------------------------------------ 2440 OFF KEY 2450 ! 2460 Sumdesp2=0 ! DESPLAZAMIENTO PROMEDIO DE TODAS LAS CAPAS 2470 FOR K=Ncor TO 1 STEP -1 2480 Fil=INT(C(2,K)) 2490 Col=((C(2,K)-INT(C(2,K)))*1000) 2500 Colant=((C(2,K+1)-INT(C(2,K+1)))*1000) 2510 Dest=Z(2,Col)-Z(1,Fil) 2520 Desm=(Z(2,Col)+Esp(2,Col))-(Z(1,Fil)+Esp(1,Fil)) 2530 IF Dest>0 THEN 2540 IF Desm>0 THEN Desp(K)=Dest 2550 IF Desm<=0 THEN Desp(K)=0 2560 END IF 2570 IF Dest<=0 THEN 2580 IF Desm<0 THEN Desp(K)=Desm 2590 IF Desm>=0 AND Colant=Col THEN Desp(K)=Desp(K+1) 2600 IF Desm>=0 AND Colant<>Col THEN Desp(K)=0 2610 END IF 2620 Sumdesp2=Sumdesp2+Desp(K) 2630 NEXT K 2640 Despro2=Sumdesp2/Ncor 2650 ! 2660 Despmax=ABS(Desp(1)) ! CALCULO DE DESPLAZAMIENTO MAXIMO 2670 FOR K=2 TO Ncor 2680 IF ABS(Desp(K))<Despmax THEN GOTO 2700 2690 Despmax=ABS(Desp(K)) 2700 NEXT K 2710 ! 2720 GOSUB Pintar1 2730 GCLEAR 2740 !

196

2750 GOTO 330 2760 !------------------------------------------------------------------------ 2770 REM Frecuencia de litologias correlacionadas 2780 !------------------------------------------------------------------------ 2790 OFF KEY 2800 ! 2810 PRINT "LITOLOGIAS PRESENTES" 2820 Nlit=1 2830 Clit(1)=Cod(1,1) 2840 PRINT 1,Clit(1) 2850 FOR R=1 TO 2 2860 FOR I=1 TO Ncap(R) 2870 FOR L=1 TO Nlit 2880 IF Cod(R,I)=Clit(L) THEN GOTO 2930 2890 NEXT L 2900 Nlit=Nlit+1 2910 Clit(Nlit)=Cod(R,I) 2920 PRINT Nlit,Clit(Nlit) 2930 NEXT I 2940 NEXT R 2950 ! Porcentajes de aparicion de litologias 2960 ! (para el 1³ sondeo) 2970 FOR L=1 TO Nlit 2980 Ntl(L)=0 2990 FOR I=1 TO Ncap(1) 3000 IF Cod(1,I)=Clit(L) THEN Ntl(L)=Ntl(L)+1 3010 NEXT I 3020 NEXT L 3030 ! 3040 Nmaxlit=Ntl(1) 3050 FOR L=2 TO Nlit 3060 IF Ntl(L)>Nmaxlit THEN Nmaxlit=Ntl(L) 3070 NEXT L 3080 ! Porcentajes de correlacion de litologias 3090 ! 3100 FOR L=1 TO Nlit 3110 Ncl(L)=0 3120 FOR K=1 TO Ncor 3130 IF Cod(1,INT(C(2,K)))=Clit(L) THEN Ncl(L)=Ncl(L)+1 3140 NEXT K 3150 NEXT L 3160 ! 3170 GOSUB Pintar2 3180 GCLEAR 3190 GOTO 330 3200 !------------------------------------------------------------------------ 3210 Crosasociacion: ! Cros-asociacion 3220 !------------------------------------------------------------------------ 3230 PRINT "Calculo de la matriz de correlacion ----------" 3240 Salto=1 3250 Dist=1 3260 FOR I=1 TO Ncap(1) 3270 PRINT TABXY(50,11);"Fila";I 3280 Fil=I 3290 D(I,0)=I

197

3300 FOR J=1 TO Ncap(2) 3310 Col=J 3320 GOSUB Fuzzy 3330 D(0,J)=J 3340 D1=D(I,J-1)+Salto 3350 D2=D(I-1,J-1)+Dif 3360 D3=D(I-1,J)+Salto 3370 Difer=D1 3380 IF D2<D1 AND D2<D3 THEN Difer=D2 3390 IF D3<D1 AND D3<D2 THEN Difer=D3 3400 D(I,J)=Difer 3410 ! PRINT USING "3D,1X,#";Difer 3420 NEXT J 3430 ! PRINT 3440 NEXT I 3450 PRINT 3460 ! 3470 ! ANALISIS DE LA ULTIMA FILA 3480 ! 3490 Fil=Ncap(1) 3500 Col=1 3510 Col1=1 3520 Col2=1 3530 FOR J=2 TO Ncap(2) 3540 IF D(Fil,J)<=D(Fil,Col1) THEN Col1=J 3550 NEXT J 3560 Ncomp=(Ncap(2) DIV 10) 3570 FOR J=Ncomp*5 TO Ncap(2)-Ncomp 3580 Mincomp=D(Fil,J) 3590 FOR K=-Ncomp TO Ncomp 3600 IF D(Fil,J+K)<=Mincomp THEN Mincomp=D(Fil,J+K) 3610 NEXT K 3620 IF Mincomp=D(Fil,J) THEN Col2=J 3630 NEXT J 3640 IF Col2=Col1 THEN 3650 Col=Col1 3660 GOTO 3790 3670 END IF 3680 ! 3690 ! COMPARACION DE LAS DOS COLUMNAS 3700 ! 3710 FOR L=1 TO 3 3720 Fil=Ncap(1) 3730 IF L=1 THEN Col=Col1 3740 IF L=2 THEN Col=Col2 3750 IF L=3 THEN 3760 IF Ncor2>=Ncor1 THEN Col=Col2 3770 IF Ncor1>=Ncor2 THEN Col=Col1 3780 END IF 3790 ! 3800 ! LINEA DE MINIMOS DE ASCENSO 3810 ! 3820 C(1,1)=Fil+Col/1000 ! Fil,00Col 3830 ! PRINT " Pares de linea de ascenso " 3840 ! PRINT "------------------------------------"

198

3850 ! PRINT " Codigo | Fila | Colum. | Codigo " 3860 ! PRINT "--------|-------|---------|---------" 3870 ! PRINT Par(1,Fil),Fil,Col,Par(2,Col) 3880 FOR I=2 TO Ndim*2 3890 IF Fil=1 AND Col=1 THEN GOTO 4140 3900 IF Fil=1 THEN 3910 Col=Col-1 3920 GOTO 4110 3930 END IF 3940 IF Col=1 THEN 3950 Fil=Fil-1 3960 GOTO 4110 3970 END IF 3980 IF D(Fil-1,Col)<=D(Fil,Col-1) THEN 3990 Fil=Fil-1 4000 IF D(Fil,Col-1)<=D(Fil,Col) THEN 4010 Col=Col-1 4020 ELSE ! 4030 Col=Col-1 ! 4040 GOSUB Fuzzy ! DESVIO POR IGUALDAD 4050 IF Dif=Dist THEN Col=Col+1 ! 4060 END IF ! 4070 ELSE 4080 Col=Col-1 4090 IF D(Fil-1,Col)<D(Fil,Col) THEN Fil=Fil-1 4100 END IF 4110 C(1,I)=Fil+Col/1000 4120 ! PRINT Cod(1,Fil),Fil,Col,Cod(2,Col) 4130 NEXT I 4140 ! 4150 ! INCLUIR POSIBILIDAD DE DEFINIR A CONTINUACION UN NUEVO DIST (FUZZY) 4160 ! 4170 ! PRINT " Pares de correlacion " 4180 ! PRINT "------------------------------------" 4190 ! PRINT " Codigo | Fila | Colum. | Codigo " 4200 ! PRINT "--------|-------|---------|---------" 4210 H=1 4220 FOR I=1 TO Ndim*2 4230 Fil=INT(C(1,I)) 4240 Col=(C(1,I)-Fil)*1000 4250 Filsig=INT(C(1,I+1)) 4260 Colsig=(C(1,I+1)-Filsig)*1000 4270 IF Fil=0 OR Col=0 THEN GOTO 4400 4280 GOSUB Fuzzy 4290 IF Dif=Dist THEN GOTO 4390 4300 ! PRINT Cod(1,Fil),Fil,Col,Cod(2,Col) 4310 C(2,H)=Fil+Col/1000 4320 H=H+1 4330 IF Fil<=1 OR Col<=1 THEN GOTO 4400 4340 IF Fil=Filsig OR Col=Colsig THEN 4350 Fil=Filsig 4360 Col=Colsig 4370 GOTO 4390 ! 3710 4380 END IF 4390 NEXT I

199

4400 ! 4410 IF Col2=Col1 THEN GOTO 4460 4420 ! 4430 IF L=1 THEN Ncor1=H-1 4440 IF L=2 THEN Ncor2=H-1 4450 NEXT L 4460 ! 4470 Ncor=H-1 4480 ! 4490 RETURN 4500 !------------------------------------------------------------------------ 4510 Fuzzy: ! Distintos criterios de igualdad 4520 !------------------------------------------------------------------------ 4530 ! Compara Cod(1,Fil) con Cod(2,Col) 4540 ! Igualdad --> Dif=0 --- Desigualdad --> Dif=DiST 4550 ! 4560 ! | 1 : grava / 2 : arena / 3 : limo 4570 ! | 4 : arcilla 4580 ! Codigos empleados | 5 : caliza 4590 ! | 6 : yeso 4600 ! | 7 : material radiactivo (organico) 4610 ! | 8 : granito 4620 P1=Cod(1,Fil) 4630 P2=Cod(2,Col) 4640 P1a=P1 DIV 10 4650 P2a=P2 DIV 10 4660 P1b=P1 MOD 10 4670 P2b=P2 MOD 10 4680 ! 4690 IF P1<>P2 THEN Dif=Dist 4700 ! a) CAPAS IGUALES si LITOLOGIAS IGUALES 4710 IF P1=P2 THEN Dif=0 4720 IF Fuz=1 THEN GOTO 4980 4730 ! b) CAPAS IGUALES si a) y ALTERNANCIA DE LITOLOGIAS 4740 IF P1a=P2b AND P1b=P2a THEN Dif=0 4750 IF Fuz=2 THEN GOTO 4980 4760 ! c) CAPAS IGUALES si a) y b) y MISMA LITOLOGIA PREDOMINANTE CON 1=2=3 3=4 4770 IF P1a=P2a THEN 4780 IF (P1b>=1 AND P1b<=3) AND (P2b>=1 AND P2b<=3) THEN Dif=0 4790 IF (P1b>=3 AND P1b<=4) AND (P2b>=3 AND P2b<=4) THEN Dif=0 4800 END IF 4810 IF Fuz=3 THEN GOTO 4980 4820 ! d) CAPAS IGUALES si a) y b) y c) y LITOLOGIAS PURAS CON 1=...=4 4830 IF P1a=P1b AND P1a=P2a THEN 4840 IF (P1b>=1 AND P1b<=4) AND (P2b>=1 AND P2b<=4) THEN Dif=0 4850 IF (P1b>=1 AND P1b<=4) AND (P2b>=1 AND P2b<=4) THEN Dif=0 4860 END IF 4870 IF Fuz=4 THEN GOTO 4980 4880 ! e) CAPAS IGUALES si a) y b) y c) y d) y MISMO PREDOMINANTE CON 1=...=4 4890 IF P1a=P2a AND (P1b>=1 AND P1b<=4) AND (P2b>=1 AND P2b<=4) THEN Dif=0 4900 IF Fuz=5 THEN GOTO 4980 4910 ! f) CAPAS IGUALES si a) y b) y c) y d) y e) y 1=2 y 3=4 4920 Sum=2 4930 IF (P1a>=1 AND P1a<=2) AND (P2a>=1 AND P2a<=2) THEN Sum=Sum-1 4940 IF (P1b>=1 AND P1b<=2) AND (P2b>=1 AND P2b<=2) THEN Sum=Sum-1

200

4950 IF (P1a>=3 AND P1a<=4) AND (P2a>=3 AND P2a<=4) THEN Sum=Sum-1 4960 IF (P1b>=3 AND P1b<=4) AND (P2b>=3 AND P2b<=4) THEN Sum=Sum-1 4970 IF Sum=0 THEN Dif=0 4980 ! 4990 ! Restricciones impuestas 5000 ! 5010 IF (P1a=7 OR P1b=7) AND (P2a=7 OR P2b=7) THEN Dif=0 5020 IF (P1a=8 OR P1b=8) AND (P2a=8 OR P2b=8) THEN Dif=0 5030 ! IF Z(1,Fil+1)-Z(2,Col+1)>Z(2,Col+1)*10/100 THEN Dif=3 5040 ! IF Z(2,Col)-Z(1,Fil)>Z(2,Col)*10/100 THEN Dif=3 5050 ! IF Z(1,Fil)-Z(2,Col)>(Z(2,Col)/100+1/2)*Despro THEN Dif=3 5060 ! El 100 que aparece en la sentencia anterior puede variar 5070 ! 5080 RETURN 5090 !------------------------------------------------------------------------ 5100 Repre: ! Representacion grafica de la Correlacion 5110 !------------------------------------------------------------------------ 5120 OFF KEY 5130 GRAPHICS ON 5140 GINIT 5150 GCLEAR 5160 ! 5170 Zmin=Z0 5180 Zmax1=Z(1,Ncap(1))+Esp(1,Ncap(1)) 5190 Zmax2=Z(2,Ncap(2))+Esp(2,Ncap(2)) 5200 IF Zmax1>=Zmax2 THEN Zmax=Zmax1 5210 IF Zmax2>=Zmax1 THEN Zmax=Zmax2 5220 ! 5230 Zr1=Zmin 5240 Zr2=Zmax 5250 GOSUB Pintar0 5260 ! 5270 Salto=(Zmax-Zmin)/(Ndim/40) 5280 ON KNOB .01,3 GOTO 5320 5290 ON KBD,3 GOTO 5390 5300 GOTO 5280 5310 ! 5320 Avance=KNOBX*10 5330 GCLEAR 5340 Zr1=Zr1+Avance 5350 IF Zr1<Zmin THEN Zr1=Zmin 5360 Zr2=Zr1+Salto 5370 GOSUB Pintar0 5380 ! 5390 Tecla$=KBD$ 5400 IF Tecla$="ÿC" THEN GOTO 5430 5410 IF Tecla$="I" THEN CALL Imprimir 5420 GOTO 5280 5430 ! 5440 OFF KBD 5450 OFF KNOB 5460 RETURN 5470 !------------------------------------------------------------------------ 5480 Pintar0: ! Visualizacion de las lineas de correlacion 5490 !------------------------------------------------------------------------

201

5500 GCLEAR 5510 VIEWPORT 0,133,0,100 5520 Zr1=INT(Zr1+.5) 5530 Zr2=INT(Zr2+.5) 5540 WINDOW Zr1,Zr2,0,100 5550 ! 5560 Altura(1)=10 5570 Altura(2)=60 5580 ! 5590 LINE TYPE 1 5600 FOR R=1 TO 2 5610 MOVE Zr1,Altura(R) 5620 DRAW Zr2,Altura(R) 5630 FOR I=1 TO Ncap(R) 5640 MOVE Z(R,I),Altura(R) 5650 DRAW Z(R,I),Altura(R)+30 5660 NEXT I 5670 MOVE Z(R,Ncap(R))+Esp(R,Ncap(R)),Altura(R) 5680 DRAW Z(R,Ncap(R))+Esp(R,Ncap(R)),Altura(R)+30 5690 MOVE Zr1,Altura(R)+30 5700 DRAW Zr2,Altura(R)+30 5710 NEXT R 5720 ! 5730 CSIZE 5 5740 LORG 2 5750 MOVE Zr1,5 5760 LABEL VAL$(Zr1) 5770 MOVE Zr1,95 5780 LABEL VAL$(Zr1) 5790 LORG 5 5800 MOVE (Zr2+Zr1)/2,5 5810 LABEL "COLUMNA "&Nn$(1) 5820 MOVE (Zr2+Zr1)/2,95 5830 LABEL "COLUMNA "&Nn$(2) 5840 LORG 8 5850 MOVE Zr2,5 5860 LABEL VAL$(Zr2) 5870 MOVE Zr2,95 5880 LABEL VAL$(Zr2) 5890 ! 5900 LINE TYPE 4 5910 FOR I=1 TO Ncor 5920 Fil=INT(C(2,I)) 5930 Col=((C(2,I)-INT(C(2,I)))*1000) 5940 MOVE Z(1,Fil)+Esp(1,Fil)/2,40 5950 DRAW Z(2,Col)+Esp(2,Col)/2,60 5960 NEXT I 5970 ! 5980 RETURN 5990 !------------------------------------------------------------------------ 6000 Pintar1: ! Visualizacion de la curva de desplazamientos 6010 !------------------------------------------------------------------------ 6020 GRAPHICS ON 6030 GINIT 6040 GCLEAR

202

6050 ! 6060 VIEWPORT 0,133,0,100 6070 WINDOW 0,133,0,100 6080 FRAME 6090 LINE TYPE 1 6100 CSIZE 4 6110 MOVE 25,92 6120 LORG 1 6130 LABEL "DESPLAZAMIENTO CON LA PROFUNDIDAD" 6140 MOVE 25,8 6150 LORG 3 6160 LABEL "CAPAS GEOFISICAS CORRELACIONADAS" 6170 LORG 8 6180 MOVE 10,10 6190 LABEL(-INT(Despmax)) 6200 MOVE 7,45 6210 LABEL "m" 6220 MOVE 7,50 6230 LABEL "O" 6240 MOVE 10,90 6250 LABEL INT(Despmax) 6260 MOVE 10,10 6270 LORG 6 6280 LABEL 1 6290 MOVE 120,10 6300 LABEL Ncor 6310 ! 6320 VIEWPORT 10,120,10,90 6330 WINDOW 1,Ncor,-Despmax,Despmax 6340 LINE TYPE 4 6350 Gy=Despmax*2/10 6360 Gx=Ncor/10 6370 GRID Gx,Gy,1,0 6380 MOVE 1,Desp(Ncor) 6390 LINE TYPE 1 6400 FOR I=2 TO Ncor 6410 DRAW I,Desp(Ncor-I+1) 6420 NEXT I 6430 ! 6440 CALL Imprimir 6450 RETURN 6460 !------------------------------------------------------------------------ 6470 Pintar2: ! Visualizacion de frecuencia de litologias correlacionadas 6480 !------------------------------------------------------------------------ 6490 GRAPHICS ON 6500 GINIT 6510 GCLEAR 6520 ! 6530 VIEWPORT 0,133,0,100 6540 WINDOW 0,133,0,100 6550 LINE TYPE 1 6560 CSIZE 4 6570 LORG 1 6580 MOVE 15,92 6590 LABEL "CORRELACION"

203

6600 MOVE 43,94 6610 DRAW 53,94 6620 MOVE 75,92 6630 LABEL "APARICION " 6640 MOVE 98,94 6650 LINE TYPE 4 6660 DRAW 108,94 6670 LINE TYPE 1 6680 LORG 8 6690 MOVE 7,10 6700 LABEL "0" 6710 MOVE 7,90 6720 LABEL "%" 6730 LORG 3 6740 MOVE 90,4 6750 LABEL "LITOLOGIAS" 6760 ! 6770 LORG 3 6780 St=110/Nlit 6790 A0=10-St+St/3 6800 FOR L=1 TO Nlit 6810 MOVE L*St+A0,9 6820 LABEL(VAL$(Clit(L))) 6830 NEXT L 6840 ! 6850 MOVE 0,0 6860 ! 6870 VIEWPORT 10,120,10,90 6880 WINDOW 0,Nlit,-1,Nmaxlit 6890 AXES 1,Nmaxlit/10 6900 FOR L=1 TO Nlit 6910 MOVE L-1,0 6920 LINE TYPE 3 6930 DRAW L-1,Ntl(L) 6940 LINE TYPE 4 6950 DRAW L,Ntl(L) 6960 LINE TYPE 3 6970 DRAW L,0 6980 NEXT L 6990 LINE TYPE 1 7000 FOR L=1 TO Nlit 7010 MOVE L-1,Ncl(L) 7020 DRAW L,Ncl(L) 7030 NEXT L 7040 ! 7050 CALL Imprimir 7060 RETURN 7070 !------------------------------------------------------------------------ 7080 REM Fin del Prograna 7090 !------------------------------------------------------------------------ 7100 GCLEAR 7110 PRINT CHR$(12) 7120 PRINTER IS 1 7130 PRINT TABXY(30,10);"Fin del programa" 7140 !

204

7150 STOP 7160 END 7170 !------------------------------------------------------------------------ 7180 SUB Salir 7190 !------------------------------------------------------------------------ 7200 SUSPEND INTERACTIVE 7210 ON KEY 0 LABEL "SALIR" GOTO 7240 7220 ON KEY 5 LABEL "CONTINUAR" GOTO 7260 7230 GOTO 7210 7240 INPUT "Quiere salir al programa principal",Qsal$ 7250 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 7260 OFF KEY 7270 RESUME INTERACTIVE 7280 SUBEND 7290 !------------------------------------------------------------------------ 7300 SUB Imprimir 7310 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 7320 !------------------------------------------------------------------------ 7330 PRINTER IS 1 7340 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 7350 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 7400 7360 PRINT " Conecte la impresora y pulse |CONT| " 7370 PAUSE 7380 CALL Titulo 7390 CALL Vuelcapant(701) 7400 PRINT CHR$(12) 7410 PRINTER IS 1 7420 ! 7430 SUBEND 7440 !------------------------------------------------------------------------ 7450 SUB Titulo 7460 !------------------------------------------------------------------------ 7470 DIM Titulo$[240] 7480 ! 7490 PRINT CHR$(12) 7500 INPUT "Titulo del grafico",Titulo$ 7510 IF Titulo$="" THEN GOTO 7780 7520 PRINTER IS 1 7530 GOSUB Editor 7540 INPUT "Correcto",Cort$ 7550 IF Cort$="N" OR Cort$="NO" THEN GOTO 7490 7560 PRINTER IS 701 7570 GOSUB Editor 7580 PRINTER IS 1 7590 GOTO 7780 7600 ! 7610 Editor: ! Divide el texto y lo centra 7620 Titulo$=Titulo$&" " 7630 C0=0 7640 IF C0>=LEN(Titulo$) THEN GOTO 7760 7650 Caracter=50+C0 7660 FOR C=Caracter TO 1 STEP -1 7670 IF C>LEN(Titulo$) THEN GOTO 7750 7680 IF Titulo$[C,C]=" " THEN 7690 Tx=INT((64-(C-C0))/2)

205

7700 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 7710 PRINT USING Ima$;Titulo$[C0+1,C] 7720 C0=C 7730 GOTO 7640 7740 END IF 7750 NEXT C 7760 RETURN 7770 ! 7780 SUBEND 7790 !------------------------------------------------------------------------ 7800 SUB Vuelcapant(INTEGER Device_selector) 7810 !------------------------------------------------------------------------ 7820 OPTION BASE 1 7830 INTEGER Row_group,Prod_num,Maxrow 7840 DIM Graphic_escape$[7] 7850 ! 7860 ON ERROR GOTO 8260 7870 PRINTER IS Device_selector 7880 OFF ERROR 7890 ! 7900 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 7910 ! 7920 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 7930 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 7940 ! 7950 IF Graphics_res=1 THEN 7960 ALLOCATE Os$[512] ! Para los modelos 9836 7970 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 7980 Maxrow=390 ! Numero de lineas del 9836 7990 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 8000 ELSE 8010 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 8020 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 8030 Maxrow=300 ! Numero de lineas del 9826 y 9816 8040 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 8050 END IF 8060 ! 8070 GSTORE Screen(*) ! Almacena matriz de pantalla 8080 ! 8090 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 8100 ! 8110 FOR Row_group=1 TO 297 STEP 8 8120 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 8130 Gdump(Screen(*),Row_group,Os$) 8140 ! Volcado de linea de caracteres graficos 8150 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 8160 PRINT USING "7A,400A";Graphic_escape$,Os$ 8170 ELSE ! Para los modelos 9836 8180 PRINT USING "7A,512A";Graphic_escape$,Os$ 8190 END IF 8200 NEXT Row_group 8210 ! 8220 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 8230 ! 8240 SUBEXIT

206

8250 ! 8260 BEEP ! Caso de encontrarse error en "PRINTER IS" 8270 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 8280 ! 8290 SUBEND 8300 ! 8310 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 8320 !-------------------------------------------------------------------------

207

10 !----------------------------------------------------------------------- 20 REM "ZONACION" 30 REM PROGRAMA PARA ZONACION DE DIAGRAFIAS 40 !----------------------------------------------------------------------- 50 PRINTER IS 1 60 PRINT CHR$(12) 70 CONTROL 2,0;1 80 ! 90 GRAPHICS ON 100 GINIT 110 GCLEAR 120 ! 130 FOR F=0 TO 10 STEP 2 140 VIEWPORT 0+F,133-F,10+F,100-F 150 FRAME 160 NEXT F 170 ! 180 PRINT TABXY(24,11);" -ZONACION- " 190 PRINT TABXY(24,13);"PROGRAMA PARA ZONACION DE DIAGRAFIAS" 200 CALL Salir 210 PRINT CHR$(12) 220 GCLEAR 230 ! 240 Ndat=10 250 INTEGER Pantalla(1:7500) 260 ALLOCATE X(1:Ndat),Y(1:Ndat) 270 ALLOCATE Y2(1:Ndat),Amp(1:Ndat) 280 ALLOCATE Capa(1:100),Valor(1:100) 290 ALLOCATE Esp(1:100),Var(1:100),Zona(1:100) 300 ALLOCATE Xzon(1:10),Valmed(1:10),Espmed(1:10),Varmed(1:10) 310 COM /Segme/ REAL C(400),P(400),INTEGER Nc 320 ! 330 Grabacion=1 340 GOTO 480 350 !----------------------------------------------------------------------- 360 REM Flujos del programa 370 !----------------------------------------------------------------------- 380 ON KEY 5 LABEL "LECTURA DATOS " GOTO 480 390 ON KEY 6 LABEL " ZONACION " GOTO 690 400 ON KEY 7 LABEL " CORRECCION " GOTO 850 410 ON KEY 8 LABEL " GRABACION " GOTO 980 420 ON KEY 9 LABEL " IMPRIMIR " CALL Imprimir ! 7500 430 ON KEY 4 LABEL " LISTADO " GOSUB Listar ! 4900 440 ON KEY 0 LABEL " TERMINAR " GOTO 1150 450 GOTO 380 460 OFF KEY 470 !------------------------------------------------------------------------ 480 REM Entrada de datos 490 !------------------------------------------------------------------------ 500 GRAPHICS OFF 510 IF Grabacion=0 THEN 520 PRINT TABXY(15,2);"LOS RESULTADOS ANTERIORES NO SE HAN GRABADO" 530 BEEP 540 INPUT "Quiere continuar",Qc$ 550 IF Qc$<>"SI" AND Qc$<>"S" THEN GOTO 660

208

560 END IF 570 ! 580 GCLEAR 590 PRINT CHR$(12) 600 ! 610 GOSUB Leefichero ! 1340 620 ! 630 Lectura=1 640 Grabacion=0 650 ! 660 GRAPHICS ON 670 GOTO 370 680 !------------------------------------------------------------------------ 690 REM Zonacion 700 !------------------------------------------------------------------------ 710 IF Lectura=0 THEN 720 PRINT TABXY(20,2);"NO HA RECUPERADO NINGUN REGISTRO" 730 BEEP 740 GOTO 830 750 END IF 760 ! 770 GCLEAR 780 GOSUB Zonar ! 2240 790 Nzon=Nc 800 GOSUB Redef ! 4160 810 ! 820 Zonacion=1 830 GOTO 370 840 !------------------------------------------------------------------------ 850 REM Correccion de zonas 860 !------------------------------------------------------------------------ 870 IF Zonacion=0 THEN 880 PRINT TABXY(20,2);"PRIMERO DEBE ZONAR EL REGISTRO" 890 BEEP 900 GOTO 960 910 END IF 920 ! 930 GOSUB Correczona ! 4810 940 GOSUB Redef ! 4160 950 ! 960 GOTO 370 970 !------------------------------------------------------------------------ 980 REM Grabacion de zonas 990 !------------------------------------------------------------------------ 1000 GRAPHICS OFF 1010 IF Zonacion<>1 THEN 1020 PRINT TABXY(15,2);"PRIMERO DEBE ZONAR EL REGISTRO" 1030 BEEP 1040 GOTO 1120 1050 END IF 1060 ! 1070 CALL

Graba4(Nom1$,Nzon,X0,Xzon(*),Valmed(*),Espmed(*),Varmed(*),Max,Min,Espmax,Espmin)

1080 !

209

1090 Grabacion=1 1100 Lectura=0 1110 ! 1120 GRAPHICS ON 1130 GOTO 370 1140 !------------------------------------------------------------------------ 1150 REM Terminar el programa 1160 !------------------------------------------------------------------------ 1170 GRAPHICS OFF 1180 IF Zonacion=1 AND Grabacion<>1 THEN 1190 PRINT TABXY(15,1);"ATENCION, NO HA GRABADO LOS RESULTADOS" 1200 BEEP 1210 INPUT "Quiere continuar",Qcon$ 1220 IF Qcon$<>"SI" AND Qcon$<>"S" THEN GOTO 1270 1230 END IF 1240 ! 1250 CALL Salir ! 5480 1260 ! 1270 GRAPHICS ON 1280 GOTO 370 1290 !------------------------------------------------------------------------ 1300 Leefichero:! Lectura de los datos digitalizados 1310 !----------------------------------------------------------------------- 1320 SUSPEND INTERACTIVE 1330 PRINT CHR$(12) 1340 PRINT 1350 PRINT " Coloque el disco con datos de la diagrafia en la disquetera [1]" 1360 PRINT 1370 CALL Salir 1380 ! 1390 PRINT CHR$(12) 1400 MASS STORAGE IS ":HP 8290X,700,1" 1410 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN ESE DISCO" 1420 ON ERROR GOTO 2020 1430 CAT 1440 OFF ERROR 1450 ! 1460 BEEP 1470 INPUT "Nombre del fichero del registro a estudiar",Nom1$ 1480 IF LEN(Nom1$)=0 OR LEN(Nom1$)>8 THEN GOTO 1470 1490 Nom2$=Nom1$&"_C" 1500 ON ERROR GOTO 2020 1510 ASSIGN @Pat_1 TO Nom1$ 1520 ASSIGN @Pat_1 TO * 1530 ASSIGN @Pat_2 TO Nom2$ 1540 ASSIGN @Pat_2 TO * 1550 OFF ERROR 1560 ! 1570 PRINT CHR$(12) 1580 PRINT " Realizando la lectura de los datos de ";Nom1$;", NO interrumpir" 1590 ON ERROR GOTO 2020 1600 DEALLOCATE X(*),Y(*) 1610 ASSIGN @Pat_1 TO Nom1$ 1620 ENTER @Pat_1;Ndat,X0,Dist,Min,Max 1630 ALLOCATE X(1:Ndat),Y(1:Ndat)

210

1640 ENTER @Pat_1;Y(*) 1650 ASSIGN @Pat_1 TO * 1660 OFF ERROR 1670 ! 1680 PRINT CHR$(12) 1690 PRINT " Realizando la lectura de los datos de ";Nom2$;", NO interrumpir" 1700 ON ERROR GOTO 2020 1710 DEALLOCATE Capa(*),Valor(*) 1720 ASSIGN @Pat_2 TO Nom2$ 1730 ENTER @Pat_2;Ncap,Cap0,Vmin,Vmax 1740 ALLOCATE Capa(0:Ncap),Valor(0:Ncap) 1750 FOR J=1 TO Ncap 1760 ENTER @Pat_2;Capa(J),Valor(J) 1770 NEXT J 1780 Capa(0)=X0 1790 ASSIGN @Pat_2 TO * 1800 OFF ERROR 1810 ! 1820 FOR I=1 TO Ndat 1830 X(I)=X0+I*Dist 1840 NEXT I 1850 X1=X(Ndat) 1860 ! 1870 PRINT CHR$(12) 1880 PRINT TABXY(20,4);"Registro ";Nom1$ 1890 PRINT TABXY(20,6);"NÇmero de datos ------";Ndat 1900 PRINT TABXY(20,7);"Equidistancia --------";Dist 1910 PRINT TABXY(20,8);"Profundidad inicial --";X0 1920 PRINT TABXY(20,9);"Profundidad final ----";X1 1930 PRINT TABXY(20,10);"Valor mínimo ---------";INT(Min) 1940 PRINT TABXY(20,11);"Valor máximo ---------";INT(Max) 1950 PRINT TABXY(20,13);"Registro ";Nom2$ 1960 PRINT TABXY(20,15);"Numero de capas ------";Ncap 1970 CALL Salir 1980 PRINT CHR$(12) 1990 ! 2000 GOTO 2140 2010 ! 2020 OFF ERROR 2030 PRINT CHR$(12) 2040 IF ERRN=80 THEN GOTO 1330 2050 IF ERRN=56 THEN 2060 PRINT " EL FICHERO NO SE ENCUENTRA EN ESE DISCO" 2070 PRINT 2080 GOTO 1340 2090 END IF 2100 IF ERRN<>59 THEN 2110 PRINT " ERROR DURANTE LA LECTURA DE DATOS, REVISE POR FAVOR" 2120 GOTO 2160 2130 END IF 2140 ! 2150 MASS STORAGE IS ":HP 8290X,700,0" 2160 PRINT CHR$(12) 2170 OFF KEY 2180 RESUME INTERACTIVE

211

2190 RETURN 2200 !------------------------------------------------------------------------ 2210 Zonar: ! Subrutina para zonacion del registro 2220 !------------------------------------------------------------------------ 2230 OFF KEY 2240 DEALLOCATE Esp(*),Var(*),Zona(*),Y2(*),Amp(*) 2250 ALLOCATE Esp(1:Ncap),Var(1:Ncap),Zona(1:Ncap) 2260 ALLOCATE Y2(1:Ndat),Amp(1:Ndat) 2270 ! 2280 ! Ventana para la Zonacion de la curva 2290 Espesor=INT((X(Ndat)-X(1))/Ncap*10)/10 2300 PRINT CHR$(12) 2310 PRINT 2320 PRINT " Espesor medio de capa ------------------------ :";Espesor 2330 PRINT 2340 Numcap=14 ! 14 FUNCIONA BIEN 2350 Ancho=Espesor*Numcap 2360 PRINT " Numero de capas para la ventana de comparacion :";Numcap 2370 PRINT " Longitud a la que corresponde ---------------- :";Ancho 2380 BEEP 2390 ! INPUT "Numero par de capas para la ventana de comparacion",Numcap 2400 IF INT(Numcap/2)<>Numcap/2 OR Numcap<2 OR Numcap>Ncap/10 THEN GOTO 2390 2410 Ancho=Espesor*Numcap 2420 Banda=INT(Ancho/Dist) 2430 IF INT(Banda/2)<>Banda/2 THEN Banda=Banda+1 2440 ! 2450 CALL Visual4(Capa(*),Valor(*),Ncap,1,"B","CAPAS") 2460 !------------------------------------------------------------------------ 2470 REM Estudio estadistico de la curva 2480 !------------------------------------------------------------------------ 2490 PRINT CHR$(12) 2500 PRINT " REALIZANDO CALCULO DE VARIANZA PARA LA ZONACION,"; 2510 PRINT " ESPERE POR FAVOR " 2520 ! 2530 FOR J=1 TO Numcap/2 2540 Suma=0 2550 FOR J2=1 TO J+Numcap/2 2560 Suma=Suma+Valor(J2) 2570 NEXT J2 2580 Media=Suma/(J+Numcap/2) 2590 Cuad=0 2600 FOR J2=1 TO J+Numcap/2 2610 Cuad=Cuad+(Valor(J2)-Media)^2 2620 NEXT J2 2630 ! Var(J)=LGT(Cuad/(J+Numcap/2)) 2640 Var(J)=SQR(Cuad/(J+Numcap/2)) 2650 NEXT J 2660 ! 2670 FOR J=Ncap-Numcap/2+1 TO Ncap 2680 Suma=0 2690 FOR J2=J-Numcap/2 TO Ncap 2700 Suma=Suma+Valor(J2) 2710 NEXT J2 2720 Media=Suma/(Ncap-J+Numcap/2+1) 2730 Cuad=0

212

2740 FOR J2=J-Numcap/2 TO Ncap 2750 Cuad=Cuad+(Valor(J2)-Media)^2 2760 NEXT J2 2770 ! Var(J)=LGT(Cuad/(Ncap-J+Numcap/2+1)) 2780 Var(J)=SQR(Cuad/(Ncap-J+Numcap/2+1)) 2790 NEXT J 2800 ! 2810 FOR J=Numcap/2+1 TO Ncap-Numcap/2 2820 IF (J MOD 10)=0 THEN PRINT TABXY(30,3);INT(Capa(J));"metros " 2830 Suma=0 2840 FOR J2=J-Numcap/2 TO J+Numcap/2 2850 Suma=Suma+Valor(J2) 2860 NEXT J2 2870 Media=Suma/(Numcap+1) 2880 Cuad=0 2890 FOR J2=J-Numcap/2 TO J+Numcap/2 2900 Cuad=Cuad+(Valor(J2)-Media)^2 2910 NEXT J2 2920 ! Var(J)=LGT(Cuad/(Numcap+1)) 2930 Var(J)=SQR(Cuad/(Numcap+1)) 2940 NEXT J 2950 ! 2960 CALL Visual4(Capa(*),Var(*),Ncap,2,"C","VARIANZA") 2970 !------------------------------------------------------------------------ 2980 REM Estudio espectral de la curva 2990 !------------------------------------------------------------------------ 3000 PRINT CHR$(12) 3010 PRINT " REALIZANDO CALCULO DE FRECUENCIA (ESPESORES) PARA LA ZONACION,"; 3020 PRINT " ESPERE POR FAVOR " 3030 ! 3040 Espmin=Capa(2)-Capa(1) 3050 Espmax=Capa(2)-Capa(1) 3060 FOR J=2 TO Ncap 3070 IF Capa(J)-Capa(J-1)<Espmin THEN Espmin=Capa(J)-Capa(J-1) 3080 IF Capa(J)-Capa(J-1)>Espmax THEN Espmax=Capa(J)-Capa(J-1) 3090 NEXT J 3100 ! 3110 FOR J=1 TO Numcap/2 3120 Sumesp0=0 3130 FOR J0=1 TO J+Numcap/2 3140 Sumesp0=Sumesp0+(Capa(J0)-Capa(J0-1)) 3150 NEXT J0 3160 Esp(J)=Sumesp0/(Numcap/2+J) 3170 NEXT J 3180 ! 3190 FOR J=Ncap-Numcap/2+1 TO Ncap 3200 Sumesp1=0 3210 FOR J1=J-Numcap/2 TO Ncap 3220 Sumesp1=Sumesp1+(Capa(J1)-Capa(J1-1)) 3230 NEXT J1 3240 Esp(J)=Sumesp1/(Ncap-J+Numcap/2+1) 3250 NEXT J 3260 ! 3270 FOR J=Numcap/2+1 TO Ncap-Numcap/2 3280 IF (J MOD 10)=0 THEN PRINT TABXY(30,3);INT(Capa(J));"metros "

213

3290 Sumesp=0 3300 FOR J2=J-Numcap/2 TO J+Numcap/2 3310 Sumesp=Sumesp+(Capa(J2)-Capa(J2-1)) 3320 NEXT J2 3330 Esp(J)=Sumesp/(Numcap+1) 3340 NEXT J 3350 ! 3360 CALL Visual4(Capa(*),Esp(*),Ncap,3,"C","ESPESORES") 3370 !------------------------------------------------------------------------ 3380 REM Estudio de amplitudes de la curva 3390 !------------------------------------------------------------------------ 3400 PRINT CHR$(12) 3410 PRINT " REALIZANDO CALCULO DE AMPLITUDES (VALORES) PARA LA ZONACION,"; 3420 PRINT " ESPERE POR FAVOR " 3430 ! 3440 FOR I=1 TO Ndat 3450 Y2(I)=Y(I) 3460 NEXT I 3470 ! 3480 FOR Nrep=1 TO 4 !------------------------ 3490 PRINT TABXY(25,3);"Paso";Nrep 3500 ! 3510 FOR I=1 TO Banda/2+1 3520 Suma1=0 3530 FOR I1=1 TO I+Banda/2 3540 Suma1=Suma1+Y2(I1) 3550 NEXT I1 3560 Amp(I)=Suma1/(Banda/2+I) 3570 NEXT I 3580 ! 3590 FOR I=Ndat-Banda/2+1 TO Ndat 3600 Suma2=0 3610 FOR I2=I-Banda/2 TO Ndat 3620 Suma2=Suma2+Y2(I2) 3630 NEXT I2 3640 Amp(I)=Suma2/(Ndat-I+Banda/2+1) 3650 NEXT I 3660 ! 3670 Suma=0 3680 FOR I=1 TO Banda+1 3690 Suma=Suma+Y2(I) 3700 NEXT I 3710 FOR I=Banda/2+2 TO Ndat-Banda/2 3720 IF (X(I) MOD 10)=0 THEN PRINT TABXY(32,3);X(I);"metros" 3730 Suma=Suma-Y2(I-Banda/2-1) 3740 Suma=Suma+Y2(I+Banda/2) 3750 Amp(I)=Suma/(Banda+1) 3760 NEXT I 3770 ! 3780 FOR I=1 TO Ndat 3790 Y2(I)=Amp(I) 3800 NEXT I 3810 ! 3820 NEXT Nrep !------------------------------- 3830 !

214

3840 Pte=(Y2(Banda/2+2)-Y2(Banda/2+1))/Dist 3850 Ete=((Banda/2+1)*Dist*Pte)/(Y2(Banda/2+1)-Y2(1)) 3860 Cte=(Y2(Banda/2+2)-Y2(1))/((Banda/2+1)*Dist)^Ete 3870 FOR I=2 TO Banda/2+1 3880 Amp(I)=Y2(1)+Cte*((I-1)*Dist)^Ete 3890 NEXT I 3900 Pte=(Y2(Ndat-Banda/2-1)-Y2(Ndat-Banda/2))/Dist 3910 Ete=((Banda/2)*Dist*Pte)/(Y2(Ndat-Banda/2)-Y2(Ndat)) 3920 Cte=(Y2(Ndat-Banda/2)-Y2(Ndat))/((Banda/2)*Dist)^Ete 3930 FOR I=Ndat-Banda/2+1 TO Ndat 3940 Amp(I)=Y2(Ndat)+Cte*((Ndat-I)*Dist)^Ete 3950 NEXT I 3960 ! 3970 DEALLOCATE Y2(*) 3980 GOTO 4080 3990 Maxamp=Amp(1) 4000 Minamp=Amp(1) 4010 FOR I=2 TO Ndat 4020 IF Amp(I)>Maxamp THEN Maxamp=Amp(I) 4030 IF Amp(I)<Minamp THEN Minamp=Amp(I) 4040 NEXT I 4050 FOR I=1 TO Ndat 4060 Amp(I)=Min+(Max-Min)*(Amp(I)-Minamp)/(Maxamp-Minamp) 4070 NEXT I 4080 ! 4090 CALL Visual4(X(*),Amp(*),Ndat,4,"C","AMPLITUDES") 4100 CALL Segmentar(X(*),Amp(*),Ndat,Dist,"N") ! SENTENCIA 5650 4110 ! 4120 Zj=1 4130 FOR J=1 TO Ncap 4140 IF Capa(J)<C(Zj) THEN 4150 Zona(J)=0 4160 GOTO 4310 4170 END IF 4180 IF Capa(J)=C(Zj) THEN 4190 Zona(J)=1 4200 IF Zj>Nc THEN GOTO 4330 4210 Zj=Zj+1 4220 GOTO 4310 4230 END IF 4240 IF Capa(J)>C(Zj) THEN 4250 ! IF ABS(Capa(J)-C(Zj))>ABS(Capa(J+1)-C(Zj)) THEN J=J+1 4260 IF ABS(Valor(J)-P(Zj))>ABS(Valor(J+1)-P(Zj)) THEN J=J+1 4270 Zona(J)=1 4280 IF Zj>Nc THEN GOTO 4330 4290 Zj=Zj+1 4300 END IF 4310 NEXT J 4320 ! 4330 GSTORE Pantalla(*) 4340 RETURN ! FIN DEL SUBPROGRAMA DE ZONACION 4350 !------------------------------------------------------------------------ 4360 Redef: ! Redefinicion de los valores de zona 4370 !------------------------------------------------------------------------ 4380 GCLEAR

215

4390 PRINT CHR$(12) 4400 PRINT TABXY(17,10);"RECALCULANDO VALORES DE ZONA, ESPERE POR FAVOR" 4410 ! 4420 DEALLOCATE Xzon(*),Valmed(*),Espmed(*),Varmed(*) 4430 ALLOCATE Xzon(0:Nzon),Valmed(1:Nzon),Espmed(1:Nzon),Varmed(1:Nzon) 4440 ! 4450 J0=1 4460 Z=1 4470 Xzon(1)=X(1) 4480 ! 4490 Z=Z+1 4500 ! 4510 FOR J=J0+1 TO Ncap 4520 IF Zona(J)=1 THEN 4530 J1=J 4540 GOTO 4590 4550 END IF 4560 NEXT J 4570 J1=Ncap 4580 ! 4590 Xzon(Z)=Capa(J1) 4600 Sumamp=0 4610 Sumesp=0 4620 FOR J=J0+1 TO J1 4630 Sumamp=Sumamp+Valor(J)*(Capa(J)-Capa(J-1)) 4640 Sumesp=Sumesp+(Capa(J)-Capa(J-1)) 4650 NEXT J 4660 Valmed(Z)=Sumamp/(Capa(J1)-Capa(J0)) 4670 Espmed(Z)=Sumesp/(J1-J0) 4680 Sumcuad=0 4690 FOR J=J0+1 TO J1 4700 Sumcuad=Sumcuad+(Valor(J)-Valmed(Z))^2 4710 NEXT J 4720 Varmed(Z)=SQR(Sumcuad/(J1-J0)) 4730 ! 4740 IF Z=Nzon THEN GOTO 4770 4750 J0=J1 4760 GOTO 4490 4770 ! 4780 ! Normalizacion de varianza y amplitud 4790 ! 4800 Varmed(1)=Varmed(2) 4810 Valmed(1)=Valmed(2) 4820 Espmed(1)=Espmed(2) 4830 Varmin=Varmed(1) 4840 Varmax=Varmed(1) 4850 FOR Z=2 TO Nzon 4860 IF Varmed(Z)<Varmin THEN Varmin=Varmed(Z) 4870 IF Varmed(Z)>Varmax THEN Varmax=Varmed(Z) 4880 NEXT Z 4890 FOR Z=1 TO Nzon 4900 Valmed(Z)=(Valmed(Z)-Min)/(Max-Min)*100 ! DE 0 A 100% EXTREMOS INICIALES 4910 Varmed(Z)=(Varmed(Z)-Varmin)/(Varmax-Varmin) ! DE 0 A 1 4920 NEXT Z 4930 !

216

4940 PRINT CHR$(12) 4950 GLOAD Pantalla(*) 4960 CALL Visual4(Xzon(*),Varmed(*),Nzon,2,"B","") 4970 CALL Visual4(Xzon(*),Espmed(*),Nzon,3,"B","") 4980 CALL Visual4(Xzon(*),Valmed(*),Nzon,4,"B","") 4990 ! 5000 RETURN 5010 !------------------------------------------------------------------------ 5020 Listar: ! Listado de los valores de zona 5030 !------------------------------------------------------------------------ 5040 GRAPHICS OFF 5050 PRINT CHR$(12) 5060 PRINT "| ZONA | PROFUNDIDAD | VALOR MEDIO | ESPESOR MEDIO | VARIANZA MEDIA |" 5070 PRINT "|------|-------------|-------------|---------------|----------------|" 5080 IMAGE 3X,2D,5X,3D,1A,3D,9X,3D,12X,D.D,12X,3D.D 5090 FOR Z=2 TO Nzon 5100 PRINT USING 5080;Z,Xzon(Z-1),"-",Xzon(Z),Valmed(Z),Espmed(Z),Varmed(Z) 5110 NEXT Z 5120 PRINT "|______|_____________|_____________|_______________|________________|" 5130 INPUT "Quiere imprimir la tabla de zonas",Qtab$ 5140 IF Qtab$<>"SI" AND Qtab$<>"S" THEN GOTO 5170 5150 PRINTER IS 701 5160 GOTO 5060 5170 PRINT CHR$(12) 5180 PRINTER IS 1 5190 GRAPHICS ON 5200 ! 5210 RETURN 5220 !------------------------------------------------------------------------ 5230 Correczona: ! Correccion en pantalla de zonas 5240 !------------------------------------------------------------------------ 5250 OFF KEY 5260 ! 5270 GOTO 5410 5280 GRAPHICS OFF 5290 PRINT TABXY(20,4);" CORRECCION EN PANTALLA DE ZONAS " 5300 PRINT TABXY(20,6);" DESPLAZESE A LO LARGO DEL REGISTRO CON EL BOTON " 5310 PRINT TABXY(20,7);" PARA GENERAR UN NUEVO LIMITE PULSE |+| " 5320 PRINT TABXY(20,8);" PARA ANULAR UN LIMITE PULSE |-| " 5330 PRINT TABXY(20,9);" PARA REDIBUJAR PULSE |ENTER| " 5340 PRINT TABXY(20,11);" PARA SALIR PULSE LA BARRA ESPACIADORA " 5350 PRINT TABXY(20,18);" PARA CONTINUAR PULSE |CONT| " 5360 PAUSE 5370 BEEP 5380 PRINT CHR$(12) 5390 GRAPHICS ON 5400 ! 5410 Jseg=1 5420 VIEWPORT 0,133,0,100 5430 WINDOW INT(X(1)),INT(X(Ndat))+1,0,100 5440 BEEP 81.38*15,.05 5450 ON KNOB .01,3 GOTO 5490 5460 ON KBD,3 GOTO 5640 5470 GOTO 5450 5480 !

217

5490 PEN -1 5500 FOR S=1 TO 3 5510 MOVE Capa(Jseg),8+24*S-3.5 5520 DRAW Capa(Jseg),8+24*S-.5 5530 NEXT S 5540 Jseg=Jseg+KNOBX 5550 IF Jseg<1 THEN Jseg=Ncap 5560 IF Jseg>Ncap THEN Jseg=1 5570 PEN 1 5580 FOR S=1 TO 3 5590 MOVE Capa(Jseg),8+24*S-3.5 5600 DRAW Capa(Jseg),8+24*S-.5 5610 NEXT S 5620 GOTO 5450 5630 ! 5640 Tecla$=KBD$ 5650 IF Tecla$=CHR$(65) THEN GOTO 5280 ! Imprime las instrucciones ayuda 5660 IF Tecla$=CHR$(32) THEN GOTO 5910 ! Sale de correccion con el space 5670 IF Tecla$=CHR$(80) THEN CALL Imprimir! Imprime la pantalla con la tecla P 5680 IF Tecla$=CHR$(43) THEN ! \ 5690 IF Zona(Jseg)=1 THEN GOTO 5440 ! \ 5700 IF Nzon>25 THEN GOTO 5440 ! \ 5710 Nzon=Nzon+1 ! Define un limite de zona con |+| 5720 Zona(Jseg)=1 ! / 5730 GOTO 5840 ! / 5740 END IF ! / 5750 IF Tecla$=CHR$(45) THEN ! \ 5760 IF Zona(Jseg)=0 THEN GOTO 5440 ! \ 5770 IF Nzon<2 THEN GOTO 5440 ! \ 5780 Nzon=Nzon-1 ! Anula un limite de Zona con |-| 5790 Zona(Jseg)=0 ! / 5800 PEN -1 ! / 5810 GOTO 5840 ! / 5820 END IF ! / 5830 GOTO 5440 ! Vuelve a esperar tecla 5840 FOR S=0 TO 4 ! \ 5850 MOVE Capa(Jseg),8+S*24+1 ! \ 5860 DRAW Capa(Jseg),8+S*24+19 ! Dibuja o borra la zona 5870 NEXT S ! / 5880 PEN 1 ! / 5890 GOTO 5440 ! Vuelve a esperar tecla 5900 ! 5910 IF Nzon<2 THEN GOTO 5280 5920 OFF KNOB 5930 OFF KBD 5940 RETURN 5950 !------------------------------------------------------------------------ 5960 END 5970 !------------------------------------------------------------------------ 5980 SUB Salir 5990 ! 6000 BEEP 6010 OFF KEY 6020 SUSPEND INTERACTIVE 6030 ON KEY 0 LABEL "SALIR" GOTO 6060

218

6040 ON KEY 5 LABEL "CONTINUAR" GOTO 6080 6050 GOTO 6030 6060 INPUT "Quiere salir al programa principal",Qsal$ 6070 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 6080 OFF KEY 6090 RESUME INTERACTIVE 6100 ! 6110 SUBEND 6120 !------------------------------------------------------------------------ 6130 SUB Segmentar(Xs(*),Y(*),Ndat,Dist,Repre$) 6140 ! 6150 ! SUBPROGRAMA DE CALCULO DE SEGMENTOS DE UNA CURVA 6160 ! Y DE LOS VALORES APARENTES 6170 ! 6180 COM /Segme/ REAL C(400),P(400),INTEGER Nc 6190 !------------------------------------------------------------------------ 6200 ! Calculo de la derivada 6210 !------------------------------------------------------------------------ 6220 OFF KEY 6230 IF Repre$="N" THEN GOTO 6250 6240 CALL Visual4(Xs(*),Y(*),Ndat,1,"C","CURVA INICIAL") 6250 ! 6260 ALLOCATE Yd(1:Ndat),Ys(1:Ndat) 6270 FOR I=1 TO Ndat 6280 Ys(I)=Y(I) 6290 NEXT I 6300 ! 6310 Deriv=1 6320 ! 6330 PRINT CHR$(12) 6340 PRINT " REALIZANDO CALCULOS DE DERIVADA DE ORDEN ";VAL$(Deriv); 6350 PRINT ", ESPERE POR FAVOR" 6360 ! 6370 Yd(1)=(Ys(2)-Ys(1))/(Xs(2)-Xs(1)) 6380 FOR I=2 TO Ndat-1 6390 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 6400 Pte1=(Ys(I)-Ys(I-1))/(Xs(I)-Xs(I-1)) 6410 Pte2=(Ys(I+1)-Ys(I))/(Xs(I+1)-Xs(I)) 6420 Yd(I)=(Pte1+Pte2)/2 6430 NEXT I 6440 Yd(Ndat)=(Ys(Ndat)-Ys(Ndat-1))/(Xs(Ndat)-Xs(Ndat-1)) 6450 !------------------------------------------------------------------------ 6460 REM Suavizado de la derivada 6470 !------------------------------------------------------------------------ 6480 IF Deriv=1 THEN Np=5 ! NUMERO DE PUNTOS 6490 IF Deriv=2 THEN Np=5 ! PARA EL SUAVIZADO 6500 I0=(Np-1)/2 6510 ! 6520 PRINT CHR$(12) 6530 PRINT " REALIZANDO SUAVIZADO DE DERIVADA DE ORDEN ";VAL$(Deriv); 6540 PRINT ", ESPERE POR FAVOR" 6550 ! 6560 FOR I=I0+1 TO Ndat-I0 6570 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 6580 Ys(I)=0

219

6590 FOR K=-I0 TO I0 6600 Ys(I)=Ys(I)+Yd(I+K) 6610 NEXT K 6620 Ys(I)=Ys(I)/Np 6630 NEXT I 6640 ! 6650 Dpte=(Ys(I0+3)-Ys(I0+2))/Dist-(Ys(I0+2)-Ys(I0+1))/Dist 6660 FOR I=I0 TO 1 STEP -1 6670 Pte=(Ys(I+2)-Ys(I+1))/Dist 6680 IF Deriv=1 THEN Ys(I)=Ys(I+1)-(Pte-Dpte)*Dist 6690 IF Deriv=2 THEN Ys(I)=Ys(I+1) 6700 NEXT I 6710 Dpte=(Ys(Ndat-I0)-Ys(Ndat-I0-1))/Dist-(Ys(Ndat-I0-1)-Ys(Ndat-I0-2))/Dist 6720 FOR I=Ndat-I0-1 TO Ndat 6730 Pte=(Ys(I-1)-Ys(I-2))/Dist 6740 IF Deriv=1 THEN Ys(I)=Ys(I-1)+(Pte+Dpte)*Dist 6750 IF Deriv=2 THEN Ys(I)=Ys(I-1) 6760 NEXT I 6770 ! 6780 IF Repre$="N" THEN GOTO 6820 6790 IF Deriv=1 THEN Grafico$="PRIMERA DERIVADA" 6800 IF Deriv=2 THEN Grafico$="SEGUNDA DERIVADA" 6810 CALL Visual4(Xs(*),Ys(*),Ndat,Deriv+1,"C",Grafico$) 6820 !------------------------------------------------------------------------ 6830 ! Siguientes derivadas 6840 ! 6850 IF Deriv=2 THEN GOTO 6900 6860 Deriv=Deriv+1 6870 GOTO 6320 6880 DEALLOCATE Yd(*) 6890 !------------------------------------------------------------------------ 6900 REM Calculo de los puntos de inflexion 6910 !------------------------------------------------------------------------ 6920 PRINT CHR$(12) 6930 PRINT " REALIZANDO CALCULO DE PUNTOS DE INFLEXION, ESPERE POR FAVOR " 6940 ! 6950 ALLOCATE Ic(1:400) 6960 Ic(1)=1 6970 C(1)=Xs(1) 6980 J=2 6990 FOR I=2 TO Ndat-1 7000 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 7010 IF ABS(SGN(Ys(I+1))-SGN(Ys(I)))=2 THEN 7020 Ic(J)=I 7030 ! IF Ic(J)-Ic(J-1)<2 THEN GOTO 6660 ! DESCONSIDERA RECTAS 7040 C(J)=Xs(I+1)-Ys(I+1)*(Xs(I+1)-Xs(I))/(Ys(I+1)-Ys(I)) 7050 J=J+1 7060 END IF 7070 NEXT I 7080 Nc=J 7090 C(Nc)=Xs(Ndat) 7100 Ic(Nc)=Ndat 7110 !------------------------------------------------------------------------ 7120 REM Calculo del valor aparente de la curva en cada segmento 7130 !------------------------------------------------------------------------

220

7140 PRINT CHR$(12) 7150 PRINT " REALIZANDO CALCULO DEL VALOR APARENTE DE CADA SEGMENTO,"; 7160 PRINT " ESPERE POR FAVOR " 7170 ! 7180 FOR J=2 TO Nc 7190 Ic1=Ic(J-1)+1 7200 Ic2=Ic(J) 7210 Imed=INT((Ic1+Ic2)/2) 7220 Ymin=Y(Ic1) 7230 Ymax=Y(Ic1) 7240 FOR I=Ic1 TO Ic2 7250 IF (Xs(I) MOD 10)=0 THEN PRINT TABXY(32,3);Xs(I);"metros" 7260 IF Y(I)<Ymin THEN Ymin=Y(I) 7270 IF Y(I)>Ymax THEN Ymax=Y(I) 7280 NEXT I 7290 Deltay=ABS(Ymax-Ymin)/10 7300 IF SGN(Ys(Imed))>0 THEN ! CONCAVA 7310 P(J)=Ymin 7320 IF Ymin=Y(Ic2) OR Ymin=Y(Ic1) THEN P(J)=P(J)-Deltay 7330 END IF 7340 IF SGN(Ys(Imed))<0 THEN ! CONVEXA 7350 P(J)=Ymax 7360 IF Ymax=Y(Ic2) OR Ymax=Y(Ic1) THEN P(J)=P(J)+Deltay 7370 END IF 7380 NEXT J 7390 ! 7400 IF Repre$="N" THEN GOTO 7490 7410 Nc2=Nc 7420 ALLOCATE C2(0:Nc2),P2(0:Nc2) 7430 FOR J=1 TO Nc2 7440 C2(J)=C(J) 7450 P2(J)=P(J) 7460 NEXT J 7470 CALL Visual4(C2(*),P2(*),Nc2,4,"B","CAPAS") 7480 DEALLOCATE C2(*),P2(*) 7490 ! 7500 PRINT CHR$(12) 7510 SUBEND 7520 !------------------------------------------------------------------------ 7530 SUB Visual4(X(*),Y(*),Ndat,Alt,Tipo$,Nombre$) 7540 ! 7550 ! Visualización de los resultados 7560 !------------------------------------------------------------------------ 7570 IF Alt<1 OR Alt>4 THEN GOTO 7960 7580 IF Tipo$<>"C" AND Tipo$<>"B" THEN GOTO 7960 7590 INTEGER Pantalla9(1:7500) 7600 ! 7610 Rmax=Y(1) 7620 Rmin=Y(1) 7630 FOR I=2 TO Ndat 7640 IF Y(I)>Rmax THEN Rmax=Y(I) 7650 IF Y(I)<Rmin THEN Rmin=Y(I) 7660 NEXT I 7670 ! 7680 Abajo=8+(Alt-1)*24

221

7690 Arriba=Abajo+20 7700 ! 7710 GRAPHICS ON 7720 Detalle=0 7730 VIEWPORT 0,133,Abajo,Arriba 7740 ! 7750 WINDOW X(1),X(Ndat),Rmin,Rmax 7760 LINE TYPE 1 7770 FRAME 7780 Cuarto=(Rmax-Rmin)/4 7790 MOVE (X(Ndat)+X(1))/2,Rmin+Cuarto*3 7800 LORG 5 7810 LABEL Nombre$ 7820 LINE TYPE 3 7830 FOR Linea=1 TO 3 7840 MOVE X(1),Rmin+Cuarto*Linea 7850 DRAW X(Ndat),Rmin+Cuarto*Linea 7860 NEXT Linea 7870 ! 7880 LINE TYPE 1 7890 MOVE X(1),Y(1) 7900 FOR I=2 TO Ndat 7910 IF Tipo$="B" THEN DRAW X(I-1),Y(I) 7920 DRAW X(I),Y(I) 7930 NEXT I 7940 ! 7950 BEEP 81.38*15,.05 7960 SUBEND 7970 !----------------------------------------------------------------------- 7980 SUB Imprimir 7990 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 8000 !------------------------------------------------------------------------ 8010 PRINTER IS 1 8020 GRAPHICS OFF 8030 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 8040 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 8100 8050 PRINT " Conecte la impresora y pulse |CONT| " 8060 PAUSE 8070 CALL Titulo 8080 GRAPHICS ON 8090 CALL Vuelcapant(701) 8100 PRINT CHR$(12) 8110 PRINTER IS 1 8120 ! 8130 SUBEND 8140 !------------------------------------------------------------------------ 8150 SUB Titulo 8160 !------------------------------------------------------------------------ 8170 DIM Titulo$[320] 8180 ! 8190 PRINT CHR$(12) 8200 INPUT "Titulo del grafico",Titulo$ 8210 IF Titulo$="" THEN GOTO 8480 8220 PRINTER IS 1 8230 GOSUB Editor

222

8240 INPUT "Correcto",Cort$ 8250 IF Cort$="N" OR Cort$="NO" THEN GOTO 8190 8260 PRINTER IS 701 8270 GOSUB Editor 8280 PRINTER IS 1 8290 GOTO 8480 8300 ! 8310 Editor: ! Divide el texto y lo centra 8320 Titulo$=Titulo$&" " 8330 C0=0 8340 IF C0>=LEN(Titulo$) THEN GOTO 8460 8350 Caracter=50+C0 8360 FOR C=Caracter TO 1 STEP -1 8370 IF C>LEN(Titulo$) THEN GOTO 8450 8380 IF Titulo$[C,C]=" " THEN 8390 Tx=INT((64-(C-C0))/2) 8400 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A" 8410 PRINT USING Ima$;Titulo$[C0+1,C] 8420 C0=C 8430 GOTO 8340 8440 END IF 8450 NEXT C 8460 RETURN 8470 ! 8480 SUBEND 8490 !------------------------------------------------------------------------ 8500 SUB Vuelcapant(INTEGER Device_selector) 8510 !------------------------------------------------------------------------ 8520 OPTION BASE 1 8530 INTEGER Row_group,Prod_num,Maxrow 8540 DIM Graphic_escape$[7] 8550 ! 8560 ON ERROR GOTO 8960 8570 PRINTER IS Device_selector 8580 OFF ERROR 8590 ! 8600 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 8610 ! 8620 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 8630 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 8640 ! 8650 IF Graphics_res=1 THEN 8660 ALLOCATE Os$[512] ! Para los modelos 9836 8670 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 8680 Maxrow=390 ! Numero de lineas del 9836 8690 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 8700 ELSE 8710 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 8720 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 8730 Maxrow=300 ! Numero de lineas del 9826 y 9816 8740 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 8750 END IF 8760 ! 8770 GSTORE Screen(*) ! Almacena matriz de pantalla 8780 !

223

8790 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 8800 ! 8810 FOR Row_group=1 TO 297 STEP 8 8820 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 8830 Gdump(Screen(*),Row_group,Os$) 8840 ! Volcado de linea de caracteres graficos 8850 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 8860 PRINT USING "7A,400A";Graphic_escape$,Os$ 8870 ELSE ! Para los modelos 9836 8880 PRINT USING "7A,512A";Graphic_escape$,Os$ 8890 END IF 8900 NEXT Row_group 8910 ! 8920 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 8930 ! 8940 SUBEXIT 8950 ! 8960 BEEP ! Caso de encontrarse error en "PRINTER IS" 8970 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 8980 ! 8990 SUBEND 9000 ! 9010 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 9020 !------------------------------------------------------------------------ 9030 SUB

Graba4(Nom$,Nz,X0,Xzon(*),Valmed(*),Espmed(*),Varmed(*),Max,Min,Espmax,Espmin) 9040 ! 9050 REM SUBPROGRAMA DE GRABACION DE REGISTROS 9060 ! 9070 !------------------------------------------------------------------------ 9080 Varmax=1 9090 Varmin=0 9100 Nzon=Nz-1 ! No se graba el primer limite 9110 ! 9120 Nr=((Nz+2)*4)*8+20 9130 Nn$=Nom$&"_Z" 9140 MASS STORAGE IS ":HP 8290X,700,1" 9150 ON ERROR GOTO 9200 9160 CREATE BDAT Nn$,4,Nr 9170 OFF ERROR 9180 GOTO 9420 9190 ! 9200 IF ERRN=54 THEN 9210 INPUT "Quiere remplazar el registro ? ",Qr$ 9220 IF Qr$<>"SI" AND Qr$<>"S" THEN GOTO 9270 9230 INPUT "Esta seguro (los datos anteriores se borrarán)",Es$ 9240 IF Es$<>"SI" AND Es$<>"S" THEN GOTO 9210 9250 PURGE Nn$ 9260 GOTO 9410 9270 INPUT "Quiere cambiar el disco donde se grabarán los datos ?",Qc$ 9280 IF Qc$="N" OR Qc$="NO" THEN GOTO 9220 9290 PRINT "Remplace el disco de la disquetera [1] y pulse |CONT|" 9300 ON KBD ALL GOTO 9310 9310 IF KBD$<>"ÿC" THEN GOTO 9310 9320 OFF KBD

224

9330 PRINT CHR$(12) 9340 GOTO 9410 9350 END IF 9360 PRINT "SE HA PRODUCIDO UN ERROR";ERRN;" REPASE, POR FAVOR" 9370 BEEP 81.38*15,4 9380 PAUSE 9390 GOTO 9160 9400 ! 9410 CREATE BDAT Nn$,4,Nr 9420 PRINT "REALIZANDO LA GRABACION DEL FICHERO DE ZONAS, NO INTERRUMPIR" 9430 MASS STORAGE IS ":HP 8290X,700,1" 9440 ASSIGN @Pat_0 TO Nn$ 9450 OUTPUT @Pat_0;Nzon,X0,Max,Min 9460 OUTPUT @Pat_0;Varmax,Varmin,Espmax,Espmin 9470 FOR Z=2 TO Nz 9480 OUTPUT @Pat_0;Xzon(Z),Valmed(Z),Espmed(Z),Varmed(Z) 9490 NEXT Z 9500 ASSIGN @Pat_0 TO * 9510 MASS STORAGE IS ": HP 8290X,700,0" 9520 ! 9530 PRINT CHR$(12) 9540 PRINT TABXY(25,10);"Grabado el fichero ";Nn$ 9550 OFF ERROR 9560 SUBEND 9570 !------------------------------------------------------------------------

225

10 !----------------------------------------------------------------------- 20 REM "CORRELAZON" 30 REM PROGRAMA PARA CORRELACION DE ZONAS DE DIAGRAFIAS 40 !----------------------------------------------------------------------- 50 PRINTER IS 1 60 PRINT CHR$(12) 70 CONTROL 2,0;1 80 ! 90 GRAPHICS ON 100 GINIT 110 GCLEAR 120 ! 130 FOR F=0 TO 10 STEP 2 140 VIEWPORT 0+F,133-F,10+F,100-F 150 FRAME 160 NEXT F 170 ! 180 PRINT TABXY(18,11);" -CORRELAZON- " 190 PRINT TABXY(18,13);"PROGRAMA PARA CORRELACION DE ZONAS DE DIAGRAFIAS" 200 CALL Salir 210 PRINT CHR$(12) 220 GCLEAR 230 ! 240 Ndat=3000 250 DIM Variable$(4)[16] 260 ! INTEGER Pantalla(1:7500) 270 ALLOCATE X(1:Ndat),Y1(1:Ndat),Y2(1:Ndat) 280 ALLOCATE Xcros(1:Ndat),Ycros(1:Ndat) 290 ALLOCATE Zona1(0:20),Amp1(0:20),Var1(0:20),Esp1(0:20) 300 ALLOCATE Zona2(0:20),Amp2(0:20),Var2(0:20),Esp2(0:20) 310 ALLOCATE Tcor(1:2,1:20),Mcor(1:2,1:20) 320 ALLOCATE Cros(1:20,1:20),Comp(1:20,1:20) 330 ! 340 GOSUB Leefichero 350 !----------------------------------------------------------------------- 360 REM Flujos del programa 370 !----------------------------------------------------------------------- 380 ON KEY 5 LABEL "LECTURA DATOS " GOSUB Leefichero 390 ON KEY 6 LABEL " PANTALLA " GOSUB Repre ! 3380 400 ON KEY 7 LABEL " CROS-CORREL. " GOSUB Cros_cor ! 4510 410 ON KEY 8 LABEL " LISTADOS " GOTO 460 420 ON KEY 9 LABEL " TERMINAR " CALL Salir 430 GOTO 380 440 OFF KEY 450 !------------------------------------------------------------------------ 460 REM Listado de las matrices de diferencias 470 !------------------------------------------------------------------------ 480 OFF KEY 490 GRAPHICS OFF 500 ! 510 PRINT CHR$(12) 520 Variable$(1)="VALOR MEDIO " 530 Variable$(2)="VARIANZA " 540 Variable$(3)="ESPESOR MEDIO " 550 Variable$(4)="CROS-CORRELACION"

226

560 FOR L=1 TO 4 570 PRINT TABXY(20,6+L);Variable$(L);" .......... ";L 580 NEXT L 590 INPUT "Que listados quiere imprimir",L 600 IF L<1 OR L>4 THEN GOTO 590 610 PRINT CHR$(12) 620 ! 630 IF L=4 THEN 640 CALL Matriz(Reg1$,Reg2$,Variable$(L),Nzon1,Nzon2,Cros(*)) 650 GOTO 770 660 END IF 670 ! 680 FOR Z1=1 TO Nzon1 690 FOR Z2=1 TO Nzon2 700 IF L=1 THEN Comp(Z1,Z2)=ABS(Amp1(Z1)-Amp2(Z2)) 710 IF L=2 THEN Comp(Z1,Z2)=ABS(Var1(Z1)-Var2(Z2))*100 720 IF L=3 THEN Comp(Z1,Z2)=ABS(Esp1(Z1)-Esp2(Z2))/(Espmedmax-Espmedmin)*100 730 NEXT Z2 740 NEXT Z1 750 CALL Matriz(Reg1$,Reg2$,Variable$(L),Nzon1,Nzon2,Comp(*)) 760 ! 770 GRAPHICS ON 780 GOTO 380 790 !------------------------------------------------------------------------ 800 Leefichero: ! Lectura de los datos digitalizados 810 !----------------------------------------------------------------------- 820 OFF KEY 830 GCLEAR 840 SUSPEND INTERACTIVE 850 PRINT CHR$(12) 860 PRINT 870 PRINT "Coloque el disco con datos de la 1³ diagrafia en la disquetera [0]" 880 PRINT "Coloque el disco con datos de la 2³ diagrafia en la disquetera [1]" 890 PRINT 900 CALL Salir 910 ON ERROR GOTO 2460 920 ! 930 PRINT CHR$(12) 940 MASS STORAGE IS ":HP 8290X,700,0" 950 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN EL DISCO [0]" 960 CAT 970 PRINT "CATALOGO DE LOS FICHEROS GRABADOS EN EL DISCO [1]" 980 MASS STORAGE IS ":HP 8290X,700,1" 990 CAT 1000 ! 1010 BEEP 1020 INPUT "Nombre del fichero del primer registro a correlacionar ",Reg1$ 1030 IF LEN(Reg1$)=0 OR LEN(Reg1$)>8 THEN GOTO 1020 1040 Zon1$=Reg1$&"_Z" 1050 INPUT "Nombre del fichero del segundo registro a correlacionar ",Reg2$ 1060 IF LEN(Reg2$)=0 OR LEN(Reg2$)>8 THEN GOTO 1050 1070 Zon2$=Reg2$&"_Z" 1080 ! 1090 PRINT CHR$(12) 1100 PRINT " Realizando comprobacion de registros, NO interrumpir"

227

1110 MASS STORAGE IS ":HP 8290X,700,0" 1120 ASSIGN @Pat_11 TO Reg1$ 1130 ENTER @Pat_11;Ndat1,X0reg1,Dist1,Minreg1,Maxreg1 1140 ASSIGN @Pat_11 TO * 1150 ASSIGN @Pat_21 TO Zon1$ 1160 ENTER @Pat_21;Nzon1,X0zon1,Ampmax1,Ampmin1 1170 ASSIGN @Pat_21 TO * 1180 MASS STORAGE IS ":HP 8290X,700,1" 1190 ASSIGN @Pat_12 TO Reg2$ 1200 ENTER @Pat_12;Ndat2,X0reg2,Dist2,Minreg2,Maxreg2 1210 ASSIGN @Pat_12 TO * 1220 ASSIGN @Pat_22 TO Zon2$ 1230 ENTER @Pat_22;Nzon2,X0zon2,Ampmax2,Ampmin2 1240 ASSIGN @Pat_22 TO * 1250 ! 1260 Dist=Dist1 1270 IF X0reg2<=X0reg1 THEN X0=X0reg2 1280 IF X0reg1<=X0reg2 THEN X0=X0reg1 1290 Delta1=(X0reg1-X0)/Dist 1300 Delta2=(X0reg2-X0)/Dist 1310 IF X0reg2+Ndat2*Dist>=X0reg1+Ndat1*Dist THEN Xmax=X0reg2+Ndat2*Dist 1320 IF X0reg1+Ndat1*Dist>=X0reg2+Ndat2*Dist THEN Xmax=X0reg1+Ndat1*Dist 1330 Ndat=(Xmax-X0)/Dist 1340 IF Nzon2>=Nzon1 THEN Nzon=Nzon2 1350 IF Nzon1>=Nzon2 THEN Nzon=Nzon1 1360 ! 1370 PRINT CHR$(12) 1380 Lectura=1 1390 MASS STORAGE IS ":HP 8290X,700,0" 1400 PRINT " Realizando la lectura de los datos de ";Reg1$;", NO interrumpir" 1410 ASSIGN @Pat_11 TO Reg1$ 1420 ENTER @Pat_11;Ndat1,X0reg1,Dist1,Min1,Max1 1430 ENTER @Pat_11;X(*) 1440 ASSIGN @Pat_11 TO * 1450 ! 1460 FOR I=1 TO Ndat1 1470 Y1(I+Delta1)=X(I) 1480 NEXT I 1490 ! 1500 PRINT CHR$(12) 1510 Lectura=2 1520 MASS STORAGE IS ":HP 8290X,700,1" 1530 PRINT " Realizando la lectura de los datos de ";Reg2$;", NO interrumpir" 1540 ASSIGN @Pat_12 TO Reg2$ 1550 ENTER @Pat_12;Ndat2,X0reg2,Dist2,Min2,Max2 1560 ENTER @Pat_12;X(*) 1570 ASSIGN @Pat_12 TO * 1580 ! 1590 INPUT "Desplazamiento del segundo registro respecto al primero",Desplaz2 1600 Desplaz2=INT(Desplaz2) 1610 X0reg2=X0reg2+Desplaz2 ! 1620 Delta2=Delta2+Desplaz2/.2 ! 1630 ! 1640 FOR I=1 TO Ndat2 1650 IF I+Delta2<1 OR I+Delta2>3000 THEN GOTO 1680

228

1660 Y2(I+Delta2)=X(I) 1670 NEXT I 1680 ! 1690 FOR I=1 TO Ndat 1700 X(I)=X0+I*Dist 1710 NEXT I 1720 ! 1730 PRINT CHR$(12) 1740 Lectura=3 1750 MASS STORAGE IS ":HP 8290X,700,0" 1760 PRINT " Realizando la lectura de los datos de ";Zon1$;", NO interrumpir" 1770 ASSIGN @Pat_21 TO Zon1$ 1780 ENTER @Pat_21;Nzon1,X0zon1,Ampmax1,Ampmin1 1790 ENTER @Pat_21;Varmax1,Varmin1,Espmax1,Espmin1 1800 FOR Z=1 TO Nzon1 1810 ENTER @Pat_21;Zona1(Z),Amp1(Z),Esp1(Z),Var1(Z) 1820 NEXT Z 1830 ASSIGN @Pat_21 TO * 1840 Zona1(0)=X0zon1 1850 Amp1(0)=Amp1(1) 1860 Esp1(0)=Esp1(1) 1870 Var1(0)=Var1(1) 1880 ! 1890 PRINT CHR$(12) 1900 Lectura=4 1910 MASS STORAGE IS ":HP 8290X,700,1" 1920 PRINT " Realizando la lectura de los datos de ";Zon2$;", NO interrumpir" 1930 ASSIGN @Pat_22 TO Zon2$ 1940 ENTER @Pat_22;Nzon2,X0zon2,Ampmax2,Ampmin2 1950 ENTER @Pat_22;Varmax2,Varmin2,Espmax2,Espmin2 1960 FOR Z=1 TO Nzon2 1970 ENTER @Pat_22;Zona2(Z),Amp2(Z),Esp2(Z),Var2(Z) 1980 NEXT Z 1990 ASSIGN @Pat_22 TO * 2000 Zona2(0)=X0zon2 2010 Amp2(0)=Amp2(1) 2020 Esp2(0)=Esp2(1) 2030 Var2(0)=Var2(1) 2040 ! 2050 X0zon2=X0zon2+Desplaz2 ! 2060 Zona2(0)=X0zon2 ! 2070 FOR Z=1 TO Nzon2 ! 2080 Zona2(Z)=Zona2(Z)+Desplaz2 ! 2090 NEXT Z ! 2100 ! 2110 Espmedmax=Esp1(1) 2120 Espmedmin=Esp1(1) 2130 FOR Z=1 TO Nzon1 2140 IF Esp1(Z)>Espmedmax THEN Espmedmax=Esp1(Z) 2150 IF Esp1(Z)<Espmedmin THEN Espmedmin=Esp1(Z) 2160 NEXT Z 2170 FOR Z=1 TO Nzon2 2180 IF Esp2(Z)>Espmedmax THEN Espmedmax=Esp2(Z) 2190 IF Esp2(Z)<Espmedmin THEN Espmedmin=Esp2(Z) 2200 NEXT Z

229

2210 ! 2220 PRINT CHR$(12) 2230 PRINT TABXY(10,4);"Registro ";Reg1$ 2240 PRINT TABXY(10,6);"NÇmero de datos ------";Ndat1 2250 PRINT TABXY(10,7);"Equidistancia --------";Dist 2260 PRINT TABXY(10,8);"Profundidad inicial --";X0reg1 2270 PRINT TABXY(10,9);"Profundidad final ----";X0reg1+Ndat1*Dist1 2280 PRINT TABXY(10,10);"Valor mínimo ---------";INT(Min1) 2290 PRINT TABXY(10,11);"Valor máximo ---------";INT(Max1) 2300 PRINT TABXY(10,13);"Numero de zonas ------";Nzon1 2310 PRINT TABXY(45,4);"Registro ";Reg2$ 2320 PRINT TABXY(45,6);"NÇmero de datos ------";Ndat2 2330 PRINT TABXY(45,7);"Equidistancia --------";Dist 2340 PRINT TABXY(45,8);"Profundidad inicial --";X0reg2 2350 PRINT TABXY(45,9);"Profundidad final ----";X0reg2+Ndat2*Dist2 2360 PRINT TABXY(45,10);"Valor mínimo ---------";INT(Min2) 2370 PRINT TABXY(45,11);"Valor máximo ---------";INT(Max2) 2380 PRINT TABXY(45,13);"Numero de zonas ------";Nzon2 2390 CALL Salir 2400 PRINT CHR$(12) 2410 ! 2420 OFF ERROR 2430 GOTO 2610 2440 ! 2450 PRINT CHR$(12) 2460 Eror=ERRN 2470 IF Eror=59 THEN 2480 IF Lectura=1 THEN GOTO 1440 2490 IF Lectura=2 THEN GOTO 1570 2500 IF Lectura=3 THEN GOTO 1830 2510 IF Lectura=4 THEN GOTO 1990 2520 END IF 2530 IF Eror=80 THEN GOTO 850 2540 IF Eror=56 THEN 2550 PRINT " EL FICHERO NO SE ENCUENTRA EN EL DISCO CORRESPONDIENTE" 2560 PRINT 2570 GOTO 920 2580 END IF 2590 PRINT " ERROR DURANTE LA LECTURA DE DATOS, REVISE POR FAVOR" 2600 GOTO 2660 2610 ! 2620 MASS STORAGE IS ":HP 8290X,700,0" 2630 PRINT CHR$(12) 2640 RESUME INTERACTIVE 2650 GOSUB Inicial 2660 RETURN 2670 !------------------------------------------------------------------------ 2680 Inicial: ! Representacion de datos iniciales 2690 !------------------------------------------------------------------------ 2700 OFF KEY 2710 PRINT CHR$(12) 2720 GRAPHICS OFF 2730 PRINT TABXY(20,8);"PROCESANDO DATOS, ESPERE POR FAVOR" 2740 SUSPEND INTERACTIVE 2750 !

230

2760 VIEWPORT 0,133,10,50 2770 LINE TYPE 1 2780 FRAME 2790 WINDOW X0,Xmax,Min1,Max1 2800 LINE TYPE 4 2810 MOVE X(1+Delta1),Y1(1+Delta1) 2820 FOR I=1+Delta1 TO Ndat 2830 DRAW X(I),Y1(I) 2840 NEXT I 2850 WINDOW X0,Xmax,0,100 2860 LINE TYPE 1 2870 MOVE Zona1(0),Amp1(0) 2880 FOR Z=1 TO Nzon1 2890 DRAW Zona1(Z-1),Amp1(Z) 2900 DRAW Zona1(Z),Amp1(Z) 2910 NEXT Z 2920 WINDOW X0,Xmax,0,1 2930 LINE TYPE 5 2940 MOVE Zona1(0),Var1(0) 2950 FOR Z=1 TO Nzon1 2960 DRAW Zona1(Z-1),Var1(Z) 2970 DRAW Zona1(Z),Var1(Z) 2980 NEXT Z 2990 WINDOW X0,Xmax,Espmedmin,Espmedmax 3000 LINE TYPE 3 3010 MOVE Zona1(0),Esp1(0) 3020 FOR Z=1 TO Nzon1 3030 DRAW Zona1(Z-1),Esp1(Z) 3040 DRAW Zona1(Z),Esp1(Z) 3050 NEXT Z 3060 ! 3070 VIEWPORT 0,133,60,100 3080 LINE TYPE 1 3090 FRAME 3100 WINDOW X0,Xmax,Min2,Max2 3110 LINE TYPE 4 3120 MOVE X(1+Delta2),Y2(1+Delta2) 3130 FOR I=1+Delta2 TO Ndat 3140 DRAW X(I),Y2(I) 3150 NEXT I 3160 WINDOW X0,Xmax,0,100 3170 LINE TYPE 1 3180 MOVE Zona2(0),Amp2(0) 3190 FOR Z=1 TO Nzon2 3200 DRAW Zona2(Z-1),Amp2(Z) 3210 DRAW Zona2(Z),Amp2(Z) 3220 NEXT Z 3230 WINDOW X0,Xmax,0,1 3240 LINE TYPE 5 3250 MOVE Zona2(0),Var2(0) 3260 FOR Z=1 TO Nzon2 3270 DRAW Zona2(Z-1),Var2(Z) 3280 DRAW Zona2(Z),Var2(Z) 3290 NEXT Z 3300 WINDOW X0,Xmax,Espmedmin,Espmedmax

231

3310 LINE TYPE 3 3320 MOVE Zona2(0),Esp2(0) 3330 FOR Z=1 TO Nzon2 3340 DRAW Zona2(Z-1),Esp2(Z) 3350 DRAW Zona2(Z),Esp2(Z) 3360 NEXT Z 3370 ! 3380 LINE TYPE 1 3390 ! GSTORE Pantalla(*) 3400 PRINT CHR$(12) 3410 GRAPHICS ON 3420 RESUME INTERACTIVE 3430 RETURN 3440 !------------------------------------------------------------------------ 3450 Repre: ! Representacion de asociaciones 3460 !------------------------------------------------------------------------ 3470 OFF KEY 3480 GRAPHICS ON 3490 ! 3500 VIEWPORT 0,133,50,60 3510 WINDOW X0,Xmax,0,10 3520 FOR J=1 TO Ncor 3530 MOVE Tcor(1,J)+1,2 3540 DRAW Tcor(2,J)+1,8 3550 DRAW Mcor(2,J)-1,8 3560 DRAW Mcor(1,J)-1,2 3570 DRAW Tcor(1,J)+1,2 3580 NEXT J 3590 ! 3600 J=1 3610 Z1=1 3620 Z2=1 3630 ON KNOB .01,2 GOTO 3770 ! Desplaza 1³ tramos 3640 ON KBD,2 GOTO 3670 3650 GOTO 3630 3660 ! 3670 Tecla$=KBD$ 3680 IF Tecla$="ÿC" THEN GOTO 4560 ! Sale del grafico 3690 IF Tecla$="ÿ>" THEN GOTO 3890 ! Desplaza 2³ tramos a derecha 3700 IF Tecla$="ÿ<" THEN GOTO 3890 ! desplaza 2³ tramos a izquierda 3710 IF Tecla$="-" THEN GOTO 4020 ! Elimina asociacion 3720 IF Tecla$="+" THEN GOTO 4240 ! Genera asociacion 3730 IF Tecla$="V" THEN CALL Imprimir ! Vuelca el grafico a impresora 3740 GOTO 3630 3750 ! 3760 ! Desplazamiento de tramos del primer sondeo 3770 Avance=KNOBX 3780 PEN -1 3790 MOVE Zona1(Z1-1),1 3800 DRAW Zona1(Z1),1 3810 Z1=Z1+INT(Avance) 3820 IF Z1>Nzon1 THEN Z1=1 3830 IF Z1<1 THEN Z1=Nzon1 3840 PEN 1 3850 MOVE Zona1(Z1-1),1

232

3860 DRAW Zona1(Z1),1 3870 GOTO 3630 3880 ! 3890 ! Desplazamiento de tramos del segundo sondeo 3900 PEN -1 3910 MOVE Zona2(Z2-1),9 3920 DRAW Zona2(Z2),9 3930 IF Tecla$="ÿ<" THEN Z2=Z2-1 3940 IF Tecla$="ÿ>" THEN Z2=Z2+1 3950 IF Z2>Nzon2 THEN Z2=1 3960 IF Z2<1 THEN Z2=Nzon2 3970 PEN 1 3980 MOVE Zona2(Z2-1),9 3990 DRAW Zona2(Z2),9 4000 GOTO 3630 4010 ! 4020 ! Eliminacion de asociacion 4030 FOR J=1 TO Ncor 4040 IF Mcor(2,J)=Zona2(Z2) THEN GOTO 4080 4050 NEXT J 4060 BEEP 4070 GOTO 3630 4080 Ncor=Ncor-1 4090 IF Ncor<0 THEN GOTO 4220 4100 PEN -1 4110 MOVE Tcor(1,J)+1,2 4120 DRAW Tcor(2,J)+1,8 4130 DRAW Mcor(2,J)-1,8 4140 DRAW Mcor(1,J)-1,2 4150 DRAW Tcor(1,J)+1,2 4160 FOR Jb=J TO Ncor 4170 Tcor(1,Jb)=Tcor(1,Jb+1) 4180 Tcor(2,Jb)=Tcor(2,Jb+1) 4190 Mcor(1,Jb)=Mcor(1,Jb+1) 4200 Mcor(1,Jb)=Mcor(1,Jb+1) 4210 NEXT Jb 4220 GOTO 3630 4230 ! 4240 ! Generacion de asociacion 4250 FOR J=1 TO Ncor 4260 IF Mcor(2,J)=Zona2(Z2) OR Mcor(1,J)=Zona1(Z1) THEN 4270 BEEP 4280 GOTO 3630 4290 END IF 4300 NEXT J 4310 Ncor=Ncor+1 4320 FOR J=1 TO Ncor 4330 IF Mcor(2,J)>Zona2(Z2) THEN 4340 FOR Jb=Ncor TO J+1 STEP -1 4350 Tcor(1,Jb)=Tcor(1,Jb-1) 4360 Tcor(2,Jb)=Tcor(2,Jb-1) 4370 Mcor(1,Jb)=Mcor(1,Jb-1) 4380 Mcor(1,Jb)=Mcor(1,Jb-1) 4390 NEXT Jb 4400 GOTO 4440

233

4410 END IF 4420 NEXT J 4430 J=Ncor 4440 Tcor(1,J)=Zona1(Z1-1) 4450 Tcor(2,J)=Zona2(Z2-1) 4460 Mcor(1,J)=Zona1(Z1) 4470 Mcor(2,J)=Zona2(Z2) 4480 PEN 1 4490 MOVE Tcor(1,J)+1,2 4500 DRAW Tcor(2,J)+1,8 4510 DRAW Mcor(2,J)-1,8 4520 DRAW Mcor(1,J)-1,2 4530 DRAW Tcor(1,J)+1,2 4540 GOTO 3630 4550 ! 4560 OFF KBD 4570 OFF KNOB 4580 GRAPHICS OFF 4590 RETURN 4600 !------------------------------------------------------------------------ 4610 Cros_cor:! Subrutina para Croscorrelacion de tramos 4620 !------------------------------------------------------------------------ 4630 OFF KEY 4640 GRAPHICS OFF 4650 ! 4660 Ia_1=1+Delta1 4670 FOR Z1=1 TO Nzon1 4680 ! 4690 FOR I=Ia_1 TO Ndat1 4700 IF ABS(X(I)-Zona1(Z1))<.2 THEN 4710 Ib_1=I 4720 GOTO 4750 4730 END IF 4740 NEXT I 4750 ! 4760 Suma1=0 4770 FOR I=Ia_1 TO Ib_1 4780 Suma1=Suma1+Y1(I) 4790 NEXT I 4800 S1=Suma1/(Ib_1-Ia_1+1) 4810 E1=Zona1(Z1)-Zona1(Z1-1) 4820 ! 4830 Ia_2=1+Delta2 4840 FOR Z2=1 TO Nzon2 4850 PRINT TABXY(Z2*2,Z1);"." 4860 ! 4870 FOR I=Ia_2 TO Ndat2 4880 IF ABS(X(I)-Zona2(Z2))<.2 THEN 4890 Ib_2=I 4900 GOTO 4930 4910 END IF 4920 NEXT I 4930 ! 4940 ! Deformacion de los tramos a igual espesor 4950 !

234

4960 Tramo1=X(Ib_1)-X(Ia_1) 4970 Tramo2=X(Ib_2)-X(Ia_2) 4980 Amplif=Tramo1/Tramo2 4990 FOR H=Ia_2 TO Ib_2 5000 Xcros(H)=X(Ia_1)+(X(H)-X(Ia_2))*Amplif 5010 NEXT H 5020 Iref=Ia_1 5030 Ycros(Iref)=Y2(Ia_2) 5040 FOR H=Ia_2+1 TO Ib_2 5050 FOR I=Iref TO Ib_1 5060 IF X(I)>Xcros(H-1) AND X(I)<Xcros(H) THEN 5070 Ycros(I)=Y2(H-1)+(Y2(H)-Y2(H-1))/(Xcros(H)-Xcros(H-1))*(X(I)-Xcros(H-1)) 5080 GOTO 5150 5090 END IF 5100 IF X(I)>=Xcros(H) THEN 5110 IF X(I)=Xcros(H) THEN Ycros(I)=Y2(H) 5120 Iref=I 5130 GOTO 5160 5140 END IF 5150 NEXT I 5160 NEXT H 5170 ! 5180 ! Correlacion de tramos 5190 Cros(Z1,Z2)=0 5200 Suma2=0 5210 FOR Ic=Ia_1 TO Ib_1 5220 !Cros(Z1,Z2)=Cros(Z1,Z2)+Y1(Ic)*Ycros(Ic) 5230 Cros(Z1,Z2)=Cros(Z1,Z2)+ABS(Y1(Ic)-Ycros(Ic)) 5240 Suma2=Suma2+Ycros(Ic) 5250 NEXT Ic 5260 S2=Suma2/(Ib_1-Ia_1+1) 5270 !Cros(Z1,Z2)=Cros(Z1,Z2)/(E1*S1*S2) 5280 Cros(Z1,Z2)=Cros(Z1,Z2)/E1 5290 ! 5300 Ia_2=Ib_2 5310 NEXT Z2 5320 ! 5330 Ia_1=Ib_1 5340 NEXT Z1 5350 ! 5360 ! Normalizacion de los resultados de Cros-correlacion 5370 ! 5380 Crosmin=Cros(1,1) 5390 Crosmax=Cros(1,1) 5400 FOR Z1=1 TO Nzon1 5410 FOR Z2=1 TO Nzon2 5420 IF Cros(Z1,Z2)<Crosmin THEN Crosmin=Cros(Z1,Z2) 5430 IF Cros(Z1,Z2)>Crosmax THEN Crosmax=Cros(Z1,Z2) 5440 NEXT Z2 5450 NEXT Z1 5460 FOR Z1=1 TO Nzon1 5470 FOR Z2=1 TO Nzon2 5480 Cros(Z1,Z2)=(Cros(Z1,Z2)-Crosmin)/(Crosmax-Crosmin)*100 5490 NEXT Z2 5500 NEXT Z1

235

5510 ! 5520 GRAPHICS ON 5530 RETURN 5540 !------------------------------------------------------------------------ 5550 END 5560 !------------------------------------------------------------------------ 5570 SUB Salir 5580 ! 5590 BEEP 5600 OFF KEY 5610 SUSPEND INTERACTIVE 5620 ON KEY 0 LABEL "SALIR" GOTO 5650 5630 ON KEY 5 LABEL "CONTINUAR" GOTO 5670 5640 GOTO 5620 5650 INPUT "Quiere salir al programa principal",Qsal$ 5660 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 5670 OFF KEY 5680 RESUME INTERACTIVE 5690 ! 5700 SUBEND 5710 !------------------------------------------------------------------------ 5720 SUB Matriz(Reg1$,Reg2$,Variable$,Nzon1,Nzon2,Comp(*)) 5730 ! 5740 ! Subprograma de Impresion de matrices de diferencias 5750 !------------------------------------------------------------------------ 5760 PRINT CHR$(12) 5770 Qvol$="N" 5780 ! 5790 Columnas=Nzon2*4 5800 Col0=INT((80-Columnas)/2) 5810 IF C0l0<0 THEN Col0=0 5820 FOR L=1 TO Col0-2 5830 Espacio$=Espacio$&" " 5840 NEXT L 5850 ALLOCATE Linea$[Columnas] 5860 FOR Z=1 TO Nzon2 5870 Linea$=Linea$&"----" 5880 NEXT Z 5890 ! 5900 PRINT TAB(Col0);Linea$ 5910 PRINT TAB(Col0);" MATRIZ DE DIFERENCIAS DE LA VARIABLE ";Variable$ 5920 PRINT TAB(Col0);" ENTRE ";Reg1$;" (COLUMNAS) Y ";Reg2$;" (FILAS)" 5930 PRINT TAB(Col0);Linea$ 5940 FOR Z1=1 TO Nzon1 5950 PRINT Espacio$; 5960 FOR Z2=1 TO Nzon2 5970 PRINT USING "4D,#";Comp(Z1,Z2) 5980 NEXT Z2 5990 PRINT 6000 NEXT Z1 6010 PRINT TAB(Col0);Linea$ 6020 IF Qvol$="SI" OR Qvol$="S" THEN PRINT CHR$(12) 6030 PRINTER IS 1 6040 ! 6050 Qvol$="N"

236

6060 INPUT "Quier volcarlo a impresora",Qvol$ 6070 IF Qvol$="SI" OR Qvol$="S" THEN 6080 PRINTER IS 701 6090 GOTO 5900 6100 END IF 6110 PRINT CHR$(12) 6120 ! 6130 ! analisis 6140 ! 6150 SUBEND 6160 !------------------------------------------------------------------------ 6170 SUB Imprimir 6180 ! SUBPROGRAMA DE VOLCADO DE PANTALLA 6190 !------------------------------------------------------------------------ 6200 PRINTER IS 1 6210 GRAPHICS OFF 6220 INPUT "Quiere imprimir los resultados S/N ?",Qi$ 6230 IF Qi$="NO" OR Qi$="N" OR Qi$="no" OR Qi$="n" THEN GOTO 6290 6240 PRINT " Conecte la impresora y pulse |CONT| " 6250 PAUSE 6260 CALL Titulo 6270 GRAPHICS ON 6280 CALL Vuelcapant(701) 6290 PRINT CHR$(12) 6300 GRAPHICS ON 6310 PRINTER IS 1 6320 ! 6330 SUBEND 6340 !------------------------------------------------------------------------ 6350 SUB Titulo 6360 !------------------------------------------------------------------------ 6370 DIM Titulo$[240] 6380 ! 6390 PRINT CHR$(12) 6400 INPUT "Titulo del grafico",Titulo$ 6410 IF Titulo$="" THEN GOTO 6680 6420 PRINTER IS 1 6430 GOSUB Editor 6440 INPUT "Correcto",Cort$ 6450 IF Cort$="N" OR Cort$="NO" THEN GOTO 6390 6460 PRINTER IS 701 6470 GOSUB Editor 6480 PRINTER IS 1 6490 GOTO 6680 6500 ! 6510 Editor: ! Divide el texto y lo centra 6520 Titulo$=Titulo$&" " 6530 C0=0 6540 IF C0>=LEN(Titulo$) THEN GOTO 6660 6550 Caracter=50+C0 6560 FOR C=Caracter TO 1 STEP -1 6570 IF C>LEN(Titulo$) THEN GOTO 6650 6580 IF Titulo$[C,C]=" " THEN 6590 Tx=INT((64-(C-C0))/2) 6600 Ima$=VAL$(Tx)&"X,"&VAL$(C-C0)&"A"

237

6610 PRINT USING Ima$;Titulo$[C0+1,C] 6620 C0=C 6630 GOTO 6540 6640 END IF 6650 NEXT C 6660 RETURN 6670 ! 6680 SUBEND 6690 !------------------------------------------------------------------------ 6700 SUB Vuelcapant(INTEGER Device_selector) 6710 !------------------------------------------------------------------------ 6720 OPTION BASE 1 6730 INTEGER Row_group,Prod_num,Maxrow 6740 DIM Graphic_escape$[7] 6750 ! 6760 ON ERROR GOTO 7160 6770 PRINTER IS Device_selector 6780 OFF ERROR 6790 ! 6800 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 6810 ! 6820 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 6830 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 6840 ! 6850 IF Graphics_res=1 THEN 6860 ALLOCATE Os$[512] ! Para los modelos 9836 6870 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 6880 Maxrow=390 ! Numero de lineas del 9836 6890 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 6900 ELSE 6910 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 6920 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 6930 Maxrow=300 ! Numero de lineas del 9826 y 9816 6940 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 6950 END IF 6960 ! 6970 GSTORE Screen(*) ! Almacena matriz de pantalla 6980 ! 6990 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 7000 ! 7010 FOR Row_group=1 TO 297 STEP 8 7020 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 7030 Gdump(Screen(*),Row_group,Os$) 7040 ! Volcado de linea de caracteres graficos 7050 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 7060 PRINT USING "7A,400A";Graphic_escape$,Os$ 7070 ELSE ! Para los modelos 9836 7080 PRINT USING "7A,512A";Graphic_escape$,Os$ 7090 END IF 7100 NEXT Row_group 7110 ! 7120 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 7130 ! 7140 SUBEXIT 7150 !

238

7160 BEEP ! Caso de encontrarse error en "PRINTER IS" 7170 DISP "CODIGO DE IMPRESION ERRONEO - INTERRUMPCION DEL VOLCADO" 7180 ! 7190 SUBEND 7200 ! 7210 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 7220 !-------------------------------------------------------------------------

239

10 !------------------------------------------------------------------------ 20 REM "DIBUJAR" 30 REM PROGRAMA PARA REPRESENTACION DE DIAGRAFIAS 40 REM MEDIANTE IMPRESORA O TRAZADOR 50 !------------------------------------------------------------------------ 60 PRINTER IS 1 70 PRINT CHR$(12) 80 CONTROL 2,0;1 90 ! 100 GRAPHICS ON 110 GCLEAR 120 GINIT 130 ! 140 FOR F=0 TO 10 STEP 2 150 VIEWPORT 0+F,133-F,10+F,100-F 160 FRAME 170 NEXT F 180 ! 190 PRINT TABXY(24,9);" -DIBUJAR- " 200 PRINT TABXY(24,11);"PROGRAMA PARA DIBUJO DE DIAGRAFIAS" 210 PRINT TABXY(24,13);" MEDIANTE TRAZADOR E IMPRESORA " 220 CALL Salir 230 PRINT CHR$(12) 240 GCLEAR 250 ! 260 OPTION BASE 0 270 Nx=2 280 Ny=10 290 Lontit=27 300 ALLOCATE Xx(Nx),Yy(Ny),Tit$(Nx,Ny)[Lontit],Numero(Ny,Nx),Valor$(Nx,Ny)[10] 310 DIM Nfich$(8)[10],Pp$(8)[25],Param$(8)[25] 320 DIM T$(13)[5],Lit$(13)[17] 330 ALLOCATE Ndat(1:6),X0(1:6),Min(1:6),Max(1:6),X1(1:6),Ind0(1:6) 340 ALLOCATE Xp(1:2750),Pp(1:6,1:2750),Cz(1:300),Cl(1:300) 350 INTEGER Clit(99) 360 ! 370 COM /Ben/ B(100),Benson$[10],@F1,@F2 380 !------------------------------------------------------------------------ 390 REM Flujo del Programa 400 !------------------------------------------------------------------------ 410 BEEP 420 PRINT CHR$(12) 430 ON KEY 5 LABEL "ENTRADA DATOS " GOTO 810 440 ON KEY 6 LABEL "LECT. FICHEROS" GOTO 2290 450 ON KEY 7 LABEL " TRAMAS " GOTO 4340 460 ON KEY 8 LABEL " TRAZADOR " GOTO 510 470 ON KEY 9 LABEL " IMPRESORA " GOTO 670 480 ON KEY 0 LABEL " TERMINAR " CALL Salir 490 GOTO 430 500 !------------------------------------------------------------------------ 510 REM Carga y Utilizacion de Subprogramas de Trazador 520 !------------------------------------------------------------------------ 530 OFF KEY 540 ! 550 LOADSUB ALL FROM "TRAZADOR"

240

560 LOADSUB ALL FROM "PLOTTER" 570 Benson$="" 580 CALL Benson(727) 590 ! CALL Plot(0,0,0) 600 CALL

Trazador(Valor$(*),Dist,X0(*),Ndat(*),P1(*),P2(*),Pp(*),T$(*),Lit$(*),Param$(*),Cz(*),Cl(*),Clit(*))

610 ! 620 DELSUB Plotter 630 DELSUB Trazador 640 ! 650 GOTO 410 660 !------------------------------------------------------------------------ 670 REM Carga y Utilizacion de Subprogramas de Impresora 680 !------------------------------------------------------------------------ 690 OFF KEY 700 ! 710 LOADSUB ALL FROM "IMPRESORA" 720 ! 730 CALL

Impresora(Valor$(*),Lito$,Np,Dist,X0(*),Ndat(*),P1(*),P2(*),Pp(*),T$(*),Lit$(*),Param$(*),Cz(*),Cl(*),Clit(*))

740 ! 750 DELSUB Impresora 760 DELSUB Vuelcacont 770 DELSUB Gdump 780 ! 790 GOTO 410 800 !------------------------------------------------------------------------ 810 REM Entrada de datos 820 !------------------------------------------------------------------------ 830 OFF KEY 840 ! 850 Xt(1)=0 860 Xt(2)=42 870 Xx(1)=29 880 Xx(2)=70 890 FOR Y=1 TO Ny 900 Yy(Y)=Y+4 910 NEXT Y 920 ! 930 Tit$(1,1)="Nombre del Sondeo ........." 940 Valor$(1,1)="GUARE¶A 4" 950 Tit$(2,1)="Proyecto .................." 960 Valor$(2,1)="AGUAS" 970 Tit$(1,2)="Fecha de registro ........." 980 Valor$(1,2)="12/02/88" 990 Tit$(2,2)="Titular ..................." 1000 Valor$(2,2)="I.R.Y.D.A." 1010 Tit$(1,3)="Municipio ................." 1020 Valor$(1,3)="ALAEJOS" 1030 Tit$(2,3)="Provincia ................." 1040 Valor$(2,3)="SALAMANCA" 1050 Tit$(1,4)="Escala vertical en cm ....." 1060 Valor$(1,4)="200"

241

1070 Tit$(2,4)="Int. de marcas de prof....." 1080 Valor$(2,4)="20" 1090 Tit$(1,5)="Prof. inicial de registro ." 1100 Valor$(1,5)="0" 1110 Tit$(2,5)="Prof. final de registro ..." 1120 Valor$(2,5)="400" 1130 Tit$(1,6)="Sistema de Perforacion ...." 1140 Valor$(1,6)="INVERSA" 1150 Tit$(2,6)="Entubacion ................" 1160 Valor$(2,6)="500 mm" 1170 Tit$(1,7)="Diametro de Perf. (1) ....." 1180 Valor$(1,7)="400" 1190 Tit$(2,7)="Prof. de Perforacion (1) .." 1200 Valor$(2,7)="180" 1210 Tit$(1,8)="Diametro de Perf. (2) ....." 1220 Valor$(1,8)="300" 1230 Tit$(2,8)="Prof. de perforacion (2) .." 1240 Valor$(2,8)="400" 1250 Tit$(1,9)="Tipo de Lodo .............." 1260 Valor$(1,9)="REVERT" 1270 Tit$(2,9)="Conductividad del Lodo ...." 1280 Valor$(2,9)="1000" 1290 Tit$(1,10)="Prof. del Nivel de Lodo ..." 1300 Valor$(1,10)="32" 1310 Tit$(2,10)="Prof. del Nivel Freatico .." 1320 Valor$(2,10)="85" 1330 ! 1340 PRINT TABXY(27,2),"ENTRADA DE DATOS" 1350 FOR Y=1 TO Ny 1360 FOR X=1 TO Nx 1370 PRINT TABXY(Xt(X),Yy(Y));Tit$(X,Y) 1380 NEXT X 1390 NEXT Y 1400 ! 1410 X=1 1420 Y=1 1430 PRINT TABXY(Xx(X),Yy(Y)),"_ " 1440 PRINT TABXY(50,18),"Para terminar pulse |CONT|" 1450 BEEP 1460 ! 1470 ON KBD ALL GOTO 1490 1480 GOTO 1470 1490 Tecla$=KBD$ 1500 ! 1510 IF Tecla$="ÿC" THEN GOTO 2010 ! PARA TERMINAR 1520 IF Tecla$="ÿE" THEN 1530 PRINT TABXY(Xx(X),Yy(Y)),Valor$(X,Y) 1540 IF X<Nx THEN 1550 X=X+1 1560 GOTO 1630 1570 END IF 1580 IF X=Nx THEN 1590 Y=Y+1 1600 X=1 1610 IF Y>Ny THEN Y=1

242

1620 END IF 1630 PRINT TABXY(Xx(X),Yy(Y)),"_ " 1640 END IF 1650 IF Tecla$="ÿ<" OR Tecla$="ÿ>" OR Tecla$="ÿ^" OR Tecla$="ÿV" THEN 1660 PRINT TABXY(Xx(X),Yy(Y)),Valor$(X,Y) 1670 IF Tecla$="ÿ<" THEN X=X-1 1680 IF X<1 THEN X=Nx 1690 IF Tecla$="ÿ>" OR Tecla$="ÿ)" THEN X=X+1 1700 IF X>Nx THEN X=1 1710 IF Tecla$="ÿ^" THEN Y=Y-1 1720 IF Y<1 THEN Y=Ny 1730 IF Tecla$="ÿV" THEN Y=Y+1 1740 IF Y>Ny THEN Y=1 1750 PRINT TABXY(Xx(X),Yy(Y)),"_ " 1760 GOTO 1470 1770 END IF 1780 IF NUM(Tecla$)=255 THEN GOTO 1470 ! TECLAS DE FUNCION 1790 ! 1800 Resto$="" 1810 INPUT "",Resto$ 1820 IF LEN(Resto$)>9 THEN Resto$=Resto$[1,9] 1830 Valor$(X,Y)=Tecla$&Resto$ 1840 PRINT TABXY(Xx(X),Yy(Y)),Valor$(X,Y) 1850 ! 1860 X=X+1 1870 IF X>Nx THEN 1880 X=1 1890 Y=Y+1 1900 END IF 1910 IF Y>Ny THEN 1920 Y=1 1930 X=1 1940 END IF 1950 ! 1960 FOR H=1 TO Nx 1970 PRINT TABXY(Xx(H),Yy(Y)),Valor$(H,Y) 1980 NEXT H 1990 PRINT TABXY(Xx(X),Yy(Y)),"_ " 2000 GOTO 1470 2010 ! 2020 OFF KBD 2030 ! 2040 ON ERROR GOTO 1400 2050 Sondeo$=Valor$(1,1) 2060 Proyec$=Valor$(2,1) 2070 Fecha$=Valor$(1,2) 2080 Titular$=Valor$(2,2) 2090 Munic$=Valor$(1,3) 2100 Provin$=Valor$(2,3) 2110 Ev=VAL(Valor$(1,4)) 2120 Inp=VAL(Valor$(2,4)) 2130 Pt1=VAL(Valor$(1,5)) 2140 Pt2=VAL(Valor$(2,5)) 2150 Sperf$=Valor$(1,6) 2160 Entub$=Valor$(2,6)

243

2170 Diam1=VAL(Valor$(1,7)) 2180 Diam2=VAL(Valor$(2,7)) 2190 Prof1=VAL(Valor$(1,8)) 2200 Prof2=VAL(Valor$(2,8)) 2210 Tipolodo$=Valor$(1,9) 2220 Condlodo=VAL(Valor$(2,9)) 2230 Nivelodo=VAL(Valor$(1,10)) 2240 Nivelfre=VAL(Valor$(2,10)) 2250 OFF ERROR 2260 ! 2270 GOTO 410 2280 !---------------------------------------------------------------------- 2290 REM Entrada de los nombres de los Ficheros 2300 !---------------------------------------------------------------------- 2310 OFF KEY 2320 ! 2330 PRINT CHR$(12) 2340 PRINT 2350 BEEP 2360 INPUT "Numero de parametros que quiere representar (de 1 a 6) ",Np 2370 IF Np<1 OR Np>6 THEN GOTO 2360 2380 PRINT "Numero de parametros que quiere representar ...........";Np 2390 INPUT "Nombre abreviado del sondeo (<6 caracteres) en ficheros ",Abrev$ 2400 IF LEN(Abrev$)>6 OR LEN(Abrev$)=0 THEN GOTO 2390 2410 PRINT "Nombre abreviado del sondeo (<6 caracteres) en ficheros ";Abrev$ 2420 Lito$="" 2430 INPUT "Quiere representar la litologia (S/N)",Qlit$ 2440 IF Qlit$<>"S" AND Qlit$<>"N" THEN GOTO 2430 2450 IF Qlit$="S" THEN Lito$=Abrev$&"LIT" 2460 PRINT "Quiere representar la litologia ....................... ";Qlit$ 2470 Rango$="N" 2480 INPUT "Quiere definir los rangos de representacion (S/N) ",Rango$ 2490 IF Rango$<>"S" AND Rango$<>"N" THEN GOTO 2480 2500 PRINT "Quiere definir los rangos de representacion ........... ";Rango$ 2510 INPUT "Correcto",Cor$ 2520 IF Cor$="NO" OR Cor$="N" THEN GOTO 2340 2530 PRINT CHR$(12) 2540 ! 2550 Nparam=8 2560 Pp$(1)="RHO NORMAL 0.4 AM (Ohm.m)" 2570 Fin$(1)="RNC" 2580 Pp$(2)="RHO NORMAL 1.6 AM (Ohm.m)" 2590 Fin$(2)="RNL" 2600 Pp$(3)="RHO LATERAL 1.8 AO(Ohm.m)" 2610 Fin$(3)="LAT" 2620 Pp$(4)="RES. PUNTUAL (Ohm)" 2630 Fin$(4)="RME" 2640 Pp$(5)="POT. ESPONTANEO (mV)" 2650 Fin$(5)="PE " 2660 Pp$(6)="GAMMA NATURAL (CPS)" 2670 Fin$(6)="GN " 2680 Pp$(7)="TEMPERATURA (³C)" 2690 Fin$(7)="_TEM" 2700 Pp$(8)="CONDUCTIVIDAD (uS/cm)" 2710 Fin$(8)="_CND"

244

2720 ! 2730 PRINT TABXY(5,1);"PARAMETRO" 2740 IF Rango$="S" THEN PRINT TABXY(34,1);"MINIMO MAXIMO" 2750 FOR Ip=1 TO Nparam 2760 Sel(Ip)=0 2770 PRINT TABXY(1,(Ip+1)*2);Pp$(Ip) 2780 NEXT Ip 2790 PRINT TABXY(27-1,(1+1)*2);"_" 2800 ! 2810 Ip=1 2820 Col=27 2830 Cadena$="" 2840 ON KBD ALL GOTO 2860 2850 GOTO 2840 2860 Tecla$=KBD$ 2870 IF Tecla$="ÿC" THEN GOTO 3290 2880 IF Tecla$="ÿ>" OR Tecla$="ÿ<" OR Tecla$="ÿV" OR Tecla$="ÿ^" THEN 2890 PRINT TABXY(Col-1,(Ip+1)*2);" " 2900 IF Rango$="N" THEN GOTO 2990 2910 IF Tecla$="ÿ>" THEN 2920 Col=Col+10 2930 IF Col>47 THEN Col=27 2940 END IF 2950 IF Tecla$="ÿ<" THEN 2960 Col=Col-10 2970 IF Col<27 THEN Col=47 2980 END IF 2990 IF Tecla$="ÿ^" THEN 3000 Ip=Ip-1 3010 IF Ip<1 THEN Ip=Nparam 3020 END IF 3030 IF Tecla$="ÿV" THEN 3040 Ip=Ip+1 3050 IF Ip>Nparam THEN Ip=1 3060 END IF 3070 PRINT TABXY(Col-1,(Ip+1)*2);"_" 3080 END IF 3090 IF Tecla$="ÿE" AND Col=27 THEN 3100 IF Sel(Ip)=0 THEN 3110 PRINT TABXY(Col,(Ip+1)*2);"SI" 3120 Sel(Ip)=1 3130 ELSE 3140 PRINT TABXY(Col,(Ip+1)*2);" " 3150 Sel(Ip)=0 3160 END IF 3170 END IF 3180 IF Rango$="N" THEN GOTO 3280 3190 IF NUM(Tecla$)>47 AND NUM(Tecla$)<58 THEN 3200 Cadena$=Cadena$&Tecla$ 3210 GOTO 2840 3220 END IF 3230 IF Tecla$="ÿE" AND (Col=37 OR Col=47) THEN 3240 IF Col=37 THEN Pmin(Ip)=VAL(Cadena$) 3250 IF Col=47 THEN Pmax(Ip)=VAL(Cadena$) 3260 PRINT TABXY(Col,(Ip+1)*2);Cadena$&" "

245

3270 END IF 3280 GOTO 2830 3290 ! 3300 Nsel=0 3310 FOR Ip=1 TO Nparam 3320 IF Sel(Ip)=1 THEN 3330 IF Rango$<>"N" AND P2(Ip)<=P1(Ip) THEN GOTO 2830 3340 Nsel=Nsel+1 3350 END IF 3360 NEXT Ip 3370 IF Nsel<>Np THEN GOTO 2330 3380 ! 3390 OFF KBD 3400 PRINT CHR$(12) 3410 ! 3420 P=0 3430 FOR Ip=1 TO Nparam 3440 IF Sel(Ip)=1 THEN 3450 P=P+1 3460 Nfich$(P)=Abrev$&Fin$(Ip) 3470 Param$(P)=Pp$(Ip) 3480 P1(P)=Pmin(Ip) 3490 P2(P)=Pmax(Ip) 3500 END IF 3510 NEXT Ip 3520 !---------------------------------------------------------------------- 3530 REM Lectura de los datos digitalizados 3540 !---------------------------------------------------------------------- 3550 PRINT TABXY(20,1);"COMPROBANDO FICHEROS, NO INTERRUMPIR" 3560 ON ERROR GOTO 3630 3570 MASS STORAGE IS ":HP8290X,700,1" 3580 FOR P=1 TO Np 3590 ASSIGN @Pat_0 TO Nfich$(P) 3600 NEXT P 3610 OFF ERROR 3620 GOTO 3700 3630 OFF ERROR 3640 PRINT TABXY(15,8);"El fichero ";Nfich$(P);" no aparece en el disco 1" 3650 PRINT 3660 CAT 3670 WAIT 1 3680 GOTO 2290 3690 ! 3700 DEALLOCATE Ndat(*),X0(*),Min(*),Max(*),X1(*),Ind0(*) 3710 ALLOCATE Ndat(1:Np),X0(1:Np),Min(1:Np),Max(1:Np),X1(1:Np),Ind0(1:Np) 3720 FOR P=1 TO Np 3730 ASSIGN @Pat_0 TO Nfich$(P) 3740 ENTER @Pat_0;Ndat(P),X0(P),Dist,Min(P),Max(P) 3750 ASSIGN @Pat_0 TO * 3760 X1(P)=X0(P)+Ndat(P)*Dist 3770 NEXT P 3780 X0min=X0(1) 3790 X1max=X1(1) 3800 FOR P=1 TO Np 3810 IF X0(P)<X0min THEN X0min=X0(P)

246

3820 IF X1(P)>X1max THEN X1max=X1(P) 3830 NEXT P 3840 Nmax=(X1max-X0min)/Dist 3850 ! DEALLOCATE Pp(*) 3860 ! ALLOCATE Pp(1:Np,1:Nmax) 3870 FOR P=1 TO Np 3880 Ind0(P)=(X0(P)-X0min)/Dist+1 3890 NEXT P 3900 ! 3910 FOR P=1 TO Np 3920 PRINT TABXY(20,1);"LECTURA DEL FICHERO DEL REGISTRO "&Nfich$(P) 3930 ASSIGN @Pat_0 TO Nfich$(P) 3940 ENTER @Pat_0;Ndat(P),X0(P),Dist,Min(P),Max(P) 3950 DEALLOCATE Xp(*) 3960 ALLOCATE Xp(1:Ndat(P)) 3970 ENTER @Pat_0;Xp(*) 3980 ASSIGN @Pat_0 TO * 3990 FOR I=1 TO Ndat(P) 4000 Pp(P,I+Ind0(P))=Xp(I) 4010 NEXT I 4020 PRINT CHR$(12) 4030 NEXT P 4040 ! 4050 GOTO 4110 ! No se utiliza 4060 DEALLOCATE Xp(*) 4070 ALLOCATE Xp(1:Nmax) 4080 FOR I=1 TO Nmax 4090 Xp(I)=X0min+I*Dist 4100 NEXT I 4110 ! 4120 IF Rango$<>"N" THEN GOTO 4170 4130 FOR P=1 TO Np 4140 P1(P)=INT(Min(P)) 4150 P2(P)=INT(Max(P)+1) 4160 NEXT P 4170 ! 4180 IF Lito$="" THEN GOTO 4300 4190 PRINT TABXY(20,1);"LECTURA DEL FICHERO DE LA LITOLOGIA" 4200 ASSIGN @Pat_0 TO Lito$ 4210 ENTER @Pat_0;Ncap,Nfil 4220 ! DEALLOCATE Cz(*),Cl(*) 4230 ! ALLOCATE Cz(1:Ncap),Cl(1:Ncap) 4240 FOR C=1 TO Ncap 4250 ENTER @Pat_0;Cz(C),Cl(C) 4260 NEXT C 4270 ASSIGN @Pat_0 TO * 4280 PRINT CHR$(12) 4290 ! 4300 MASS STORAGE IS ": HP 8290X,700,0" 4310 ! 4320 GOTO 410 4330 !---------------------------------------------------------------------- 4340 REM Tramas de las Litologias 4350 !---------------------------------------------------------------------- 4360 IF Lito$="" THEN GOTO 5240

247

4370 PRINT " TRAMAS ASIGNADAS A LOS DISTINTOS CODIGOS LITOLOGICOS" 4380 ! 4390 Lit$(0)="................" 4400 T$(0)=" " 4410 Lit$(1)="GRAVAS.........." 4420 T$(1)="ooooo" 4430 Lit$(2)="ARENAS.........." 4440 T$(2)="....." 4450 Lit$(3)="LIMOS..........." 4460 T$(3)="/////" 4470 Lit$(4)="ARENAS ARCILLOSAS" 4480 T$(4)=".-.-." 4490 Lit$(5)="ARCILLAS ARENOSAS" 4500 T$(5)="-.-.-" 4510 Lit$(6)="ARCILLAS........" 4520 T$(6)="-----" 4530 Lit$(7)="MARGAS.........." 4540 T$(7)="LLLLL" 4550 Lit$(8)="CALIZAS........." 4560 T$(8)="HHHHH" 4570 Lit$(9)="YESOS..........." 4580 T$(9)="^^^^^" 4590 Lit$(10)="MATERIA ORGANICA" 4600 T$(10)="sssss" 4610 Lit$(11)="GRANITO ALTERADO" 4620 T$(11)="+.+.+" 4630 Lit$(12)="GRANITO........." 4640 T$(12)="+++++" 4650 Lit$(13)="OTRAS..........." 4660 T$(13)="xxxxx" 4670 ! 4680 PRINT TABXY(30,11);"Espere, por favor" 4690 GRAPHICS OFF 4700 CSIZE 3,.7 4710 LINE TYPE 1 4720 ! 4730 FOR L=1 TO 12 4740 Trama$="" 4750 Xl=((L-1) MOD 3)*26+6 4760 Yl=96-((L+2) DIV 3)*20 4770 VIEWPORT Xl,Xl+22,Yl,Yl+12 4780 WINDOW 0,10,0,6 4790 FRAME 4800 LORG 3 4810 FOR H=1 TO 6 4820 MOVE 0,7-H 4830 LABEL T$(L)&T$(L) 4840 NEXT H 4850 NEXT L 4860 ! 4870 VIEWPORT 0,133,0,100 4880 WINDOW 0,133,0,100 4890 FOR L=1 TO 12 4900 Xl=((L-1) MOD 3)*26+14 4910 Yl=96-((L+2) DIV 3)*20-2

248

4920 MOVE Xl,Yl 4930 LABEL L 4940 NEXT L 4950 ! 4960 FOR L=1 TO 13 4970 Xl=86 4980 Yl=93-L*6 4990 MOVE Xl,Yl 5000 LABEL Lit$(L);L 5010 NEXT L 5020 ! 5030 PRINT TABXY(30,11);" " 5040 GRAPHICS ON 5050 ! 5060 Clit(11)=1 5070 Clit(22)=2 5080 Clit(33)=3 5090 Clit(24)=4 5100 Clit(42)=5 5110 Clit(44)=6 5120 Clit(45)=7 5130 Clit(55)=8 5140 Clit(66)=9 5150 Clit(77)=10 5160 Clit(84)=11 5170 Clit(88)=12 5180 Clit(99)=13 5190 INPUT "Quiere modificar las tramas de las litologias",Qm$ 5200 ! no se realiza 5210 ! 5220 GCLEAR 5230 PRINT CHR$(12) 5240 GOTO 410 5250 !------------------------------------------------------------------------ 5260 END 5270 !------------------------------------------------------------------------ 5280 SUB Salir 5290 SUSPEND INTERACTIVE 5300 ON KEY 0 LABEL "SALIR" GOTO 5330 5310 ON KEY 5 LABEL "CONTINUAR" GOTO 5350 5320 GOTO 5300 5330 INPUT "Quiere salir al programa principal",Qsal$ 5340 IF Qsal$="S" OR Qsal$="SI" THEN LOAD "DIAGRAFIAS" 5350 OFF KEY 5360 RESUME INTERACTIVE 5370 SUBEND 5380 !------------------------------------------------------------------------

249

10 !------------------------------------------------------------------------ 20 SUB

Trazador(Valor$(*),Dist,X0(*),Ndat(*),P1(*),P2(*),Pp(*),T$(*),Lit$(*),Param$(*),Cz(*),Cl(*),Clit(*))

30 ! 40 ! -TRAZADOR- 50 ! SUBPROGRAMA PARA REPRESENTACION DE DIAGRAFIAS EN TRAZADOR 60 ! CON PROFUNDIDAD INICIAL DISTINTA DE CERO 70 !------------------------------------------------------------------------ 80 REM NUMERO DE COPIAS 90 !------------------------------------------------------------------------ 100 BEEP 110 PRINT CHR$(12) 120 Ev=VAL(Valor$(1,4)) 130 PRINT TABXY(1,1);"Escala vertical definida:";Ev 140 INPUT "Nueva escala vertical ",Ev 150 IF Ev<100 OR Ev>1000 OR (Ev MOD 50)<>0 THEN GOTO 140 160 PRINT TABXY(1,1);"Nueva escala vertical ...";Ev 170 INPUT "Cuántas copias quiere realizar ",Ncop 180 IF Ncop<1 THEN GOTO 170 190 PRINT 200 PRINT "Este programa dibuja ....";Ncop;"copias" 210 PRINT 220 PRINT " Situacion de las copias segun se mira el Plotter " 230 PRINT 240 PRINT "| TERCERA (3) | SEGUNDA (2) | PRIMERA (1) |" 250 INPUT "Posición inicial de la primera copia",Pin 260 IF Pin<1 OR Pin>3 THEN GOTO 250 270 PRINT 280 PRINT "Posición inicial de la primera copia";Pin 290 INPUT "Correcto ?",Cor$ 300 IF Cor$="NO" OR Cor$="N" THEN GOTO 100 310 Cop=1 320 !------------------------------------------------------------------------ 330 REM INSTRUCCIONES PARA EL PLOTTER 340 !------------------------------------------------------------------------ 350 BEEP 360 PRINT CHR$(12) 370 PRINT "Conecte el Ploter pulsando el botón |V| y cuando se encienda" 380 PRINT "el indicador verde (READY) pulse el botón |INIT/O.K.|, luego" 390 PRINT "el botón |AUTO| (los dos |AUTO| deben estar iluminados) " 400 PRINT 410 PRINT "Coloque el rotulador negro en la posición |2|, el azul en la" 420 PRINT "posición |1| y el rojo en la posición |0| " 430 PRINT 440 PRINT "Coloque la pluma 0 en el origen deseado (solo caben tres copias" 450 PRINT "en el papel) " 460 PRINT 470 PRINT "Coloque el selector de perifÅricos en la posicion |PLOT| " 480 PRINT 490 PRINT "Coloque el disco con los datos de la diagrafía en 1, verifique " 500 PRINT "todas las instrucciones y luego pulse |CONT| " 510 PAUSE 520 PRINT CHR$(12) 530 !----------------------------------------------------------------------

250

540 REM Representación del cabezal 550 !---------------------------------------------------------------------- 560 CALL Origine(0,0) 570 CALL Scale(1,1) 580 CALL Ldir(0,"D") 590 CALL Pen(2) 600 CALL Csize(.25,.25,0) 610 ! 620 CALL Frame(26,24) 630 CALL Plot(17,0,0) 640 CALL Plot(17,24,1) 650 CALL Plot(18,24,0) 660 CALL Plot(18,0,1) 670 CALL Plot(17,12.25,0) 680 CALL Plot(0,12.25,1) 690 CALL Plot(0,21,0) 700 CALL Plot(17,21,1) 710 CALL Plot(17,22,0) 720 CALL Plot(0,22,1) 730 !--------------------------------------------------------------------- 740 CALL Plot(1.75,23.25,0) 750 CALL Texte("ESCUELA TECNICA SUPERIOR DE INGENIEROS DE MINAS DE MADRID") 760 CALL Plot(4.5,22.5,0) 770 CALL Texte("DEPARTAMENTO DE GEOFISICA APLICADA") 780 CALL Plot(3.25,21.35,0) 790 CALL Texte("TESTIFICACION GEOFISICA DEL SONDEO ") 800 CALL Texte(Son$) 810 CALL Plot(.5,20,0) 820 CALL Texte("Cliente ") 830 CALL Texte(Cli$) 840 CALL Plot(9,20,0) 850 CALL Texte("Fecha ") 860 CALL Texte(Fec$) 870 CALL Plot(.5,19,0) 880 CALL Texte("Proyecto ") 890 CALL Texte(Proy$) 900 CALL Plot(9,19,0) 910 CALL Texte("Zona ") 920 CALL Texte(Zon$) 930 CALL Plot(.5,18,0) 940 CALL Texte("Municipio ") 950 CALL Texte(Mun$) 960 CALL Plot(9,18,0) 970 CALL Texte("Provincia ") 980 CALL Texte(Prov$) 990 CALL Plot(.5,17,0) 1000 CALL Texte("Metros perforados ") 1010 CALL Texte(Mper$) 1020 CALL Plot(9,17,0) 1030 CALL Texte("Metros testificados ") 1040 CALL Texte(Mtes$) 1050 CALL Plot(.5,16,0) 1060 CALL Texte("Diametro exterior ") 1070 CALL Texte(Dia1$) 1080 CALL Plot(.5,15,0)

251

1090 CALL Texte("Diametro exterior ") 1100 CALL Texte(Dia2$) 1110 CALL Plot(.5,14,0) 1120 CALL Texte("Entubacion ") 1130 CALL Texte(Ent$) 1140 CALL Plot(.5,13,0) 1150 CALL Texte("Caracteristicas del Lodo") 1160 CALL Texte(Carl$) 1170 !--------------------------------------------------------------------- 1180 Repre$="LEYEN" 1190 ! 1200 Dx=2 1210 Dy=1 1220 FOR I=1 TO 6 1230 At=I*1.4+2 1240 CALL Plot(1,At,0) 1250 CALL Frame(2,1) 1260 Tt=(7-I) 1270 GOSUB Tramas ! CALL Trama(DX,DY,I) 1280 CALL Csize(.25,.25,0) 1290 CALL Plot(3.5,At+.4,0) 1300 CALL Texte(Lit$(Tt)) 1310 CALL Plot(9,At,0) 1320 CALL Frame(2,1) 1330 Tt=(13-I) 1340 GOSUB Tramas 1350 CALL Csize(.25,.25,0) 1360 CALL Plot(11.5,At+.4,0) 1370 CALL Texte(Lit$(Tt)) 1380 NEXT I 1390 ! 1400 CALL Plot(1,.7,0) 1410 CALL Frame(.05,2) 1420 CALL Plot(1.5,1.5,0) 1430 CALL Texte("NIVEL") 1440 ! 1450 CALL Plot(9,2,0) 1460 T$(20)="W" 1470 Dx=4 1480 Dy=.2 1490 Tt=20 1500 GOSUB Tramas 1510 CALL Csize(.25,.25,0) 1520 CALL Plot(9,1.5,0) 1530 CALL Texte("ZONA RECOMENDADA") 1540 CALL Plot(9.5,1,0) 1550 CALL Texte("PARA FILTROS") 1560 !----------------------------------------------------------------- 1570 CALL Plot(17.65,9.5,0) 1580 CALL Ldir(90,"D") 1590 CALL Texte("DIAGRAFIA ") 1600 CALL Texte("E.V. 1/") 1610 CALL Texte(Ev$) 1620 CALL Ldir(0,"D") 1630 !---------------------------------------------------------------------

252

1640 REM Representación de la cuadrícula 1650 !--------------------------------------------------------------------- 1660 CALL Plot(26,0,0) 1670 CALL Scale(Esx,1) 1680 CALL Origine(Pt1,0) 1690 CALL Csize(.125*Esx,.25,0) 1700 ! 1710 FOR I=((INT(Pt1/Inp)+1)*Inp) TO INT(Pt2) STEP Inp 1720 I$=VAL$(I) 1730 CALL Plot(I,.5,0) 1740 CALL Ldir(90,"D") 1750 CALL Texte(I$) 1760 CALL Ldir(0,"D") 1770 CALL Plot(I,1,0) 1780 CALL Plot(I,11,1) 1790 CALL Plot(I,13,0) 1800 CALL Plot(I,23,1) 1810 CALL Plot(I,23.2,0) 1820 CALL Ldir(90,"D") 1830 CALL Texte(I$) 1840 CALL Ldir(0,"D") 1850 NEXT I 1860 ! 1870 CALL Plot(Pt2,23,0) 1880 CALL Plot(Pt2,1,1) 1890 ! 1900 FOR I=1 TO 22 STEP 2 1910 CALL Plot(Pt1,I,0) 1920 CALL Plot(Pt2,I,1) 1930 IF I=11 THEN I=12 1940 CALL Plot(Pt2,I+1,0) 1950 CALL Plot(Pt1,I+1,1) 1960 NEXT I 1970 ! 1980 CALL Plot(Pt1,0,0) 1990 !----------------------------------------------------------------------- 2000 REM Rangos de representacion y tramas de los registros 2010 !----------------------------------------------------------------------- 2020 FOR L=1 TO Np 2030 ! 2040 IF L=1 OR L=2 THEN Px(L)=1.5*Esx 2050 IF L=3 OR L=4 THEN Px(L)=6*Esx 2060 IF L=5 OR L=6 THEN Px(L)=3.75*Esx 2070 Titx=.3*Esx 2080 ! Py(L)=(SGN(INT(L/2)-L/2)+1)*12+1 ! Truco para calcularlos 2090 IF L=1 OR L=3 OR L=5 THEN Py(L)=1 2100 IF L=2 OR L=4 OR L=6 THEN Py(L)=13 2110 IF L=1 OR L=2 THEN Traza(L)=1 2120 IF L=3 OR L=4 THEN Traza(L)=2 2130 IF L=5 OR L=6 THEN Traza(L)=3 2140 IF Traza(L)=1 THEN 2150 L0=.03 2160 L1=.12 2170 END IF 2180 IF Traza(L)=2 THEN

253

2190 L0=.15 2200 L1=.2 2210 END IF 2220 IF Traza(L)=3 THEN 2230 L0=.1 2240 L1=.05 2250 END IF 2260 ! 2270 CALL Ldir(90,"D") 2280 CALL Plot(Pt1-(Px(L)+Titx),Py(L)+3,0) 2290 CALL Texte(Pp$(L)) 2300 CALL Plot(Pt1-(Px(L)+Titx),Py(L),0) 2310 Y1$=VAL$(Y1(L)) 2320 CALL Texte(Y1$) 2330 CALL Plot(Pt1-(Px(L)+Titx),Py(L)+9.5,0) 2340 Y2$=VAL$(Y2(L)) 2350 CALL Texte(Y2$) 2360 CALL Ldir(0,"D") 2370 ! 2380 CALL Plot(Pt1-Px(L),Py(L),0) 2390 CALL Enbl("THIK") 2400 CALL Thick(.03,3) 2410 REPEAT 2420 CALL Iplot(0,L1,1) 2430 CALL Iplot(0,L0,0) 2440 CALL Where(Lab,Lor) 2450 UNTIL (Lor+L0+L1)>=Py(L)+10 2460 CALL Dsbl("THIK") 2470 !-------------------------------------------------------------------- 2480 REM Representacion de los registros 2490 !-------------------------------------------------------------------- 2500 CALL Plot(Pt1,0,0) 2510 CALL Pen(2) 2520 CALL Plot(Pt1,Py(L),0) 2530 Esx=Ev/100 2540 Esy=(Y2(L)-Y1(L))/10 2550 CALL Scale(Esx,Esy) 2560 CALL Origine(Pt1,Y1(L)) 2570 ! 2580 FOR J=1 TO N2(L) 2590 Yt1=Y(1) 2600 IF X(J)>Pt1 THEN 2610 Xt1=X(J) 2620 Yt1=Y(J) 2630 GOTO 2660 2640 END IF 2650 NEXT J 2660 CALL Plot(Xt1,Yt1,0) 2670 ! 2680 IF Traza(L)>1 THEN GOTO 2760 2690 FOR J=1 TO N2(L) 2700 IF X(J)<Pt1 OR X(J)>Pt2 THEN GOTO 2740 2710 IF Y(J)>Y2(L) THEN Y(J)=Y2(L) 2720 IF Y(J)<Y1(L) THEN Y(J)=Y1(L) 2730 CALL Plot(X(J),Y(J),1)

254

2740 NEXT J 2750 GOTO 3320 2760 ! 2770 Tl=1 2780 FOR J=1 TO N2(L)-1 2790 IF X(J)<Pt1 OR X(J)>Pt2 THEN GOTO 3300 2800 IF Y(J)>Y2(L) THEN Y(J)=Y2(L) 2810 IF Y(J)<Y1(L) THEN Y(J)=Y1(L) 2820 IF Y(J+1)>Y2(L) THEN Y(J+1)=Y2(L) 2830 IF Y(J+1)<Y1(L) THEN Y(J+1)=Y1(L) 2840 Lx=(X(J+1)-X(J))/Esx 2850 Ly=(Y(J+1)-Y(J))/Esy 2860 Lxy=(Lx^2+Ly^2)^(1/2) 2870 IF Lxy=0 THEN Lxy=.0001 2880 IF Tl=0 THEN GOTO 3100 2890 ! 2900 CALL Where(Lab,Lor) 2910 L1x=(X(J+1)-Lab)/Esx 2920 L1y=(Y(J+1)-Lor)/Esy 2930 Lsig=(L1x^2+L1y^2)^(1/2) 2940 Lsig1=L1-Lant1 2950 Lsig1x=Lsig1*(Lx/Lxy) 2960 Lsig1y=Lsig1*(Ly/Lxy) 2970 Lant1=Lant1+Lsig 2980 IF Lant1<L1 THEN 2990 CALL Plot(X(J+1),Y(J+1),1) 3000 Tl=1 3010 GOTO 3300 3020 END IF 3030 IF Lant1>L1 THEN 3040 CALL Iplot(Lsig1x*Esx,Lsig1y*Esy,1) 3050 Tl=0 3060 Lant1=0 3070 GOTO 3100 3080 END IF 3090 ! 3100 CALL Where(Lab,Lor) 3110 L0x=(X(J+1)-Lab)/Esx 3120 L0y=(Y(J+1)-Lor)/Esy 3130 Lsig=(L0x^2+L0y^2)^(1/2) 3140 Lsig0=L0-Lant0 3150 Lsig0x=Lsig0*(Lx/Lxy) 3160 Lsig0y=Lsig0*(Ly/Lxy) 3170 Lant0=Lant0+Lsig 3180 IF Lant0<L0 THEN 3190 CALL Plot(X(J+1),Y(J+1),0) 3200 Tl=0 3210 GOTO 3300 3220 END IF 3230 IF Lant0>L0 THEN 3240 CALL Iplot(Lsig0x*Esx,Lsig0y*Esy,0) 3250 Tl=1 3260 Lant0=0 3270 GOTO 2890 3280 END IF

255

3290 ! 3300 NEXT J 3310 ! 3320 CALL Plot(Pt1,Y1(L),0) 3330 CALL Scale(Esx,1) 3340 CALL Origine(Pt1,Py(L)) 3350 ! 3360 NEXT L ! Otro parámetro 3370 ! 3380 !----------------------------------------------------------------------- 3390 REM Representación de la litologia 3400 !----------------------------------------------------------------------- 3410 IF Ns$="" THEN GOTO 3920 3420 Repre$="LITO" 3430 ! 3440 CALL Plot(Pt1,Py(L),0) 3450 CALL Scale(1,1) 3460 CALL Origine(Pt1/Esx,Py(L)) 3470 ! 3480 Columna=M(Nc) 3490 IF M(Nc)>Pt2 THEN Columna=Pt2 3500 CALL Plot(Pt1/Esx,12.8,0) 3510 CALL Plot(Columna/Esx,12.8,1) 3520 CALL Plot(Columna/Esx,11.2,1) 3530 CALL Plot(Pt1/Esx,11.2,1) 3540 ! 3550 M(0)=Pt1 3560 FOR J=1 TO Nc 3570 IF M(J)<Pt1 OR M(J)>Pt2 THEN GOTO 3640 3580 Dx=(M(J)-M(J-1))/Esx 3590 Dy=1.6 3600 Tt=Cl(J) 3610 IF Tt<>0 THEN GOSUB Tramas 3620 CALL Plot(M(J)/Esx,12.8,0) 3630 CALL Plot(M(J)/Esx,11.2,1) 3640 NEXT J 3650 CALL Plot(Pt1/Esx,11.2,0) 3660 !-------------------------------------------------------------------- 3670 REM Representación de los Filtros 3680 !-------------------------------------------------------------------- 3690 IF Nf=0 THEN GOTO 3920 3700 Repre$="FILT" 3710 T$(20)="W" 3720 ! 3730 Tt=20 3740 FOR K=1 TO Nf 3750 IF F(K)<Pt1 OR F(K)>Pt2 THEN GOTO 3880 3760 Dx=An(K)/Esx 3770 Dy=.2 3780 CALL Plot(F(K)/Esx,11.2,0) 3790 CALL Plot(F(K)/Esx,11,1) 3800 GOSUB Tramas 3810 CALL Plot((F(K)+An(K))/Esx,11.2,0) 3820 CALL Plot((F(K)+An(K))/Esx,11,1) 3830 CALL Plot(F(K)/Esx,13,0)

256

3840 CALL Plot(F(K)/Esx,12.8,1) 3850 GOSUB Tramas 3860 CALL Plot((F(K)+An(K))/Esx,13,0) 3870 CALL Plot((F(K)+An(K))/Esx,12.8,1) 3880 NEXT K 3890 ! 3900 CALL Plot(Pt1/Esx,12.8,0) 3910 !-------------------------------------------------------------------- 3920 REM Nivel Freático 3930 !-------------------------------------------------------------------- 3940 IF Niv=0 THEN GOTO 3990 3950 CALL Plot(Niv/Esx,11,0) 3960 CALL Frame(.05,2) 3970 CALL Plot(Pt1/Esx,11,0) 3980 !-------------------------------------------------------------------- 3990 REM Instrucción de copias 4000 !-------------------------------------------------------------------- 4010 IF Ns$="" THEN CALL Plot(Pt1-26,24.5,0) 4020 IF Ns$<>"" THEN CALL Plot(Pt1/Esx-26,24.5,0) 4030 Cop=Cop+1 4040 IF Cop>=Ncop THEN GOTO 4070 4050 IF Cop=(4-Pin) OR Cop=(7-Pin) THEN CALL Plot(Pt2/Esx+2,-49,0) 4060 GOTO 540 4070 ! 4080 INPUT "Quiere repetir ",Qr$ 4090 IF Qr$="SI" THEN GOTO 380 4100 PRINT "Fin del subprograma de dibujo mediante trazador" 4110 ! 4120 GOTO 4860 4130 !--------------------------------------------------------------------- 4140 REM Tramas 4150 !--------------------------------------------------------------------- 4160 Tramas: Tr$="" 4170 ! 4180 ! Dx - Anchura de la trama en cm 4190 ! Dy - Altura de la trama en cm ! Scale(1,1) 4200 ! Tt - Tipo de trama ! Csize(.15,.1,0) 4210 ! T$ - Simbolo 4220 ! 4230 CALL Csize(.15,.1,0) 4240 CALL Where(X01,Y01) 4250 ! 4260 IF Repre$="LITO" THEN GOTO 4540 4270 ! 4280 Idx=INT((Dx+.15)/.3) 4290 Sdx=Dx-(Idx*.3-.15) 4300 Idy=INT((Dy+.1)/.2) 4310 Sdy=Dy-(Idy*.2-.1) 4320 ! 4330 IF Lit$(Tt)="CARBON" THEN 4340 FOR L=1 TO (Idx*2-1) 4350 Tr$=Tr$&T$(Tt) 4360 NEXT L 4370 GOTO 4430 4380 END IF

257

4390 ! 4400 FOR L=1 TO Idx 4410 Tr$=Tr$&T$(Tt)&" " 4420 NEXT L 4430 ! 4440 X11=X01+Sdx/2 4450 Y11=Y01+Sdy/2 4460 ! 4470 CALL Plot(X11,Y11,0) 4480 CALL Texte(Tr$) 4490 ! 4500 Y11=Y11+.2 4510 IF (Y11+.1)<(Y01+Dy) THEN GOTO 4470 4520 GOTO 4820 4530 ! 4540 CALL Ldir(90,"D") !-------------------litologia----------------------! 4550 ! 4560 Idy=INT((Dy+.15)/.3) 4570 Sdy=Dy-(Idy*.3-.15) 4580 Idx=INT((Dx+.1)/.2) 4590 Sdx=Dx-(Idx*.2-.1) 4600 ! 4610 IF Lit$(Tt)="CARBON" THEN 4620 FOR L=1 TO (Idy*2-1) 4630 Tr$=Tr$&T$(Tt) 4640 NEXT L 4650 GOTO 4710 4660 END IF 4670 ! 4680 FOR L=1 TO Idy 4690 Tr$=Tr$&T$(Tt)&" " 4700 NEXT L 4710 ! 4720 X11=X01+Sdx/2+(.1) ! (.1) Es debido al giro 4730 Y11=Y01+Sdy/2 4740 ! 4750 CALL Plot(X11,Y11,0) 4760 CALL Texte(Tr$) 4770 ! 4780 X11=X11+.2 4790 IF (X11+.1)<(X01+Dx+(.1)) THEN GOTO 4750 ! (.1) es debido al giro 4800 ! 4810 CALL Ldir(0,"D") 4820 ! 4830 RETURN 4840 !--------------------------------------------------------------------- 4850 ! 4860 SUBEND 4870 ! 4880 !--------------------------------------------------------------------- 4890 REM 4900 REM Software Benson 4910 REM 4920 !---------------------------------------------------------------------

258

10 !------------------------------------------------------------------------ 20 SUB

Impresora(Valor$(*),Lito$,Np,Dist,X0(*),Ndat(*),P1(*),P2(*),Pp(*),T$(*),Lit$(*),Param$(*),Cz(*),Cl(*),INTEGER Clit(*))

30 ! 40 ! PROGRAMA PARA REPRESENTACION DE DIAGRAFIAS 50 ! MEDIANTE IMPRESORA 60 ! 70 !------------------------------------------------------------------------ 80 Pt1=VAL(Valor$(1,5)) 90 Pt2=VAL(Valor$(2,5)) 100 Inp=VAL(Valor$(2,4)) 110 Inp=10 ! Mejor distancia para impresora 120 Ev=VAL(Valor$(1,4)) 130 PRINT TABXY(30,2);"Escala vertical:";Ev 140 INPUT "Nuevo valor de escala (multiplo de 50)",Ev 150 IF Ev<100 OR Ev>1000 OR (Ev MOD 50)<>0 THEN GOTO 140 160 Salto=10.4/100*Ev 170 PRINT CHR$(12) 180 !------------------------------------------------------------------------ 190 REM INICIO DE LA REPRESENTACION EN IMPRESORA 200 !------------------------------------------------------------------------ 210 ! VIEWPORT 0,133.3,1.5,100 IMPORTANTISIMO EL 1.5 220 ! FACTOR DE DEFORMACION EN X : ANCHO PANTALLA = 16.9 cm 230 ! FACTOR DE DEFORMACION EN Y : ALTO PANTALLA = 10.4 cm 240 ! 250 PRINT TABXY(20,10);"Conecte la impresora y pulse |CONT|" 260 BEEP 270 PAUSE 280 PRINT CHR$(12) 290 ! 300 PRINTER IS 701 310 PRINT CHR$(27)&"&l9D" ! Definicion de 9 lineas por pulgada 320 Linea=1.5 330 !------------------------------------------------------------------------ 340 REM Representación del cabezal 350 !---------------------------------------------------------------------- 360 GRAPHICS ON 370 GCLEAR 380 GINIT 390 ! 400 LINE TYPE 1 410 VIEWPORT 4,130,Linea,100 420 WINDOW 0,132,0,100 430 FRAME 440 ! 450 CSIZE 3,.7 460 LORG 5 470 MOVE 66,97 480 LABEL "ESCUELA TECNICA SUPERIOR DE INGENIEROS DE MINAS DE MADRID" 490 MOVE 66,93 500 LABEL "DEPARTAMENTO DE GEOFISICA APLICADA" 510 MOVE 0,90 ! 520 DRAW 132,90 ! 530 MOVE 66,87

259

540 LABEL "TESTIFICACION GEOFISICA EN EL SONDEO "&Valor$(1,1) 550 MOVE 0,84 ! 560 DRAW 132,84 ! 570 ! 580 LORG 2 590 MOVE 4,82 600 LABEL "Fecha "&"......." 610 MOVE 35,82 620 LABEL Valor$(1,2) 630 MOVE 70,82 640 LABEL "Titular "&"....." 650 MOVE 102,82 660 LABEL Valor$(2,2) 670 MOVE 4,78 680 LABEL "Municipio "&"..." 690 MOVE 35,78 700 LABEL Valor$(1,3) 710 MOVE 70,78 720 LABEL "Provincia "&"..." 730 MOVE 102,78 740 LABEL Valor$(2,3) 750 MOVE 4,74 760 LABEL "Sis. Per. "&"..." 770 MOVE 35,74 780 LABEL Valor$(1,6) 790 MOVE 70,74 800 LABEL "Entubacion "&".." 810 MOVE 102,74 820 LABEL Valor$(2,6) 830 MOVE 4,70 840 LABEL "Lodo "&"........" 850 MOVE 35,70 860 LABEL Valor$(1,9) 870 MOVE 70,70 880 LABEL "Cond lodo "&"..." 890 MOVE 102,70 900 LABEL Valor$(2,9) 910 MOVE 4,66 920 LABEL "Diam. Perf"&"..." 930 MOVE 35,66 940 LABEL Valor$(1,7) 950 MOVE 70,66 960 LABEL "Prof. Perf"&"..." 970 MOVE 102,66 980 LABEL Valor$(1,8) 990 MOVE 4,62 1000 LABEL "Diam. Perf"&"..." 1010 MOVE 35,62 1020 LABEL Valor$(2,7) 1030 MOVE 70,62 1040 LABEL "Prof. Perf"&"..." 1050 MOVE 102,62 1060 LABEL Valor$(2,8) 1070 ! 1080 MOVE 0,60 !

260

1090 DRAW 132,60 ! 1100 FOR T=1 TO 10 1110 Ydt=55-((T-1) MOD 5)*5 1120 IF T>=1 AND T<=5 THEN Xdt=8 1130 IF T>=6 AND T<=10 THEN Xdt=71 1140 VIEWPORT Xdt,Xdt+14,Ydt,Ydt+4 1150 WINDOW 0,10,0,4 1160 FRAME 1170 CSIZE 3,.8 1180 LORG 5 1190 FOR H=1 TO 3 1200 MOVE 5,H*1.5 1210 LABEL T$(T) 1220 NEXT H 1230 VIEWPORT 4,130,Linea,100 1240 WINDOW 0,132,0,100 1250 MOVE Xdt+14+1,Ydt+1 1260 CSIZE 3,.7 1270 LORG 2 1280 LABEL Lit$(T) 1290 NEXT T 1300 MOVE 0,32 ! 1310 DRAW 132,32 ! 1320 LORG 5 1330 MOVE 66,29 1340 LABEL "DIAGRAFIA E.V. 1:"&VAL$(Ev) 1350 MOVE 0,27 ! 1360 DRAW 132,27 ! 1370 ! 1380 ! Rangos de representacion y tramas de los registros 1390 ! 1400 Ancho=59 1410 Lito=132-2*Ancho 1420 ! 1430 CSIZE 3.4,.5 1440 FOR P=1 TO Np 1450 Xpar(P)=((P+1) MOD 2)*(Ancho+Lito) 1460 Ypar(P)=29-((P+1) DIV 2)*9 1470 Trazo=((P-1) DIV 2)*3+1 1480 LINE TYPE Trazo 1490 MOVE Xpar(P),Ypar(P) 1500 DRAW Xpar(P)+Ancho,Ypar(P) 1510 LINE TYPE 1 1520 LORG 1 1530 MOVE Xpar(P),Ypar(P) 1540 LABEL P1(P) 1550 LORG 4 1560 MOVE Xpar(P)+Ancho/2,Ypar(P) 1570 LABEL Param$(P) 1580 LORG 7 1590 MOVE Xpar(P)+Ancho+1,Ypar(P) 1600 LABEL P2(P) 1610 NEXT P 1620 ! 1630 CALL Vuelcacont(701)

261

1640 !------------------------------------------------------------------------ 1650 Ev=1000 1660 Salto=10.4/100*Ev 1670 ! 1680 FOR Trozo=1 TO 40 1690 ! 1700 Prof1=Pt1+Salto*(Trozo-1) 1710 Prof2=Prof1+Salto 1720 IF Prof1>=Pt2 THEN GOTO 2750 ! Termina la diagrafia 1730 !------------------------------------------------------------------------ 1740 ! Representacion de la cuadricula 1750 !----------------------------------------------------------------------- 1760 GCLEAR 1770 VIEWPORT 0,133.3,Linea,100 1780 WINDOW 0,133.3,Prof2,Prof1 1790 LINE TYPE 1 1800 CSIZE 3,.7 1810 Marcas=Inp 1820 FOR J=INT(Prof1/Marcas)*Marcas TO Prof2 STEP Marcas 1830 MOVE 3,J 1840 LDIR 3*PI/2 1850 LORG 6 1860 LABEL VAL$(J) 1870 MOVE 131,J 1880 LDIR PI/2 1890 LORG 6 1900 LABEL VAL$(J) 1910 NEXT J 1920 LDIR 0 1930 ! 1940 VIEWPORT 4,130,Linea,100 1950 WINDOW 0,132,Prof2,Prof1 1960 ! 1970 LINE TYPE 1 1980 MOVE 0,Prof2 1990 DRAW 0,Prof1 2000 MOVE Ancho,Prof1 2010 DRAW Ancho,Prof2 2020 MOVE Ancho+Lito,Prof2 2030 DRAW Ancho+Lito,Prof1 2040 MOVE 132,Prof1 2050 DRAW 132,Prof2 2060 ! 2070 LINE TYPE 3 2080 FOR J=INT(Prof1/10+1)*10 TO Prof2 STEP 10 2090 MOVE 0,J 2100 DRAW Ancho,J 2110 MOVE Ancho+Lito,J 2120 DRAW 132,J 2130 NEXT J 2140 FOR K=1 TO 4 2150 MOVE Ancho/4*K,Prof1 2160 DRAW Ancho/4*K,Prof2 2170 MOVE Ancho+Lito+Ancho/4*K,Prof1 2180 DRAW Ancho+Lito+Ancho/4*K,Prof2

262

2190 NEXT K 2200 LINE TYPE 1 2210 ! 2220 IF Prof2>=Pt2 THEN 2230 MOVE 0,Prof2 2240 DRAW 132,Prof2 2250 END IF 2260 !----------------------------------------------------------------------- 2270 ! Representacion de los registros y la litologia 2280 !----------------------------------------------------------------------- 2290 FOR P=1 TO Np 2300 ! 2310 FOR I=1 TO Ndat(P) 2320 IF X0(P)+I*Dist>=Prof1 THEN 2330 Indice=I 2340 GOTO 2380 2350 END IF 2360 NEXT I 2370 IF Indice=0 THEN GOTO 2510 2380 ! 2390 Banda=56 2400 Trama=126-2*Banda 2410 Xreg(P)=4+((P+1) MOD 2)*(Banda+Trama) 2420 ! 2430 VIEWPORT Xreg(P),Xreg(P)+Banda,Linea,100 2440 WINDOW P1(P),P2(P),Prof2,Prof1 2450 MOVE Pp(P,Indice),X0(P)+Indice*Dist 2460 FOR I=Indice TO Ndat(P) 2470 IF X0(P)+I*Dist>Prof2 THEN GOTO 2510 2480 DRAW Pp(P,I),X0(P)+I*Dist 2490 NEXT I 2500 ! 2510 NEXT P 2520 ! 2530 IF Lito$="" THEN GOTO 2710 2540 VIEWPORT 4+.5+Banda,4-.5+Banda+Trama,Linea,100 2550 WINDOW 0,10,Prof2,Prof1 2560 CSIZE 3,.4 2570 LORG 2 2580 Etsalto=(Prof2-Prof1)/100 2590 FOR C=2 TO Ncap 2600 IF Cz(C)<Prof1 THEN GOTO 2700 2610 IF Cz(C)>Prof2 THEN GOTO 2710 2620 FOR Et=1 TO 100 2630 Poset=Cz(C-1)+Et*Etsalto-.5 2640 IF Poset>=Cz(C) THEN GOTO 2680 2650 MOVE 0,Poset 2660 LABEL T$(Cl(C)) 2670 NEXT Et 2680 MOVE 0,Cz(C) 2690 DRAW 10,Cz(C) 2700 NEXT C 2710 !----------------------------------------------------------------------- 2720 CALL Vuelcacont(701) 2730 !

263

2740 NEXT Trozo 2750 !----------------------------------------------------------------------- 2760 PRINT CHR$(27)&"&l6D" ! Definicion de 6 lineas por pulgada 2770 PRINT CHR$(12) 2780 PRINTER IS 1 2790 GCLEAR 2800 !----------------------------------------------------------------------- 2810 SUBEND 2820 !----------------------------------------------------------------------- 2830 SUB Vuelcacont(INTEGER Device_selector) 2840 !----------------------------------------------------------------------- 2850 OPTION BASE 1 2860 INTEGER Row_group,Prod_num,Maxrow 2870 DIM Graphic_escape$[7] 2880 ! 2890 Sysflag=READIO(9826,-302) ! Retorna el contenido del interface 2900 Graphics_res=BIT(Sysflag,1) ! Igual a 1 si es un modelo 9836 2910 ! 2920 IF Graphics_res=1 THEN 2930 ALLOCATE Os$[512] ! Para los modelos 9836 2940 ALLOCATE INTEGER Screen(390,32) ! Dimensiona matriz para pant. grafica 2950 Maxrow=390 ! Numero de lineas del 9836 2960 Graphic_escape$=CHR$(27)&"*b512G" ! Codigo de escape de graficos 2970 ELSE 2980 ALLOCATE Os$[400] ! Para los modelos 9826 y 9816 2990 ALLOCATE INTEGER Screen(300,25) ! Dimensiona matriz para pant. grafica 3000 Maxrow=300 ! Numero de lineas del 9826 y 9816 3010 Graphic_escape$=CHR$(27)&"*b400G" ! Codigo de escape de graficos 3020 END IF 3030 ! 3040 GSTORE Screen(*) ! Almacena matriz de pantalla 3050 ! 3060 ! Inicia el bucle para cada grupo de 8 lineas de la matriz de la pantalla 3070 ! 3080 FOR Row_group=1 TO 297 STEP 8 3090 ! Llama al subprograma de Compilacion Pascal para manipulacion por bits 3100 Gdump(Screen(*),Row_group,Os$) 3110 ! Volcado de linea de caracteres graficos 3120 IF Maxrow=300 THEN ! Para los modelos 9826 y 9816 3130 PRINT USING "7A,400A";Graphic_escape$,Os$ 3140 ELSE ! Para los modelos 9836 3150 PRINT USING "7A,512A";Graphic_escape$,Os$ 3160 END IF 3170 NEXT Row_group 3180 ! 3190 SUBEXIT 3200 ! 3210 SUBEND 3220 ! 3230 CSUB Gdump(INTEGER Screen(*),Row_group,Os$) 3240 !-------------------------------------------------------------------------

264

10 !----------------------------------------------------------------------- 20 ! SOFTWARE BENSON 30 !----------------------------------------------------------------------- 40 ! ENVOI DES FORMATS 50 SUB Gos10(B$) 60 OPTION BASE 1 70 COM /Ben/ B(*),Benson$[270],@F1,@F2 80 IF B(64)<>-1 THEN 160 90 CONTROL 9,3;9600 100 CONTROL 9,4;3+4+0 110 OUTPUT 9;B$;CHR$(10);CHR$(13) 120 Ba=B(65) 130 Bb=B(66) 140 CALL Printeris(Ba,Bb) 150 SUBEXIT 160 OUTPUT @F1;B$ 170 B(64)=B(64)+1 180 SUBEND 190 ! ***** CHANGEMENT DE PRINTER 200 SUB Printeris(A,C) 210 OPTION BASE 1 220 COM /Ben/ B(*),Benson$[270],@F1,@F2 230 B(65)=A 240 B(66)=C 250 IF (B(65)<0)+(B(65)>14) THEN 280 260 PRINTER IS B(65) 270 SUBEXIT 280 PRINTER IS B(65) 290 SUBEND 300 ! ***** ENVOI DES DICTIONNAIRES 310 SUB Gos1 320 OPTION BASE 1 330 COM /Ben/ B(*),Benson$[270],@F1,@F2 340 DIM B1$[132] 350 B1$="76" 360 FOR Bw2=32 TO 95 STEP 1 370 B1$=B1$&CHR$(Bw2) 380 NEXT Bw2 390 CALL Gos10(B1$) 400 B1$="76" 410 FOR Bw2=0 TO 31 STEP 1 420 B1$=B1$&CHR$(Bw2) 430 NEXT Bw2 440 FOR Bw2=96 TO 127 STEP 1 450 B1$=B1$&CHR$(Bw2) 460 NEXT Bw2 470 CALL Gos10(B1$) 480 SUBEND 490 ! ***** INITIALISATION DES PARAMETRES VECTEURS 500 SUB Gos2 510 OPTION BASE 1 520 COM /Ben/ B(*),Benson$[270],@F1,@F2 530 B(54)=0 540 B(55)=0 550 B(47)=0

265

560 B(48)=0 570 B(32)=1 580 SUBEND 590 ! ***** INITIALISATION DES A.G. ET ENVOI DES FORMATS INITIAUX 600 SUB Gos8(B1$,Bflag) 610 OPTION BASE 1 620 COM /Ben/ B(*),Benson$[270],@F1,@F2 630 DIM B6$[20],B7$[20] 640 IF Bflag=3 THEN 930 650 IF Bflag=2 THEN 780 660 B(1)=1212 670 B(2)=200 680 B(3)=200 690 B(4)=1 700 B(5)=1 710 B(30)=.17453 720 B(10)=5.55556 730 B(62)=1 740 B(63)=0 750 B(46)=0 760 B1$=" NP 0 " 770 B(45)=0 780 B(51)=1 790 B(31)=1 800 B(37)=B(2)*B(51) 810 B(38)=B(3)*B(51) 820 B(42)=0 830 B(33)=0 840 B(36)=1 850 B(49)=0 860 B(8)=1 870 B(9)=1 880 B(52)=0 890 B(35)=10 900 B(53)=0 910 B(7)=2 920 SUBEXIT 930 B6$=VAL$(FNB1(B(37)))&" " 940 B7$=VAL$(FNB1(B(38)))&" " 950 IF B1$<>" NP 0 " THEN B1$=" " 960 B1$=B1$&"LM 0 SD "&B6$&B6$&"ST "&VAL$(FNB1(.1*B(37)))&" " 970 B1$=B1$&VAL$(FNB1(.05*B(37))) 980 B1$=B1$&" CM 0" 990 B1$=B1$&" TZ "&B6$&B7$&"0" 1000 B1$=B1$&" SR 500 500 500 500 2000 0" 1010 B1$=B1$&" CZ "&B6$&B7$&"0 0" 1020 CALL Gos10(B1$) 1030 SUBEND 1040 ! ***** INITIALISATION 1050 SUB Benson(A) 1060 OPTION BASE 1 1070 COM /Ben/ B(*),Benson$[270],@F1,@F2 1080 DIM B1$[128] 1090 B(64)=-1 1100 IF POS(Benson$,"OFFL")=0 THEN 1140

266

1110 B(64)=0 1120 Name$=Benson$[POS(Benson$,"=")+1,LEN(Benson$)] 1130 ASSIGN @F1 TO Name$ 1140 B(6)=A 1150 B(65)=1 1160 B(66)=-1 1170 CALL Gos8(B1$,1) 1180 CALL Gos2 1190 Benson$="GDEF0100CENT0203INCH0302DEGR0400RADN0504GRAD0604MILL0704" 1200 Benson$=Benson$&"OPTM0808LM1404UNPR0009DC" 1210 Benson$=Benson$&"DASH1011LM1000THIK1011LM1101SQRE1110LM0212ROUN1011LM1202" 1220 Benson$=Benson$&"DADJ1011LM1303VSPA1213CM1000ESCP1213CM1101LEFT1300CM02" 1230 Benson$=Benson$&"RGHT1413CM1202CNTR1413CM1302TADJ1413CM3202" 1240 Benson$=Benson$&"LDEF1500LM00CDEF1600CM00" 1250 IF B(64)=0 THEN SUBEXIT 1260 CALL Gos1 1270 B1$=" LM 0" 1280 CALL Gos10(B1$) 1290 B1$=" GW 19 0 0 0" 1300 CALL Gos10(B1$) 1310 B1$=" GW 20 1 0 18" 1320 CALL Gos10(B1$) 1330 CALL Gos8(B1$,3) 1340 B1$=" FV "&VAL$(B(5)) 1350 CALL Gos10(B1$) 1360 SUBEND 1370 ! ***** ARRONDI 1380 DEF FNB1(Bx) 1390 Bar=INT(ABS(Bx)+.5)*SGN(Bx) 1400 RETURN Bar 1410 FNEND 1420 ! ***** DEPLACEMENT AU POINT DE REFERENCE 1430 SUB Gos4 1440 OPTION BASE 1 1450 COM /Ben/ B(*),Benson$[270],@F1,@F2 1460 DIM B1$[128] 1470 B(39)=FNB1(B(47)*B(37)) 1480 B(40)=FNB1(B(48)*B(38)) 1490 B(41)=B(39)-B(54) 1500 B(56)=B(40)-B(55) 1510 B(54)=B(39) 1520 B(55)=B(40) 1530 B(39)=ABS(B(41)) 1540 B(40)=ABS(B(56)) 1550 IF B(39)>65535 THEN 1610 1560 IF B(40)>65535 THEN 1610 1570 B(39)=0 1580 B(43)=B(41) 1590 B(44)=B(56) 1600 GOTO 1690 1610 B(39)=INT((B(39)+65535)/65536) 1620 B(40)=INT((B(40)+65535)/65536) 1630 IF B(39)>B(40) THEN 1650 1640 B(39)=B(40) 1650 B(43)=FNB1(B(41)/B(39))

267

1660 B(44)=FNB1(B(56)/B(39)) 1670 B(41)=B(41)-B(43) 1680 B(56)=B(56)-B(44) 1690 B1$=" PL "&VAL$(B(43))&" "&VAL$(B(44))&" "&VAL$(B(32)) 1700 CALL Gos10(B1$) 1710 IF B(39)>1 THEN 1530 1720 SUBEND 1730 ! ***** MEMORISATION DU POINT DE REFERENCE 1740 SUB Gos3(X,Y,Pen) 1750 OPTION BASE 1 1760 COM /Ben/ B(*),Benson$[270],@F1,@F2 1770 B(32)=Pen 1780 B(47)=X 1790 B(48)=Y 1800 SUBEND 1810 ! ***** DEPLACEMENT EN ABSOLU 1820 SUB Plot(X,Y,Pen) 1830 OPTION BASE 1 1840 COM /Ben/ B(*),Benson$[270],@F1,@F2 1850 IF B(45)=0 THEN 1920 1860 IF Pen=1 THEN 1890 1870 CALL Gos3(X,Y,Pen) 1880 SUBEXIT 1890 IF B(32)=1 THEN 1920 1900 B(32)=0 1910 CALL Gos4 1920 CALL Gos3(X,Y,Pen) 1930 CALL Gos4 1940 SUBEND 1950 ! ***** DEPLACEMENT EN RELATIF 1960 SUB Iplot(X,Y,Pen) 1970 OPTION BASE 1 1980 COM /Ben/ B(*),Benson$[270],@F1,@F2 1990 Xa=X+B(47) 2000 Ya=Y+B(48) 2010 CALL Plot(Xa,Ya,Pen) 2020 SUBEND 2030 ! ***** CHANGEMENT D'ORIGINE 2040 SUB Origine(X,Y) 2050 OPTION BASE 1 2060 COM /Ben/ B(*),Benson$[270],@F1,@F2 2070 IF (B(45)=1)*(B(32)=0) THEN CALL Gos4 2080 B(47)=X 2090 B(48)=Y 2100 B(54)=FNB1(X*B(37)) 2110 B(55)=FNB1(Y*B(38)) 2120 SUBEND 2130 ! ***** DESSIN D'UNE CHAINE DE CARACTERES 2140 SUB Texte(B$) 2150 OPTION BASE 1 2160 COM /Ben/ B(*),Benson$[270],@F1,@F2 2170 DIM B1$[128] 2180 ! FIXED 0 2190 B3=LEN(B$) 2200 IF B(32)=0 THEN CALL Gos4

268

2210 B(39)=B3 2220 IF B(39)>=70 THEN 2250 2230 B1$=B$ 2240 GOTO 2290 2250 B1$=" TX 70 "&B$[1,70] 2260 CALL Gos10(B1$) 2270 B(39)=B(39)-70 2280 B1$=B$[71,B3] 2290 B1$=" TX "&VAL$(B(39))&" "&B1$ 2300 CALL Gos10(B1$) 2310 IF B(52)=1 THEN 2340 2320 B(35)=B3*B(9)*B(62) 2330 B(53)=B3*B(9)*B(63) 2340 B(47)=B(47)+B(35) 2350 B(48)=B(48)+B(53) 2360 B(39)=FNB1(B(35)*B(37)) 2370 B(40)=FNB1(B(53)*B(37)) 2380 B(54)=B(54)+B(39) 2390 B(55)=B(55)+B(40) 2400 B1$=" TV "&VAL$(B(39))&" "&VAL$(B(40)) 2410 CALL Gos10(B1$) 2420 SUBEND 2430 ! ***** CHANGEMENT DE PLUME 2440 SUB Pen(P) 2450 OPTION BASE 1 2460 COM /Ben/ B(*),Benson$[270],@F1,@F2 2470 IF P=B(46) THEN 2510 2480 B1$=" NP "&VAL$(P) 2490 B(46)=P 2500 CALL Gos10(B1$) 2510 SUBEND 2520 ! ***** CONVERSION NOMBRE CHAINE DE CARACTERES ET DESSIN 2530 SUB Numeric(X,Y) 2540 OPTION BASE 1 2550 DIM B$[128] 2560 COM /Ben/ B(*),Benson$[270],@F1,@F2 2570 B$="-" 2580 B(41)=X 2590 IF X<0 THEN 2620 2600 B$="" 2610 B(41)=-B(41) 2620 B(39)=-B(41) 2630 IF Y>-2 THEN 2740 2640 B(40)=0 2650 IF B(39)=0 THEN 2780 2660 IF B(39)>=1 THEN 2700 2670 B(39)=B(39)*10 2680 B(40)=B(40)-1 2690 GOTO 2660 2700 IF B(39)<10 THEN 2740 2710 B(39)=B(39)/10 2720 B(40)=B(40)+1 2730 GOTO 2700 2740 IF Y=-1 THEN 2770 2750 B(39)=B(39)+.5*10^(-ABS(Y))

269

2760 GOTO 2780 2770 B(39)=B(39)+.5 2780 B(41)=B(39)/10 2790 B(43)=1 2800 IF B(41)<1 THEN 2840 2810 B(41)=B(41)/10 2820 B(43)=B(43)+1 2830 GOTO 2800 2840 B(56)=0 2850 B(44)=0 2860 B(44)=B(44)+1 2870 B(41)=(B(41)-INT(B(41)))*10 2880 B$=B$&CHR$(48+INT(B(41))) 2890 IF B(44)<B(43) THEN 2860 2900 IF B(56)<>0 THEN 2970 2910 IF Y=-1 THEN 3030 2920 B$=B$&"." 2930 IF Y=0 THEN 3030 2940 B(56)=1 2950 B(43)=ABS(Y) 2960 GOTO 2850 2970 IF Y>0 THEN 3030 2980 IF B(40)<0 THEN 3020 2990 Bbl$=VAL$(B(40)) 3000 B$=B$&"E+"&Bbl$ 3010 GOTO 3030 3020 B$=B$&"E"&VAL$(B(40)) 3030 CALL Texte(B$) 3040 SUBEND 3050 ! ***** RENVOI DU POINT DE REFERENCE 3060 SUB Where(X,Y) 3070 OPTION BASE 1 3080 COM /Ben/ B(*),Benson$[270],@F1,@F2 3090 X=B(47) 3100 Y=B(48) 3110 SUBEND 3120 ! ***** MISE A L'ECHELLE 3130 SUB Scale(X,Y) 3140 OPTION BASE 1 3150 COM /Ben/ B(*),Benson$[270],@F1,@F2 3160 B(37)=B(2)*B(51)/X 3170 B(38)=B(3)*B(51)/Y 3180 SUBEND 3190 ! ***** TRACE D'UN CERCLE OU D'UNE LIGNE POLYGONALE 3200 SUB Cercle(X,Y,R,Ad,Af,Pas,U$) 3210 OPTION BASE 1 3220 COM /Ben/ B(*),Benson$[270],@F1,@F2 3230 IF U$="D" THEN DEG 3240 IF U$="G" THEN RAD 3250 FOR Bi=Ad TO Af STEP Pas 3260 CALL Plot(X+R*COS(Bi),Y+R*SIN(Bi),Bi<>Ad) 3270 NEXT Bi 3280 CALL Plot(X+R*COS(Af),Y+R*SIN(Af),1) 3290 SUBEND 3300 ! ***** TRACE D'UN CADRE

270

3310 SUB Frame(X,Y) 3320 OPTION BASE 1 3330 COM /Ben/ B(*),Benson$[270],@F1,@F2 3340 CALL Iplot(0,Y,1) 3350 CALL Iplot(X,0,1) 3360 CALL Iplot(0,-Y,1) 3370 CALL Iplot(-X,0,1) 3380 SUBEND 3390 ! ***** RESTITUTION DU MODE DIFFERE PAR EMULATION 3400 SUB Outof2 3410 OPTION BASE 1 3420 COM /Ben/ B(*),Benson$[270],@F1,@F2 3430 DIM B$[255],Xaray(200),Yaray(200),Ipary(200),Udesc(206),Bd(600) 3440 ASSIGN @F2 TO "BEN201" 3450 ON END @F2 GOTO 4600 3460 ENTER @F2;Bw2 3470 IF Bw2>14 THEN 3520 3480 IF Bw2>10 THEN 3500 3490 ON Bw2 GOTO 3570,3600,3630,3660,3690,3720,3750,3780,3810,3840 3500 Bw2=Bw2-10 3510 ON Bw2 GOTO 3850,3880,3910,3940 3520 Bw2=Bw2-14 3530 IF Bw2>10 THEN 3550 3540 ON Bw2 GOTO 3970,4000,4060,4090,4120,4150,4180,4210,4240,4310 3550 Bw2=Bw2-10 3560 ON Bw2 GOTO 4340,4370,4400,4430,4460,4480,4510,4540,4570 3570 ENTER @F2;A,Benson$ 3580 CALL Benson(A) 3590 GOTO 3460 3600 ENTER @F2;X,Y,Pen 3610 CALL Plot(X,Y,Pen) 3620 GOTO 3460 3630 ENTER @F2;X,Y,Pen 3640 CALL Iplot(X,Y,Pen) 3650 GOTO 3460 3660 ENTER @F2;X,Y 3670 CALL Origine(X,Y) 3680 GOTO 3460 3690 ENTER @F2;B$ 3700 CALL Texte(B$) 3710 GOTO 3460 3720 ENTER @F2;X,Y,Z 3730 CALL Csize(X,Y,Z) 3740 GOTO 3460 3750 ENTER @F2;Angle,U$ 3760 CALL Ldir(Angle,U$) 3770 GOTO 3460 3780 ENTER @F2;P 3790 CALL Pen(P) 3800 GOTO 3460 3810 ENTER @F2;X,Y 3820 CALL Numeric(X,Y) 3830 GOTO 3460 3840 GOTO 3460 3850 ENTER @F2;X,Y

271

3860 CALL Scale(X,Y) 3870 GOTO 3460 3880 ENTER @F2;X,Y,R,Ad,Af,Pas,U$ 3890 CALL Cercle(X,Y,R,Ad,Af,Pas,U$) 3900 GOTO 3460 3910 ENTER @F2;X,Y 3920 CALL Frame(X,Y) 3930 GOTO 3460 3940 ENTER @F2;A,C 3950 CALL Printeris(A,C) 3960 GOTO 3460 3970 ENTER @F2;Idsym,Iprot,I1,I2,I3 3980 CALL Symld(Idsym,Iprot,Udesc(*),Nudes,I1,I2,I3) 3990 GOTO 3460 4000 ENTER @F2;Npts,Udesc(1),Udesc(2),Udesc(3),Udesc(4),Udesc(5),Udesc(6),Kasym 4010 FOR I=1 TO Npts 4020 ENTER @F2;Xaray(I),Yaray(I),Ipary(I) 4030 NEXT I 4040 CALL Symdf(Xaray(*),Yaray(*),Ipary(*),Npts,Udesc(*),Kasym,Nudes) 4050 GOTO 3460 4060 ENTER @F2;B0,B1 4070 CALL Newpg(B0,B1) 4080 GOTO 3460 4090 ENTER @F2;B0,B1,B4 4100 CALL Crcle(B0,B1,B4) 4110 GOTO 3460 4120 ENTER @F2;B0,B1,B5,B6,B4,B3 4130 CALL Arcpl(B0,B1,B5,B6,B4,B3) 4140 GOTO 3460 4150 ENTER @F2;B0,B1,B6,B2,B3,Angle,Slant 4160 CALL Exsym(B0,B1,B6,B2,B3,Angle,Slant) 4170 GOTO 3460 4180 ENTER @F2;B$ 4190 CALL Enbl(B$) 4200 GOTO 3460 4210 ENTER @F2;B$ 4220 CALL Dsbl(B$) 4230 GOTO 3460 4240 ENTER @F2;B0 4250 !DIM Bd(100) 4260 FOR I=1 TO B0 4270 ENTER @F2;Bd(I) 4280 NEXT I 4290 CALL Dash(Bd(*),B0) 4300 GOTO 3460 4310 ENTER @F2;B0 4320 CALL Font(B0) 4330 GOTO 3460 4340 ENTER @F2;B0,B1 4350 CALL Thick(B0,B1) 4360 GOTO 3460 4370 ENTER @F2;B0 4380 CALL Tvect(B0) 4390 GOTO 3460 4400 ENTER @F2;B0,B1,B2,B3,B4,B5

272

4410 CALL Texat(B0,B1,B2,B3,B4,B5) 4420 GOTO 3460 4430 ENTER @F2;B$ 4440 CALL Outof1(B$) 4450 GOTO 3460 4460 CALL Bclose 4470 GOTO 3460 4480 ENTER @F2;B$,Imsgo,Icode 4490 CALL Msgop(B$,Imsgo,Icode) 4500 GOTO 3460 4510 ENTER @F2;Icode,Rtime 4520 CALL Timer(Icode,Rtime) 4530 GOTO 3460 4540 ENTER @F2;Trans,Resol 4550 CALL Transr(Trans,Resol) 4560 GOTO 3460 4570 ENTER @F2;Pnum,Vel,Acc,Pre 4580 CALL Pena(Pnum,Vel,Acc,Pre) 4590 GOTO 3460 4600 ASSIGN @F2 TO * 4610 SUBEND 4620 ! ***** ACTIVATION OU DESACTIVATION D'UN ATTRIBUT 4630 SUB Gos0(B7$) 4640 OPTION BASE 1 4650 COM /Ben/ B(*),Benson$[270],@F1,@F2 4660 DIM B$[128],B1$[128] 4670 B$=B7$&"," 4680 B(40)=1 4690 B(39)=POS(B$[B(40)],",") 4700 IF B(39)=0 THEN SUBEXIT 4710 B(40)=B(39)+B(40)-1 4720 B6$=B$[B(40)-4,B(40)-1] 4730 B(40)=B(40)+1 4740 IF B6$="SPOP" THEN 5320 4750 IF B6$="RPLT" THEN 5350 4760 B(39)=POS(Benson$,B6$) 4770 IF B(39)=0 THEN 4690 4780 B(60)=B(39)+B(41) 4790 B(56)=VAL(Benson$[B(60),B(60)+1]) 4800 IF B(56)=0 THEN 4690 4810 IF B(56)>7 THEN 4980 4820 ON B(56) GOTO 4830,4860,4880,4900,4920,4940,4960 4830 CALL Gos8(B1$,2) 4840 CALL Gos8(B1$,3) 4850 GOTO 4690 4860 B(51)=1 4870 GOTO 4690 4880 B(51)=2.54 4890 GOTO 4690 4900 B(31)=1 4910 GOTO 4690 4920 B(31)=57.2958 4930 GOTO 4690 4940 B(31)=.9 4950 GOTO 4690

273

4960 B(31)=.36 4970 GOTO 4690 4980 B(56)=B(56)-7 4990 B1$=" "&Benson$[B(39)+8,B(39)+9] 5000 B(44)=VAL(Benson$[B(60)+6,B(60)+6]) 5010 B(43)=VAL(Benson$[B(60)+7,B(60)+7]) 5020 ON B(56) GOTO 5030,5180,5200,5200,5230,5260,5260,5280,5300 5030 IF B(45)=B(43) THEN 4690 5040 IF B(44)=1 THEN 5160 5050 Ba1=B(39) 5060 Ba2=B(40) 5070 Ba3=B(41) 5080 Ba4=B(43) 5090 Ba5=B(44) 5100 IF B(32)=0 THEN CALL Gos4 5110 B(44)=Ba5 5120 B(43)=Ba4 5130 B(41)=Ba3 5140 B(40)=Ba2 5150 B(39)=Ba1 5160 B(45)=B(44) 5170 GOTO 5200 5180 CALL Gos10(B1$) 5190 GOTO 4690 5200 B(42)=FNB2(B(42)) 5210 B1$=B1$&" "&VAL$(B(42)) 5220 GOTO 5180 5230 B(33)=FNB2(B(33)) 5240 B1$=B1$&" "&VAL$(B(33)) 5250 GOTO 5180 5260 B(33)=B(33)-4*INT(B(33)/4) 5270 GOTO 5230 5280 B(42)=B(44) 5290 GOTO 5210 5300 B(33)=B(44) 5310 GOTO 5240 5320 B(79)=INT(4/B(41)) 5330 B1$=" DE 1 "&VAL$(B(79)) 5340 GOTO 5180 5350 IF B(41)=4 THEN 4690 5360 B1$=" OP 2 0" 5370 GOTO 5180 5380 SUBEND 5390 ! ***** TAILLE ET INCLINAISON D'UNE CHAINE DE CARACTERES 5400 SUB Csize(X,Y,Z) 5410 OPTION BASE 1 5420 COM /Ben/ B(*),Benson$[270],@F1,@F2 5430 DIM B1$[128] 5440 DEG 5450 B(8)=Y 5460 B(9)=X 5470 B(49)=Z 5480 B1$=" TZ "&VAL$(FNB1(B(9)*B(2)*B(51)))&" "&VAL$(FNB1(Y*B(3)*B(51)))&" " 5490 B1$=B1$&VAL$(FNB1(B(49)*B(31)*B(10))) 5500 CALL Gos10(B1$)

274

5510 SUBEND 5520 ! ***** DIRECTION D'UNE CHAINE DE CARACTERES 5530 SUB Ldir(Angle,U$) 5540 OPTION BASE 1 5550 COM /Ben/ B(*),Benson$[270],@F1,@F2 5560 IF U$="D" THEN 5610 5570 IF U$="R" THEN 5650 5580 B(62)=COS(Angle) 5590 B(63)=SIN(Angle) 5600 SUBEXIT 5610 DEG 5620 B(62)=COS(Angle) 5630 B(63)=SIN(Angle) 5640 SUBEXIT 5650 RAD 5660 B(62)=COS(Angle) 5670 B(63)=SIN(Angle) 5680 SUBEND 5690 ! ***** CHANGEMENT DE LONGUEUR DU VECTEUR TEXTE 5700 SUB Tvect(B0) 5710 OPTION BASE 1 5720 COM /Ben/ B(*),Benson$[270],@F1,@F2 5730 B(35)=B0*B(62) 5740 B(53)=B0*B(63) 5750 B(52)=1 5760 SUBEND 5770 ! ***** ACTIVATION D'UN ATTRIBUT 5780 SUB Enbl(B$) 5790 OPTION BASE 1 5800 COM /Ben/ B(*),Benson$[270],@F1,@F2 5810 B(41)=4 5820 CALL Gos0(B$) 5830 SUBEND 5840 ! ***** DESACTIVATION D'UN ATTRIBUT 5850 SUB Dsbl(B$) 5860 OPTION BASE 1 5870 COM /Ben/ B(*),Benson$[270],@F1,@F2 5880 B(41)=6 5890 CALL Gos0(B$) 5900 SUBEND 5910 ! ***** CHANGEMENT DE POLICE DE CARACTERES 5920 SUB Font(B0) 5930 OPTION BASE 1 5940 COM /Ben/ B(*),Benson$[270],@F1,@F2 5950 IF B0=B(36) THEN SUBEXIT 5960 B(36)=B0 5970 B(44)=1 5980 IF B0=1 THEN B(44)=0 5990 B(43)=4 6000 B(33)=FNB2(B(33)) 6010 B1$=" CM"&VAL$(B(33)) 6020 CALL Gos10(B1$) 6030 SUBEND 6040 ! ***** VALEURS DES ATTRIBUTS D'UNE LIGNE DISCONTINUE 6050 SUB Dash(Bd(*),B0)

275

6060 OPTION BASE 1 6070 COM /Ben/ B(*),Benson$[270],@F1,@F2 6080 DIM B1$[128] 6090 B1$=" SD" 6100 FOR Bw2=1 TO B0 6110 B1$=B1$&" "&VAL$(FNB1(Bd(Bw2)*B(37))) 6120 NEXT Bw2 6130 CALL Gos10(B1$) 6140 SUBEND 6150 ! ***** VALEURS DES ATTRIBUTS RELATIFS A L'EPAISSISSEMENT D'UN TRAIT 6160 SUB Thick(Width,Dnsty) 6170 OPTION BASE 1 6180 COM /Ben/ B(*),Benson$[270],@F1,@F2 6190 DIM B1$[128] 6200 B1$=" ST "&VAL$(FNB1(Width*B(37)))&" "&VAL$(FNB1(Dnsty*B(37))) 6210 CALL Gos10(B1$) 6220 SUBEND 6230 ! *********************************************************************** 6240 DEF FNB2(Bx) 6250 OPTION BASE 1 6260 COM /Ben/ B(*),Benson$[270],@F1,@F2 6270 Bw=2^B(43) 6280 Bt=INT(Bx/Bw)/2 6290 Bw1=(B(44)-1)*Bw 6300 IF INT(Bt)=Bt THEN Bw1=B(44)*Bw 6310 RETURN Bx+Bw1 6320 FNEND 6330 ! ***** CHARGEMENT D'UN SYMBOLE OU D'UN CARACTERE UTILISATEUR 6340 SUB Symld(Idsym,Iprot,Udesc(*),Nudes,I1,I2,I3) 6350 OPTION BASE 1 6360 COM /Ben/ B(*),Benson$[270],@F1,@F2 6370 DIM B1$[128] 6380 B(40)=32 6390 IF Idsym<0 THEN 6440 6400 IF Idsym>255 THEN SUBEXIT 6410 B(39)=32 6420 B(41)=0 6430 GOTO 6470 6440 IF Idsym<-256 THEN SUBEXIT 6450 B(39)=0 6460 B(41)=Udesc(1)-INT(Udesc(1)/100)*100 6470 B1$=" LS "&VAL$(Idsym*32+Iprot*4+3) 6480 B(43)=INT(Udesc(1)/100) 6490 B(44)=Udesc(1)-B(43)*100 6500 B1$=B1$&" "&VAL$(1+4*B(44)+512*B(43)) 6510 FOR Bw2=2 TO Nudes 6520 B(13)=INT(Udesc(Bw2)/10000) 6530 B(11)=INT(Udesc(Bw2)/100)-B(13)*100 6540 B(12)=Udesc(Bw2)-((B(11)+B(13)*100)*100+B(40)) 6550 B(11)=B(11)-B(39) 6560 B1$=B1$&" "&VAL$(2*B(13)+4*B(12)+512*B(11)) 6570 IF LEN(B1$)<=70 THEN 6600 6580 CALL Gos10(B1$) 6590 B1$=" LS " 6600 NEXT Bw2

276

6610 IF B(11)<>B(41) THEN 6640 6620 IF B(12)<>0 THEN 6640 6630 GOTO 6650 6640 B1$=B1$&" "&VAL$(B(41)*512) 6650 B1$=B1$&" 11" 6660 CALL Gos10(B1$) 6670 SUBEND 6680 ! ***** DEFINITION D'UN SYMBOLE OU D'UN CARACTERE UTILISATEUR 6690 SUB Symdf(Xaray(*),Yaray(*),Ipary(*),Npts,Udesc(*),Kasym,Nudes) 6700 OPTION BASE 1 6710 Bxm=Udesc(1) 6720 Bym=Udesc(2) 6730 Br=0 6740 Bu=64 6750 Udesc(1)=64 6760 IF Kasym=5 THEN 6810 6770 Br=32 6780 Bu=32 6790 Brx=Bu/(Udesc(3)-Bxm) 6800 Udesc(1)=100*INT((Udesc(5)-Bxm)*Brx+.5)+INT((Udesc(6)-Bxm)*Brx+.5) 6810 Brx=Bu/(Udesc(3)-Bxm) 6820 Bry=Bu/(Udesc(4)-Bym) 6830 FOR Bw2=1 TO Npts 6840 Udesc(Bw2+1)=10000*Ipary(Bw2)+100*INT((Xaray(Bw2)-Bxm)*Brx+.5) 6850 Udesc(Bw2+1)=Udesc(Bw2+1)+INT((Yaray(Bw2)-Bym)*Bry+.5)+Br 6860 NEXT Bw2 6870 Nudes=Npts+1 6880 SUBEND 6890 ! ***** TRACE D'UN SYMBOLE OU CARACTERE UTILISATEUR 6900 SUB Exsym(Xpage,Ypage,Height,Width,Xangl,Xslant,Idsym) 6910 COM /Ben/ B(*),Benson$[270],@F1,@F2 6920 DIM B1$[128] 6930 CALL Gos3(Xpage,Ypage,0) 6940 CALL Gos4 6950 B(43)=B(31)*B(10) 6960 B1$=" CZ "&VAL$(FNB1(Width*B(37)))&" "&VAL$(FNB1(Height*B(38)))&" " 6970 B1$=B1$&VAL$(FNB1(Xangl*B(43)))&" "&VAL$(FNB1(Xslant*B(43)))&" CS "&VAL$(Idsym) 6980 CALL Gos10(B1$) 6990 SUBEND 7000 ! ***** CHANGEMENT DE PAGE 7010 SUB Newpg(Deltx,Delty) 7020 OPTION BASE 1 7030 COM /Ben/ B(*),Benson$[270],@F1,@F2 7040 DIM B1$[128] 7050 CALL Gos2 7060 B1$=" MC "&VAL$(FNB1(Deltx*B(37)))&" "&VAL$(FNB1(Delty*B(38))) 7070 CALL Gos10(B1$) 7080 SUBEND 7090 ! ***** CHARGEMENT DES RAPPORTS DE TEXTE 7100 SUB Texat(Subra,Subof,Supra,Supof,Alfra,Spcra) 7110 OPTION BASE 1 7120 COM /Ben/ B(*),Benson$[270],@F1,@F2 7130 DIM B1$[128] 7140 B(43)=1000 7150 B(7)=Alfra

277

7160 B1$=" SR "&VAL$(FNB1(Subra*B(43)))&" "&VAL$(FNB1(Subof*B(43)))&" "&VAL$(FNB1(Supra*B(43)))

7170 B1$=B1$&" "&VAL$(FNB1(Supof*B(43)))&" "&VAL$(FNB1(Alfra*B(43)))&" " 7180 B1$=B1$&VAL$(FNB1(Spcra*B(43))) 7190 CALL Gos10(B1$) 7200 SUBEND 7210 ! ***** TRACE D'UN CERCLE CONNAISSANT CENTRE ET RAYON 7220 SUB Crcle(Xcntr,Ycntr,Radius) 7230 OPTION BASE 1 7240 DIM B1$[128] 7250 COM /Ben/ B(*),Benson$[270],@F1,@F2 7260 IF B(45)=0 THEN 7310 7270 IF B(32)=0 THEN CALL Gos4 7280 IF B(79)<>0 THEN 7310 7290 B1$=" DE 1 1" 7300 CALL Gos10(B1$) 7310 B1$=" FC "&VAL$(FNB1(Xcntr*B(37))-B(54))&" "&VAL$(FNB1(Ycntr*B(38))-B(55))&" " 7320 B1$=B1$&VAL$(FNB1(Radius*B(37))) 7330 CALL Gos10(B1$) 7340 IF B(79)<>0 THEN 7370 7350 B1$=" DE 1 0" 7360 CALL Gos10(B1$) 7370 B(47)=Xcntr 7380 B(48)=Ycntr 7390 B(54)=FNB1(Xcntr*B(37)) 7400 B(55)=FNB1(Ycntr*B(38)) 7410 SUBEND 7420 ! ***** TRACE D'UN ARC OU D'UN CERCLE COMPLET CONNAISSANT 2 PTS ET RAYON 7430 SUB Arcpl(Xstart,Ystart,Xend,Yend,Radius,Imrc) 7440 OPTION BASE 1 7450 DIM B1$[128] 7460 COM /Ben/ B(*),Benson$[270],@F1,@F2 7470 B(15)=Xstart 7480 B(16)=Ystart 7490 B(40)=Imrc/10 7500 B(43)=1 7510 B(44)=INT(B(40)) 7520 IF B(40)=B(44) THEN 7550 7530 B(40)=B(44) 7540 B(43)=5 7550 B(40)=B(40)+B(43) 7560 IF B(40)-B(43)>=10 THEN B(40)=B(40)-8 7570 B(56)=(Xend-Xstart)^2+(Yend-Ystart)^2 7580 IF B(56)=0 THEN 8100 7590 B(39)=Radius^2 7600 IF B(39)>B(56)/4 THEN 7650 7610 B(19)=SQR(B(56))*B(37)/2 7620 B(56)=0 7630 B(41)=180 7640 GOTO 7680 7650 B(56)=SQR(-.25+B(39)/B(56)) 7660 B(19)=Radius*B(37) 7670 B(41)=ATN(1/(2*B(56)))*90/ATN(1) 7680 ON B(40) GOTO 7720,7690,7710,7740,7760,7770,7790,7800 7690 B(41)=-B(41)

278

7700 GOTO 7830 7710 B(41)=B(41)-360 7720 B(56)=-B(56) 7730 GOTO 7830 7740 B(41)=360-B(41) 7750 GOTO 7830 7760 B(56)=-B(56) 7770 B(41)=360 7780 GOTO 7810 7790 B(56)=-B(56) 7800 B(41)=-360 7810 B(15)=Xend 7820 B(16)=Yend 7830 B(13)=B(56)*(Yend-Ystart)*B(38)+.5*(Xend+Xstart)*B(37) 7840 B(14)=-(B(56)*(Xend-Xstart)*B(37))+.5*(Yend+Ystart)*B(38) 7850 B(17)=Xstart 7860 B(18)=Ystart 7870 Xstart=B(15) 7880 Ystart=B(16) 7890 B6$=" "&VAL$(FNB1(B(41)*B(19))) 7900 CALL Gos3(Xstart,Ystart,0) 7910 CALL Gos4 7920 Xstart=B(17) 7930 Ystart=B(18) 7940 B(39)=B(15)*B(37)-B(13) 7950 B(40)=B(16)*B(38)-B(14) 7960 B(43)=Xend*B(37)-B(13) 7970 B(44)=Yend*B(38)-B(14) 7980 B(54)=B(54)-FNB1(B(39))+FNB1(B(43)) 7990 B(55)=B(55)-FNB1(B(40))+FNB1(B(44)) 8000 IF B(79)<>0 THEN 8030 8010 B1$=" DE 1 1" 8020 CALL Gos10(B1$) 8030 B1$=" CI "&VAL$(FNB1(B(39)))&" "&VAL$(FNB1(B(40)))&" "&VAL$(FNB1(B(43))) 8040 B1$=B1$&" "&VAL$(FNB1(B(44)))&" "&VAL$(FNB1(B(19)))&B6$ 8050 CALL Gos10(B1$) 8060 IF B(79)<>0 THEN 8090 8070 B1$=" DE 1 0" 8080 CALL Gos10(B1$) 8090 CALL Gos3(Xend,Yend,0) 8100 SUBEND 8110 ! ***** FERMETURE D'UN FICHIER EN MODE DIFFERE 8120 SUB Bclose 8130 COM /Ben/ B(*),Benson$[270],@F1,@F2 8140 IF B(64)=-1 THEN 8180 8150 ASSIGN @F1 TO * 8160 PRINT "NOMBRE D'ENREGISTREMENTS DU FICHIER CONSTITUE=",B(64) 8170 SUBEXIT 8180 B1$=" GW 21 1 0 18" 8190 CALL Gos10(B1$) 8200 B1$=" GW 22 0 0 0" 8210 CALL Gos10(B1$) 8220 SUBEND 8230 ! ***** RESTITUTION D'UN DESSIN EN MODE DIFFERE ELEMENTAIRE 8240 SUB Outof1(B$)

279

8250 COM /Ben/ B(*),Benson$[270],@F1,@F2 8260 DIM B1$[128] 8270 ASSIGN @F1 TO B$ 8280 ON END @F1 GOTO 8320 8290 ENTER @F1;B1$ 8300 CALL Gos10(B1$) 8310 GOTO 8290 8320 ASSIGN @F1 TO * 8330 PRINT "FIN NORMALE" 8340 SUBEND 8350 ! ********************************************************************** 8360 ! ***** MESSAGE OPERATEUR 8370 SUB Msgop(B$,Imsge,Icode) 8380 OPTION BASE 1 8390 DIM B1$[128] 8400 COM /Ben/ B(*),Benson$[270],@F1,@F2 8410 B3=1 8420 B(39)=Imsge 8430 B1$=" OP 0 "&VAL$(Imsge) 8440 CALL Gos10(B1$) 8450 IF B(39)>70 THEN 8470 8460 GOTO 8530 8470 B1$=B$[B3,69+B3] 8480 B1$=" VI 70 "&B1$ 8490 CALL Gos10(B1$) 8500 B3=B3+70 8510 B(39)=B(39)-70 8520 GOTO 8450 8530 B1$=B$[B3,B3+B(39)-1] 8540 B1$=" VI "&VAL$(B(39))&" "&B1$ 8550 CALL Gos10(B1$) 8560 ON Icode+1 GOTO 8620,8570,8600 8570 B1$=" OP 1 0" 8580 CALL Gos10(B1$) 8590 GOTO 8620 8600 B1$=" OP 2 1" 8610 CALL Gos10(B1$) 8620 SUBEND 8630 ! **** TIMER 8640 SUB Timer(Icode,Rtime) 8650 OPTION BASE 1 8660 DIM B1$[128] 8670 COM /Ben/ B(*),Benson$[270],@F1,@F2 8680 B(40)=Icode 8690 IF Icode<1 OR Icode>7 THEN SUBEXIT 8700 ON Icode GOTO 8830,8830,8740,8830,8790,8790,8720 8710 GOTO 8850 8720 B1$=" DE 0 2" 8730 CALL Gos10(B1$) 8740 B1$=" DE 0 0" 8750 CALL Gos10(B1$) 8760 B1$=" DE 0 1" 8770 CALL Gos10(B1$) 8780 GOTO 8850 8790 B(40)=Icode-1

280

8800 B1$=" DE 0 "&VAL$(INT(B(40)/2)) 8810 CALL Gos10(B1$) 8820 B(40)=Icode-4 8830 B1$=" DE 0 "&VAL$(INT(B(40)/2)) 8840 CALL Gos10(B1$) 8850 SUBEND 8860 ! **** TRANSFORMATION & RESOLUTION 8870 SUB Transr(Trans,Resol) 8880 OPTION BASE 1 8890 DIM B1$[128] 8900 COM /Ben/ B(*),Benson$[270],@F1,@F2 8910 B1$=" DE 2 "&VAL$(16*Trans+Resol) 8920 CALL Gos10(B1$) 8930 SUBEND 8940 ! **** PEN ATTRIBUTS MODIFICATION 8950 SUB Pena(Pnum,Vel,Acc,Pre) 8960 OPTION BASE 1 8970 DIM B1$[128] 8980 COM /Ben/ B(*),Benson$[270],@F1,@F2 8990 B1$=" PP "&VAL$(ABS(Pnum)-INT(ABS(Pnum)/255)*255)&" " 9000 B1$=B1$&VAL$(ABS(Vel)-INT(ABS(Vel)/256)*256)&" " 9010 B1$=B1$&VAL$(INT((ABS(Acc)-INT(ABS(Acc)/101)*101)/101*4)+1)&" " 9020 B1$=B1$&VAL$(ABS(Pre)-INT(ABS(Pre)/16)*16) 9030 CALL Gos10(B1$) 9040 SUBEND

UNIVERSIDAD POLITÉCNICA DE MADRID

TESIS DOCTORAL

INTERPRETACIÓN Y CORRELACIÓN AUTOMÁTICAS

DE DIAGRAFÍAS GEOFÍSICAS.

APLICACIÓN A LA HIDROGEOLOGÍA

EN EL SUR DE LA CUENCA DEL DUERO.

– ANEXO II –

JESÚS M. DÍAZ CURIEL

LICENCIADO EN CIENCIAS FÍSICAS

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS

DE MINAS

1995

1

ANEXO 2 DIAGRAFÍAS REALIZADAS

Y RESULTADOS DE LA INTERPRETACIÓN

En este anexo se entregan los registros geofísicos realizados en cada uno de los 27

sondeos que componen parte de la aplicación práctica de esta tesis, con la

interpretación litológica resultante que se muestra en la columna central de los

registros.

Asimismo se presentan, para cada sondeo, dos tablas con los resultados de la

interpretación cuantitativa (permeabilidad y agua de la formación) de cada uno de

los niveles recomendados para la colocación de tubería filtrante y los rasgos

litoestratigráficos globales de los tramos litológicos definidos en cada pozo.

El orden en el que aparecen los sondeos analizados sigue el perfil establecido

Noroeste-Sureste. El plano de situación de los sondeos y de dicho perfil, aunque se

presenta en la memoria de esta Tesis, aparece de nuevo en este anexo para dotarle

de autonomía sobre el resto de los tomos.

También se entregan los datos de granulometrías y análisis de aguas realizados en

algunos de los sondeos estudiados, y que han sido proporcionados por D. Francisco

Mendieta de la empresa T.R.A.G.S.A.

A continuación se presenta una tabla resumen con las características de ejecución

de los sondeos más útiles para los procesos de interpretación de las diagrafías

geofísica.

2

CARACTERÍSTICAS DE LOS SONDEOS

Sondeos ordenados según el corte noroeste-sureste

Diámetros de perforación

1 2 SONDEO Sistema Perforación

Tipo Lodo

Diam(cm) Prof(m) Diam(cm) Prof(m)

Guareña 1 Directa Revert 31.1 479

Guareña 2 Directa Revert 31.1 504

Guareña 3 Directa Revert 31.1 457 27.9 559

Guareña 4 Directa Revert 31.1 451 27.9 538

Guareña 5 Directa Revert 31.1 486 25 532

Guareña 6 Inversa Revert 31.1 500

Guareña 7 Inversa Revert 31.1 445 27.9 522

Guareña 8 Inversa Revert 31.1 507

Guareña 9 Inversa Revert 55.9 149 31.1 523

Guareña 10 Inversa Revert 44.4 207 31.1 524

Torrecilla 3 Directa Revert 31.1 624

Armuña 3 Directa Revert 44.4 126 31.1 536

Armuña 4 Inversa Revert 55.9 144 31.1 400

Armuña 5 Inversa Revert 44.4 152 31.1 400

Armuña 6 Inversa Revert 55.9 154 31.1 410

Madrigal 3 Directa Revert 31.1 192 27.9 600

FuentelSol 1 (piez.) Inversa Natural 44.4 183 31.1 536

FuentelSol 2 (sond.) Inversa Natural 44.4 196 31.1 460

Moraña 1 (piez.) Inversa Natural 31.1 609

Moraña 2 (sond.) Inversa Natural 55.9 228 35.6 625

Goda Inversa Revert 31.1 500

Aldeaseca Inversa Natural Metálica 223 31.1 556

Langa Inversa Revert 44.4 145 31.1 590

Nava de Arévalo Directa Revert 31.1 501

Coca 1 Inversa Revert 55.9 150 31.1 450

Coca 2 Inversa Revert 44.4 159 31.1 450

Adanero Directa Revert 31.1 525

3

Para facilitar la localización de los sondeos, la tabla siguiente presenta la agrupación de los mismos según el término municipal al que pertenecen junto con la fecha de realización.

MUNICIPIOS Y COTAS

Sondeos ordenados según el corte noroeste-sureste

SONDEO MUNICIPIOS FECHA

Guareña 1 10/07/86

Guareña 2 06/06/86

Guareña 3 20/02/87

Guareña 4 10/03/87

Guareña 5 28/03/87

Guareña 6 09/04/87

Guareña 7 15/05/87

Guareña 8 14/05/87

Guareña 9 21/07/87

Guareña 10

Castrillo de la Guareña Fuentelapeña

21/09/89

Torrecilla 3 Torrecilla de la Orden 02/10/85

Armuña 3 21/08/86

Armuña 4 04/06/87

Armuña 5 02/10/87

Armuña 6

Fresno el Viejo Cantalapiedra

15/04/88

Madrigal 3 Madrigal de las Altas Torres 15/07/87

Fuentelsol 1 (piezómetro) 05/09/90

Fuentelsol 2 (sondeo) Fuente el Sol

05/09/90

Moraña 1 (piezómetro) 18/07/90

Moraña 2 (sondeo) San Esteban de Zapardiel

30/07/90

Goda Palacios de goda 02/11/87

Aldeaseca Aldeaseca (comarca de la Moraña) 23/03/90

Langa Langa 05/12/88

Nava de Arévalo Nava de Arévalo 01/11/86

Coca 1 04/11/87

Coca 2 Villagonzalo de Coca

Santiuste de San Juan Bautista 12/02/88

Adanero Adanero 01/10/86

4

INDICE

1. RESULTADOS DE LAS TESTIFICACIONES GEOFÍSICAS................................ 7

SONDEO GUAREÑA 1 ..................................................................................... 8

SONDEO GUAREÑA 2 ................................................................................... 10

SONDEO GUAREÑA 3 .................................................................................. 12

SONDEO GUAREÑA 4 ................................................................................... 14

SONDEO GUAREÑA 5 ................................................................................... 16

SONDEO GUAREÑA 6 ................................................................................... 18

SONDEO GUAREÑA 7 ................................................................................... 20

SONDEO GUAREÑA 8 ................................................................................... 22

SONDEO GUAREÑA 9 .................................................................................. 24

SONDEO GUAREÑA 10 ................................................................................. 26

SONDEO TORRECILLA 3 ............................................................................... 28

SONDEO ARMUÑA 3 .................................................................................... 31

SONDEO ARMUÑA 4 ................................................................................... 33

SONDEO ARMUÑA 5 ................................................................................... 35

SONDEO ARMUÑA 6 ................................................................................. 37

SONDEO MADRIGAL 3.................................................................................. 39

SONDEO FUENTELSOL 1 (piezómetro) ........................................................... 41

SONDEO FUENTELSOL 2 (sondeo).................................................................. 43

SONDEO MORAÑA 1 (piezómetro) ................................................................ 45

SONDEO MORAÑA 2 (sondeo) ....................................................................... 47

SONDEO GODA............................................................................................ 49

SONDEO ALDEASECA (sondeo)...................................................................... 51

SONDEO LANGA .......................................................................................... 53

SONDEO NAVA DE ARÉVALO ...................................................................... 55

SONDEO COCA 1 ......................................................................................... 57

SONDEO COCA 2 ......................................................................................... 59

SONDEO ADANERO..................................................................................... 61

5

2. GRANULOMETRÍAS........................................................................................ 63

SONDEO FUENTE EL SOL .............................................................................. 64

SONDEO GUAREÑA ...................................................................................... 65

SONDEO ALDEASECA (piezómetro) ................................................................ 67

SONDEO ALDEASECA................................................................................... 69

MORAÑA 1 (piezómetro)................................................................................ 71

SONDEO MORAÑA 2 (sondeo) ....................................................................... 73

3. ANÁLISIS DE AGUAS..................................................................................... 76

GUAREÑA 6................................................................................................. 77

GUAREÑA 7................................................................................................. 78

GUAREÑA 8................................................................................................. 79

GUAREÑA 9................................................................................................. 80

TORRECILLA 3 ............................................................................................. 81

ARMUÑA 3 .................................................................................................. 82

ARMUÑA 4 .................................................................................................. 83

ARMUÑA 5 .................................................................................................. 84

ARMUÑA 6 .................................................................................................. 85

MADRIGAL 3................................................................................................ 86

FUENTELSOL 1 (piezometro) .......................................................................... 87

MORAÑA 2 (sondeo)..................................................................................... 88

GODA.......................................................................................................... 89

ALDEASECA (sondeo) ................................................................................... 90

LANGA ........................................................................................................ 91

NAVA DE AREVALO ..................................................................................... 92

COCA 1 ....................................................................................................... 93

COCA 2 ....................................................................................................... 95

6

1. RESULTADOS DE LAS TESTIFICACIONES GEOFÍSICAS En las páginas siguientes se presentan los resultados de la interpretación de las 27

diagrafías Esquemáticamente el contenido para cada sondeo es:

* REGISTROS REALIZADOS CON SU INTERPRETACIÓN LITOLÓGICA

* INTERVALOS RECOMENDADOS PARA COLOCACIÓN DE TUBERÍA FILTRANTE

* TRAMOS GEOFÍSICOS DIFERENCIADOS A LO LARGO DEL SONDEO

En algunos de los sondeos se levantaron columnas esquemáticas de campo que

sirvieron de apoyo a la interpretación de los registros. Estas columnas litológicas se

realizaron sobre las muestras obtenidas cada metro mediante tamizado del detrito

que lleva suspendido el lodo de perforación.

Con las limitaciones citadas en el capítulo 2 de la Memoria, las litologías

diferenciadas son básicamente gravas, arenas, limos arcillas y margas, así como

litologías mixtas (arenas arcillosas, arcillas arenosas, gravas-arenas,... etc). También

aparecen ciertos niveles con características de arenas pero con una emisividad

relativamente alta de radiación gamma que se han denominado arenas radiactivas y

otros de aspecto arcilloso generalmente oscuro que presentan igualmente valores

elevados de G.N. Por último encontramos en algunos de los sondeos situados más

al Oeste algunas capas de granito alterado e incluso de granito.

La distribución final de los tramos de tubería filtrante fue condicionada por

cuestiones constructivas de los sondeos, limitando tanto los espesores de las capas

como la selección de las mismas.

7

NOTA:

LOS PLIEGOS DE DIAGRAFÍAS QUE EN EL DOCUMENTO

PRESENTADO SE ENCUENTRAN EN PAPEL, DETRÁS DE

CADA LISTADO DE LAS ZONAS RECOMENDADAS PARA

LA COLOCACIÓN DE TUBERÍA FILTRANTE PARA LA

CAPTACIÓN DE AGUA, NO ESTÁN CONVERTIDOS A

FORMATO DIGITAL

8

SONDEO GUAREÑA 1

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 58.0-62.0 4 arenas 525 420 135 6.4E-1 15

2 79.0-81.0 2 arenas 515 412 111 1.1E-1 12

3 152.0-154.0 2 arenas 488 392 121 1.8E-1 19

4 156.0-160.0 4 arenas 525 420 99 3.2E-2 18

5 171.0-173.0 2 arenas 660 529 86 1.3E-2 16

6 196.0-198.0 2 arenas 458 372 100 9.2E-2 20

7 202.0-204.0 2 gravas 554 444 134 2.3E+0 23

8 214.0-216.0 2 arenas 595 476 121 6.7E-2 28

9 221.0-223.0 2 arenas 429 343 99 4.2E-1 22

10 230.0-232.0 2 arenas 600 480 92 5.4E--2 17

11 248.0-252.0 4 gravas 366 288 152 1.9E+0 26

12 265.0-267.0 2 gravas 488 392 230 8.0E-1 21

13 269.0-275.0 6 gravas 537 430 146 1.1E+0 27

14 292.0-294.0 2 gravas 373 294 148 8.0E-1 17

15 297.0-299.0 2 gravas 315 251 191 2.2E+0 16

16 306.0-310.0 4 gravas 364 286 278 2.3E+0 28

17 318.0-320.0 2 arenas 730 588 243 6.7E-2 16

18 322.0-326.0 4 arenas 421 335 91 2.0E+0 8

19 339.0-341.0 2 arenas 595 476 88 3.3E-2 3

20 345.0-347.0 2 arenas 527 422 111 1.3E-1 4

21 398.0-400.0 2 arenas 692 556 115 4.9E-1 22

22 406.0-408.0 2 gravas 250 180 430 1.2E+0 20

23 410.0-412.0 2 gravas 256 189 421 1.2E+0 9

24 416.0-418.0 2 gravas 278 215 255 7.9E-1 10

25 424.0-434.0 10 gravas 253 184 390 1.1E+0 12

26 443.0-445.0 2 gravas 250 180 268 1.3E-1 22

9

SONDEO GUAREÑA 1

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 25 - 50 Arcillas - Arenas

2 50 - 65 Gravas - Arcillas

3 65 - 130 Arenas - Limos

4 130 - 145 Arcillas

5 145 - 180 Gravas - Limos

6 180 - 255 Arcillas - Gravas

7 255 - 265 Arcillas

8 265 - 275 Gravas

9 275 - 285 Arcillas

10 285 - 350 Gravas - Arcillas

11 350 - 400 Limos - Arcillas

12 400 - 435 Gravas - Arenas

13 435 - 480 Limos - Arenas

14 480 Granito

10

SONDEO GUAREÑA 2

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 29.0-31.0 2 Gravas 391 310 96 2.4E-2 13

2 37.0-43.0 6 Arenas 542 434 102 5.5E-2 18

3 56.0-58.0 2 Arenas 497 398 104 7.7E-2 22

4 67.0-71.0 4 Arenas 489 393 106 4.1E-2 28

5 93.0-99.0 6 Arenas 643 515 105 2.2E-1 27

6 101.0-103.0 2 Gravas 425 339 152 4.0E-1 25

7 108.0-112.0 4 Gravas 397 315 168 5.1E-1 15

8 119.0-121.0 2 Gravas 489 393 113 9.5E-2 18

9 123.0-125.0 2 Gravas 381 302 191 9.3E-1 25

10 131.0-133.0 2 Arenas 476 384 101 1.4E-2 28

11 138.0-142.0 6 Arenas 424 338 128 7.1E-2 29

12 154.0-158.0 4 Arenas 403 319 129 4.2E-2 26

13 174.0-176.0 2 Arenas 373 294 94 1.0E-1 28

14 182.0-184.0 2 Arenas 464 376 97 5.0E-3 25

15 188.0-190.0 2 Arenas 417 330 108 3.8E-2 28

16 203.0-205.0 2 arena-arcilla 486 391 80 2.6E-3 27

17 227.0-231.0 4 arena-arcilla 494 396 90 4.0E-3 26

18 236.0-238.0 2 Arenas 479 386 101 1.3E-2 25

19 243.0-247.0 4 Gravas 409 324 130 5.8E-2 11

20 270.0-272.0 2 Arenas 511 409 78 8.0E-3 23

21 300.0-302.0 2 Arenas 574 460 74 7.6E-3 17

22 325.0-333.0 8 Gravas 582 466 123 6.1E-1 18

23 343.0-347.0 4 Arenas 573 459 93 2.3E-2 26

24 362.0-366.0 4 Gravas 483 389 152 9.5E--1 21

25 373.0-377.0 4 Gravas 417 398 133 5.1E-1 20

26 381.0-382.0 2 Gravas 512 410 120 2.2E-1 21

27 396.0-400.0 4 Arenas 485 390 84 6.0E-3 14

28 400.0-404.0 4 Gravas 482 388 152 9.4E-1 6

29 404.0-406.0 2 Arenas 661 530 70 5.2E-3 6

30 432.0-436.0 4 Arenas 682 548 68 4.8E-3 26

31 458.0-460.0 2 Arenas 639 512 91 3.3E-2 11

32 465.0-467.0 2 Gravas 554 444 127 1.8E-1 25

11

SONDEO GUAREÑA 2

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 15 - 30 Limos - Arcillas

2 30 - 80 Arenas - Limos

3 80 - 95 Limos - Arcillas

4 95 - 145 Gravas - Limos

5 145 - 205 Arenas - Arcillas

6 205 - 225 Arcillas

7 225 - 260 Arenas - Limos

8 260 - 315 Arenas - Arcillas

9 315 - 325 Arcillas

10 325 - 340 Gravas

11 340 - 410 Gravas - Arcillas

12 410 - 460 Limos - Arcillas

13 460 - 504 Arenas - Gravas

12

SONDEO GUAREÑA 3

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 64.5-66.5 2 arenas 729 647 88 1.2E-1 7

2 69.0-71.0 2 gravas 509 407 117 1.7E-1 24

3 85.5-87.5 2 arenas 673 540 79 6.4E-3 27

4 108.0-110.0 2 arenas 626 501 97 6.4E-2 19

5 120.0-122.0 2 gravas 535 428 157 1.5E+0 15

6 125.0-127.0 2 gravas 400 317 259 3.2E+0 18

7 133.0-135.0 2 gravas 625 500 186 1.3E+0 32

8 140.5-142.5 2 arenas 660 529 119 1.1E-1 31

9 164.0-166.0 2 arenas 454 369 155 7.4E-1 27

10 174.0-176.0 2 arenas 488 392 144 7.3E-1 29

11 215.0-217.0 2 gravas 420 334 308 3.4E+0 15

12 244.5-246.5 2 gravas 471 381 312 2.8E+0 11

13 272.0-274.0 2 arenas 708 570 108 3.4E-1 20

14 286.0-288.0 2 gravas 711 572 186 3.4E+0 31

15 294.0-296.0 2 gravas 488 392 154 1.1E+0 17

16 327.0-331.0 4 gravsa 510 408 161 1.6E+0 17

17 333.0-335.0 2 gravas 521 417 168 2.0E+0 9

18 359.0-361.0 2 gravas 664 533 136 1.3E+0 15

19 366.0-368.0 2 gravas 557 446 144 1.2E+0 24

20 375.0-379.0 4 arenas 546 437 130 6.4E-1 15

21 383.0-385.0 2 arenas 604 483 118 4.3E-1 20

22 394.0-396.0 2 arenas 616 493 85 8.4E-2 4

23 396.0-398.0 2 arenas 617 494 85 8.3E-2 4

24 401.0-405.0 4 gravas 605 484 137 1.0E+0 4

25 450.0-452.0 2 arenas 638 511 75 1.3E-1 7

26 469.0-471.0 2 arenas 552 442 148 1.3E-1 6

13

SONDEO GUAREÑA 3

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 45 - 70 Arcillas - Limos

2 70 - 85 Arcillas

3 85 - 115 Arenas - Limos

4 115 - 130 Arenas - Gravas

5 130 - 190 Arenas - Limos

6 190 - 210 Arcillas

7 210 - 250 Gravas - Arcillas

8 250 - 275 Limos - Arcillas

9 275 - 310 Arenas - Arcillas

10 310 - 320 Arcillas

11 320 - 335 Gravas

12 335 - 355 Arcillas

13 355 - 410 Gravas - Arenas

14 410 - 445 Limos - Arcillas

15 445 - 480 Arenas - Gravas

16 480 - 555 Limos - Arenas

14

SONDEO GUAREÑA 4

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 97.5-99.5 2 gravas 541 433 131 1.1E+0 23

2 113.5-115.5 2 arenas 564 452 85 5.7E-3 12

3 133.0-135.0 2 arenas 498 399 123 2.6E-1 26

4 147.0-149.0 2 arenas 559 448 79 1.5E-3 35

5 162.0-164.0 2 arenas 551 441 86 5.2E-3 28

6 202.0-204.0 2 arenas 483 389 131 3.5E-1 13

7 289.5-291.5 2 arenas 593 475 171 1.5E-1 23

8 300.0-308.0 8 gravas 542 434 137 2.5E+0 22

9 320.0-322.0 2 arenas 574 460 86 6.2E-3 24

10 334.5-336.5 2 arenas 548 439 211 8.2E-1 24

11 338.5-340.5 2 gravas 584 439 170 3.4E+0 22

12 347.5-349.5 2 gravas 564 452 185 2.4E+0 34

13 355.5-357.5 2 arenas 639 512 90 3.2E+0 17

14 367.5-369.5 2 arenas 711 572 85 2.3E-2 3

15 440.5-442.5 2 arenas 624 499 91 3.0E-2 9

16 444.5-446.5 2 arenas 583 467 111 1.9E-1 17

17 448.5-450.5 2 gravas 480 387 183 2.2E+0 7

18 452.5-454.5 2 gravas 453 368 207 2.7E+0 14

19 456.0-458.0 2 arenas 473 382 145 6.2E-1 3

20 472.5-478.5 6 arenas 462 375 120 1.23E-1 5

15

SONDEO GUAREÑA 4

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 40 - 80 Arenas - Arcillas

2 80 - 100 Gravas - Arcillas

3 100 - 125 Limos - Arcillas

4 125 - 170 Arenas - Arcillas

5 170 - 190 Arcillas

6 190 - 280 Arenas - Arcillas

7 280 - 295 Arcillas

8 295 - 310 Gravas

9 310 - 325 Arcillas

10 325 - 385 Gravas - Arcillas

11 385 - 435 Arcillas - Limos

12 435 - 475 Gravas - Arenas

13 475 - 525 Limos - Arenas

14 525 - 544 Granito

16

SONDEO GUAREÑA 5

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 71.0-73.0 2 arenas 461 374 100 7.7E-3 29

2 96.5-98.5 2 arenas 476 384 109 4.2E-2 19

3 125.0-127.0 2 gravas 335 261 244 1.6E+0 18

4 130.0-132.0 2 arenas 364 286 186 5.7E-1 25

5 175.0-177.0 2 arenas 331 359 104 8.4E-3 31

6 304.0-306.0 2 arenas 506 405 121 2.3E-1 11

7 311.0-315.0 4 gravas 483 389 153 1.0E+0 18

8 318.0-322.0 4 gravas 415 329 275 3.5E+0 17

9 324.0-326.0 2 gravas 489 393 166 1.6E+0 14

10 336.5-338.5 2 arenas 470 380 132 3.8E-1 28

11 352.0-356.0 4 gravas 417 330 199 1.7E+0 18

12 364.5-366.5 2 arenas 455 370 136 3.2E-1 21

13 370.0-374.0 4 gravas 421 335 176 1.1E+0 26

14 378.0-380.0 2 arenas 473 382 138 4.2E-1 25

15 452.0-456.0 4 gravas 250 180 406 2.3E+0 21

16 472.5-474.5 2 arenas 261 196 263 7.3E-1 0

17 482.0-484.0 2 gravas 254 186 322 1.7E+0 29

18 486.5-488.5 2 arenas 313 250 225 8.3E-1 19

19 493.0-495.0 2 arenas 267 204 246 4.5E-1 21

17

SONDEO GUAREÑA 5

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 75 Arcillas - Arenas

2 75 - 85 Arcillas

3 85 - 125 Arenas - Limos

4 125 - 145 Limos - Gravas

5 145 - 195 Arenas - Arcillas

6 195 - 225 Arcillas

7 225 - 290 Arenas - Arcillas

8 290 - 305 Arcillas

9 305 - 385 Gravas - Arcillas

10 385 - 435 Limos - Arcillas

11 435 - 500 Gravas - Arenas

12 500 - 530 Limos - Arenas

18

SONDEO GUAREÑA 6

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 92.0-94.0 2 gravas 512 410 136 8.0E-1 5

2 98.5-100.5 2 arenas 502 402 128 3.8E-1 21

3 122.0-126.0 4 arenas 498 399 102 3.1E-2 12

4 192.0-194.0 2 arenas 483 389 119 1.4E-1 18

5 196.0-198.0 2 arenas 488 392 108 9.2E-2 30

6 272.5-274.5 2 arenas 562 450 101 5.7E-2 17

7 283.0-287.0 4 gravas 519 415 148 1.1E+0 12

8 292.0-294.0 2 gravas 511 409 202 3.2E+0 13

9 297.0-299.0 2 gravas 538 431 197 3.1E+0 12

10 301.5-303.5 2 arenas 535 428 138 8.6E-1 26

11 311.0-313.0 2 arenas 578 463 150 1.5E+0 20

12 338.5-340.5 2 gravas 483 389 225 3.4E+0 11

13 347.5-351.5 4 arenas 491 394 139 8.0E-1 13

14 370.5-372.5 2 arenas 578 463 94 2.6E-2 0

15 375.5-379.5 4 arenas 587 470 90 2.1E-2 5

16 435.0-437.0 2 arenas 480 387 129 4.9E-1 2

17 443.5-445.5 2 arenas 468 379 136 3.6E-1 6

18 448.0-450.0 2 arenas 471 381 120 1.1E-1 5

19 453.0-457.0 4 arenas 454 369 139 3.4E-1 4

20 462.5-464.5 2 arenas 458 372 125 1.3E-1 1

19

SONDEO GUAREÑA 6

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 35 - 60 Arcillas - Arenas

2 60 - 90 Limos

3 90 - 125 Limos - Gravas

4 125 - 160 Arenas - Arcillas

5 160 - 185 Arcillas

6 185 - 205 Gravas - Arcillas

7 205 - 270 Arenas - Arcillas

8 270 - 315 Gravas - Arcillas

9 315 - 330 Arcillas

10 330 - 355 Gravas - Limos

11 355 - 430 Arenas - Arcillas

12 430 - 460 Gravas - Arenas

13 460 - 495 Arenas - Limos

20

SONDEO GUAREÑA 7

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 106.0-109.0 3 arenas 607 486 74 1.3E-3 33

2 131.0-134.0 3 arenas 477 385 97 7.8E-3 25

3 135.5-138.5 3 arenas 562 450 102 6.9E-2 36

4 163.5-172.5 9 arena-grava 422 336 106 5.0E-3 33

5 198.5-201.5 3 arenas 404 320 105 4.7E-3 40

6 319.0-322.0 3 gravas 474 383 141 9.0E-1 28

7 325.0-328.0 3 gravas 429 343 180 1.3E+0 20

8 330.0-336.0 6 gravas 390 309 253 2.5E+0 19

9 346.0-349.0 3 arenas 500 400 134 7.4E-1 18

10 359.0-362.0 3 gravas 476 384 159 1.1E+0 15

11 366.5-369.5 3 arenas 458 372 145 4.9E-1 22

12 376.0-379.0 3 arenas 470 380 136 5.8E-1 35

13 388.0-391.0 3 arenas 607 486 125 6.1E-1 12

14 394.0-397.0 3 arenas 600 480 112 3.2E-1 13

15 451.0-457.0 6 gravas 250 180 426 7.2E-1 18

16 459.5-462.5 3 gravas 250 180 463 1.1E+0 10

17 467.0-473.0 6 gravas 257 191 296 6.4E-1 9

18 476.5-479.5 3 gravas 250 180 449 4.9E-1 1

19 480.5-483.5 3 gravas 250 180 421 3.0E-1 21

20 484.5-487.5 3 gravas 250 180 396 2.4E-1 19

21 488.5-491.5 3 gravas 250 180 426 3.8E-1 13

21

SONDEO GUAREÑA 7

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 100 Arenas - Arcillas

2 100 - 130 Limos - Arcillas

3 130 - 205 Gravas - Arcillas

4 205 - 235 Arcillas

5 235 - 310 Arenas - Arcillas

6 310 - 320 Arcillas

7 320 - 335 Gravas

8 335 - 400 Gravas - Arcillas

9 400 - 430 Limos - Arcillas

10 430 - 490 Gravas - Arenas

11 490 -500 Arenas - Limos

22

SONDEO GUAREÑA 8

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 101.5-104.5 3 arenas 417 329 152 3.3E-1 26

2 130.5-133.5 3 gravas 346 270 189 4.2E-1 15

3 151.5-154.5 3 arena-arcilla 406 325 92 1.7E-4 30

4 162.0-165.0 3 arenas 373 295 141 5.4E-2 37

5 198.0-201.0 3 arena-arcilla 540 432 65 2.9E-4 24

6 204.5-207.5 3 arena-arcilla 454 368 83 1.6E-4 27

7 210.0-216.0 6 arena-arcilla 458 370 74 1.0E-4 28

8 217.5-220.5 3 arenas 403 319 106 2.2E-3 16

9 296.0-299.0 3 arenas 460 373 109 2.7E-2 32

10 302.0-308.0 6 gravas 430 344 169 1.0E+0 22

11 318.0-321.0 3 arenas 499 399 87 2.9E-3 43

12 329.0-331.0 2 arenas 508 406 83 1.6E-3 27

13 350.0-353.5 3 gravas 412 326 202 1.8E+0 36

14 362.5-365.5 3 gravas 393 311 215 1.9E+0 13

15 367.0-370.0 3 gravas 400 316 225 2.3E+0 33

16 390.0-393.0 3 limos 487 391 80 3.4E-4 18

17 395.5-398.5 3 limos 526 421 56 1.0E-4 7

18 450.0-453.0 3 limos 506 404 77 5.4E-4 26

19 458.5-461.5 3 gravas 349 272 239 1.8E+0 17

23

SONDEO GUAREÑA 8

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 45 Arenas - Limos

2 45 - 75 Limos - Arcillas

3 75 - 115 Gravas - Limos

4 115 - 145 Arenas - Limos

5 145 - 180 Gravas - Arcillas

6 180 - 195 Arcillas

7 195 - 225 Gravas - Arcillas

8 225 - 275 Arenas - Arcillas

9 275 - 295 Arcillas

10 295 - 305 Gravas

11 305 - 345 Arcillas

12 345 - 395 Gravas - Arcillas

13 395 - 445 Limos - Arcillas

14 445 - 475 Gravas - Arenas

15 475 -505 Arenas - Limos

24

SONDEO GUAREÑA 9

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 260.0-262.0 2 arena-arcilla 587 470 71 1.3E-3 43

2 293.0-297.0 4 arenas 612 490 73 4.7E-3 35

3 312.0-314.0 2 gravas 492 395 218 3.4E+0 26

4 319.5-321.5 2 arenas 654 524 122 9.2E-1 27

5 332.0-334.0 2 arena-arcilla 604 483 66 8.7E-4 23

6 338.5-340.5 2 arenas 592 474 70 1.1E-3 20

7 350.0-352.0 2 arena-arcilla 559 448 68 9.8E-4 32

8 359.5-361.5 2 arena-arcilla 567 454 71 1.2E-3 50

9 365.0-367.0 2 limos 515 412 81 9.9E-4 23

10 368.0-370.0 2 arenas 476 384 94 4.5E-3 21

11 372.0-374.0 2 arenas 467 378 83 1.4E-2 28

12 377.5-381.5 4 gravas 432 346 138 2.0E-1 15

13 395.0-399.0 4 limos 614 491 70 3.0E-4 5

14 409.0-411.0 2 limos 654 524 62 1.1E-4 6

15 472.5-474.5 2 limos 409 324 82 3.2E-4 14

16 486.5-488.5 2 limos 385 305 100 7.6E-4 2

17 496.0-498.0 2 arenas 399 316 116 8.2E-3 5

25

SONDEO GUAREÑA 9

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 40 - 75 Gravas - Arcillas

2 75 - 110 Gravas - Limos

3 110 - 155 Gravas - Arcillas

4 155 - 195 Arcillas

5 195 - 230 Gravas - Limos

6 230 - 290 Arenas - Arcillas

7 290 - 320 Gravas - Arenas

8 320 - 360 Limos - Arcillas

9 360 - 420 Gravas - arcillas

10 420 - 455 Arcillas - Limos

11 455 - 515 Gravas - Arenas

26

SONDEO GUAREÑA 10

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 74.0-78.0 4 arenas 600 479 69 2.0E-3 22

2 104.5-108.5 4 arenas 536 429 98 5.0E-2 13

3 127.0-131.0 4 gravas 567 453 100 1.2E-1 20

4 138.0-140.0 2 arenas 497 398 96 1.2E-2 49

5 146.0-148.0 2 Arena-arcilla 485 390 71 2.1E-4 47

6 159.0-161.0 2 arenas 476 384 93 4.0E-3 24

7 165.0-167.0 2 Arena-arcilla 484 389 73 3.8E-4 38

8 177.5-179.5 2 Arena-arcilla 455 370 79 5.8E-4 26

9 194.0-200.0 6 arenas 533 417 76 2.4E-3 39

10 282.0-284.0 2 arenas 506 404 135 6.1E-1 33

11 308.0-310.0 2 arenas 493 395 124 2.5E-1 13

12 320.0-332.0 12 gravas 514 411 168 1.9E+0 11

13 341.0-345.0 4 arenas 529 423 112 2.5E-1 12

14 359.0-361.0 2

15 364.5-368.5 4

16 376.0-378.0 2

17 454.5-458.5 4

18 462.0-470.0 8

19 473.0-475.0 2

20 480.0-484.0 4

21 489.0-491.0 2

22 494.5-496.5 2

Los datos correspondientes a los niveles situados a mas de 350 metros de profundidad no se han reflejado por no haberse realizado el registro de G.N. por debajo de dicha profundidad.

27

SONDEO GUAREÑA 10

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 110 Arenas - Arcillas

2 110 - 125 Limos - Arcillas

3 125 - 145 Arenas - Limos

4 145 - 200 Arenas - Arcillas

5 200 - 220 Arcillas

6 220 - 260 Arenas - Arcillas

7 260 - 305 Limos - Arenas

8 305 - 315 Arcillas

9 315 - 335 Gravas

10 335 - 345 Limos - Arenas

11 345 - 395 Gravas - Arcillas

12 395 - 450 Arcillas - Limos

13 450 - 510 Gravas - Arenas

28

SONDEO TORRECILLA 3

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 106.0-107.0 1 arenas 600 604 87 4.7E-2 8

2 108.0-110.0 2 limos 556 499 73 7.7E-4 8

3 124.0-125.0 1 limos 547 484 69 2.0E-4 17

4 138.0-140.0 2 Arena-arcilla 517 427 77 5.8E-4 14

5 151.0-153.0 2 Arena-arcilla 507 412 79 6.5E-4 28

6 168.0-170.0 2 arenas 462 374 121 9.9E-2 24

7 177.0-179.0 2 arenas 483 388 109 5.0E-2 17

8 184.0-186.0 2 Arena-arcilla 483 389 77 1.3E-4 29

9 194.0-196.0 2 Arena-arcilla 510 417 62 1.1E-4 31

10 206.0-208.0 2 arenas 459 373 105 1.6E-2 29

11 220.0-222.0 2 arenas 292 232 223 7.9E-1 30

12 240.0-242.0 2 gravas 287 226 216 2.8E-1 35

13 254.0-256.0 2 gravas 280 216 218 2.4E-1 36

14 262.0-263.0 1 gravas 212 180 381 1.7E+0 36

15 264.0-268.0 4 gravas 203 180 419 2.0E+0 24

16 272.0-275.0 3 gravas 272 209 259 7.6E-1 28

17 284.0-286.0 2 arenas 264 201 243 3.8E-1 22

18 297.0-298.0 1 arenas 311 248 175 7.3E-2 16

19 300.0-302.0 2 gravas 188 180 395 1.0E+0 36

20 315.0-319.0 4 gravas 230 180 435 1.7E+0 28

21 321.0-323.0 2 arenas 201 180 341 6.1E-1 31

22 324.0-325.0 1 gravas 255 186 289 9.8E-1 33

23 338.0-343.0 5 gravas 246 205 365 1.3E+0 30

24 354.0-355.0 1 gravas 209 180 339 7.7E-1 25

25 357.0-358.0 1 arenas 289 229 208 2.1E-1 38

26 361.0-363.0 2 gravas 178 180 406 8.7E-1 27

27 400.0-406.0 6 arenas 463 408 89 1.6E-2 23

28 409.0-411.0 2 arenas 496 397 102 3.1E-2 15

29 421.0-424.0 3 arenas 379 300 134 3.2E-2 23

29

SONDEO TORRECILLA 3

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

30 436.0-438.0 2 Arena-arcilla 572 538 65 1.2E-4 23

31 453.0-454.0 1 arenas 479 385 91 2.9E-3 28

32 461.0-464.0 3 gravas 664 604 140 3.4E+0 19

33 498.0-502.0 4 arenas 496 397 123 2.4E-1 16

34 514.0-517.0 3 gravas 437 351 186 1.6E+0 14

35 530.0-534.0 4 arenas 503 405 93 1.1E-2 21

36 540.0-549.0 9 gravas 491 441 212 2.1E+0 19

37 552.0-554.0 2 gravas 420 334 246 3.2E+0 18

38 562.0-565.0 3 gravas 394 312 303 3.5E+0 8

39 570.0-572.0 2 limos 541 471 70 2.3E-4 17

40 584.0-592.0 8 arenas 579 557 65 1.0E-3 7

30

SONDEO TORRECILLA 3

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 10 - 50 Limos

2 50 - 80 Limos - Arcillas

3 80 - 115 Arenas - Limos

4 115 - 140 Arcillas - Limos

5 140 - 180 Gravas - Limos

6 180 - 205 Arenas - limos

7 205 - 225 Gravas - Arcillas

8 225 - 240 Arcillas

9 240 - 280 Gravas - Limos

10 280 - 315 Gravas - Arcillas

11 315 - 365 Gravas - Limos

12 365 - 400 Arcillas

13 400 - 470 Arenas - Limos

14 470 - 490 Arcillas

15 490 - 540 Arenas - Arcillas

16 540 - 565 Gravas - Limos

17 565 - 600 Arenas - Arcillas

31

SONDEO ARMUÑA 3

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 82.0-88.0 6 gravas 482 517 240 1.1E+0 15

2 94.0-102.0 8 gravas 479 514 208 2.9E+0 37

3 106.0-112.0 6 gravas 474 509 214 2.7E+0 14

4 120.0-126.0 6 arenas 471 506 112 8.0E-2 16

5 129.0-131.0 2 arenas 455 490 113 3.6E-2 6

6 145.0-149.0 4 arenas 461 496 92 2.4E-3 11

7 152.0-154.0 2 limos 431 462 85 1.1E-4 14

8 163.0-167.0 4 limos 466 501 87 8.8E-4 20

9 168.0-174.0 6 arenas 488 523 91 4.5E-3 5

10 182.0-194.0 12 arenas 437 469 122 1.0E-1 4

11 196.0-198.0 2 limos 465 500 79 1.0E-4 7

12 202.0-206.0 2 arenas 470 505 104 3.7E-2 8

13 208.0-212.0 4 arenas 479 514 94 1.0E-2 9

14 221.0-223.0 2 arenas 407 436 158 3.9E-1 13

15 225.0-231.0 6 arenas 407 436 163 7.2E-1 18

16 235.0-237.0 2 arenas 440 473 122 6.2E-2 6

17 239.0-243.0 4 arenas 373 400 151 1.1E-1 19

18 250.0-254.0 4 arenas 399 428 139 1.5E-1 20

19 256.0-260.0 4 limos 393 423 107 1.8E-2 37

20 263.0-265.0 2 limos 276 290 225 2.8E-1 13

21 267.0-269.0 2 arenas 375 403 137 3.9E-2 18

22 272.0-278.0 6 arena-arcilla 397 427 139 1.0E-1 43

23 282.0-286.0 4 arena-arcilla 367 393 166 3.7E-4 49

24 291.0-293.0 2 arenas 326 347 156 3.4E-2 33

25 295.0-297.0 2 arenas radiac. 302 321 168 3.1E-2 48

26 307.0-315.0 8 arenas radiac. 319 340 163 1.4E-1 60

27 339.0-341.0 2 arenas radiac. 252 253 208 4.7E-2 182

28 343.0-345.0 2 arenas radiac. 322 343 123 5.0E-4 114

29 346.0-348.0 2 arenas radiac. 388 418 96 1.4E-4 182

30 363.0-365.0 2 limos 360 384 98 1.1E-4 23

31 369.0-375.0 6 arenas 332 354 136 9.7E-3 22

32 376.0-382.0 6 arenas 393 423 160 3.3E-2 30

33 391.0-393.0 2 arenas 205 194 284 1.5E-1 16

34 410.0-420.0 10 limos 344 366 103 1.6E-4 38

32

SONDEO ARMUÑA 3

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 15 - 50 Limos - Arcillas

2 50 - 60 Gravas - Arenas

3 60 - 80 Arcillas - Limos

4 80 - 115 Gravas - Arenas

5 115 - 170 Arcillas - Arenas

6 170 - 190 Arenas

7 190 - 220 Limos

8 220 - 315 Arenas - Limos

9 315 - 365 Arcillas - Limos - Arenas

10 365 - 400 Arenas - Limos

11 400 - 450 Arcillas - Limos

33

SONDEO ARMUÑA 4

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 62.0-66.0 4 gravas 750 604 179 3.0E+0 12

2 76.5-80.5 4 gravas 651 526 225 3.4E+0 22

3 89.0-91.0 2 gravas 656 530 228 2.4E+0 80

4 96.0-98.0 2 gravas 840 683 129 1.1E+0 21

5 110.0-114.0 4 arenas 816 659 69 4.6E-3 22

6 137.0-139.0 2 arena-arcilla 779 629 50 3.0E-4 31

7 155.0-157.0 2 arenas 768 620 83 2.0E-2 0

8 161.5-163.5 2 limos 649 524 65 1.2E-4 17

9 166.0-168.0 2 gravas 605 484 117 7.7E-1 6

10 204.5-206.5 2 gravas 585 468 123 1.4E-2 17

11 213.5-217.5 4 arenas 526 425 79 3.8E-2 17

12 229.5-231.5 2 gravas 329 441 164 6.8E-2 26

13 245.0-251.0 6 gravas 427 574 122 2.9E-2 25

14 258.0-260.0 2 gravas 338 455 122 1.2E-3 19

15 264.0-266.0 2 gravas 348 468 128 4.7E-3 27

16 288.0-290.0 2 arenas radiac. 316 419 167 5.1E-2 50

17 310.5-312.5 2 arenas 260 342 219 1.2E-1 39

18 334.0-336.0 2 arenas radiac. 462 619 81 1.7E-4 44

19 357.0-364.0 7 arenas radiac. 409 625 93 6.1E-1 47

34

SONDEO ARMUÑA 4

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 25 - 55 Limos - Arcillas (intercalación de Gravas)

2 55 - 100 Gravas - Arenas

3 100 - 150 Arcillas - Arenas

4 150 - 170 Arenas

5 170 - 215 Limos

6 215 - 295 Arenas -Limos

7 295 - 355 Arcillas - Limos - Arenas

8 355 - 380 Arenas - Limos

9 380 - 495 Arcillas - Limos

35

SONDEO ARMUÑA 5

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 74.5-76.5 2 gravas 496 531 164 1.6E+0 25

2 78.0-80.0 2 gravas 492 527 155 1.2E+0 32

3 82.0-90.0 8 gravas 480 515 222 3.0E+0 21

4 93.0-97.0 4 gravas 529 568 154 1.4E+0 21

5 98.0-104.0 6 gravas 505 541 158 1.5E+0 15

6 108.0-112.0 4 gravas 591 635 125 5.9E-1 16

7 127.0-129.0 2 arenas 571 614 89 1.3E-2 22

8 139.0-141.0 2 arena arcilla 492 527 79 3.5E-4 20

9 142.0-144.0 2 limos 510 546 66 1.5E-4 16

10 162.0-164.0 2 limos 569 612 61 5.5E-4 13

11 176.0-178.0 2 limos 512 548 63 2.0E-4 12

12 183.0-185.0 2 limos 488 523 70 2.2E-4 10

13 187.5-189.5 2 limos 487 522 80 4.0E-4 15

14 197.5-199.5 2 arenas 488 523 70 1.6E-3 16

15 207.0-213.0 6 arenas 446 480 107 1.6E-2 29

36

SONDEO ARMUÑA 5

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 25 - 50 Arcillas - Limos - Arenas

2 50 - 60 Gravas - Arenas

3 60 - 70 Arcillas - Limos

4 70 - 115 Gravas - Arcillas

5 115 - 145 Arenas - Limos

6 145 - 200 Limos - Arcillas

7 200 - 210 Arenas - Limos

8 210 - 220 Arcillas - Limos

9 220 - 300 Arenas - Limos

10 300 - 310 Arcillas

11 310 - 350 Arenas radiactivas

12 350 - 370 Limos - Arcillas

13 370 - 390 Limos

37

SONDEO ARMUÑA 6

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 57.5-59.5 2 arenas 627 599 81 6.4E-4 15

2 62.5-66.5 4 gravas 587 588 104 6.8E-3 10

3 82.0-88.0 6 gravas 656 613 156 1.3E+0 16

4 90.0-96.0 6 gravas 662 620 132 3.6E-1 16

5 98.0-102.0 4 gravas 669 628 166 1.3E+0 12

6 103.0-107.0 4 gravas 669 628 147 7.0E-1 16

7 109.0-113.0 4 gravas 666 624 178 1.7E+0 12

8 114.0-118.0 4 arenas 510 486 99 3.7E-1 12

9 122.0-124.0 2 gravas 643 612 221 3.1E+0 9

10 148.0-152.0 4 limos 582 555 74 1.1E-4 8

11 155.0-157.0 2 limos 591 563 70 1.4E-4 11

12 171.0-175.0 4 limos 599 571 67 1.6E-4 9

13 176.0-180.0 4 limos 598 570 68 1.8E-4 12

14 182.0-186.0 4 limos 582 554 75 1.1E-4 11

15 196.0-198.0 2 limos 528 503 95 4.1E-4 2

16 200.0-204.0 4 limos 521 496 93 5.0E-4 3

17 226.5-230.5 4 arenas 425 405 127 2.6E-3 1

18 255.0-257.0 2 arenas 426 406 119 1.7E-3 9

19 279.0-283.0 4 arenas 378 360 110 1.4E-4 10

38

SONDEO ARMUÑA 6

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 20 - 55 Arcillas

2 55 - 65 Arenas

3 65 - 80 Arcillas - Limos

4 80 - 120 Gravas

5 120 - 190 Limos - Arcillas

6 190 - 205 Arenas - Limos

7 205 - 225 Arcillas - Limos

8 225 - 285 Arenas - Limos

9 285 - 295 Arcillas

10 285 - 350 Arenas Radiactivas

11 350 - 400 Arcillas - Limos

39

SONDEO MADRIGAL 3

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 93.0-95.0 2 arenas 769 943 89 6.2E-1 2

2 98.0-100.0 2 gravas 770 944 107 1.7E+0 15

3 111.0-115.0 4 gravas 774 947 99 1.2E+0 4

4 164.5-167.5 3 gravas 668 803 112 1.1E+0 13

5 172.0-175.0 3 gravas 659 774 125 1.7E+0 10

6 182.0-185.0 3 arenas 693 852 119 1.8E+0 28

7 200.5-203.5 3 gravas 640 732 134 2.0E+0 13

8 215.5-218.5 3 gravas 620 659 119 1.0E+0 6

9 221.0-224.0 3 gravas 674 835 110 1.2E+0 8

10 251.5-254.5 3 arenas 528 448 111 1.7E-1 9

11 266.0-269.0 3 gravas 482 387 176 1.9E+0 6

12 292.5-295.5 3 arenas 554 439 106 9.3E-2 4

13 299.0-302.0 3 arenas 457 371 143 5.6E-2 20

14 310.5-313.5 3 arenas 498 399 120 2.0E-1 16

15 324.0-327.0 3 limos 528 391 85 1.1E-4 12

16 333.0-336.0 3 arenas 475 384 141 5.3E-1 4

17 440.5-443.5 3 gravas 404 320 187 1.1E+0 38

18 464.5-467.5 3 gravas 425 341 235 2.9E+0 14

19 480.0-483.0 3 gravas 376 297 232 2.1E+0 14

40

SONDEO MADRIGAL 3

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 60 Limos - Arcillas

2 60 - 80 Arcillas - Arenas

3 80 - 120 Gravas - Limos

4 120 - 160 Arenas - Arcillas

5 160 - 180 Gravas

6 180 - 230 Gravas - Limos

7 230 - 250 Arcillas

8 250 - 305 Gravas - Limos

9 305 - 340 Arenas - Arcillas

10 340 - 405 Arenas - Limos

11 405 - 440 Arenas - Arcillas

12 440 - 505 Arcillas - Gravas

13 505 - 540 Arcillas - Arenas

14 540 - 565 Arcillas

15 565 - 585 Arenas - Arcillas

41

SONDEO FUENTELSOL 1 (piezómetro)

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 108.0-110.0 2 arena-arcilla 375 295 95 1.1E-4 20

2 116.0-118.0 2 arenas 383 304 109 1.5E-3 20

3 132.0-142.0 10 gravas 426 340 137 4.8E-1 17

4 164.0-166.0 2 arenas 415 329 105 3.0E-3 20

5 168.0-170.0 2 arena-arcilla 422 335 74 1.6E-4 23

6 176.0-180.0 4 arenas 442 356 98 3.0E-3 19

7 214.0-226.0 12 limos 389 307 80 9.1E-4 12

8 236.0-240.0 4 gravas 398 315 104 1.3E-3 3

9 249.0-253.0 4 gravas 442 356 115 7.6E-2 5

10 258.0-260.0 2 gravas 437 352 135 4.6E-1 6

11 275.0-279.0 4 gravas 443 357 184 1.6E+0 0

12 298.0-302.0 4 arenas 423 338 123 7.6E-2 10

13 338.0-344.0 6 arena-arcilla 401 318 86 2.5E-4 22

14 353.0-355.0 2 arena-arcilla 560 448 66 1.1E-4 16

15 366.0-370.0 4 arenas 567 452 63 9.8E-3 24

42

SONDEO FUENTELSOL 1 (piezómetro)

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 20 - 80 Limos - Arcillas

2 80 – 120 Arenas - Arcillas

3 120 – 155 Gravas - Arenas

4 155 – 180 Arenas - Arcillas

5 180 - 210 Arcillas

6 210 - 265 Gravas - Limos

7 265 - 275 Limos

8 275 - 280 Gravas

9 280 - 290 Limos

10 290 - 360 Gravas - Limos

11 360 - 425 Limos - Arcillas

12 425 - 460 Arenas - Limos

13 460 - 490 Arcillas

14 490 - 530 Limos - Arcillas

43

SONDEO FUENTELSOL 2 (sondeo)

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 106.0-108.0 2 arena-arcilla 464 376 62 1.2E-4 19

2 127.0-129.0 2 arena-arcilla 465 377 49 1.0E-4 30

3 134.0-146.0 12 gravas 503 402 122 7.3E-1 18

4 167.0-169.0 2 gravas 455 370 135 2.6E-1 15

5 178.0-184.0 6 grava-arena 457 372 81 4.3E-2 22

6 188.0-192.0 4 arenas 472 382 117 8.7E-2 9

7 218.0-220.0 2 limos 388 307 94 1.4E-4 4

8 227.0-229.0 2 arenas 382 303 116 4.2E-3 17

9 246.0-248.0 2 arenas 389 308 125 1.6E-2 16

10 254.0-256.0 2 limos 428 341 77 1.3E-4 8

11 261.0-263.0 2 arenas 415 328 124 3.6E-2 2

12 266.0-268.0 2 limos 377 297 88 1.3E-4 0

13 278.0-282.0 4 gravas 434 347 139 1.1E+0 3

14 296.0-298.0 2 arena-arcilla 418 330 86 1.6E-4 20

15 304.0-308.0 4 arenas 427 341 106 1.7E-1 19

16 311.0-313.0 2 limos 427 340 88 1.8E-4 18

17 317.0-319.0 2 arenas 438 353 109 1.3E-2 23

18 342.0-344.0 2 gravas 457 372 163 1.4E+0 14

19 346.0-348.0 2 gravas 415 328 159 4.7E-1 10

20 364.0-366.0 2 limos 509 407 75 2.7E-4 19

44

SONDEO FUENTELSOL 2 (sondeo)

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 20 - 75 Limos - Arcillas

2 75 - 125 Arenas - Arcillas

3 125 - 145 Gravas - Arenas

4 145 - 165 Arcillas

5 165 - 200 Arenas - Arcillas

6 200 - 215 Arcillas

7 215 - 265 Gravas - Limos

8 265 - 275 Limos

9 275 - 285 Gravas

10 285 - 290 Limos

11 290 - 320 Gravas - Limos

12 320 - 340 Limos - Arcillas

13 340 - 395 Arenas - Limos

14 395 - 425 Limos - Arcillas

15 425 - 450 Arenas - Limos

45

SONDEO MORAÑA 1 (piezómetro)

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 73.0-77.0 4 arenas 448 363 106 1.2E-2 17

2 97.0-99.0 2 arenas 392 311 111 3.2E-3 25

3 102.0-104.0 2 arena-arcilla 425 338 90 2.5E-4 32

4 108.0-110.0 2 arena-arcilla 368 289 96 1.2E-4 22

5 116.0-118.0 2 arenas 411 326 109 5.2E-3 19

6 127.0-129.0 2 arenas 405 321 137 9.3E-2 16

7 133.0-137.0 2 arenas 415 329 159 4.7E-1 10

8 150.0-154.0 4 arenas 403 320 122 2.2E-2 21

9 156.0-158.0 2 arenas 391 310 153 2.1E-1 12

10 168.0-172.0 4 arena-arcilla 419 332 87 2.0E-4 24

11 179.0-187.0 8 arenas 374 295 132 5.6E-2 28

12 209.0-211.0 2 arena-arcilla 425 339 99 1.6E-3 17

13 236.0-238.0 2 limos 444 358 80 1.2E-4 9

14 245.0-247.0 2 arenas 426 339 108 7.3E-3 6

15 253.0-255.0 2 arenas 404 319 103 2.9E-3 21

16 259.0-261.0 2 arenas 437 351 111 1.8E-2 14

17 298.0-304.0 6 gravas 465 373 128 8.3E-1 5

18 340.0-342.0 2 arenas 472 382 91 2.4E-3 16

19 359.0-361.0 2 arenas 472 382 129 2.4E-1 18

20 369.0-371.0 2 gravas 549 440 120 4.5E-1 12

21 409.0-411.0 2 arenas 541 432 96 4.0E-2 13

22 422.0-424.0 2 arenas 470 380 97 6.8E-3 26

23 438.0-440.0 2 arenas 437 351 110 1.5E-1 21

24 447.0-449.0 2 limos 450 365 83 1.6E-4 14

25 487.0-489.0 2 limos 570 462 78 1.0E-4 15

26 502.0-508.0 6 gravas 635 509 129 1.8E+0 11

27 512.0-518.0 6 gravas 590 475 128 1.1E+0 10

28 524.0-528.0 4 arena 527 420 82 8.0E-2 12

29 533.0-535.0 2 arena 519 413 105 8.5E-2 13

30 541.0-543.0 2 arena 530 423 108 1.2E-1 11

46

SONDEO MORAÑA 1 (piezómetro)

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 20 - 55 Limos - Arcillas

2 55 - 80 Arenas - Limos

3 80 - 115 Arenas - Arcillas

4 115 - 140 Arenas - Gravas

5 140 - 150 Arcillas

6 150 - 190 Arenas - Arcillas

7 190 - 230 Limos - Arcillas

8 230 - 265 Arenas - Limos

9 265 - 295 Arcillas - Limos

10 295 - 305 Gravas

11 305 - 340 Arcillas - Limos

12 340 - 375 Arenas - Limos

13 375 - 405 Arcillas - Limos

14 405 - 450 Arenas - Arcillas

15 450 - 485 Arcillas - Limos

16 485 - 530 Gravas - Limos

17 530 - 585 Arcillas

18 585 - 600 Limos - Arenas

47

SONDEO MORAÑA 2 (sondeo)

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 58.0-60.0 2 arena-arcilla 397 314 88 1.6E-4 35

2 74.0-78.0 4 arena-arcilla 420 333 83 1.2E-4 47

3 101.0-103.0 2 arena-arcilla 395 313 88 1.2E-4 34

4 108.0-110.0 2 gravas 392 311 138 1.2E-1 39

5 122.5-124.5 2 arenas 411 325 106 3.2E-3 28

6 142.0-146.0 4 arenas 415 329 100 1.5E-3 38

7 163.0-165.0 2 arenas 415 329 97 7.4E-4 40

8 167.0-171.0 4 arenas 435 350 85 2.0E-3 37

9 183.0-187.0 4 gravas 431 345 136 1.8E-1 42

10 208.0-210.0 2 arena-arcilla 466 378 80 1.4E-4 39

11 219.0-221.0 2 arena-arcilla 449 365 86 3.3E-4 35

12 243.0-245.0 2 limos 422 336 85 1.2E-4 12

13 248.0-250.0 2 arenas 424 337 130 8.6E-2 16

14 265.0-267.0 2 limos 453 368 81 1.1E-4 12

15 302.0-308.0 6 arenas 410 326 104 2.1E-2 1

16 336.0-338.0 2 limos 518 415 73 2.0E-4 10

17 352.0-354.0 2 arenas 476 384 117 9.6E-2 13

18 383.0-385.0 2 limos 389 308 78 1.1E-4 4

19 401.0-403.0 2 gravas 432 346 145 3.1E-1 11

20 421.0-423.0 2 arenas 518 415 106 7.7E-2 29

21 439.0-441.0 2 arenas 465 377 99 7.4E-3 18

22 444.0-448.0 4 arenas 465 377 133 4.8E-1 17

23 487.5-491.5 4 arenas 628 503 97 2.4E-1 15

24 504.5-510.5 6 gravas 553 445 128 1.5E+0 9

25 514.0-516.0 2 gravas 570 457 210 3.5E+0 1

26 522.0-528.0 6 arenas 495 398 90 2.5E-2 8

27 534.0-538.0 4 arenas 696 586 76 8.3E-2 13

28 595.0-599.0 4 arenas 504 401 67 1.9E-3 4

29 601.0-603.0 2 arenas 594 493 76 3.8E-3 8

30 608.0-610.0 2 arenas 582 480 74 3.1E-3 16

48

SONDEO MORAÑA 2 (sondeo)

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 55 Limos - Arcillas

2 55 - 80 Arenas - Limos

3 80 - 105 Arenas - Arcillas

4 105 - 145 Arenas - Gravas

5 145 - 160 Arcillas

6 160 - 180 Arenas - Arcillas

7 180 - 240 Limos - Arcillas

8 240 - 265 Arenas - Limos

9 265 - 295 Arcillas - Limos

10 295 - 310 Gravas

11 310 - 345 Arcillas - Limos

12 345 - 365 Arenas - Limos

13 365 - 400 Arcillas - Limos

14 400 - 450 Arenas - Arcillas

15 450 - 485 Arcillas - Limos

16 485 - 530 Gravas - Limos

17 530 - 590 Arcillas

18 590 - 620 Arenas - Limos

49

SONDEO GODA

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 80.0-82.0 2 arenas 858 694 85 9.3E-1 11

2 126.0-128.0 2 arenas 731 589 73 6.3E-2 14

3 136.5-138.5 2 arenas 665 533 71 1.1E-2 17

4 145.5-147.5 2 arenas 651 522 92 2.1E-1 2

5 201.0-205.0 4 arenas 673 540 89 2.0E-1 11

6 219.5-221.5 2 arenas 674 540 107 8.7E-1 14

7 231.0-233.0 2 arenas 637 509 102 4.1E-1 10

8 259.0-261.0 2 arenas 632 505 103 4.1E-1 8

9 266.0-268.0 2 arenas 643 515 79 2.9E-2 7

10 272.5-276.5 4 limos 647 518 56 1.2E-4 12

11 295.0-297.0 2 arenas 835 676 96 1.5E+0 2

12 382.5-385.0 2 arenas 625 500 72 4.8E-3 9

13 385.0-386.5 2 gravas 868 700 166 2.9E+0 0

14 391.5-393.5 2 gravas 778 629 104 1.6E+0 2

15 400.5-402.5 2 gravas 907 730 137 3.5E+0 0

16 446.5-448.5 2 gravas 643 515 114 9.6E-1 1

17 454.0-458.0 4 gravas 629 503 122 1.3E+0 7

18 481.0-483.0 2 gravas 662 531 112 1.0E+0 1

50

SONDEO GODA

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 100 Gravas - Limos

2 100 - 110 Arenas - Arcillas

3 110 - 160 Arenas - Limos

4 160 - 175 Arcillas - Limos

5 175 - 225 Arenas - Limos

6 225 - 260 Limos - Arcillas

7 260 - 280 Arenas - Arcillas

8 280 - 295 Arcillas

9 295 - 320 Gravas - Limos

10 320 - 345 Limos - Arcillas

11 345 - 360 Arenas - Limos

12 360 - 375 Limos - Arcillas

13 375 -405 Gravas - Limos

14 405 -445 Limos - Arcillas

15 445 - 490 Arenas - Limos

16 490 - 500 Limos - Arcillas

51

SONDEO ALDEASECA (sondeo)

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 238.0-240.0 2 arenas 387 306 98 1.3E-2 15

2 259.0-261.0 2 arena-aecilla 432 345 72 1.0E-3 24

3 266.0-268.0 2 arena-arcilla 401 317 67 1.2E-4 29

4 299.0-301.0 2 arenas 338 264 94 1.3E-3 14

5 304.0-306.0 2 arenas 350 274 118 2.8E-2 5

6 311.0-313.0 2 arena-arcilla 376 296 77 2.9E-4 26

7 332.0-334.0 2 arenas 382 302 82 1.1E-3 9

8 343.0-345.0 2 arenas 381 301 112 4.5E-2 6

9 351.5-353.5 2 limos 390 309 62 1.2E-4 2

10 379.0-381.0 2 arenas 395 313 96 2.6E-2 6

11 394.0-396.0 2 arenas 411 325 78 1.6E-3 0

12 399.0-401.0 2 arenas 477 385 72 3.6E-3 8

13 412.0-414.0 2 arenas 393 311 116 6.9E-2 6

14 423.0-425.0 2 arenas 438 351 72 1.1E-3 16

15 432.0-434.0 2 arenas 471 380 99 7.7E-2 2

16 448.5-450.5 2 arenas 435 349 91 2.0E-2 3

17 488.5-492.5 4 arenas 629 503 72 6.5E-2 16

18 500.0-502.0 2 arenas 563 450 97 2.2E-1 4

19 509.5-511.5 2 arenas 655 525 68 5.5E-2 6

20 519.0-521.0 2 arenas 610 487 113 6.3E-1 1

21 531.0-533.0 2 arenas 664 532 83 2.4E-1 3

52

SONDEO ALDEASECA (sondeo)

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 220 - 255 Arenas - Limos

2 255 - 295 Limos - Arenas

3 295 - 320 Gravas - Limos

4 320 - 330 Arcillas

5 330 - 345 Gravas - Limos

6 345 - 375 Limos - Arcillas

7 375 - 405 Arenas - Limos

8 405 - 425 Arenas - Arcillas

9 425 - 455 Arenas - Limos

10 455 - 485 Limos - Arcillas

11 485 - 495 Gravas - Limos

12 495 - 505 Arenas - Arcillas

13 505 - 540 Gravas - Arcillas

53

SONDEO LANGA

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 52.0-56.0 4 gravas 384 305 170 2.5E+0 18

2 62.4-68.4 6 gravas 363 285 100 2.1E-1 22

3 76.8-78.8 2 arena-arcilla 384 305 71 2.5E-4 20

4 82.4-84.4 2 arena-arcilla 384 305 71 2.8E-4 17

5 116.8-120.8 4 gravas 384 305 114 2.6E-1 15

6 133.8-135.8 2 gravas 363 285 126 5.8E-1 18

7 172.4-176.4 4 gravas 384 305 100 2.6E-1 11

8 179.4-181.4 2 arenas 416 330 91 2.1E-2 4

9 190.0-192.0 2 gravas 344 270 133 8.3E-1 3

10 194.2-196.2 2 gravas 454 370 132 7.9E-1 13

11 206.4-208.4 2 arenas 454 370 86 9.3E-3 6

12 219.8-221.8 2 arenas 454 370 82 4.4E-3 10

13 237.3-239.3 2 arenas 384 305 77 1.4E-3 4

14 252.6-254.6 2 limos 476 380 76 9.2E-4 10

15 264.0-266.0 2 arenas 476 380 107 1.4E-1 10

16 303.6-307.6 4 gravas 384 305 153 1.8E+0 10

17 336.0-340.0 4 arenas 476 380 92 2.4E-2 12

18 354.4-358.4 4 arenas 476 380 98 5.1E-2 11

19 368.0-370.0 2 arenas 416 330 103 9.0E-2 5

20 371.6-373.6 2 arenas 416 330 115 2.9E-1 2

21 379.2-381.2 2 limos 476 380 69 1.5E-4 14

22 384.6-386.6 2 limos 454 370 75 8.9E-4 2

23 388.8-392.8 4 limos 500 400 68 1.6E-4 8

24 411.4-413.4 2 limos 476 380 64 1.0E-4 7

25 419.0-423.0 4 arenas 526 425 95 3.4E-2 6

26 428.8-430.8 2 arenas 526 425 91 2.2E-2 9

27 440.8-444.8 4 arenas 571 450 112 2.1E-1 0

28 498.4-500.4 2 arenas 526 425 92 2.4E-2 2

29 502.4-504.4 2 limos 571 450 72 3.6E-4 4

30 508.6-510.6 2 arenas 571 450 105 1.1E-1 1

31 519.2-521.2 2 arenas 625 500 89 1.4E-2 12

54

SONDEO LANGA

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 25 - 50 Limos - Arcillas

2 50 - 75 Gravas - Arenas

3 75 - 110 Arenas - Arcillas

4 110 - 145 Gravas - Limos

5 145 - 170 Arcillas

6 170 - 210 Gravas - Limos

7 210 - 260 Limos - Arcillas

8 260 - 275 Arenas - Limos

9 275 - 305 Arcillas

10 305 - 335 Arenas - Gravas

11 335 - 365 Arenas - Arcillas

12 365 - 395 Arenas - Limos

13 395 - 420 Arcillas - Limos

14 420 - 450 Arenas - Limos

15 450 - 490 Arcillas - Limos

16 490 - 520 Arenas - Arcillas

17 520 - 550 Arcillas

18 550 - 585 Limos - Arcillas

55

SONDEO NAVA DE AREVALO

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 75.5-77.5 2 arenas 481 387 114 8.1E-2 5

2 80.5-82.5 2 gravas 494 396 166 1.7E+0 20

3 127.0-129.0 2 limos 475 383 85 7.3E-4 11

4 141.0-143.0 2 arenas 467 378 105 2.1E-2 15

5 152.0-154.0 2 arenas 465 373 111 5.4E-2 0

6 156.5-158.5 2 arenas 465 372 75 2.6E-3 22

7 175.5-177.5 2 arenas 457 372 101 7.8E-3 11

8 199.5-201.5 2 limos 455 369 74 1.1E-4 12

9 217.0-219.0 2 limos 437 350 85 1.3E-4 15

10 234.0-236.0 2 limos 415 328 74 1.2E-4 10

11 243.5-245.5 2 arenas 482 388 104 2.6E-2 11

12 289.0-291.0 2 arenas 495 397 106 4.7E-2 18

13 306.0-308.0 2 arenas 480 386 107 4.6E-2 25

14 358.0-360.0 2 arenas 448 357 127 1.3E-1 11

15 365.0-367.0 2 arenas 382 303 120 8.7E-2 13

16 370.0-372.0 2 arenas 406 322 143 1.5E-1 15

17 379.0-381.0 2 gravas 461 374 155 8.0E-1 11

18 383.5-385.5 2 arenas 465 377 133 2.7E-1 21

19 387.5-389.5 2 gravas 470 380 161 1.2E+0 14

20 437.0-439.0 2 arenas

21 457.0-459.0 2 arenas

22 463.5-465.5 2 arenas

23 468.0-470.0 2 arenas

24 485.5-487.5 2 arenas

Los datos correspondientes a los niveles situados a mas de 410 metros de profundidad no se han reflejado por no haberse realizado el registro de G.N. por debajo de dicha profundidad.

56

SONDEO NAVA DE AREVALO

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 25 - 65 Limos - Arcillas

2 65 - 90 Arenas - Gravas

3 90 - 140 Arenas - Arcillas

4 140 - 180 Arenas - Limos

5 180 - 205 Arcillas

6 205 - 260 Arenas - Arcillas

7 260 - 285 Limos - Arcillas

8 285 - 315 Arenas - Limos

9 315 - 355 Arcillas

10 355 - 390 Gravas - Limos

11 390 - 435 Limos - Arcillas

12 435 - 475 Arenas - Arcillas

13 475 - 495 Limos

57

SONDEO COCA 1

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 95.0-97.0 2 arenas 666 534 108 8.4E-1 37

2 144.0-146.0 2 arenas 548 439 81 4.1E-3 41

3 165.0-167.0 2 gravas 503 402 165 1.8E+0 20

4 178.0-180.0 2 gravas 524 419 200 3.3E+0 15

5 183.5-185.5 2 arenas 526 420 90 1.2E-2 15

6 251.5-253.5 2 arenas 602 482 84 2.8E-2 18

7 262.0-264.0 2 gravas 283 220 257 9.2E-1 5

8 266.0-268.0 2 arenas 416 329 144 2.0E-1 0

9 278.0-280.0 2 arenas 445 359 129 1.3E-1 25

10 281.5-283.5 2 arenas 461 374 124 1.3E-1 19

11 287.0-289.0 2 gravas 326 256 226 9.8E-1 21

12 334.0-338.0 4 arenas 428 342 119 3.2E-2 14

13 376.0-380.0 4 arenas 572 458 100 1.5E-1 3

14 384.0-388.0 4 gravas 217 180 396 2.0E+0 4

58

SONDEO COCA 1

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 30 - 70 Arenas - Limos

2 70 - 90 Limos

3 90 - 115 Gravas - Limos

4 115 - 145 Limos - Arcillas

5 145 - 195 Gravas - Limos

6 195 - 255 Arenas - Arcillas

7 255 - 295 Gravas - Limos

8 295 - 325 Arenas - Arcillas

9 325 - 345 Arenas - Limos

10 345 - 365 Limos - Arcillas

11 365 - 390 Gravas - Limos

12 390 - 435 Limos - Arcillas

13 435 - 450 Arenas - Limos

59

SONDEO COCA 2

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 129.0-131.0 2 arenas 469 380 93 3.0E-3 35

2 159.0-161.0 2 arenas 522 417 84 3.2E-3 35

3 214.5-218.5 4 gravas 476 384 182 2.1E+0 2

4 233.5-235.5 2 arenas 506 405 99 2.7E-2 3

5 259.5-263.5 4 gravas 415 328 200 1.8E+0 0

6 299.5-303.5 4 arenas 516 413 98 1.2E-1 21

7 316.0-320.0 4 arenas 491 394 98 1.7E-2 22

8 361.5-365.5 4 gravas 341 266 251 1.9E+0 7

9 383.5-385.5 2 arenas 522 417 97 3.0E-2 10

10 392.5-394.5 2 arenas 474 382 114 6.9E-2 13

11 423.0-425.0 2 arenas 506 405 118 1.9E-1 2

60

SONDEO COCA 2

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 25 - 65 Gravas - Limos

2 65 - 90 Limos

3 90 - 105 Arenas - Limos

4 105 - 120 Limos

5 120 - 180 Arenas - Limos

6 180 - 210 Arenas - Arcillas

7 210 - 240 Gravas - Arenas

8 240 - 255 Arcillas - Limos

9 255 - 280 Gravas - Limos

10 280 - 300 Arcillas

11 300 - 320 Arenas - Limos

12 320 - 355 Limos - Arcillas

13 355 - 370 Gravas - Limos

14 370 - 420 Arenas - Arcillas

15 420 - 435 Arenas - Limos

16 435 - 450 Limos

61

SONDEO ADANERO

Zonas recomendadas para la colocación de tubería filtrante

Agua de la formación

Nº Intervalo (m)

Esp (m) Litología σ

(µS/cm) T.S.D. (ppm)

Ro (Ω⋅m)

K (cm/sg)

Arcilla (%)

1 70.0-74.0 4 gravas 626 501 103 9.7E-1 26

2 125.0-127.0 2 arenas 624 498 68 1.7E-3 3

3 153.5-155.5 2 arenas 595 475 95 1.1E-1 0

4 158.0-160.0 2 arenas 588 471 92 6.5E-2 13

5 217.0-219.0 2 arenas 578 462 136 1.4E+0 21

6 278.5-280.5 2 arenas 606 485 80 1.8E-2 5

7 282.0-284.0 2 gravas 545 436 128 6.8E-1 5

8 294.0-296.0 2 gravas 532 425 142 1.1E+0 2

9 309.0-311.0 2 arenas 565 452 114 3.9E-1 10

10 380.0-382.0 2 arenas 598 478 91 7.6E-2 17

11 388.0-390.0 2 arenas 559 448 119 5.0E-1 6

12 401.0-403.0 2 arenas 559 447 114 3.6E-1 5

13 411.0-413.0 2 gravas 526 420 163 2.0E+0 8

14 420.0-422.0 2 arenas 616 493 86 5.5E-2 22

15 423.0-425.0 2 gravas 560 449 142 1.5E+0 16

16 436.5-438.5 2 arenas 609 487 88 5.9E-2 5

17 440.0-442.0 2 arenas 591 472 99 1.5E-1 5

18 459.5-461.5 2 arena-arcilla 598 480 84 2.5E-2 36

62

SONDEO ADANERO

Tramos Litológicos Determinados

Tramo Intervalo Caracterización

1 25 - 60 Limos - Arcillas

2 60 - 80 Gravas - Limos

3 80 - 120 Limos - Arcillas

4 120 - 155 Arenas - Limos

5 155 - 165 Arcillas

6 165 - 215 Arenas - Arcillas

7 215 - 230 Gravas - Limos

8 230 - 275 Limos - Arcillas

9 275 - 330 Gravas - Limos

10 330 - 365 Limos - Arcillas

11 365 - 405 Gravas - limos

12 405 - 455 Limos - Arcillas

13 455 - 470 Arenas

63

2. GRANULOMETRÍAS Los ensayos granulométricos facilitados se realizaron sobre las muestras de

detritos de seis de los sondeos estudiados, con la serie de tamices, en milímetros,

siguiente:

20.0 10.0 5.00 2.00 1.00 0.50 0.20 0.10 0.05 0.02

Como resultados de dichas granulometrías se entregaron los datos de coeficiente

de uniformidad y tamaño efectivo de las muestras, cuyos valores medios se

presenta en la siguiente tabla:

ESTUDIOS GRANULOMÉTRICOS

NOMBRE DEL SONDEO COEFICIENTE DE UNIFORMIDAD (D40%/D90%)

TAMAÑO EFECTIVO (D90%)

FUENTE EL SOL 2 4.249 0.882

GUAREÑA 2.202 0.970

MORAÑA 2 (San esteban de Zapardiel) 2.960 0.768

MORAÑA 1 (San esteban de Zapardiel) 2.703 0.747

ALDEASECA 5.241 0.381

PIEZÓMETRO DE ALDEASECA 5.632 0.391

VALORES PROMEDIOS 3.831 0.690

Los valores de tamaño efectivo oscilan entre 0.3 y 2.6, y los coeficientes de

uniformidad varían de 1.5 a 10.5, lo cuál representa una fuerte dispersión de los

valores.

A continuación aparecen los resultados obtenidos en cada uno de los sondeos y en

cuyas tablas se ha añadido los valores de permeabilidad estimados por el autor.

64

SONDEO FUENTE EL SOL 2 (sondeo)

MUESTRA COEFICIENTE DE UNIFORMIDAD d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

88 8,398 0,479 0,034

91 5,601 1,307 0,381

94 3,919 1,307 0,545

97 4,883 0,846 0,183

99 6,324 1,615 0,516

102 5,337 0,923 0,200

114 2,088 0,884 0,468

117 3,112 1,038 0,433

127 2,506 0,769 0,295

129 1,533 0,692 0,391

131 4,541 1,154 0,367

134 3,102 1,196 0,576

137 6,975 1,769 0,561

139 10,217 1,382 0,234

143 7,912 1,231 0,239

146 2,837 1,846 1,501

149 2,419 0,763 0,301

151 5,050 1,230 0,375

154 4,546 0,812 0,181

157 4,822 0,360 0,034

161 3,760 0,450 0,067

171 4,186 0,961 0,276

175 4,490 0,469 0,061

178 3,087 0,692 0,194

181 1,988 0,692 0,301

184 2,556 0,692 0,234

186 2,751 0,615 0,172

189 2,445 0,692 0,245

192 2,096 0,807 0,388

195 3,691 0,369 0,046

201 3,670 0,440 0,066

206 2,565 0,531 0,137

229 2,192 0,807 0,371

237 6,763 0,621 0,071

265 6,342 0,412 0,033

65

SONDEO GUAREÑA

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

200 1,704 1,540 1,740

230 2,045 2,601 4,135

276 1,750 1,120 0,896

288 2,005 0,808 0,407

290 2,005 0,808 0,407

292 2,005 0,808 0,407

294 2,005 0,808 0,407

295 2,005 0,808 0,407

305 2,623 0,500 0,119

308 2,166 0,923 0,492

314 2,260 0,882 0,430

320 1,939 0,952 0,584

323 1,855 0,962 0,624

325 1,683 0,914 0,621

327 1,862 0,954 0,611

329 2,489 0,916 0,421

331 2,969 1,347 0,764

332 1,978 0,875 0,484

335 1,907 0,912 0,545

341 2,366 0,770 0,313

343 2,666 0,962 0,434

345 2,765 0,992 0,445

353 2,157 0,731 0,310

354 2,557 0,692 0,234

356 2,017 0,923 0,528

358 2,510 0,923 0,424

360 2,306 0,912 0,451

368 2,249 0,650 0,235

66

SONDEO GUAREÑA (Continuación)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

375 2,039 0,962 0,567

384 2,318 0,770 0,320

389 2,899 0,942 0,383

395 2,406 0,981 0,500

434 2,654 1,000 0,471

436 3,030 0,990 0,404

440 2,334 1,000 0,536

444 2,511 1,077 0,577

451 1,933 1,154 0,861

455 2,105 0,731 0,317

480 1,596 0,885 0,613

482 2,182 0,846 0,410

488 2,429 1,077 0,597

494 1,869 1,000 0,669

495 2,152 1,054 0,645

498 1,563 1,231 1,212

67

SONDEO ALDEASECA (piezómetro)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

76 2,554 0,693 0,235

78 2,639 0,962 0,438

92 3,763 0,460 0,070

96 2,243 0,789 0,347

98 2,705 0,654 0,198

100 2,621 0,499 0,119

109 5,000 0,277 0,019

121 2,822 0,654 0,189

126 3,199 0,577 0,130

129 4,889 0,354 0,032

142 7,769 0,208 0,007

146 7,812 0,197 0,006

162 3,215 0,654 0,166

170 2,952 0,503 0,107

173 2,263 0,615 0,209

182 7,373 0,193 0,006

190 8,720 0,193 0,005

195 7,690 0,210 0,007

204 6,462 0,420 0,034

207 5,194 0,252 0,015

210 2,420 0,782 0,316

213 4,915 0,307 0,024

223 3,821 0,483 0,076

228 3,529 0,436 0,067

251 2,319 0,796 0,342

254 2,996 0,616 0,158

256 3,840 0,808 0,213

260 4,040 0,400 0,050

68

SONDEO ALDEASECA (piezómetro) (Continuación)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

266 7,059 0,218 0,008

271 2,750 0,923 0,387

278 7,462 0,201 0,007

282 4,859 0,277 0,020

288 7,645 0,161 0,004

291 6,486 0,216 0,009

298 8,525 0,154 0,004

306 5,833 0,277 0,016

332 5,693 0,277 0,017

341 9,276 0,170 0,004

346 6,300 0,293 0,017

350 7,940 0,217 0,007

381 5,218 0,339 0,028

387 10,613 0,158 0,003

401 10,240 0,154 0,003

405 8,772 0,193 0,005

408 10,240 0,154 0,003

411 9,753 0,138 0,002

420 11,200 0,158 0,003

439 6,321 0,292 0,017

446 5,874 0,262 0,015

474 6,626 0,209 0,008

511 5,238 0,323 0,025

513 2,273 0,846 0,394

516 8,244 0,196 0,006

524 2,926 0,460 0,090

528 3,822 0,463 0,070

538 8,416 0,192 0,006

69

SONDEO ALDEASECA

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

95 6,003 0,269 0,015

120 5,112 0,346 0,029

125 2,998 0,616 0,158

133 7,225 0,213 0,008

146 3,659 0,473 0,076

150 7,476 0,216 0,008

160 3,182 0,532 0,111

171 3,136 0,616 0,151

176 4,197 0,385 0,044

207 6,111 0,277 0,016

212 5,119 0,293 0,021

236 6,293 0,269 0,014

239 6,293 0,269 0,014

246 5,013 0,307 0,024

247 7,812 0,197 0,006

253 7,960 0,203 0,007

260 6,737 0,217 0,009

267 7,827 0,226 0,008

286 7,109 0,211 0,008

308 6,720 0,229 0,010

312 7,618 0,207 0,007

315 8,979 0,197 0,005

317 8,126 0,213 0,007

330 10,493 0,154 0,003

335 4,994 0,339 0,029

345 7,201 0,203 0,007

353 7,651 0,181 0,005

362 4,148 0,370 0,041

70

SONDEO ALDEASECA (Continuación)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

369 7,183 0,191 0,006

379 5,615 0,315 0,022

381 2,573 0,821 0,327

385 6,992 0,253 0,011

388 4,387 0,421 0,051

390 4,097 0,338 0,035

393 5,212 0,310 0,023

395 2,087 0,885 0,469

400 8,641 0,187 0,005

413 2,456 0,736 0,276

421 4,004 0,413 0,053

437 2,623 0,616 0,181

441 2,871 0,616 0,165

444 5,013 0,307 0,024

450 2,820 0,573 0,146

461 2,890 0,532 0,122

464 2,600 0,621 0,185

467 3,026 0,534 0,118

475 7,050 0,197 0,007

483 5,096 0,302 0,022

489 3,156 0,577 0,132

493 2,934 0,209 0,019

502 3,562 0,432 0,066

508 2,753 0,615 0,172

510 7,974 0,193 0,006

518 1,941 0,872 0,490

531 2,556 0,692 0,234

538 8,373 0,193 0,006

542 3,037 0,532 0,117

71

MORAÑA 1 (piezómetro)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

78 2,390 0,679 0,241

98 2,400 0,769 0,308

103 2,697 0,713 0,236

109 2,179 0,847 0,412

117 2,556 0,692 0,234

119 2,796 0,619 0,171

124 2,047 0,808 0,399

129 2,091 0,846 0,428

143 2,689 0,615 0,176

146 2,284 0,808 0,357

151 3,502 0,615 0,135

165 2,402 0,846 0,372

169 2,137 0,846 0,419

176 6,565 0,246 0,012

185 2,559 0,962 0,452

192 3,836 0,440 0,063

196 3,065 0,577 0,136

200 2,799 0,577 0,149

206 3,524 0,393 0,055

209 2,500 0,769 0,296

213 2,091 0,846 0,428

221 1,885 0,885 0,519

245 1,998 0,923 0,533

250 2,667 0,923 0,399

258 3,002 0,615 0,158

261 2,333 0,692 0,257

267 2,556 0,692 0,234

280 2,100 1,769 1,863

72

SONDEO MORAÑA 1 (piezómetro) (Continuación)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

303 2,333 0,923 0,457

334 3,274 0,470 0,084

339 2,094 0,808 0,390

345 2,000 1,154 0,832

355 3,392 0,476 0,084

359 2,189 0,808 0,373

384 3,300 0,536 0,109

403 1,763 1,069 0,810

409 2,182 0,846 0,410

424 3,274 0,470 0,084

427 2,314 0,731 0,289

430 1,912 0,885 0,512

440 1,916 0,923 0,556

449 1,838 0,962 0,629

468 3,829 0,462 0,070

478 5,423 0,312 0,022

484 2,284 0,808 0,357

488 2,189 0,808 0,373

494 4,000 0,423 0,056

498 2,932 0,577 0,142

503 2,891 0,824 0,294

506 2,476 1,100 0,611

509 2,400 0,705 0,259

73

SONDEO MORAÑA 2 (sondeo)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

97 3,210 0,500 0,097

117 3,247 0,521 0,105

122 3,001 0,769 0,246

127 2,599 0,631 0,192

130 2,599 0,577 0,160

133 2,083 0,923 0,511

148 3,266 0,436 0,073

154 2,200 0,769 0,336

165 2,192 0,842 0,404

169 2,693 0,513 0,122

172 3,239 0,380 0,056

179 3,001 0,769 0,246

182 3,001 0,769 0,246

187 3,240 0,654 0,165

199 3,199 0,577 0,130

245 2,360 1,116 0,660

248 2,756 0,763 0,264

251 2,801 0,769 0,264

254 3,109 0,767 0,237

260 6,330 0,424 0,036

265 2,306 1,134 0,697

267 2,768 0,639 0,184

270 3,088 0,423 0,072

272 3,577 0,473 0,078

275 2,862 0,615 0,165

278 2,184 0,808 0,374

281 2,667 0,692 0,224

304 6,405 1,321 0,341

341 2,284 0,932 0,475

359 2,300 0,769 0,321

74

SONDEO MORAÑA 2 (sondeo) (Continuación)

MUESTRA COEFICIENTE DE UNIFORMIDAD

d40/d90

DIÁMETRO EFECTIVO d90 (mm)

PERMEABILIDAD (cm/sg)

361 2,062 0,923 0,516

371 3,329 1,123 0,474

377 4,886 0,362 0,034

383 4,364 0,423 0,051

386 5,113 0,301 0,022

398 4,119 0,392 0,047

408 2,300 0,769 0,321

414 2,500 0,769 0,296

430 3,829 0,462 0,070

433 1,919 0,962 0,603

436 3,065 0,615 0,154

441 2,200 0,769 0,336

449 2,172 0,885 0,451

458 5,743 0,308 0,021

484 2,180 0,846 0,410

490 2,239 0,962 0,517

493 2,707 1,023 0,483

507 2,091 0,846 0,428

510 3,466 1,154 0,480

518 1,956 1,093 0,763

525 2,292 1,077 0,633

529 2,573 1,136 0,627

538 1,916 0,923 0,556

548 2,381 0,969 0,493

593 1,916 0,923 0,556

597 3,159 0,974 0,375

600 2,546 0,846 0,351

602 2,000 0,923 0,533

610 2,209 0,731 0,302

621 3,850 1,354 0,595

75

3. ANÁLISIS DE AGUAS

Tanto para la ejecución de algunos procesos como para la comprobación de los

resultados ha sido necesario contar con la información aportada por los análisis de

aguas de 18 de los 27 sondeos estudiados en esta Tesis.

La mayoría de ellos han sido realizados por la empresa Centro de Análisis de Aguas,

S.A. (Murcia) y la muestras de agua se tomaron generalmente durante el transcurso

del primer año después de la realización de las testificaciones geofísicas.

Se presentan a continuación una serie de tablas con los datos más relevantes para

su utilización en esta Tesis, en un mismo formato para agilizar la revisión de los

mismos. En estas tablas aparecen, además de los datos de identificación y fecha de

la muestra, cuatro bloques con los distintos análisis realizados.

El primer bloque lo constituyen datos directamente relacionados con los registros

geofísicos, esto es, el total de sólidos disueltos (T.S.D.), la conductividad y el tipo

de agua. El segundo bloque presenta los resultados analíticos de los

macroconstituyentes, separados en cationes y aniones, y que pueden resultar muy

interesantes para la evaluación de la posibles anomalías en los valores de T.S.D.,

obtenidos vía geofísica.

A continuación se presentan otros datos de distinta índole como pH, SiO2 y % en

sodio y por último, la calificación según D.W. Thorne y H.B. Peterson, el Índice de

Scott y el S.A.R. ajustado.

76

ANÁLISIS DE AGUAS DEL SONDEO: GUAREÑA 6

FECHA: 22/04/88 EMPRESA: Ministerio de Agricultura. Sección Cartografía y Análisis de Suelos

Total de Sólidos Disueltos (p.p.m.) 427

Tipo de Agua Bicarbonatada (Ca,Na)

Conductividad (µS/cm) 670

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 144,0 Sodio (Na+) 108,0

Sulfatos (SO4=) 26,0 Magnesio (Mg++) 13,0

Bicarbonatos (CO3H−) 168,0 Calcio (Ca++) 34,0

Carbonatos (CO3=) -- Potasio (K+) 8,0

Nitratos (NO3−) --

OTROS DATOS

pH 7,3

SiO2 (mg/L) ---

% Sodio (cationes) ---

CALIFICACIÓN (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO 6,3

77

ANÁLISIS DE AGUAS DEL SONDEO: GUAREÑA 7

FECHA: 10/12/87 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 327,87

Tipo de Agua Bicarbonatada (Na,Mg,Ca)

Conductividad (µS/cm) 371,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 36,9 Sodio (Na+) 39,4

Sulfatos (SO4=) 3,1 Magnesio (Mg++) 12,2

Bicarbonatos (CO3H−) 192,8 Calcio (Ca++) 35,7

Carbonatos (CO3=) 0,0 Potasio (K+) 2,9

Nitratos (NO3−) 4,9

OTROS DATOS

pH 7,3

SiO2 (mg/L) 15,93

% Sodio (cationes) ---

CALIFICACIÓN (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO ---

78

ANÁLISIS DE AGUAS DEL SONDEO: GUAREÑA 8

FECHA: 22/12/87 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 277,40

Tipo de Agua Bicarbonatada (Na, Ca)

Conductividad (µS/cm) 283,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 22,7 Sodio (Na+) 34,7

Sulfatos (SO4=) 4,2 Magnesio (Mg++) 4,4

Bicarbonatos (CO3H−) 152,5 Calcio (Ca++) 36,1

Carbonatos (CO3=) 0,0 Potasio (K+) 2,6

Nitratos (NO3−) 19,9

OTROS DATOS

pH 7,56

SiO2 (mgr/L) 12,81

% Sodio (cationes) ---

CALIFICACION (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO ---

79

ANÁLISIS DE AGUAS DEL SONDEO: GUAREÑA 9

FECHA: 14/04/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 425,30

Tipo de Agua Bicarbonatada (Mg, Ca) algún sulfato

Conductividad (µS/cm) 388,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 14,9 Sodio (Na+) 6,7

Sulfatos (SO4=) 41,9 Magnesio (Mg++) 30,4

Bicarbonatos (CO3H−) 262,4 Calcio (Ca++) 60,5

Carbonatos (CO3=) 0,0 Potasio (K+) 0,7

Nitratos (NO3−) 7,8

OTROS DATOS

pH 7,6

SiO2 (mg/L) 7,08

% Sodio (cationes) 5,3

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S1 - Baja en Sodio

ÍNDICE DE SCOTT 137,01

S.A.R. AJUSTADO 0,39

80

ANÁLISIS DE AGUAS DEL SONDEO: TORRECILLA 3

FECHA: 16/12/86 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 350,09

Tipo de Agua Bicarbonatada (Na) algún sulfato

Conductividad (µS/cm) 287,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 28,4 Sodio (Na+) 73,5

Sulfatos (SO4=) 24,4 Magnesio (Mg++) 7,1

Bicarbonatos (CO3H−) 180,6 Calcio (Ca++) 12,8

Carbonatos (CO3=) 0,0 Potasio (K+) 12,6

Nitratos (NO3−) 10,7

OTROS DATOS

pH 7,63

SiO2 (mg/L) sin determinar

% Sodio (cationes) ---

CALIFICACIÓN (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO ---

81

ANÁLISIS DE AGUAS DEL SONDEO: ARMUÑA 3

FECHA: 03/12/86 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 526,99

Tipo de Agua Bicarbonatada (Ca, Mg)

Conductividad (µS/cm) 481,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 55,3 Sodio (Na+) 34,1

Sulfatos (SO4=) 10,1 Magnesio (Mg++) 28,2

Bicarbonatos (CO3H−) 306,3 Calcio (Ca++) 73,3

Carbonatos (CO3=) 0,0 Potasio (K+) 1,4

Nitratos (NO3−) 18,3

OTROS DATOS

pH 7,17

SiO2 (mg/L) sin determinar

% Sodio (cationes) ---

CALIFICACIÓN (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO ---

82

ANÁLISIS DE AGUAS DEL SONDEO: ARMUÑA 4

FECHA: 01/12/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 564,61

Tipo de Agua Bicarbonatada (Ca, Mg)

Conductividad (µS/cm) 635,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 39,7 Sodio (Na+) 34,1

Sulfatos (SO4=) 6,1 Magnesio (Mg++) 25,0

Bicarbonatos (CO3H−) 341,7 Calcio (Ca++) 83,4

Carbonatos (CO3=) 0,0 Potasio (K+) 1,5

Nitratos (NO3−) 33,1

OTROS DATOS

pH 7,58

SiO2 (mg/L) 37,13

% Sodio (cationes) ---

CALIFICACIÓN (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO ---

83

ANÁLISIS DE AGUAS DEL SONDEO: ARMUÑA 5

FECHA: 19/09/88 EMPRESA: Ministerio de Agricultura. Sección Cartografía y Análisis de Suelos

Total de Sólidos Disueltos (p.p.m.) 406

Tipo de Agua Bicarbonatada (Ca, Na, Mg)

Conductividad (µS/cm) 635,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 40,0 Sodio (Na+) 54,0

Sulfatos (SO4=) 62,0 Magnesio (Mg++) 27,0

Bicarbonatos (CO3H−) 268,0 Calcio (Ca++) 70,0

Carbonatos (CO3=) 0,0 Potasio (K+) 1,56

Nitratos (NO3−) 8,8

OTROS DATOS

pH 7,5

SiO2 (mg/L) sin determinar

% Sodio (cationes) ---

CALIFICACIÓN (Thorne/Peterson) C1 - S1 - baja en sodio

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO 0,98

84

ANÁLISIS DE AGUAS DEL SONDEO: ARMUÑA 6

FECHA: 23/12/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 615,0

Tipo de Agua Bicarbonatada (Ca, Na, Mg)

Conductividad (µS/cm) 599,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 29,8 Sodio (Na+) 32,1

Sulfatos (SO4=) 3,1 Magnesio (Mg++) 14,8

Bicarbonatos (CO3H−) 402,7 Calcio (Ca++) 109,4

Carbonatos (CO3=) 0,0 Potasio (K+) 1,5

Nitratos (NO3−) 21,5

OTROS DATOS

pH 7,42

SiO2 (mg/L) 37,56

% Sodio (cationes)

CALIFICACIÓN (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO ---

85

ANÁLISIS DE AGUAS DEL SONDEO: MADRIGAL 3

FECHA: 07/04/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 429,94

Tipo de Agua Bicarbonatada (Ca, Na, Mg)

Conductividad (µS/cm) 490,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 51,8 Sodio (Na+) 53,4

Sulfatos (SO4=) 6,1 Magnesio (Mg++) 13,6

Bicarbonatos (CO3H−) 236,8 Calcio (Ca++) 48,1

Carbonatos (CO3=) 0,0 Potasio (K+) 1,7

Nitratos (NO3−) 18,3

OTROS DATOS

pH 7,57

SiO2 (mg/L) 23,61

% Sodio (cationes) 40,21

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S1 - Baja en Sodio

ÍNDICE DE SCOTT 19,32

S.A.R. AJUSTADO 3,52

86

ANÁLISIS DE AGUAS DEL SONDEO: FUENTELSOL 1 (piezometro)

FECHA: 04/12/90 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 331,95

Tipo de Agua Bicarbonatada (Na, Mg)

Conductividad (µS/cm) 352,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 31,9 Sodio (Na+) 50,8

Sulfatos (SO4=) 9,6 Magnesio (Mg++) 16,1

Bicarbonatos (CO3H−) 209,9 Calcio (Ca++) 12,0

Carbonatos (CO3=) 0,0 Potasio (K+) 1,7

Nitratos (NO3−) 0,0

OTROS DATOS

pH 7,50

SiO2 (mg/L) 20,61

% Sodio (cationes) 53,97

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S1 - Baja en Sodio

ÍNDICE DE SCOTT 18,18

S.A.R. AJUSTADO 3,87

87

ANÁLISIS DE AGUAS DEL SONDEO: MORAÑA 2 (sondeo)

FECHA: 1990 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 340,36

Tipo de Agua Bicarbonatada (Na, Mg)

Conductividad (µS/cm) 389,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 28,4 Sodio (Na+) 73,5

Sulfatos (SO4=) 4,0 Magnesio (Mg++) 16,8

Bicarbonatos (CO3H−) 203,8 Calcio (Ca++) 2,4

Carbonatos (CO3=) 8,4 Potasio (K+) 1,0

Nitratos (NO3−) 2,1

OTROS DATOS

pH 8,32

SiO2 (mg/L) 17,84

% Sodio (cationes) 68,22

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S1 - Baja en Sodio

ÍNDICE DE SCOTT 10,56

S.A.R. AJUSTADO 5,98

88

ANÁLISIS DE AGUAS DEL SONDEO: GODA

FECHA: 14/06/89 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 469,10

Tipo de Agua Bicarbonatada (Na, Ca, Mg) (ClNa)

Conductividad (µS/cm) 647,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 114,9 Sodio (Na+) 93,5

Sulfatos (SO4=) 25,6 Magnesio (Mg++) 16,3

Bicarbonatos (CO3H−) 187,9 Calcio (Ca++) 25,3

Carbonatos (CO3=) 0,0 Potasio (K+) 3,5

Nitratos (NO3−) 2,1

OTROS DATOS

pH 7,89

SiO2 (mg/L) 20,71

% Sodio (cationes) 61,52

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S1 - Baja en Sodio

ÍNDICE DE SCOTT 14,47

S.A.R. AJUSTADO 6,31

89

ANÁLISIS DE AGUAS DEL SONDEO: ALDEASECA (sondeo)

FECHA: 03/10/90 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 382,48

Tipo de Agua Bicarbonatada (Na, Ca, Mg)

Conductividad (µS/cm) 479,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 34,0 Sodio (Na+) 49,4

Sulfatos (SO4=) 12,9 Magnesio (Mg++) 17,0

Bicarbonatos (CO3H−) 209,9 Calcio (Ca++) 32,1

Carbonatos (CO3=) 14,4 Potasio (K+) 0,5

Nitratos (NO3−) 12,2

OTROS DATOS

pH 8,44

SiO2 (mg/L) 18,48

% Sodio (cationes) 41,89

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S1 - Baja en Sodio

ÍNDICE DE SCOTT 20,07

S.A.R. AJUSTADO 3,43

90

ANÁLISIS DE AGUAS DEL SONDEO: LANGA

FECHA: 14/06/89 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 437,15

Tipo de Agua Bicarbonatada (Na, Ca, Mg) (ClNa)

Conductividad (µS/cm) 540,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 82,2 Sodio (Na+) 60,1

Sulfatos (SO4=) 15,0 Magnesio (Mg++) 22,6

Bicarbonatos (CO3H−) 211,1 Calcio (Ca++) 32,9

Carbonatos (CO3=) 0,0 Potasio (K+) 2,5

Nitratos (NO3−) 10,7

OTROS DATOS

pH 7,96

SiO2 (mg/L) 44,22

% Sodio (cationes) 43,35

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S1 - Baja en Sodio

ÍNDICE DE SCOTT 24,16

S.A.R. AJUSTADO 3,86

91

ANÁLISIS DE AGUAS DEL SONDEO: NAVA DE AREVALO

FECHA: 17/07/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 331,43

Tipo de Agua Bicarbonatada (Na)

Conductividad (µS/cm) 323,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 32,6 Sodio (Na+) 106,9

Sulfatos (SO4=) 3,1 Magnesio (Mg++) 0,7

Bicarbonatos (CO3H−) 153,8 Calcio (Ca++) 0,4

Carbonatos (CO3=) 16,8 Potasio (K+) 0,3

Nitratos (NO3−) 16,8

OTROS DATOS

pH 8,83

SiO2 (mg/L) 13,52

% Sodio (cationes) 98,31

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad Media S3 - Alta en Sodio

ÍNDICE DE SCOTT 6,96

S.A.R. AJUSTADO 6,48

92

ANÁLISIS DE AGUAS DEL SONDEO: COCA 1

FECHA: 23/12/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 316,65

Tipo de Agua Bicarbonatada (Na)

Conductividad (µS/cm) 352,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 21,3 Sodio (Na+) 88,2

Sulfatos (SO4=) 3,4 Magnesio (Mg++) 1,9

Bicarbonatos (CO3H−) 163,5 Calcio (Ca++) 4,8

Carbonatos (CO3=) 24,0 Potasio (K+) 0,2

Nitratos (NO3−) 9,3

OTROS DATOS

pH 9,24

SiO2 (mg/L) 14,06

% Sodio (cationes)

CALIFICACIÓN (Thorne/Peterson) ---

ÍNDICE DE SCOTT ---

S.A.R. AJUSTADO ---

93

ANÁLISIS DE AGUAS DEL SONDEO: COCA 1

FECHA: 17/07/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 331,08

Tipo de Agua Bicarbnatada (Na)

Conductividad (µS/cm) 355,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 24,1 Sodio (Na+) 85,5

Sulfatos (SO4=) 6,1 Magnesio (Mg++) 6,6

Bicarbonatos (CO3H−) 163,5 Calcio (Ca++) 4,4

Carbonatos (CO3=) 25,2 Potasio (K+) 0,4

Nitratos (NO3−) 15,2

OTROS DATOS

pH 9,36

SiO2 (mg/L) 18,29

% Sodio (cationes)

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad media S1 - Baja en sodio

ÍNDICE DE SCOTT 8,81

S.A.R. AJUSTADO 7,96

94

ANÁLISIS DE AGUAS DEL SONDEO: COCA 2

FECHA: 21/07/88 EMPRESA: Centro de Análisis de Aguas, S.A.

Total de Sólidos Disueltos (p.p.m.) 361,18

Tipo de Agua Bicarbonatada (Na)

Conductividad (µS/cm) 368,0

MACROCONSTITUYENTES (mg/L)

Cloruros (Cl−) 24,1 Sodio (Na+) 93,5

Sulfatos (SO4=) 6,1 Magnesio (Mg++) 1,2

Bicarbonatos (CO3H−) 224,5 Calcio (Ca++) 2,8

Carbonatos (CO3=) 0,0 Potasio (K+) 0,6

Nitratos (NO3−) 7,8

OTROS DATOS

pH 9,11

SiO2 (mg/L) 7,34

% Sodio (cationes) 94,45

CALIFICACIÓN (Thorne/Peterson) C2 - Salinidad media S2 - Media en sodio

ÍNDICE DE SCOTT 7,96

S.A.R. AJUSTADO 9,89