Hello,
That is true. TELEMAC opens the file at the start and then close it at the end.
There are two issues you have to remember here:
(a) In parallel, the same file cannot be open more than a few times at the same time. Therefore the script copies your ASCII input file as many times as you have processors, so that each processor accesses its own file without conflict.
(b) Usually and where possible, file access has to prevented while limiting memory use. TELEMAC would not be able to load all files in memory, and TELEMAC does not need to access file for every iteration it makes (usually). The solution was for TELEMAC to open the files first, save in memory only the time records, and then only test against these saved records if TIME (or AT) advances requires a new read to the file to get to the next time value. This is true of the LIQUID BOUNDARY FILE for instance.
Of course, with your own ASCII file, you can do whatever you like and you do not need to save the time recodrs in memory.
So.
If you want to change the value in your file while running, you can, as long as ...:
1.- you duplicate your file in as many file as there are processors (not that this would not be possible on a HPC queue).
2.- if you do save the time records, you do not change the time records, but only the values of your profiles.
3.- in your FORTRAN, you access your file through T2D_FILES(T2DFO1)%LU, and you make sure you do the REWIND every time (unless you have saved the time record. If that does not work, you can always CLOSE T2D_FILES(T2DFO1)%LU and re-open T2D_FILES(T2DFO1)%LU with T2D_FILES(T2DFO1)%NAME.
To do 1. you can use the command telemac2d.py --split (using the -w option), which should (amongst other things) copy / duplicate your new file if modified.
Hope this helps,
Sébastien.