1
! @(#)md5.prg 19.1 (ESO-DMD) 02/25/03 14:08:54
2
! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4
! MIDAS procedure md5.prg to implement COMPUTE/SIGNATURE
7
! use as COMPUTE/SIGNATURE file option [FITS name]
8
! with option = Update (default)
10
! FITS name = optional name for conversion to FITS
12
! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
14
define/param p1 ? c "Enter file name:"
15
define/param p2 update c "Enter option:"
16
define/param p3 + c "Enter FITS name:"
18
if p3(1:1) .ne. "+" then
19
write/keyw action update
20
define/local fits_out/i/1/1 1
22
write/keyw action/c/1/8 p2
23
define/local fits_out/i/1/1 0
25
define/local orig_in/c/1/128 {p1}
26
if p2(1:1) .ne. "U" then
27
define/local temp_fits/c/1/128 y__y.fits
28
define/local upda/i/1/1 0
30
define/local temp_fits/c/1/128 {orig_in}
31
define/local upda/i/1/1 1 !Yes. update the descr.
33
define/local md5/c/1/32 "." all
34
define/local file_md5/c/1/128 {orig_in}
36
if aux_mode .lt. 2 then !VMS
37
define/local version/c/1/2 ".*"
39
define/local version/c/1/1 " "
41
mid$info(1) = m$filtyp(orig_in,"?fits") !check, if FITS file
43
if mid$info(1) .eq. 1 then
44
in_a = orig_in // "[0]" !always use primary FITS header
45
inputi = m$existd(in_a,"datamd5")
47
inputi = m$existd(orig_in,"datamd5")
48
if fits_out .ne. 0 then
49
inputi = m$filtyp(orig_in," ")
50
if inputi .eq. 2 then !it's a Midas table
51
create/image empty 0 ? no
52
write/desc empty datamd5/c/1/32 "..." all
53
write/dhelp empty datamd5 "MD5 signature of data in FITS format"
59
if inputi(1) .eq. 0 then !DATAMD5 does not exist
61
if mid$info(1) .eq. 1 then !FITS file
62
indisk/mfits {orig_in} x__x NOY no y__y.cat >Null
63
write/keyw in_b x__x0000.bdf !primary header => x__x0000.bdf
64
write/desc {in_b} datamd5/c/1/32 "..." all
65
write/dhelp {in_b} datamd5 "MD5 signature of data in FITS format"
66
outdisk/sfits y__y.cat {temp_fits} !(over)write FITS file
67
run MID_EXE:fitsmd5.exe !and update
68
delete/icat y__y.cat no >Null !delete files from indisk/mfits
69
-delete y__y.cat{version}
70
if p2(1:1) .eq. "C" then
71
-delete {temp_fits}{version}
75
if fits_out .ne. 2 then
76
write/desc {orig_in} datamd5/c/1/32 "..." all
77
write/dhelp {orig_in} datamd5 "MD5 signature of data in FITS format"
83
if mid$info(1) .eq. 1 then !FITS file
84
run MID_EXE:fitsmd5.exe !update
88
if fits_out .ne. 0 then !create FITS file
89
if fits_out .eq. 1 then
90
outdisk/sfits {orig_in} {p3} >Null
92
outdisk/sfits empty.bdf,{orig_in} {p3} >Null
95
run MID_EXE:fitsmd5.exe !signature -> OUTPUTC
97
outdisk/sfits {orig_in} x__x.fits >Null
98
file_md5 = "x__x.fits"
99
run MID_EXE:fitsmd5.exe !signature -> OUTPUTC
102
write/desc {orig_in} datamd5/c/1/32 {outputc} !update
104
-delete x__x.fits{version}