awips2/ncep/gov.noaa.nws.ncep.ui.nsharp/nsharp_c/get_file_alias.f
root 9f19e3f712 Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 64fa9254b946eae7e61bbc3f513b7c3696c4f54f
2012-01-06 08:55:05 -06:00

84 lines
3.4 KiB
Fortran

SUBROUTINE get_file_alias (alias, path, tmpl, iret)
C************************************************************************
C* GET_FILE_ALIAS *
C* *
C* This subroutine returns the alias path and template. *
C* *
C* GET_FILE_ALIAS ( ALIAS, PATH, TMPL, IRET) *
C* Input parameters: *
C* ALIAS CHAR* Alias name *
C* *
C* Output parameters: *
C* PATH CHAR* Alias path *
C* TMPL CHAR* Alias template *
C* IRET INTEGER Return code *
C** *
C* Log: *
C* ??? ????? ??? *
C* F. J. Yen/NCEP 4/08 Added bin mins & mstrct to CTB_DTGET CSC*
C************************************************************************
INCLUDE 'GEMPRM.PRM'
CHARACTER*(*) alias, path, tmpl
CHARACTER*(255) fpath, newpath, ftmpl, fnull*(MXFLSZ)
LOGICAL tplate
iret = 0
tplate = .true.
CALL ST_NULL ( alias, fnull, nf, ier )
fpath = ' '
ftmpl = ' '
CALL CTB_DTGET ( fnull, fpath, ftmpl, ic, is, if, ir, ii, ion,
+ ihb, mnb, iha, mna, mstrct, idtmch, ier )
IF ( ier .ne. 0 ) tplate = .false.
CALL ST_RNUL ( fpath, fpath, lens, ier )
CALL ST_RNUL ( ftmpl, ftmpl, lens, ier )
IF ( .not. tplate ) THEN
iret = -1
ELSE
CALL SS_ENVR ( fpath, newpath, ier)
IF (ier .eq. 0 ) fpath = newpath
CALL ST_NULL ( fpath, path, lens, ier)
C* Within templates, the following character combinations are reserved: *
C* comb - meaning 'metacharacters' example(s) *
C* YYYY - 4-digit year '[0-9][0-9][0-9][0-9]' 1999,2000,...*
C* YY - 2-digit year '[0-9][0-9]' 98,99,00,... *
C* MMM - 3-char month '[A-Za-z][A-Za-z][A-Za-z]' jan,...,dec *
C* MM - 2-digit month '[0-9][0-9]' 01,02,...,12 *
C* DD - 2-digit day '[0-9][0-9]' 01,02,... *
C* HH - 2-digit hour '[0-9][0-9]' 00,01,... *
C* NN - 2-digit minute '[0-9][0-9]' 00,01,...,59 *
C* DWK - 3-char day of week '[A-Za-z][A-Za-z][A-Za-z]' sun,...,sat *
C* FFF - 3-digit forecast hour '[0-9][0-9][0-9]' 000,... *
C* FF - 2-digit forecast hour '[0-9][0-9]' 00,... *
CALL ST_RPST ( ftmpl, 'YYYY', '[0-2][0-9][0-9][0-9]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'YY', '[0-9][0-9]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'MMM', '[A-Za-z][A-Za-z][A-Za-z]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'MM', '[0-1][0-9]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'DD', '[0-3][0-9]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'HH', '[0-2][0-9]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'NN', '[0-6][0-9]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'DWK', '[A-Za-z][A-Za-z][A-Za-z]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'FFF', '[0-9][0-9][0-9]',
+ ipos, ftmpl, ier )
CALL ST_RPST ( ftmpl, 'FF', '[0-9][0-9]',
+ ipos, ftmpl, ier )
CALL ST_NULL ( ftmpl, tmpl, lens, ier)
END IF
RETURN
END