Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8), | intent(in) | :: | freq0 | |||
character(len=1), | intent(in) | :: | BroadbandOption |
SUBROUTINE ReadfreqVec( freq0, BroadbandOption ) ! Optionally reads a vector of source frequencies for a broadband run ! If the broadband option is not selected, then the input freq (a scalar) is stored in the frequency vector REAL (KIND=8), INTENT( IN ) :: freq0 ! Nominal or carrier frequency CHARACTER(LEN=1), INTENT(IN) :: BroadbandOption INTEGER :: ifreq ! Broadband run? IF ( BroadbandOption == 'B' ) THEN READ( ENVFile, * ) Nfreq WRITE( PRTFile, * ) '__________________________________________________________________________' WRITE( PRTFile, * ) WRITE( PRTFile, * ) WRITE( PRTFile, * ) ' Number of frequencies =', Nfreq IF ( Nfreq <= 0 ) CALL ERROUT( 'ReadEnvironment', 'Number of frequencies must be positive' ) END IF IF ( ALLOCATED( freqVec ) ) DEALLOCATE( freqVec ) ALLOCATE( freqVec( MAX( 3, Nfreq ) ), Stat = IAllocStat ) IF ( IAllocStat /= 0 ) CALL ERROUT( 'ReadEnvironment', 'Too many frequencies' ) IF ( BroadbandOption == 'B' ) THEN WRITE( PRTFile, * ) ' Frequencies (Hz)' freqVec( 2 ) = -999.9 freqVec( 3 ) = -999.9 READ( ENVFile, * ) freqVec( 1 : Nfreq ) CALL SubTab( freqVec, Nfreq ) WRITE( PRTFile, "( 5G14.6 )" ) ( freqVec( ifreq ), ifreq = 1, MIN( Nfreq, Number_to_Echo ) ) IF ( Nfreq > Number_to_Echo ) WRITE( PRTFile, "( G14.6 )" ) ' ... ', freqVec( Nfreq ) ELSE freqVec( 1 ) = freq0 END IF RETURN END SUBROUTINE ReadfreqVec