← Centro de Aprendizaje

Errores de QUAL2K y QUAL2Kw: Error 53, ThisWorkbook.Path, Simulation Aborted y Unexpected error

Los mensajes de error de QUAL2K que más se repiten en el grupo de usuarios qual2k-user son cuatro: "Run-time error 53", una línea ChDir (ThisWorkbook.Path) resaltada en amarillo, una corrida que termina con "... is aborted!" (que muchos publican como "Simulation Aborted") y "Unexpected error". Varios hilos siguen sin respuesta; uno de Error 53, sobre QUAL2K 2.12b1, recoge casos de 2019, 2021 y 2023 sin solución publicada. La mayoría tiene el mismo origen: el libro de Excel no es el modelo, sino una interfaz que escribe archivos en una carpeta, lanza un ejecutable Fortran de Windows y lee lo que ese ejecutable deja. Cuando algo de esa cadena no está donde el código lo espera, el error aparece. Esta guía explica la cadena a partir del código VBA de QUAL2Kw 5.1 y da una solución concreta para cada mensaje.

Modela todo el río en el motor de predicción

Importa tu libro QUAL2Kw o abre el proyecto de ejemplo. Los resultados reproducen 15 modelos QUAL2Kw calibrados dentro del 5% o de una pequeña banda absoluta.

Ver el motor de predicción

Cómo corre QUAL2K por dentro

En QUAL2Kw 5.1, al pulsar el botón de corrida con Fortran, las macros hacen esto, en este orden:

  1. Leen de la hoja QUAL2K el nombre del río (B8), el nombre del archivo (B9) y el directorio de guardado (B10). Si B10 está vacía, usan la carpeta de Workbooks(1). Verifican con Scripting.FileSystemObject que esa carpeta exista; si no, muestran "... is not a valid folder/path".
  2. Escriben el archivo de entrada .q2k.
  3. Revisan la estabilidad numérica: si un tramo puede ser inestable con el paso de tiempo elegido, se detienen con "The model may be unstable in reach ..." y recomiendan un paso menor.
  4. Escriben un archivo message.dat con las rutas del .q2k y del .out, y borran el .out anterior si existe.
  5. Ejecutan ChDir (Workbooks(1).Path) y buscan qual2kw5.exe en esa carpeta; si no está, muestran "Please copy qual2kw5.exe to ...".
  6. Lanzan el ejecutable con Shell, esperan a que termine y leen el .out. Si esa lectura falla, muestran "... is aborted!".

QUAL2K 2.12 (Chapra) no es idéntico: su manual también exige que el libro y el ejecutable Fortran estén en la misma carpeta, pero el código cambia en detalles (la línea ChDir (ThisWorkbook.Path) que reportan los usuarios no existe en QUAL2Kw 5.1). No hemos revisado el código de QUAL2K 2.12; lo que sigue se apoya en el VBA de QUAL2Kw y en la documentación de VBA de Microsoft, y señalamos dónde inferimos.

Tabla rápida

MensajeCausa más probablePrimera acción
Run-time error 53Un archivo que el código busca no está en la ruta (ejecutable, .q2k, .out, message.dat)Pulsa Depurar y mira qué archivo usa la línea resaltada
Falla en ChDir (ThisWorkbook.Path)La ruta del libro no es una carpeta local normal (OneDrive, red, adjunto temporal)Copia la carpeta a una ruta local corta en C:
"... is aborted!" / Simulation AbortedEl ejecutable falló al integrar o no dejó un .out legibleCorre con el botón VBA para ver su propio mensaje y la línea del depurador
"Cannot start ..."Windows no pudo lanzar el ejecutableRevisa que el .exe no esté bloqueado o en cuarentena
"Unexpected error", Runtime error 11Ruta mal escrita, texto en celdas numéricas, división por ceroRevisa B10 y las celdas de entrada que cambiaste
Los botones no hacen nada / banner de riesgo de seguridadOffice bloqueó las macros de un archivo descargadoPropiedades del archivo, Desbloquear

1. Run-time error 53 (File not found)

