N-tuple files are RZ files written in Exchange mode format so it is trivial to copy between VMS and UNIX. In either case use FTP and specify a BINARY transfer. When copying to a VMS system, after copying the file, you have to change the block size from the default of 512 to 4096 e.g.:-
set file/attribute=(lrl:4096) hbooksm.ntp
This command is not available on some older versions of VMS, in this case proceeds as follows:-
integer INPUT_SIZE,OUTPUT_SIZE
parameter (INPUT_SIZE = 512, OUTPUT_SIZE = 4096)
character*1 input_buffer(INPUT_SIZE) ,
+ output_buffer(OUTPUT_SIZE)
integer nw_output , num_rec , iwd
open( unit=10, file='input', form='FORMATTED',
+ recordtype='FIXED' , recl=INPUT_SIZE, status='OLD')
open( unit=11, file='output',form='FORMATTED',
+ recordtype='FIXED' , recl=OUTPUT_SIZE,status='NEW')
num_rec = 0
do while ( .true. )
nw_output = 0
do while ( nw_output + INPUT_SIZE .le. OUTPUT_SIZE )
read(10,90000,end=100) input_buffer
num_rec = num_rec + 1
do iwd = 1 , INPUT_SIZE
nw_output = nw_output + 1
output_buffer(nw_output) = input_buffer(iwd)
enddo
enddo
write(11,90000) output_buffer
enddo
100 if (nw_output .gt. 0)
+ write(11,90000) (output_buffer(iwd), iwd = 1, nw_output)
close(unit=10)
close(unit=11)
print * , num_rec , INPUT_SIZE ,
+ '-byte records transferred'
stop
90000 format(999999a1)
end
$ fort convert $ link convert $ define/user input unix_hbooksm.ntp $ define/user output vms_hbooksm.ntp $ run convert
If you have used a different record length e.g.:-
$hbk_lrecl 8191you will need to adjust the record length in the above procedure accordingly.