The basic technique is to use the ASSIGN statement to specify the format (Cray binary or IEEE binary), the word size (4-byte or 8-byte), and the blocking and control words.
The relevant syntax of the assign statement is:
assign -N [see Table 1] -F [see Table 2] u:unit
where the values of -N and -F are given in the following two tables.
Table 1. 'assign -N' determines format and word size
+----------++--------------------+-------------------+
| -N || Read/Write on CRAY | Read/Write on T3D |
+----------++--------------------+-------------------+
+----------++--------------------+-------------------+
| [none] || Cray R*8/I*8 | IEEE R*8/I*8 |
+----------++--------------------+-------------------+
| cray || Cray R*8/I*8 | Cray R*8/I*8 |
+----------++--------------------+-------------------+
| ieee_64 || IEEE R*8/I*8 | n/a |
+----------++--------------------+-------------------+
| ieee_dp || IEEE R*8/I*4 | n/a |
+----------++--------------------+-------------------+
| [note 1] || IEEE R*4/I*8 | n/a |
+----------++--------------------+-------------------+
| ieee || IEEE R*4/I*4 | n/a |
| ieee_32 || | |
+----------++--------------------+-------------------+
Table 2. 'assign -F' determines blocking and control words
+----------++-------------------------------+
| -F || Read/Write on Cray or T3D |
+----------++-------------------------------+
+----------++-------------------------------+
| [none] || COS-blocking |
+----------++-------------------------------+
| cos || COS-blocking |
+----------++-------------------------------+
| f77 || F77 control words (I*4 at |
| || start and end of each record) |
+----------++-------------------------------+
| null || No blocking, no control words |
+----------++-------------------------------+
Note 1:
Currently available only on shavano and echo. Compile with:
cf77 -Wl"-F" ~kuehn/IEEE_conversion/fp32_int64.o your.prog.f
and use:
assign -N user u:10 # Add -F as desired/necessary
assign -N ieee_dp -F f77 u:10
assign -N cray -F cos u:10