  UDCF - Universal Dive Computer Format (Formato Universal
  para Ordenadores de buceo)
  Kai Schroeder <kai@streit.cc> Steffen Reith
  <streit@streit.cc>, Raimundo Fernandez (traduccion)<rai@vir-
  tual-sub.org>,
  3 de Febrero del 2000

  El proposito de UDCF es la intercambiabilidad de los diversos formatos
  de perfiles de inmersion de los diferentes ordenadores de buceo y pro-
  gramas de simulacion. Con el es posible analizar un perfil de inmer-
  sion "real" grabado por cualquier ordenador de buceo despues de con-
  vertirlo a UDCF en cualquir ordenador o recalcular este perfil usando
  un modelo de descompresion diferente.
  ______________________________________________________________________

  Table of Contents


















































  1. Estructura de los ficheros UDCF

  2. Elementos del formato UDCF (en orden alfabetico)

     2.1 <acv> ... </acv>   (opcional)
     2.2 <addinfo> ... </addinfo>   (opcional)
     2.3 <alarm> ... </alarm>   (opcional)
     2.4 <altitude> ... </altitude>   (obligatorio)
     2.5 <d> ... </d>   (obligatorio)
     2.6 <datatrak> ... </datatrak>   (opcional)
     2.7 <date> ... </date>   (obligatorio)
     2.8 <day> ... </day>   (obligatorio)
     2.9 <delta> ... </delta>   (obligatorio)
     2.10 <deltamode/>   (obligatorio)
     2.11 <density> ... </density>   (obligatorio)
     2.12 <device> ... </device>   (obligatorio)
     2.13 <dive> ... </dive>   (obligatorio)
     2.14 <gases> ... </gases>   (obligatorio)
     2.15 <he> ... </he>   (obligatorio)
     2.16 <hour> ... </hour>   (obligatorio)
     2.17 Comentarios
     2.18 <minute> ... </minute>   (obligatorio)
     2.19 <mix> ... </mix>   (obligatorio)
     2.20 <mixname> ... </mixname>   (obligatorio)
     2.21 <model> ... </model>   (obligatorio)
     2.22 <month> ... </month>   (obligatorio)
     2.23 <n2> ... </n2>   (obligatorio)
     2.24 <o2> ... </o2>   (obligatorio)
     2.25 <pend> ... </pend>   (opcional)
     2.26 <persinfo> ... </persinfo>   (opcional)
     2.27 <place> ... </place>   (opcional)
     2.28 <profile udcf="1"> ... </profile>   (obligatorio)
     2.29 <program> ... </program>   (opcional)
     2.30 <pstart> ... </pstart>   (obligatorio)
     2.31 <repgroup> ... </repgroup>   (obligatorio)
     2.32 <samples> ... </samples>   (obligatorio)
     2.33 <serialid> ... </serialid>   (opcional)
     2.34 <surfaceinterval> ... </surfaceinterval>   (obligatorio)
     2.35 <switch> ... </switch>   (obligatorio)
     2.36 <t> ... </t>   (obligatorio)
     2.37 <tank> ... </tank>   (opcional)
     2.38 <tankvolume> ... </tankvolume>   (opcional)
     2.39 <tausim> ... </tausim>   (opcional)
     2.40 <temperature> ... </temperature>   (opcional)
     2.41 <time> ... </time>   (obligatorio)
     2.42 <timedepthmode/>   (obligatorio)
     2.43 <totaldives> ... </totaldives>   (opcional)
     2.44 <units> ... </units>   (obligatorio)
     2.45 <vendor> ... </vendor>   (obligatorio)
     2.46 <version> ... </version>   (obligatorio)
     2.47 <work> ... </work>   (opcional)
     2.48 <year> ... </year>   (obligatorio)


  ______________________________________________________________________

  11..  EEssttrruuccttuurraa ddee llooss ffiicchheerrooss UUDDCCFF

  Un fichero UDCF consiste en diferentes grupos de elementos y palabras
  clave que describen claramente un perfil de inmersion y el respectivo
  ordenador de buceo o el programa usado para generarlo. Con el, se hace
  necesaria una secuencia determinada. Algunos elementos o palabras
  clave son opcionales y no son tenidos en cuenta segun el ordenador de
  inmersion o programa usado. El proposito del desarrollo de UDCF era el
  de proveer un formato simple, facil de usar y potente para el
  intercambio de dato de inmersion.  Con la intencion de simplificar la
  programacion del parser, UDCF se desarrollo de tal manera que se
  pudiera usar cualquier parser de XML normal.

  A continuacion se describen los elementos y las palabras claves.

  La forma normal de definir un fichero UDCF es la siguiente:


  1. cabecera

  2. detalles sobre el sistema de unidades usado (SI, metrico o unidades
     inglesas)

  3. informacion sobre el ordenador de buceo o del programa que lo ha
     generado (fabricante, modelo, numero de serie)

  4. informacion adicional (opcional)

  5. el perfil de inmersion describiendo datos generales, tales como el
     lugar (opcional), fecha, tiempo, intervalo de superficie,
     temperatura minima del agua (opcional), densidad del agua, altura
     sobre el nivel del mar, e informacion sobre los gases respirados.
     En el caso de calculo de consumo de gases (opcional) se debe
     incluir mas informacion como el volumen de la botella y la presion
     de la misma tanto al principio como al final de la inmersion

  6. datos especificos para el ordenador de inmersion o el programa de
     simulacion, pero que no son necesarios para mostrar el perfil o
     para calcular la saturacion de los tejidos (opcional)

  7. entradas de tiempo y profundidad o solo de profundidad cuando se
     usa un intervalo constante entre lecturas (que puede cambiar
     durante la inmersion, y (opcionalmente) avisos generados por el
     ordenador de inmersion

  8. fin de fichero

  UDCF soporta el almacenamiento de varios perfiles de inmersion dentro
  de un unico fichero. En este caso los puntos 5, 6 y 7 se repiten las
  veces que fuera necesario. Un fichero UDCF lo que no puede es contener
  perfiles de diferentes ordenadores de inmersion o programas
  simulacion.



  22..  EElleemmeennttooss ddeell ffoorrmmaattoo UUDDCCFF ((eenn oorrddeenn aallffaabbeettiiccoo))

  22..11..  <<aaccvv>> ...... <<//aaccvv>>   ((ooppcciioonnaall))

  Indica el consumo medio en volumen para ese gas respiratorio.

  Es la ultima entrada en la seccion <``mix''>.

  Ejemplo: ver <``tank''>



  22..22..  <<aaddddiinnffoo>> ...... <<//aaddddiinnffoo>>   ((ooppcciioonnaall))

  La informacion adicional (opcional) esta delimitada por <addinfo>.

  Las entradas que contiene <addinfo> son: <``persinfo''>,
  <``totaldives''>, and <``serialid''>.

  Se encuentra la cabecera del fichero despues de la seccion
  <``device''> y antes de <repgroup>.
  Ejemplo:




                  <!-- entradas previas -->
                  </device>
                  <addinfo>
                    <persinfo>+49-931-123456</persinfo>
                    <totaldives>124</totaldives>
                    <serialid>71.60.66</serialid>
                  </addinfo>
                  <repgroup>
                  <!-- entradas siguientes -->





  22..33..  <<aallaarrmm>> ...... <<//aallaarrmm>>   ((ooppcciioonnaall))

  Avisos del ordenador de inmersion. En estos momentos son reconocidas
  las siguientes palabras clave:



           palabra clave  aviso del ordenador de inmersion
          -------------------------------------------------------------------------
             rbt          tiempo de fondo restante excedido
                          (remaining bottom time)
             ascent       ascenso demasiado rapido
             deco         aviso de una parada de deco
             breath       ritmo respiratorio (breathing frequency)
                          demasiado elevado
             surface      llegada a superficie (surface)




  Se encuentra en la seccion <``samples''> despues de la entrada de
  profundidad a la que pertenece. Varios avisos pueden venir a
  continuacion de una entrada de profundidad.

  Ejemplo: ver 2. ejemplo <``samples''>



  22..44..  <<aallttiittuuddee>> ...... <<//aallttiittuuddee>>   ((oobblliiggaattoorriioo))

  Altitud sobre el nivel del mar de la entrada en el agua expresado como
  un numero real con un digito despues de la coma decimal.

  Se encuentra en la seccion <``dive''>  despues de <``density''> como
  la ultima entrada antes de la seccion <``gases''>.

  Ejemplo:




                    <!-- altitud sobre el nivel del mar: 800 m -->
                    <!-- (Walchensee - a lake in the Bavarian alps) -->
                    <altitude>800.0</altitude>



  22..55..  <<dd>> ...... <<//dd>>   ((oobblliiggaattoorriioo))

  Entrada de profundidad expresad como un numero real en metros (SI,
  metrico) o pies (imperial), respectivamente.

  Se encuentra en la seccion <``''>.

  La primera y la ultima entrada de un perfil de profundidad  deben ser
  <d>0.0</d>, porque todas las inmersiones empiezan y acaban en
  superficie a una profundidad de 0 m (Aunque en los ficheros de
  Datatrak, por ejemplo, un perfil de inmersion no comienza en 0m :-) )

  Ejemplo: ver <``samples''>


  22..66..  <<ddaattaattrraakk>> ...... <<//ddaattaattrraakk>>   ((ooppcciioonnaall))

  Dentro de esta seccion se encuentra informacion especifica relativa al
  formato de datos usados por los ordenadores de inmersion Aladin
  fabricados por Uwatec.  En estos momentos se usan las siguientes
  entradas:

  +o  <tissues> - el  numero de compartimentos incluidos (8 en todos los
     ordenadores de inmersion Aladin)

  +o  <ip> - La presion inicial de saturacion al comienzo de la
     inmesrion.  La primera entrada da la saturacion del mas rapido, la
     ultima entrada la del tejido mas lento. Hay dos bytes reservados
     por tejido. Debido a que la codificacion no se conoce en detalle en
     estos momentos, solo se dan los valores decimales de los dos bytes
     separados por espacios.

  Se encuentra en la seccion opcional <``program''> como la unica
  entrada.

  Ejemplo:



                 <!-- entradas previas -->
                 </gases>
                 <program>
                   <datatrak>
                     <tissues>8</tissues>
                     <!-- 2 bytes por tejido, no decodificado todavia -->
                     <ip> 95  11</ip>
                     <ip>103  11</ip>
                     <ip>107  11</ip>
                     <ip>110  11</ip>
                     <ip>224  11</ip>
                     <ip>156  12</ip>
                     <ip>122  12</ip>
                     <ip>212  11</ip>
                   </datatrak>
                 </program>
                 <deltamode/>
                 <samples>
                 <!-- informacion del perfil -->








  22..77..  <<ddaattee>> ...... <<//ddaattee>>   ((oobblliiggaattoorriioo))

  La fecha de realizacion de la inmersion o de generacion del perfil por
  un programa.

  Las entradas que contiene <date> son: <``year''>, <``month''> y
  <``day''>, exactamente en este orden.

  Se encuentra en la seccion <``day''>  despues de <``place''> (si esta
  presente) y antes de <``time''>.

  Ejemplo:




                 <profile udcf="1">
                 <!-- entradas sobre unidades usadas y fabricante -->
                 <repgroup>
                   <dive>
                     <!-- entradas sobre el lugar, si es conocido  -->
                     <!-- fecha 6 de Abril de 1999 -->
                     <date><year>1999</year><month>4</month><day>6</day></date>
                     <!-- mas entradas -->
                   </dive>
                 <!-- entradas siguientes -->
                 </profile>





  22..88..  <<ddaayy>> ...... <<//ddaayy>>   ((oobblliiggaattoorriioo))

  El dia del mes de realizacion de la inmersion o de generacion del
  perfil por un programa, expresado como un numero entero.

  Se encuentra en <``date''>. La secuencia es <``year''>, <``month''>,
  <``day''>.

  Ejemplo: ver <``date''>



  22..99..  <<ddeellttaa>> ...... <<//ddeellttaa>>   ((oobblliiggaattoorriioo))

  Indica el intervalo de tiempo, con el que las subsiguientes entradas
  de profundidad fueron grabadas. Esta entrada esta activa despues de la
  siguiente entrada de profundidad.

  <delta> es la primera entrada en la seccion <``samples''> , si se ha
  cambiado a <``deltamode/''> antes; esta permitida su aparicion tantas
  veces como fuese necesario en la seccion <``samples''>.

  Ejemplo: ver 2. ejemplo <``samples''>


  22..1100..  <<ddeellttaammooddee//>>   ((oobblliiggaattoorriioo))

  Indica que dentro de la seccion <``samples''> solo siguen entradas de
  profundidad (con un intervalo constante de tiempo ).

  Se encuentra directamente antes de la entrada <``samples''>.  Ver
  tambien <``timedepthmode/''>.


  Cuando se usa <``deltamode/''> es necesario que la primera entrada en
  la siguiente seccion <``samples''> es una entrada <``delta''> que
  informa del intervalo de tiempo de grabacion.

  Ejemplo: ver <``samples''>



  22..1111..  <<ddeennssiittyy>> ...... <<//ddeennssiittyy>>   ((oobblliiggaattoorriioo))

  Densidad del agua.

  Se encuentra en la seccion <``dive''>  despues <``temperature''> y
  antes de <``altitude''>.

  El agua dulce pura tiene una  densidad de 1000.0 kg/m^3, mientras que
  la densidad media del agua de mar (agua salada) es de 1030.0 kg/m^3.

  Ejemplos:



                    <!-- agua salada -->
                    <density>1030.0</density>







                    <!-- agua dulce -->
                    <density>1000.0</density>





  22..1122..  <<ddeevviiccee>> ...... <<//ddeevviiccee>>   ((oobblliiggaattoorriioo))

  En esta seccion se agrupa la informacion sobre el fabricante del
  ordenador de inmersion o del programa generador.

  Las entradas que contiene <device> son: <``vendor''>, <``model''>, y
  <``version''>, en este orden.

  Pertenece a la cabecera del fichero y se encuentra despues de la
  entrada <``units''>.

  Ejemplo:




                 <profile udcf="1">
                 <units>metric</units>
                 <device>
                   <vendor>Suunto</vendor>
                   <model>EON</model>
                   <version>1</version>
                 </device>
                 <!-- mas entradas  -->
                 </profile>



  22..1133..  <<ddiivvee>> ...... <<//ddiivvee>>   ((oobblliiggaattoorriioo))

  Los datos de un perfil especifico dentro de una seccion <``repgroup''>
  se agrupan en una seccion <dive>. Cuando hay varios perfiles de
  inmersion en una seccion <``repgroup''>, cada perfile queda
  encapsulado por <dive>. En este caso varias secciones <dive> se
  suceden unas a otras.

  Los elementos, con los que se describe claramente un perfil de
  inmersion son los siguientes: <``place''>, <``date''>, <``time''>,
  <``surfaceinterval''>, <``temperature''>,<``density''>,
  <``altitude''>, <``gases''>, <``program''>, y <``samples''>.

  Ejemplo:




                 <profile udcf="1">
                 <!-- informacion sobre las unidades usadas y el fabricante  -->
                 <repgroup>
                   <dive>
                     <place>Illes Medes, coast, arch (Costa Brava, Spain)</place>
                     <date><year>1999</year<month>4</month><day>6</day>></date>
                     <time><hour>16</hour><minute>21</minute></time>
                     <surfaceinterval>293.0</surfaceinterval>
                     <temperature>12.0</temperature>
                     <density>1030.0</density>
                     <altitude>0.0</altitude>
                     <gases>
                       <!-- informacion sobre los gases respiratorios usados  -->
                     </gases>
                     <program>
                       <!-- ordenador de inmersion o programa -->
                     </program>
                     <samples>
                       <!-- entradas de profundidad/tiempo del perfil -->
                     </samples>
                   </dive>
                   <dive>
                     <!-- lugar,fecha,tiempo,gases respiratorios,datos del perfil -->
                   </dive>
                   <!-- pueden aparecer mas perfiles de inmersion  -->
                 </repgroup>
                 </profile>





  22..1144..  <<ggaasseess>> ...... <<//ggaasseess>>   ((oobblliiggaattoorriioo))

  En esta seccion se especifican los gases respiratorios usados (uno o
  mas). Para cada gas usado se define una seccion <``mix''>.

  La seccion <gases> se encuentra en la seccion <``dive''> despues de
  <``altitude''> y antes de <``program''>.

  Ejemplo:







               <!-- entradas previas del fichero UDCF -->
               <altitude>0.0</altitude>
               <gases>
                 <!-- primer gas respiratorio usado -->
                 <mix>
                   <mixname>air</mixname>
                   <tank>
                     <!-- tambien se podria dar el volumen de la botella -->
                     <pstart>20000000.0</pstart>
                     <pend>10400000.0</pend>
                   </tank>
                   <o2>0.21</o2>
                   <n2>0.79</n2>
                   <he>0.0</he>
                   <!-- tambien se podria dar el consumo (en volumen) -->
                 </mix>
                 <!-- segundo gas usado -->
                 <mix>
                  <!-- especificacion del segundo gas  -->
                 </mix>
                 <!-- aqui pueden seguir mas gases -->
               </gases>
               <program>
               <!-- siguen mas entradas -->






  22..1155..  <<hhee>> ...... <<//hhee>>   ((oobblliiggaattoorriioo))

  La fraccion de helio en el gas respiratorio, expresado como un numero
  real menor o igual que equal 1.0 (tanto por uno de volumen).

  Se encuentra en la seccion <``mix''> despues de <``n2''> y antes de
  <``acv''> (si esta presente).

  Ejemplo:



                    <-- fraccion de 90 %  de Helio -->
                    <he>0.9</he>





  22..1166..  <<hhoouurr>> ...... <<//hhoouurr>>   ((oobblliiggaattoorriioo))

  La hora completa de realizacion de la inmersion o de generacion del
  perfil por un programa, expresado como un numero entero.

  Se encuentra en la seccion <``time''>. El orden obligatorio es <hour>,
  <``minute''>.

  Ejemplo: ver <``time''>



  22..1177..  CCoommeennttaarriiooss

  Se pueden insertar comentarios en posiciones escogidas
  arbitrariamente. Un comentario comienza con los caracteres "<!--" y
  acaba con  "-->". Dentro de estos delimitadores se pueden poner las
  anotaciones deseadas (retorno de carro tambien).

  Ejemplo: <!-- Esto es un comentario. -->



  22..1188..  <<mmiinnuuttee>> ...... <<//mmiinnuuttee>>   ((oobblliiggaattoorriioo))

  Los minutos de la hora de realizacion de la inmersion o de generacion
  del perfil por un programa, expresado como un numero entero.

  Se encuentra en la seccion <``time''>. El orden obligatorio es
  <``hour''>, <minute>.

  Ejemplo: ver <``time''>



  22..1199..  <<mmiixx>> ...... <<//mmiixx>>   ((oobblliiggaattoorriioo))

  The entradas agrupadas por <mix> definen un gas respiratorio usado.
  Cuando se usan mas de uno, varias secciones <mix> se suceden unas a
  otras.

  Los elementos que claramente definen un gas respiratorio son los
  siguientes: <``mixname''>, <``tank''>, <``o2''>, <``n2''>, <``he''>, y
  <``acv''>.

  Se encuentra en la seccion <``gases''>.

  Ejemplo: ver <``gases''>



  22..2200..  <<mmiixxnnaammee>> ...... <<//mmiixxnnaammee>>   ((oobblliiggaattoorriioo))

  El nombre unico de un gas respiratorio.

  Para cambiar a un gas respiratorio especifico dentro de la seccion
  <``samples''> se usa este nombre por la entrada <``switch''>.

  <mixname> es el primer elemento dentro de la seccion <``mix''>.

  Ejemplo: ver <``gases''>



  22..2211..  <<mmooddeell>> ...... <<//mmooddeell>>   ((oobblliiggaattoorriioo))

  Se define el modelo del ordenador de inmersion o el nombre del
  programa generador, en la seccion <model>.

  Se encuentra en la seccion <``device''> despues de <``vendor''> y
  antes de <``version''>.

  Ejemplo: ver <``device''>



  22..2222..  <<mmoonntthh>> ...... <<//mmoonntthh>>   ((oobblliiggaattoorriioo))

  El mes de realizacion de la inmersion o de generacion del perfil por
  un programa, expresado como un numero entero.

  Se encuentra en la seccion <``date''>. El orden obligatorio es
  <``year''>, <``month''>, <``day''>.
  Ejemplo: ver <``date''>



  22..2233..  <<nn22>> ...... <<//nn22>>   ((oobblliiggaattoorriioo))

  La fraccion de nitrogeno en el gas respiratorio, expresado como un
  numero menor o igual que 1.0 (tanto por uno).

  Se encuentra en la seccion <``mix''>  despues de <``o2''> y antes de
  <``he''>.

  Ejemplo:



                    <mixname>mi_nitrox</mixname>
                    <tank>
                       <!-- informacion para el calculo de consumo -->
                    </tank>
                    <!-- fraccion de nitrogeno del 62.5% -->
                    <o2>0.375</o2>
                    <n2>0.625</n2>
                    <he>0.0</he>





  22..2244..  <<oo22>> ...... <<//oo22>>   ((oobblliiggaattoorriioo))

  La fraccion de oxigeno en el gas respiratorio, expresado como un
  numero menor o igual que 1.0 (tanto por uno).

  Se encuentra en la seccion <``mix''> despues de <``mixname''> y
  <``tank''> (si esta presente) y antes de <``n2''>.

  Ejemplo:



                    <mixname>mi_nitrox</mixname>
                    <tank>
                       <!-- informacion para el calculo de consumo -->
                    </tank>
                    <!-- fraccion de oxigeno 37,5% -->
                    <o2>0.375</o2>
                    <n2>0.625</n2>
                    <he>0.0</he>





  22..2255..  <<ppeenndd>> ...... <<//ppeenndd>>   ((ooppcciioonnaall))

  Presion de la botella al final de la inmersion.

  Se encuentra en la seccion opcional <``tank''> como la ultima entrada
  despues <``pstart''>.

  Ejemplo: ver <tank>




  22..2266..  <<ppeerrssiinnffoo>> ...... <<//ppeerrssiinnffoo>>   ((ooppcciioonnaall))

  Aqui se puede anadir informacion personal si se desea.

  Se encuentra en la seccion (opcional) <``addinfo''> como la primera
  entrada (si esta presente).

  Ejemplo: ver <``addinfo''>



  22..2277..  <<ppllaaccee>> ...... <<//ppllaaccee>>   ((ooppcciioonnaall))

  El lugar donde se realiza la inmersion (si se conoce).

  Si se conoce el sitio, <place> es la primera entrada dentro de la
  seccion <``dive''>, en caso contrario no aparece .

  Ejemplo:



                 <profile udcf="1">
                 <!-- algunas entradas generales   -->
                   <dive>
                     <place>Illes Medes, coast, arch (Costa Brava, Spain)</place>
                     <!-- mas entradas -->
                   </dive>
                 <!-- mas entradas -->
                 </profile>





  22..2288..  <<pprrooffiillee uuddccff==""11"">> ...... <<//pprrooffiillee>>   ((oobblliiggaattoorriioo))

  Todos los ficheros UDCF empienzan con <profile udcf="1"> y acaban con
  </profile> como la ultima entrada. Entre ellas apareceran todas las
  demas entradas.


  22..2299..  <<pprrooggrraamm>> ...... <<//pprrooggrraamm>>   ((ooppcciioonnaall))

  Dentro de <program> se agrupa la informacion especifica del programa,
  la cual es necesaria para el calculo de la saturacion de los tejidos o
  los parametros internos para la representacion grafica de los datos.

  Los datos entre <program> y </program> no son analizados por un parser
  UDCF, pero se propagan al programa llamante. Esto permite especificar
  meta-informacion especifica, que UDCF desconoce. Por convenio, todos
  los programas tienen que poner su meta-informacion entre <program> y
  </program>.

  Nota para programadores: por favor, documentar como los parametros de
  saturacion de los tejidos o cualquier otra informacion relevante que
  se suministre en la seccion <program> para permitir a otros programas
  que puedan leerla correctamente e interpretar la informacion !

  En estos momentos se soportan las siguientes palabras clave:
  <``datatrak''>, <``tausim''>.

  <program> se encuentra en la seccion <``dive''> despues de <``gases''>
  y antes de la seccion <``samples''>.


  Ejemplo: ver <``datatrak''> y <``tausim''>


  22..3300..  <<ppssttaarrtt>> ...... <<//ppssttaarrtt>>   ((oobblliiggaattoorriioo))

  Presion de la botella al inicio de la inmersion.

  Se encuentra en la seccion opcional <``tank''> despues de
  <``tankvolume''> (si esta presente) given) y antes de <``pend''> (si
  esta presente).

  Al reves que <``tankvolume''> o <``pend''>, que pueden aparecer
  alternativamente, <pstart> debe aparecer siempre dentro de la seccion
  <``tank''>. En caso contrario, no se podria calcular el consumo de un
  gas.

  Ejemplo: ver <``tank''>


  22..3311..  <<rreeppggrroouupp>> ...... <<//rreeppggrroouupp>>   ((oobblliiggaattoorriioo))

  Dentro de <repgroup> se agrupan "inmersiones relacionadas". Por
  "inmersiones relacionadas" se entiende a todas aquellas inmersiones
  que tienen un intervalo de superficie finito (excepto la primera) y
  fueron realizadas durante unas vacaciones, por ejemplo. Las
  inmersiones individuales se separan unas de otras con la entrada
  <``dive''>.

  Pueden aparecer varias secciones <repgroup> directamente una despues
  de otra. Dentro de una seccion <repgroup> debe aparecer como minimo
  una inmersion. La primera inmersion en una seccion <repgroup> debe
  tener un intervalo de superficie "infinito".


  Ejemplo:



                 <profile udcf="1">
                 <!-- entradas sobre unidades y fabricante -->
                 <repgroup>
                   <dive>
                     <!-- informacion de la primera inmersion  -->
                     <!-- (debe tener un intervalo de superficie "infinito") -->
                   </dive>
                   <dive>
                     <!-- informacion de la segunda inmersion  -->
                     <!-- (debe tener un intervalo de superficie "finito")  -->
                   </dive>
                   <dive>
                     <!-- informacion de la tercera inmersion  -->
                     <!-- (debe tener un intervalo de superficie "finito")  -->
                   </dive>
                 </repgroup>
                 <repgroup>
                     <!-- siguen mas perfiles de inmersion  -->
                 </repgroup>
                 </profile>








  22..3322..  <<ssaammpplleess>> ...... <<//ssaammpplleess>>   ((oobblliiggaattoorriioo))

  Dentro de <samples> es donde se almacenan los datos reales del perfil
  (solo entradas de profundidad a un intervalo constante de tiempo o
  tiempo y entradas de profundidad, respectivamente, y posibes avisos
  procedentes del ordenador de inmersion). De igual modo, tambien
  aparecen aqui el gas respiratorio actual o los cambios de mezcla. La
  aparicion de la primera entrada <``switch''> directamente despues de
  <samples> es obligatoria.

  <samples> es la ultima seccion dentro de una seccion <``dive''>.

  Ejemplo 1:



                      <!-- mas entradas -->
                      <!-- los perfiles generados por progrmas de simulacion -->
                      <!-- normalmente usan "timedepthmode" y suministran tiempo -->
                      <!-- y entradas de profundidad -->
                      <timedepthmode/>
                      <samples>
                        <!-- Al principio de la inmersion se usa el gas "1" -->
                        <!-- (definido en la seccion <gases>) -->
                        <switch>1</switch>
                        <!-- una inmersion siempre empieza en 0 min. y 0 m. -->
                        <t>0.0</t><d>0.0</d>
                        <t>5.0</t><d>40.0</d>
                        <t>15.0</t><d>40.0</d>
                        <t>18.0</t><d>28.0</d>
                        <t>25.0</t>15.0<d></d>
                        <t>31.0</t><d>6.0</d>
                        <!-- cambio al gas respiratorio "2" -->
                        <switch>2</switch>
                        <t>34.0</t><d>3.0</d>
                        <t>38.0</t><d>3.0</d>
                        <!-- una inmersion siempre acaba a 0 m superficie ! -->
                        <t></t><d>0.0</d>
                      </samples>
                    </dive>
                    <!-- Aqui pueden aparecer mas inmersiones  -->





  Ejemplo 2:



















                 <!-- entradas previas -->
                 <!-- ordenador de inmersion graba en un intervalo de -->
                 <!-- de tiempo constante y solo almacena las  -->
                 <!-- profundidades, por tanto el tiempo puede ser -->
                 <!-- omitido -->
                 <deltamode/>
                 <samples>
                   <!-- profundidades cada 20 segundos  -->
                   <delta>20.0</delta>
                   <!-- se usa aire al principio de la inmersion -->
                   <!-- (definido en la seccion <gases>) -->
                   <switch>aire</switch>
                   <!-- una inmersion siempre empieza en 0 min. y 0 m. -->
                   <d> 0.0</d>
                   <d> 4.7</d>
                   <d> 7.0</d>
                   <d>11.1</d>
                   <!-- algunas entradas mas de profundidad  -->
                   <d>13.9</d>
                   <d>13.9</d><work>1</work>
                   <d>14.1</d><work>1</work>
                   <d>14.5</d><work>1</work>
                   <d>15.0</d><work>1</work>
                   <d>15.2</d>
                   <d>13.8</d>
                   <d>12.8</d><alarm>ascent</alarm>
                   <d>10.2</d>
                   <d> 9.4</d>
                   <d> 8.1</d>
                   <d> 7.2</d>
                   <d> 6.1</d>
                   <d> 5.3</d>
                   <d> 4.2</d><alarm>breath</alarm>
                   <d> 3.4</d>
                   <d> 3.6</d>
                   <d> 4.1</d>
                   <d> 3.6</d>
                   <d> 2.8</d>
                   <d> 2.7</d>
                   <d> 2.0</d>
                   <d> 1.1</d>
                   <!-- una inmersion siempre acaba a 0 m superficie ! -->
                   <d>0.0</d>
                 </samples>
               </dive>
               <!-- Aqui pueden aparecer mas inmersiones -->





  22..3333..  <<sseerriiaalliidd>> ...... <<//sseerriiaalliidd>>   ((ooppcciioonnaall))

  Numero de serie del ordenador de inmersion.

  Se encuentra en la seccion (opcional) <``addinfo''> como la ultima
  entrada (si esta presente) despues de <``totaldives''> (si esta
  presente).

  Ejemplo: ver <``addinfo''>






  22..3344..  <<ssuurrffaacceeiinntteerrvvaall>> ...... <<//ssuurrffaacceeiinntteerrvvaall>>   ((oobblliiggaattoorriioo))

  El  intervalo de superficie entre dos inmersiones consecutivas.

  Si la siguiente inmersion es "sucesiva" (los tejidos no se ha
  desaturado completamente), el intervalo de superficie se expresa en
  minutos como un numero real con un digito despues del punto decimal.
  Cuando todos los tejidos estan desaturados la palabra clave "infinity"
  (infinito) queda delimitada por <surfaceinterval> en su lugar.

  Se encuentra en la seccion <``dive''> despues de las entradas
  referentes a lugar, fecha y hora,  y antes de <``temperature''>.

  Ejemplo:



                    <!-- intervalo de superficie 36 minutos: -->
                    <surfaceinterval>36.0</surfaceinterval>

                    <!-- tejidos completamente desaturados -->
                    <surfaceinterval>infinity</surfaceinterval>





  22..3355..  <<sswwiittcchh>> ...... <<//sswwiittcchh>>   ((oobblliiggaattoorriioo))

  Indica el gas respiratorio usado.

  Se encuentra en la seccion <samples> antes de la primera entrada de
  profundidad o de tiempo/profundidad. En <``deltamode/''> es la segunda
  entrada despues de <``delta''> y en <``timedepthmode/''> es la primera
  entrada.

  La entrada es efectiva despues de la siguiente entrada de profundidad
  o de tiempo/profundidad. Es posible cambiar frecuente y
  arbitrariamente el gas respiratorio usado.

  Ejemplo: ver <``samples''>



  22..3366..  <<tt>> ...... <<//tt>>   ((oobblliiggaattoorriioo))

  El tiempo total transcurrido desde el comienzo de la inmersion en
  minutos (unidades metricas o imperiales) o segundos (unidades SI).

  Se encuentra en la seccion <samples>.

  La primera entrada <t> debe ser <t>0.0</t> (al igual que <d>0.0</d>).

  Ejemplo: ver <``samples''>



  22..3377..  <<ttaannkk>> ...... <<//ttaannkk>>   ((ooppcciioonnaall))

  En esta seccion se da la informacion necesaria para el calculo del
  consumo de gases.

  Las entradas que contiene <tank> son: <``tankvolume''>, <``pstart''>,
  y <``pend''>.


  <tank> viene directamente despues de <``mixname''> y antes de las
  entradas de gas respiratorio dentro de la seccion <``mix''>.

  Ejemplo 1:


                    <!-- entradas previas -->
                    <mix>
                      <mixname>aire</mixname>
                      <tank>
                        <tankvolume>10.0</tankvolume>
                        <pstart>20000000.0</pstart>
                        <!-- Como el volumen de aire consumido aparece mas abajo -->
                        <!-- la informacion sobre la presion al final de la  -->
                        <!-- inmersion puede omitirse aqui -->
                      </tank>
                      <o2>0.21</o2>
                      <n2>0.79</n2>
                      <he>0.0</he>
                      <acv>20.0</acv>
                    </mix>
                    <!-- mas entradas -->




  Ejemplo 2:


                    <!-- entradas previas -->
                    <mix>
                      <!-- El nombre del gas usado puede ser tan solo un digito -->
                      <mixname>1</mixname>
                      <tank>
                        <!-- Como se conocen las presiones al inicio y al fin de -->
                        <!-- la inmersion, se puede calcular el consumo de aire -->
                        <!-- sin saber el volumen de la botella -->
                        <pstart>20000000.0</pstart>
                        <pend>10400000.0</pend>
                      </tank>
                      <o2>0.21</o2>
                      <n2>0.79</n2>
                      <he>0.0</he>
                    </mix>
                    <!-- mas entradas -->





  22..3388..  <<ttaannkkvvoolluummee>> ...... <<//ttaannkkvvoolluummee>>   ((ooppcciioonnaall))

  El volumen de la botella usada en litros (SI o metrico) o pies cubicos
  (imperial).

  Se encuentra en la seccion opcional <``tank''> como la primera entrada
  (si esta presente) antes de <``pstart''>.

  Ejemplo: ver <tank>


  22..3399..  <<ttaauussiimm>> ...... <<//ttaauussiimm>>   ((ooppcciioonnaall))

  Agrupa la informacion especifica sobre el programa de simulacion
  "Tausim".  En estos momentos (Tausim v0.99) los siguientes elementos
  son usados:
  +o  parametros internos para la presentacion de un perfil

  +o  <pres>, <timeinc>, <depthinc>, <durdep>, <nstatic>, <rls>

  +o  informacion adicional sobre el modelo de descompresion usado

  +o  <decomodel> - en estos momentos el unico valor usado es "ZH-L16"

  +o  <buehl> - indica la version usada

  +o  ,,3`` - version original

  +o  ,,4`` - version para el calculo de tablas de inmersion

  +o  ,,5`` - version para el uso de ordenadores de inmersion

  +o  <tissues> - numero of tejidos usado, normalmente 16. Para cada uno
     de estos compartimentos se da debajo la presion de saturacion al
     comienzo de la inmersion.

  +o  <ip> - saturacion de un cierto  tejido al comienzo de la inmersion.
     Habran tantas entradas <ip> como indique <tissues>.  la primera
     entrada <ip> da la saturacion del compartimento mas rapido y la
     ultima <ip> del mas lento. Se usa el Pascal (unidad SI).

  Se encuentra en la seccion opcional <``program''> como la unica
  entrada.

  Ejemplo:


                 <!-- entradas previas -->
                 </gases>
                 <program>
                   <tausim>
                     <pres>4000000.0</pres>
                     <timeinc>5</timeinc>
                     <depthinc>5</depthinc>
                     <durdep>0</durdep>
                     <nstatic>7</nstatic>
                     <rls>50</rls>
                     <decomodel>ZH-L16</decomodel>
                     <buehl>5</buehl>
                     <tissues>16</tissues>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                     <ip>75073.70000</ip>
                   </tausim>
                 </program>
                 <timedepthmode/>
                 <samples>
                 <!-- a continuacion vienen los datos del perfil -->

  22..4400..  <<tteemmppeerraattuurree>> ...... <<//tteemmppeerraattuurree>>   ((ooppcciioonnaall))

  La menor temperatura del agua durante la inmersion, si se conoce. Si
  se desconoce, la entrada <temperature> es omitida.

  Se encuentra en la seccion <``dive''> despues de la entrada
  <``surfaceinterval''> y antes de <``density''>. La temperatura se
  expresa como un numero real con un digito despues del punto decimal.

  Ejemplo:


                    <!-- temperatura del agua mas baja: 2 grados Celsius -->
                    <temperature>12.0</temperature>





  22..4411..  <<ttiimmee>> ...... <<//ttiimmee>>   ((oobblliiggaattoorriioo))

  La hora en que se realizo la inmersion o en que se genro el perfil por
  un programa.

  Las entradas que contiene <time> son las siguientes: <``hour''> y
  <``minute''>, en este orden obligatoriamente.

  Se encuentra en la seccion <``dive''> despues de <``date''>.

  Ejemplo:


                 <profile udcf="1">
                 <!-- entradas sobre unidades y fabricante  -->
                 <repgroup>
                   <dive>
                     <!-- entradas sobre el lugar (si se conoce) y hora -->
                     <time><hour>16</hour><minute>21</minute></time>
                     <!-- mas entradas -->
                   </dive>
                 <!-- mas entradas -->
                 </profile>





  22..4422..  <<ttiimmeeddeepptthhmmooddee//>>   ((oobblliiggaattoorriioo))

  Indica que en la siguiente seccion <``samples''> apareceran a
  continuacion entradas de tiempo y de profundidad.

  Se encuentra directamente antes de la seccion <``samples''>. Ver
  tambien <``deltamode''>.

  Al contrario que en <``deltamode/''>, no hay una entrada adicional
  dentro de la siguiente seccion <``samples''>  relativa al modo de
  tiempo/profundidad.

  Ejemplo: ver <samples>






  22..4433..  <<ttoottaallddiivveess>> ...... <<//ttoottaallddiivveess>>   ((ooppcciioonnaall))

  Numero total de inmersiones.

  Se encuentra en la seccion (opcional) <``addinfo''> despues de
  <``persinfo''> (si esta presente) y antes de <``serialid''> (si esta
  presente).

  Ejemplo: ver <``addinfo''>



  22..4444..  <<uunniittss>> ...... <<//uunniittss>>   ((oobblliiggaattoorriioo))

  Indica el sistema de unidades usado. Los valores permitidos son "si"
  (sistema internacional), "metric" (metrico), o "imperial" (unidades
  inglesas).

  Es la primera entrada despues de <``profile udcf="1"''>.




       units:    si: presion  [Pa], longitud [m], temperatura [K],
                     densidad [kg/m^3], tiempo [s]
             metric: presion  [bar], longitud [m], temperatura [grados Celsius],
                     densidad [kg/m^3], tiempo [min]
           imperial: presion  [psi], longitud [feet], temperatura [grados Fahrenheit],
                     densidad [ ??? ], tiempo [min]




  Ejemplo:


                 <profile udcf="1">
                 <units>metric</units>
                 <!-- mas entradas -->
                 </profile>





  22..4455..  <<vveennddoorr>> ...... <<//vveennddoorr>>   ((oobblliiggaattoorriioo))

  El fabricante del ordenador de inmersion o del programa de simulacion.

  Se encuentra en la seccion <``device''> como la primera entrada antes
  de <``model''>.

  Ejemplo: ver <``device''>


  22..4466..  <<vveerrssiioonn>> ...... <<//vveerrssiioonn>>   ((oobblliiggaattoorriioo))

  El numero de version del ordenador de inmersion o del programa de
  simulacion

  Se encuentra en la seccion <``device''> como la ultima entrada despues
  de <``model''>.

  Ejemplo: ver <``device''>


  22..4477..  <<wwoorrkk>> ...... <<//wwoorrkk>>   ((ooppcciioonnaall))

  Indica el nivel de ejercicio fisico cuando se utilizan ordenadores de
  inmersion con gestion de aire. En estos momentos, en los ficheros del
  Datatrak se reconocen los siguientes grados: 1, 2, y 4.

  Se encuentra en la seccion <samples> y despues de la entrada de
  profundidad a la que pertenece.

  Ejemplo: ver 2. ejemplo <``samples''>


  22..4488..  <<yyeeaarr>> ...... <<//yyeeaarr>>   ((oobblliiggaattoorriioo))

  El ano de realizacion de la inmersion o de generacion del perfil por
  un programa, expresado como un numero entero de cuatro digitos :-).

  Se encuentra en la seccion <``date''>. La secuencia obligatoria es
  <year>, <``month''>, y <``day''>.

  Ejemplo: ver <``date''>













































