1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
C--------------------------------------------------------------------------
subroutine fttkyn(iunit,nkey,keynam,keyval,status)
C test that the keyword number NKEY has name = KEYNAM
C and has value = KEYVAL
C
C iunit i Fortran I/O unit number
C nkey i sequence number of the keyword to test
C keynam c name that the keyword is supposed to have
C keyval c value that the keyword is supposed to have
C OUTPUT PARAMETERS:
C status i returned error status (0=ok)
C
C written by Wm Pence, HEASARC/GSFC, June 1991
C
integer iunit,nkey,status
character*(*) keynam,keyval
character kname*8,value*30,comm*48,npos*8,keybuf*80
character errmsg*80
if (status .gt. 0)return
C read the name and value of the keyword
C get the whole record
call ftgrec(iunit,nkey,keybuf,status)
kname=keybuf(1:8)
C parse the value and comment fields from the record
call ftpsvc(keybuf,value,comm,status)
if (status .gt. 0)go to 900
C test if the keyword has the correct name
if (kname .ne. keynam)then
status=208
go to 900
end if
C check that the keyword has the correct value
if (value .ne. keyval)then
status=209
end if
900 continue
if (status .gt. 0)then
write(npos,1000)nkey
1000 format(i8)
errmsg='FTTKYN found unexpected keyword or value '//
& 'for header keyword number '//npos//'.'
call ftpmsg(errmsg)
errmsg=' Was expecting keyword '//keynam//
& ' with value = '//keyval
call ftpmsg(errmsg)
if (keybuf(9:10) .ne. '= ')then
errmsg=' but found keyword '//kname//
& ' with no "= " in cols. 9-10.'
else
errmsg=' but found keyword '//kname//
& ' with value = '//value
end if
call ftpmsg(errmsg)
call ftpmsg(keybuf)
end if
end
|