| 1 | edhill | 1.1 |  | 
| 2 |  |  | Averaging MITgcm output: | 
| 3 |  |  |  | 
| 4 |  |  | The program and scripts here are a few quick hacks that efficiently | 
| 5 |  |  | average binary files as output by MITgcm.  The following assumptions | 
| 6 |  |  | apply: | 
| 7 |  |  |  | 
| 8 |  |  | - all files are SINGLE-precision IEEE-754 stored in BIG-endian byte | 
| 9 |  |  | order (which is the standard for MITgcm single-precision MDSIO | 
| 10 |  |  | output) | 
| 11 |  |  |  | 
| 12 | edhill | 1.2 | - the machine running the "average_fields" program is a | 
| 13 |  |  | LITTLE-endian architecture such as: | 
| 14 | edhill | 1.1 |  | 
| 15 |  |  | - IA32 (Intel or AMD x86-compatible) | 
| 16 |  |  | - Linux on IA64 (eg. Altixes) | 
| 17 |  |  |  | 
| 18 |  |  |  | 
| 19 |  |  | The program syntax is: | 
| 20 |  |  |  | 
| 21 | edhill | 1.2 | $  make average_fields | 
| 22 |  |  | $  ./average_fields field_1 field_3 ... field_n output_field | 
| 23 | edhill | 1.1 |  | 
| 24 |  |  |  | 
| 25 | edhill | 1.2 | Two additional scripts ("do_the_averages" and "job_ave") demonstrate | 
| 26 |  |  | how to easily run N simultaneous average_fields programs within either | 
| 27 |  |  | interative (the former) or queue-driven (the latter) environments. | 
| 28 |  |  |  | 
| 29 |  |  |  | 
| 30 |  |  | NOTE: | 
| 31 |  |  |  | 
| 32 |  |  | Outputs from this program can differ slightly from machine to machine | 
| 33 |  |  | due to rounding errors.  The intermediate sums are computed internally | 
| 34 |  |  | at double precision and converted to single precision immediately | 
| 35 |  |  | before being written.  Both IA32 and IA64 machines have been compared | 
| 36 |  |  | and the differences (when there are any!) all appear to be acceptable | 
| 37 |  |  | within the slightly different rounding inherent with these two | 
| 38 |  |  | architectures. | 
| 39 |  |  |  |