aboutsummaryrefslogtreecommitdiff
path: root/pkg/tbtables/fitsio/fttkyn.f
blob: 967f6cbc688f5923a4a82d0c2b341dc77b15a021 (plain) (blame)
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