Having noticed an inconsistency in the wind output, I did a more refined research and I found that in subroutine VENUTI it clearly says:
!note DURING THE FIRST PASS THE USER MUST IDENTIFY THE TIMES TV1 AND TV2
!+ WHICH SURROUND THE FIRST TIME STEP. NEXT, USING THE ARRAYS
!+ XRELV,YRELV,UR,VR OR DIRECTLY FROM THE WIND FILE, THE USER
!+ MAY HAVE TO INTERPOLATE THE TIDES READ FROM THE FILE INTO THE
!+ ARRAYS U1,V1 U2,V2.
!+
...
!+
!+ THE CODE WILL INTERPOLATE THE WIND AUTOMATICALLY BETWEEN THESE
!+ 2 TIME STEPS.
!+
!+ THE OTHER PASSES OCCUR WHEN A NEW RECORD IS REQUIRED (AT>TV2).
!+ IN THIS CASE TV2,U2,V2 ONLY ARE TO BE COMPUTED.
I therefore modified my code accordingly (together with a modification to read Wind Direction & Speed instead of wind vectors):
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
INTEGER I
DOUBLE PRECISION DIR1,SPEED1,DIR2,SPEED2,CNVR
!
!-----------------------------------------------------------------------
!
CNVR=3.141592654D0/180.D0
!
IF (AT.EQ.0) THEN
!
! JUMPING TWO LINES OF COMMENTS
READ(NVEN,*,ERR=100,END=200)
READ(NVEN,*,ERR=100,END=200)
! READING THE FIRST TWO LINES OF DATA
READ(NVEN,*,ERR=100,END=200) TV1,DIR1,SPEED1
READ(NVEN,*,ERR=100,END=200) TV2,DIR2,SPEED2
!
DO I=1,NPOIN
U1(I)=SPEED1*SIN(DIR1*CNVR)
V1(I)=SPEED1*COS(DIR1*CNVR)
U2(I)=SPEED2*SIN(DIR2*CNVR)
V2(I)=SPEED2*COS(DIR2*CNVR)
ENDDO
ELSE
READ(NVEN,*,ERR=100,END=200) TV2,DIR2,SPEED2
DO I=1,NPOIN
U2(I)=SPEED2*SIN(DIR2*CNVR)
V2(I)=SPEED2*COS(DIR2*CNVR)
ENDDO
ENDIF
!
RETURN
!-----------------------------------------------------------------------
!
100 CONTINUE
WRITE(LU,*) ' '
WRITE(LU,*) 'VENUTI'
IF(LNG.EQ.1) WRITE(LU,*) 'ERREUR DANS LE FICHIER DE VENT'
IF(LNG.EQ.2) WRITE(LU,*) 'ERROR IN THE WIND FILE'
CALL PLANTE(1)
STOP
200 CONTINUE
WRITE(LU,*) ' '
WRITE(LU,*) 'VENUTI'
IF(LNG.EQ.1) WRITE(LU,*) 'FIN PREMATUREE DU FICHIER DE VENT'
IF(LNG.EQ.2) WRITE(LU,*) 'WIND FILE TOO SHORT'
CALL PLANTE(1)
STOP
!-----------------------------------------------------------------------
RETURN
END
It now seems to give consistent wind input. I can now look into the issue regarding the interpolation between wind file timesteps.
Regards,
Costas
PS. I have noticed a small typographical error in venuti.f. It says
THE USER MAY HAVE TO INTERPOLATE THE TIDES
instead of
THE USER MAY HAVE TO INTERPOLATE THE WIND
You may want to correct that.