Hello,
I give you a few hints:
In your subroutine meteo, add a line SAVE after the last declarations, otherwise it could be that windu and windv are not kept between 2 calls of meteo.
If you want to write a file in parallel, you must have the job done by only one of the processors, otherwise they will all try to do it. Use the test:
IF(IPID.EQ.0) THEN
write the file...
ENDIF
Do not use logical units 1 and 2 (it could be that 2 works, but 1 is the geometry file...). Use 97 and 98 instead, for example. Note also that if your files are in the directory of the case you run, the path may be just ../yourfile (2 dots because you have to get out of the temporary folder where the case is run)
Last thing, I do not know what is the use of the line round=INT(LT/180) but LT/180 is an integer division that will give 0 if LT<180, is it what you want ?
I hope this will help, have a good week-end,
Jean-Michel Hervouet