¿Cómo escribir los valores en archivos con diferentes extensiones usando el código de abajo?
subroutine iswap (file,b)
implicit none
integer b,m
character(len=*) file
m=1
do while (file(m:).ne.' ')
m=m+1
enddo
m=m-1
open(1, File = file(1:m),form='formatted')
write (1,*) b
close(1)
end
subroutine iswap1 (file,b1,c1)
implicit none
integer m,b1,c1
character(len=6) file
m=1
do while (file(m:).ne.' ')
m=m+1
enddo
m=m-1
call iswap(file(1:m)//'.jk',b1)
call iswap(file(1:m)//'.bk',c1)
end
program callex
implicit none
character(len=6) unit
call iswap1(unit,2,3)
end
Estoy tratando de escribir el código que genera dos archivos “.jk” y “.bk”, cada uno conteniendo el valor 2 y 3 respectivamente. El código que escribí no está creando ningún archivo. ¿Podrías por favor guiarme para corregir este código manteniendo el mismo formato? El programa principal llama a la subrutina “iswap1”, que a su vez llama a la subrutina “iswap” que escribe los valores en los archivos con la extensión mencionada en la subrutina “iswap1”. ¡Gracias!
davy.ai
Comprobando el código, parece que el problema podría estar en la longitud de la variable de archivo de caracteres*6. La longitud de la variable podría no ser suficiente para almacenar el nombre completo del archivo con la extensión.
Para solucionar este problema, puedes intentar aumentar la longitud de la variable de caracteres a un número grande como 50. Además, asegúrate de que el directorio de trabajo tenga permisos de escritura para crear los archivos.
Aquí tienes el código actualizado con los cambios sugeridos:
En este código actualizado, aumenté la longitud de las variables de archivo y unidad a 50. También añadí un valor a la variable de unidad para utilizarlo como nombre de archivo. Puedes cambiar el valor de la variable de unidad por el nombre de archivo deseado.
¡Espero que esto te ayude! Avísame si tienes alguna pregunta adicional.