subroutine read_edeck ( storm_edeck, cur_ymdh, last_tau, igpcef, + gpcet ) !> @brief !! THIS SUBROUTINE reads the GPCE values for the forecast periods !> @param[in] storm_edeck | file path of edeck !> @param[in] cur_ymdh | yyyymmddhh init time read from edeck !> @param[in] last_tau | unused ...? !> @param[out] igpcef | Flag if GPCE radii was found !> @param[out] gpcet | GPCE data read from edeck ! !> @author !! Sampson - March 2011 C C** THIS SUBROUTINE reads the GPCE values for the forecast periods C C Sampson 2010 C Updated to use edeck reader ... sampson Mar 2011 INCLUDE 'dataformats.inc' c integer maxtau, alltau parameter ( maxtau = 10, alltau = 120 ) c character*100, intent(in) :: storm_edeck character*10, intent(in) :: cur_ymdh integer, intent(in) :: last_tau integer, intent(out) :: igpcef real, intent(out), dimension(0:maxtau) :: gpcet integer result, tau, ios character*2 basin, cynum character*8 strmid character*10 fst_ymdh character*16 latlon c type ( BIG_EPROB_DATA ) aidsData type ( EPROB_DATA ) fstRcd, tauData c c** Zero the array c do i = 0, maxtau gpcet( i ) = 0 enddo igpcef = 1 ! initialize flag to non-zero for success c c** Open the edeck file c open ( 25, file=storm_edeck, status='old', iostat=ios, err=1050 ) c c** Get the guidance for the current date/time c call getBigEProbDTG ( 25, cur_ymdh, aidsData, result ) if ( result .eq. 0 ) then igpcef = 0 return endif c c** Get the official forecast for the current date/time c call getTechEProb ( aidsData, 'TVCN', fstRcd, result ) if ( result .eq. 0 ) then call getTechEProb ( aidsData, 'TCON', fstRcd, result ) if ( result .eq. 0 ) then call getTechEProb ( aidsData, 'CONW', fstRcd, result ) if ( result .eq. 0 ) then igpcef = 0 return endif endif endif c c** Get the official forecast data by searching for all c** possible TAUs c do itau = 0, alltau, 12 c call getSingleEProbTAU ( fstRcd, itau, tauData, istat ) if ( istat .ne. 1) cycle c C** Read the GPCE radius C num = (tauData%eRecord(1)%tau)/12 gpcet(num)= float( tauData%eRecord(1)%track%rad ) enddo c c close (25) return 1050 write(0, '(3a,i2,a)') ' INFO - Failed to open edeck = ', + trim(storm_edeck),' ios = ', ios, + ' Continuing without GPCE modification' return end