84 lines
3.4 KiB
Fortran
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
|