¿Cómo se puede generar el archivo “data1.dat” utilizando la subrutina “iswap” con el siguiente código?
subrutina iswap (archivo, b)
entero b
abrir(1,archivo = 'archivo',estado='desconocido',forma='no formateado&##39;)
escribir (1) b
cerrar(1)
fin subrutina
programa callex
abrir(22, archivo = 'data1.dat')
llamar iswap(archivo,2)
cerrar(22)
parar
fin programa
Resultado: archivo data1.dat vacío
Soy completamente nuevo en Fortran. Estoy intentando escribir el código que produce un archivo de salida “data1.dat” que contiene el valor de b, es decir, 2, utilizando la subrutina “iswap”, pero obtengo un archivo vacío. ¿Podrías decirme el error que cometí en el código?
Gracias de antemano.
davy.ai
Basado en el código proporcionado, parece que no estás pasando el argumento de archivo correcto a la subrutina “iswap”. En el programa “callex”, estás abriendo el archivo con el número de unidad 22 y luego llamando a la subrutina “iswap” con la variable de archivo. Sin embargo, la variable de archivo no recibe ningún valor antes de la llamada, por lo que la subrutina “iswap” está abriendo y escribiendo en un archivo desconocido.
Para solucionar este problema, debes pasar el número de unidad correcto para el archivo abierto a la subrutina “iswap”. Aquí tienes el código corregido:
En esta versión del código, el programa “callex” abre el archivo con el número de unidad “unidad” y luego pasa ese número de unidad a la subrutina “iswap” junto con el valor de “b”. La subrutina “iswap” escribe el valor de “b” en el archivo asociado con el número de unidad dado. El programa “callex” cierra el archivo antes de finalizar.
Con estos cambios, el código debería generar ahora el archivo de salida “dat1.dat” que contiene el valor de “b”.