10 program nemsio_chgdate
12 use nemsio_module,
only: nemsio_init, nemsio_open, nemsio_close
13 use nemsio_module,
only: nemsio_intkind
14 use nemsio_module,
only: nemsio_gfile, nemsio_getfilehead, &
19 character(len=50) :: filename
20 character(len=10) :: idatestr, nfhourstr
21 integer(nemsio_intkind) :: iret
22 integer(nemsio_intkind) :: idate(7), nfhour
24 type(nemsio_gfile) :: gfile
27 call getarg(1, filename)
30 call getarg(2, idatestr)
33 call getarg(3, nfhourstr)
35 write(6,
'(A)')
'NEMSIO_CHGDATE:'
36 write(6,
'(2(A))')
' filename = ',trim(filename)
37 write(6,
'(2(A))')
' new idate = ',trim(idatestr)
38 write(6,
'(2(A))')
' new nfhour = ',trim(nfhourstr)
40 call nemsio_init(iret=iret)
41 call nemsio_error(iret,
'open to initialize nemsio')
43 call nemsio_open(gfile, trim(filename),
'RDWR', iret=iret)
44 call nemsio_error(iret,
'open to READ and WRITE' // trim(filename))
46 call nemsio_getfilehead(gfile, idate=idate, nfhour=nfhour, iret=iret)
47 call nemsio_error(iret,
'getfilehead (idate) from ' // trim(filename))
49 write(6,
'(A,7(1X,I6))')
'OLD idate = ', idate
50 write(6,
'(A,I4)')
'OLD nfhour = ', nfhour
53 read(idatestr(1:4),
'(I4)') idate(1)
54 read(idatestr(5:6),
'(I2)') idate(2)
55 read(idatestr(7:8),
'(I2)') idate(3)
56 read(idatestr(9:10),
'(I2)')idate(4)
57 read(nfhourstr,
'(I10)') nfhour
59 write(6,
'(A,7(1X,I6))')
'NEW idate = ', idate
60 write(6,
'(A,I4)')
'NEW nfhour = ', nfhour
62 call nemsio_setheadvar(gfile,
'idate', idate, iret=iret)
63 call nemsio_error(iret,
'setfilehead (idate) in ' // trim(filename))
64 call nemsio_setheadvar(gfile,
'nfhour', nfhour, iret=iret)
65 call nemsio_error(iret,
'setfilehead (nfhour) in ' // trim(filename))
67 call nemsio_close(gfile, iret=iret)
68 call nemsio_error(iret,
'close file ' // trim(filename))
74 subroutine nemsio_error(iret, msg)
78 integer(nemsio_intkind),
intent(in) :: iret
79 character(len=*),
intent(in) :: msg
81 character(len=500) :: msgout
85 msgout =
'***ERROR*** Unable to ' // trim(msg) //
' ABORT!'
86 write(6,*) trim(msgout)
91 end subroutine nemsio_error
93 END program nemsio_chgdate