Según Microsoft, el Error 53 aparece cuando una instrucción como Kill, Name u Open se refiere a un archivo que no existe, o cuando no se encuentra la DLL declarada en una instrucción Declare. En QUAL2K los candidatos son el ejecutable Fortran, el archivo .q2k, el .out y message.dat. La forma de saber cuál es: en el cuadro del error pulsa Depurar y lee la línea resaltada y las variables de ruta que usa (en el editor, pasa el cursor sobre ellas). Los reportes de Error 53 del grupo vienen sobre todo de QUAL2K 2.12b1; en QUAL2Kw 5.1, si falta el ejecutable, el mensaje es "Please copy qual2kw5.exe to ...".

Las causas que encontramos al leer el código de QUAL2Kw:

  • El ejecutable no está junto al libro. QUAL2Kw lo busca en la carpeta del libro, no en una ruta de instalación. Si copiaste solo el .xlsm, falta el .exe.
  • La carpeta del libro no es la que crees. QUAL2Kw 5.1 usa Workbooks(1).Path, el primer libro abierto en esa sesión de Excel, y la versión HTS usa ActiveWorkbook.Path. Si otro libro se abrió antes, esas rutas apuntan a su carpeta. Un caso típico: si al arrancar Excel se carga un libro de macros personal oculto (PERSONAL.XLSB), normalmente es Workbooks(1), y el mensaje nombra entonces la carpeta XLSTART. Busca PERSONAL.XLSB en el Explorador de proyectos del editor de VBA y abre QUAL2Kw como primer libro de una sesión nueva de Excel.
  • El nombre del archivo en B9 o la ruta en B10 no coinciden con lo que hay en disco, por ejemplo después de copiar el proyecto a otro equipo.

En uno de los hilos del grupo se sugirió revisar el número de Courant ante un Error 53. La estabilidad numérica es importante, pero no produce un "archivo no encontrado" por sí misma; empieza por las rutas.

2. Error en ChDir (ThisWorkbook.Path)

