51 CHARACTER*256 CARG,CFMT
52 INTEGER*4 IARG,LARG,NCARG,NARG,IARGC
53 INTEGER IDAT(8),JDAT(8)
61 dowhile(iarg.LE.narg.AND.lstopt.EQ.0)
62 CALL getarg(iarg,carg)
65 IF(carg(1:1).NE.
'-'.OR.
66 & (carg(2:2).GE.
'0'.AND.carg(2:2).LE.
'9'))
THEN
69 ELSEIF(larg.EQ.1)
THEN
70 CALL errmsg(
'ndate: Invalid option -')
76 IF(carg(l:l).EQ.
'-')
THEN
79 CALL errmsg(
'ndate: Invalid option '//carg(l:l))
91 CALL errmsg(
'ndate: Incorrect number of arguments')
98 CALL getarg(iarg,carg)
100 WRITE(cfmt,
'("(I",I2,")")') ncarg
101 READ(carg,cfmt,iostat=iret) ihour
103 CALL errmsg(
'ndate: Noninteger forecast hour '//carg(1:ncarg))
115 CALL getarg(iarg+1,carg)
117 WRITE(cfmt,
'("(I",I2,",3I2)")') ncarg-6
119 READ(carg,cfmt,iostat=iret) idat(1),idat(2),idat(3),idat(5)
120 IF(iret.NE.0.OR..NOT.w3valdat(idat))
THEN
121 CALL errmsg(
'ndate: Invalid date '//carg(1:ncarg))
130 CALL w3movdat(rinc,idat,jdat)
131 nd=log10(jdat(1)+0.5)+1
132 WRITE(cfmt,
'("(I",I2,",3I2.2)")') nd
133 print cfmt,jdat(1),jdat(2),jdat(3),jdat(5)
139 CALL errmsg(
'Usage: ndate [fhour [idate]]')