Si el depurador resalta ChDir (ThisWorkbook.Path), la macro se detuvo al cambiar a la carpeta del libro, antes de que corriera el modelo. Esa línea exacta no está en QUAL2Kw 5.1, que ejecuta ChDir (Workbooks(1).Path); viene de otra versión de QUAL2K. En ambos casos, la causa probable es una ruta del libro que no es una carpeta local normal:

  • OneDrive o SharePoint. Cuando el libro está en una carpeta sincronizada, ThisWorkbook.Path puede devolver una dirección web (https://...) en lugar de una ruta de disco, un comportamiento que los usuarios reportan en Microsoft Q&A (un reporte de la comunidad, no documentación oficial). ChDir no puede cambiar a una URL.
  • Archivo abierto desde un correo o un .zip. Excel lo abre desde una carpeta temporal que no contiene el ejecutable ni los .q2k.
  • Una carpeta de red. Muchos usuarios reportan que ChDir falla con rutas de red que empiezan por \\servidor\...; Microsoft no documenta este caso, así que tómalo como causa probable, no como certeza.

Una prueba rápida para descartar problemas de ruta: crea C:\q2k\, copia ahí la carpeta completa (libro, ejecutable Fortran y archivos .q2k), desbloquea el libro si Windows lo marcó como descargado (sección 6), escribe C:\q2k en la celda del directorio de guardado, cierra Excel y abre ese libro primero. Si corre, el problema era la ubicación; si no, sigue buscando, porque al menos un usuario del grupo reporta que moverlo a C: no bastó. Evita espacios, tildes y rutas muy largas: QUAL2Kw se detiene si la ruta completa del archivo .q2k supera 260 caracteres.

3. "is aborted!" o "Model Execution Error - Simulation Aborted"

QUAL2Kw muestra "... is aborted!" cuando el ejecutable terminó pero su salida no se pudo leer. "Model Execution Error - Simulation Aborted" es el título que un usuario dio a su hilo, no el texto del cuadro de diálogo. El mensaje completo de QUAL2Kw dice que el programa "crashed during integration or there was a problem during output" y sugiere revisar entradas erróneas, usar un paso de tiempo menor, integración Runge-Kutta o paso de tiempo adaptativo. Es decir, en la mayoría de los casos es un problema numérico o de datos, no de rutas. Cómo encontrarlo:

  • Corre con el botón de VBA. Es más lento, pero corre dentro de Excel, así que en lugar del mensaje genérico del ejecutable obtienes las detenciones propias del VBA (por ejemplo "SOD iterations exceeded") y una línea del depurador para inspeccionar. Ten en cuenta que la versión VBA no acepta pasos de tiempo por debajo de un mínimo y lo avisa.
  • Lee las revisiones previas a la corrida. Antes de cualquiera de las dos corridas, QUAL2Kw se detiene si un tramo puede ser inestable con el paso de tiempo elegido y recomienda uno menor; la versión HTS además revisa si hay caudal negativo o cero en un tramo y avisa cuando un número de Courant supera 1.
  • Reduce el paso de tiempo y prueba otro método de integración, como sugiere el propio mensaje.
  • Revisa el balance de caudales: una captación mayor que el caudal disponible deja un tramo sin agua.
  • Si usas diagénesis de sedimentos opción 1, el VBA de QUAL2Kw detiene la corrida con "SOD iterations exceeded" cuando la iteración de la demanda béntica no converge en 500 pasadas. La opción 2 no tiene ese tope en el código VBA, así que una corrida que no converge sigue iterando en lugar de detenerse.

El mensaje termina pidiendo enviar al autor del modelo el archivo .q2k de la corrida. Adjunta ese archivo también al publicar en el grupo de usuarios: sin él es muy difícil que alguien reproduzca el problema.

4. "Cannot start ..." al usar Run Fortran

QUAL2Kw muestra "Cannot start" seguido de la ruta del ejecutable cuando ocurre un error en la instrucción Shell o justo después, una vez comprobado que el archivo existe. La lectura más probable es que el .exe está, pero Windows se negó a iniciarlo. Revisa si el antivirus lo puso en cuarentena o lo bloquea y si la carpeta permite ejecutar programas (algunas políticas corporativas lo impiden en carpetas de usuario o de red). Esas dos causas son inferencia nuestra, no algo que diga el mensaje. Mientras tanto, el botón VBA sigue funcionando.

5. "Unexpected error" y Runtime error 11

En un hilo sobre "Unexpected error" en QUAL2K 2.12, abierto en 2017, las respuestas posteriores apuntan a dos causas: una ruta de guardado incorrecta y celdas de entrada con palabras donde se espera un número. Otro usuario del mismo hilo reporta el runtime error 11 (división por cero). Qué revisar:

  • Que la celda del directorio (B10) tenga una ruta que exista, sin comillas ni espacios al final.
  • Que no haya texto, comas decimales pegadas desde otro programa o celdas con errores de fórmula en las hojas de entrada.
  • Que no haya ceros donde el modelo divide: ancho o pendiente nulos, un tramo de longitud cero, un caudal de cabecera nulo.
  • Que el mes de la simulación sea un número entre 1 y 12; QUAL2Kw lo valida y muestra su propio mensaje si no lo es.

6. Las macros no corren o los botones no hacen nada

Desde 2022, Office para Windows bloquea por defecto las macros de archivos descargados de internet o recibidos por correo, y muestra un banner de riesgo de seguridad sin el botón "Habilitar contenido". Un libro de QUAL2K descargado cae exactamente en ese caso. La solución que documenta Microsoft para un archivo individual es abrir sus propiedades en el Explorador de Windows y marcar Desbloquear en la pestaña General, o guardarlo en una ubicación de confianza. Hazlo solo con archivos de una fuente en la que confíes, como la descarga oficial del modelo.

Si nada de esto funciona

Tres salidas, de menor a mayor cambio:

  1. Prueba en otro equipo con Windows y la carpeta en C:. Si allí corre, el problema es de tu entorno (políticas, antivirus, sincronización).
  2. Publica en el grupo qual2k-user con la versión exacta, el mensaje completo, la línea que resalta el depurador y el archivo .q2k.
  3. Corre el modelo sin macros. Hydrolitica importa libros QUAL2Kw (.xls, .xlsx, .xlsm) y los resuelve con un port en Python del solver de QUAL2Kw 5.1 desde el navegador, sin ejecutable, sin rutas y sin macros. Tiene límites que conviene conocer: está validado contra libros QUAL2Kw (5.1, HTS y xQUAL2Kw), no contra QUAL2K 2.12 de Chapra; no arregla datos erróneos, aunque su reporte de importación y sus advertencias ayudan a encontrarlos; y no es el programa original. La guía de migración desde Excel explica qué conserva la importación, y la metodología de validación muestra cómo se compararon los resultados con los libros.

Recursos relacionados

¿Listo para modelar tu propio río?

Pon en práctica lo que acabas de leer con el motor de predicción QUAL2K completo

Prueba gratis el motor de predicción