pro makeextrinfotxt ; Paul Withers, 2008.01.18 ; Center for Space Physics, Boston University ; Make EXTRINFO.TXT common bigpdsblock ;maxstrlen = bigpdsstruct.maxstrlen ;blankline = bigpdsstruct.blankline outfile = bigpdsstruct.outfileextrinfotxt ;pdsversionid = bigpdsstruct.pdsversionid preamble = strarr(9) preamble(0) = 'PDS_VERSION_ID = PDS3' preamble(1) = 'RECORD_TYPE = STREAM' preamble(2) = 'OBJECT = TEXT' preamble(3) = ' PUBLICATION_DATE = ' + $ bigpdsstruct.pubdateyyyymmdd preamble(4) = ' INTERCHANGE_FORMAT = ASCII' preamble(5) = ' NOTE = "Description of the EXTRAS directory"' preamble(6) = 'END_OBJECT = TEXT' preamble(7) = 'END' preamble(8) = ' ' ;mainmeat = strarr(bigpdsstruct.extrinfomainmeatlength) mainmeat = strarr(282) i=0 mainmeat(i) = ' EXTRAS Directory Contents' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The EXTRAS directory contains additional files beyond the scope' & i=i+1 mainmeat(i) = 'of the PDS archive requirements.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The following files and directories are found in the EXTRAS directory:' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'EXTRINFO.TXT - The file you are now reading' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'CODE/ - Software used to generate this data volume' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'HIRATE/ - High rate data in original format' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'IDLSAV/ - IDL save files for profile and constant altitude results' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'LORATE/ - Low rate data in original format' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The CODE/ directory contains all the programs used to' & i=i+1 mainmeat(i) = 'generate this data volume. These programs' & i=i+1 mainmeat(i) = 'are written in IDL. All users of this dataset can understand,' & i=i+1 mainmeat(i) = 'but not run, these programs by studying any of the many books' & i=i+1 mainmeat(i) = 'published about this computer language. These programs are' & i=i+1 mainmeat(i) = 'provided so that users of this dataset can fully understand' & i=i+1 mainmeat(i) = 'exactly how these data products were produced. These programs' & i=i+1 mainmeat(i) = 'may also be useful to some users in other ways. Users who' & i=i+1 mainmeat(i) = 'possess the free IDL Virtual Machine software or who possess' & i=i+1 mainmeat(i) = 'a non-free licensed version of IDL can edit and run these' & i=i+1 mainmeat(i) = 'programs to better understand the sensitivity of the derived' & i=i+1 mainmeat(i) = 'data products to the assumptions discussed in DATASET.CAT.' & i=i+1 mainmeat(i) = 'Such users will need to manually edit some of the directory' & i=i+1 mainmeat(i) = 'names used in these programs to names suitable for their' & i=i+1 mainmeat(i) = 'computer systems. These programs have been developed over' & i=i+1 mainmeat(i) = 'several years. They contain comments, but some of the' & i=i+1 mainmeat(i) = 'comments are out of date.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The aerodynamic database, which is required for some of these' & i=i+1 mainmeat(i) = 'programs to run, is not archived. Robert Mase of JPL supplied' & i=i+1 mainmeat(i) = 'the aerodynamic database to us in file 01_aerodatabase.v1.inc.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The following files are found in the CODE directory:' & i=i+1 mainmeat(i) = 'AAREADME.txt' & i=i+1 mainmeat(i) = 'Describes how IDL procedures in the CODE directory are used.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'datasetv01.raw' & i=i+1 mainmeat(i) = 'Text that is used by makedatasetcat.pro to generate' & i=i+1 mainmeat(i) = 'CATALOG/DATASET.CAT file.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'de414.bsp' & i=i+1 mainmeat(i) = 'SPICE kernel with planetary information that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'firstgoodscet.txt' & i=i+1 mainmeat(i) = 'Produced by useodyaccprofiles.pro and used by' & i=i+1 mainmeat(i) = 'makecaltfiles.pro. Contains times of first valid entry in' & i=i+1 mainmeat(i) = 'each DATA/CALT file.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'ingestcd.pro' & i=i+1 mainmeat(i) = 'IDL procedure to store aerodynamic database in a common block.' & i=i+1 mainmeat(i) = 'This procedure will not work without file 01_aerodatabase.v1.inc.' & i=i+1 mainmeat(i) = 'This file contains the aerodynamic database and is not archived.' & i=i+1 mainmeat(i) = 'This file was supplied to us by Robert Mase of JPL.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'lastgoodscet.txt' & i=i+1 mainmeat(i) = 'Produced by useodyaccprofiles.pro and used by' & i=i+1 mainmeat(i) = 'makecaltfiles.pro. Contains times of last valid entry in' & i=i+1 mainmeat(i) = 'each DATA/CALT file.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'm01_ab.bsp' & i=i+1 mainmeat(i) = 'SPICE kernel with information about position and' & i=i+1 mainmeat(i) = 'velocity of Odyssey that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'm01_sc_ab0110.bc' & i=i+1 mainmeat(i) = 'SPICE kernel with information about orientation and' & i=i+1 mainmeat(i) = 'angular velocity of Odyssey that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'm01_sc_ab0111.bc' & i=i+1 mainmeat(i) = 'SPICE kernel with information about orientation and' & i=i+1 mainmeat(i) = 'angular velocity of Odyssey that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'm01_sc_ab0112.bc' & i=i+1 mainmeat(i) = 'SPICE kernel with information about orientation and' & i=i+1 mainmeat(i) = 'angular velocity of Odyssey that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'm01_sc_ab0201.bc' & i=i+1 mainmeat(i) = 'SPICE kernel with information about orientation and' & i=i+1 mainmeat(i) = 'angular velocity of Odyssey that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'm01_sc_ab0202.bc' & i=i+1 mainmeat(i) = 'SPICE kernel with information about orientation and' & i=i+1 mainmeat(i) = 'angular velocity of Odyssey that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'm01_v28.tf' & i=i+1 mainmeat(i) = "SPICE kernel with information about Odyssey's" & i=i+1 mainmeat(i) = 'reference frames that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeaareadmetxt.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates AAREADME.TXT' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeancfiles.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates DATA/RAW/ACCANCPXXX.LBL' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makecaltfiles.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates DATA/CALT/PPPQQQ.LBL' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makecatinfotxt.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates CATALOG/CATINFO.TXT' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makecommonblock.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates a common block used by many procedures.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makedatasetcat.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates CATALOG/DATASET.CAT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makedocinfotxt.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates DOCUMENT/DOCINFO.TXT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makedoclbl.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates DOCUMENT/REPORT.LBL.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeerratatxt.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates ERRATA.TXT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeextrinfotxt.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates EXTRAS/EXTRINFO.TXT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeindexlbl.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates INDEX/INDEX.LBL.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeindextab.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates INDEX/INDEX.TAB.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeindxinfotxt.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates INDEX/INDXINFO.TXT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeinstcat.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates CATALOG/INST.CAT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates DATA/ANC/ACCANCPXXX.TAB' & i=i+1 mainmeat(i) = 'and DATA/PROF/ACCPROFPXXX.TAB.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makepersoncat.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates CATALOG/PERSON.CAT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makerawfiles.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates DATA/RAW/ACCYYPXXX.LBL' & i=i+1 mainmeat(i) = 'and DATA/RAW/ACCYYPXXX.TAB.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makerefcat.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates CATALOG/REF.CAT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'makevoldesccat.pro' & i=i+1 mainmeat(i) = 'IDL procedure that generates VOLDESC.CAT.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'mega90n000cb.img' & i=i+1 mainmeat(i) = 'MOLA areoid in PDS .img format.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'mega90n000cb.lbl' & i=i+1 mainmeat(i) = 'PDS label file for mega90n000cb.img.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'naif0008.tls' & i=i+1 mainmeat(i) = 'SPICE file with information on leap seconds that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro, makerawfiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'norbsforcalt.txt' & i=i+1 mainmeat(i) = 'Produced by useodyaccprofiles.pro and used by makecaltfiles.pro.' & i=i+1 mainmeat(i) = 'Contains number of profiles.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'odymasshistory.csv' & i=i+1 mainmeat(i) = 'Contains mass of Odyssey in kg as function of orbit. Used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro. Derived from odymasshistory.xls, supplied' & i=i+1 mainmeat(i) = 'by personal communication from Robert Mase.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'orb1_sclkscet_00129.tsc' & i=i+1 mainmeat(i) = 'SPICE file with information on time conversions that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'orbs4and6.pro' & i=i+1 mainmeat(i) = 'IDL procedure that prints to screen information on P004 and P006' & i=i+1 mainmeat(i) = "for DATASET.CAT that isn't included in DATA/ANC/ files." & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'pck00008.tpc' & i=i+1 mainmeat(i) = 'SPICE file with information on planetary rotation that is used by' & i=i+1 mainmeat(i) = 'makeodyaccprofiles.pro and orbs4and6.pro.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'readodyacccalt.pro' & i=i+1 mainmeat(i) = 'IDL procedure that reads constant altitude data into memory.' & i=i+1 mainmeat(i) = 'No output.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'readodyaccprofiles.pro' & i=i+1 mainmeat(i) = 'IDL procedure that produces EXTRAS/IDLSAV/all_ody_profiles.sav.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'useodyaccprofiles.pro' & i=i+1 mainmeat(i) = 'IDL procedure that produces firstgoodscet.txt, lastgoodscet.txt' & i=i+1 mainmeat(i) = 'norbsforcalt.txt, DATA/CALT/PPPQQQ.TAB and' & i=i+1 mainmeat(i) = 'EXTRAS/IDLSAV/odycaltarray.sav.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The HIRATE/ directory contains files L0PXXX.mat, where' & i=i+1 mainmeat(i) = 'XXX is an orbit number. These files were produced by MATLAB,' & i=i+1 mainmeat(i) = 'a high-level technical computing language, and are difficult' & i=i+1 mainmeat(i) = 'to open without proprietary software. These files, which were' & i=i+1 mainmeat(i) = 'provided to the PDS by the aerobraking team, are the ultimate' & i=i+1 mainmeat(i) = 'source of the high rate data used in this work. The high rate' & i=i+1 mainmeat(i) = 'accelerometer data used in this work were extracted from these files.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The LORATE/ directory contains files pXXXacc.txt, where' & i=i+1 mainmeat(i) = 'XXX is an orbit number. These files, which were provided' & i=i+1 mainmeat(i) = 'to the PDS by the aerobraking team, are the ultimate source of' & i=i+1 mainmeat(i) = 'the low rate data used in this work. The low rate accelerometer' & i=i+1 mainmeat(i) = 'data used in this work were extracted from these ASCII files.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'The IDLSAV/ directory contains two files, all_ody_profiles.sav' & i=i+1 mainmeat(i) = 'and odycaltarray.sav. These are IDL save files that are difficult' & i=i+1 mainmeat(i) = 'to open without free IDL Virtual Machine software or a non-free' & i=i+1 mainmeat(i) = 'licensed version of IDL. These files are provided primarily as a' & i=i+1 mainmeat(i) = 'convenience for the subset of PDS users who are IDL users.' & i=i+1 mainmeat(i) = 'all_ody_profiles.sav contains one structure, all_ody_profiles, that has 330' & i=i+1 mainmeat(i) = 'elements - one for each orbit. all_ody_profiles(i).periscet is a string' & i=i+1 mainmeat(i) = 'containing the UTC time of periapsis for orbit i.' & i=i+1 mainmeat(i) = 'all_ody_profiles(i).peridetails is an 11 element' & i=i+1 mainmeat(i) = 'array containing (1) orbit number, (2) periapsis radius (km), (3) periapsis' & i=i+1 mainmeat(i) = 'altitude (km), (4) periapsis latitude (degrees N),' & i=i+1 mainmeat(i) = '(5) periapsis longitude (degrees E), (6) periapsis LST (hours),' & i=i+1 mainmeat(i) = '(7) periapsis SZA (degrees), (8) Ls at periapsis (degrees),' & i=i+1 mainmeat(i) = '(9) spacecraft mass (kg), (10) number of lines and' & i=i+1 mainmeat(i) = "(11) number of columns for orbit i. The first nine elements are identical" & i=i+1 mainmeat(i) = "to quantities in orbit i's ancilliary data file (DATA/ANC/ACCANCPXXX.TAB)." & i=i+1 mainmeat(i) = "The number of lines is the number of rows in orbit i's" & i=i+1 mainmeat(i) = 'profile data file (DATA/PROF/ACCANCPXXX.TAB). The number of columns' & i=i+1 mainmeat(i) = '(61) refers to an obsolete data file that is not archived.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'all_ody_profiles(i).profscet is a 1700 element array containing the' & i=i+1 mainmeat(i) = "UTC times of each row in orbit i's profile data file" & i=i+1 mainmeat(i) = "(DATA/PROF/ACCANCPXXX.TAB). Orbit i's profile data file will contain fewer" & i=i+1 mainmeat(i) = 'than 1700 rows, so excess elements at the end of' & i=i+1 mainmeat(i) = 'all_ody_profiles(i).profscet are left blank.' & i=i+1 mainmeat(i) = ' ' & i=i+1 mainmeat(i) = 'all_ody_profiles(i).profdata is a 60 x 1700 element array.' & i=i+1 mainmeat(i) = 'Each of the 1700 rows corresponds to a time given by the relevant' & i=i+1 mainmeat(i) = 'element of the 1700 element array all_ody_profiles(i).profscet.' & i=i+1 mainmeat(i) = 'Many of these columns contain parameters defined' & i=i+1 mainmeat(i) = 'in those portions of CATALOG/DATASET.CAT where the files in the DATA/ANC/' & i=i+1 mainmeat(i) = 'and DATA/PROF/ directories are defined. Units are also defined there.' & i=i+1 mainmeat(i) = 'The contents of each column are as follows:' & i=i+1 mainmeat(i) = '(1) TIME_AFTER_PERI, (2) RADIAL_DIST, (3) ALTITUDE, (4) LATITUDE,' & i=i+1 mainmeat(i) = '(5) LONGITUDE, (6) LOCAL_SOLAR_TIME, (7) SOLAR_ZENITH_ANGLE, (8) LS,' & i=i+1 mainmeat(i) = '(9) VRELX, (10) VRELY, (11) VRELZ, (12) VREL, (13) OMEGAX, (14) OMEGAY,' & i=i+1 mainmeat(i) = '(15) OMEGAZ, (16) rate of change of OMEGAX (radians s^(-2)),' & i=i+1 mainmeat(i) = '(17) rate of change of OMEGAY (radians s^(-2)),' & i=i+1 mainmeat(i) = '(18) rate of change of OMEGAZ (radians s^(-2)),' & i=i+1 mainmeat(i) = '(19) x-component of vector omega x (vector omega x vector r), an' & i=i+1 mainmeat(i) = 'angular acceleration (m s^(-2)), (20) y-component of' & i=i+1 mainmeat(i) = 'vector omega x (vector omega x vector r), an angular acceleration (m s^(-2)),' & i=i+1 mainmeat(i) = '(21) z-component of vector omega x (vector omega x vector r), an' & i=i+1 mainmeat(i) = 'angular acceleration (m s^(-2)),' & i=i+1 mainmeat(i) = '(22) x-component of (rate of change of vector omega) x vector r, an' & i=i+1 mainmeat(i) = 'angular acceleration (m s^(-2)),' & i=i+1 mainmeat(i) = '(23) x-component of (rate of change of vector omega) x vector r, an' & i=i+1 mainmeat(i) = 'angular acceleration (m s^(-2)),' & i=i+1 mainmeat(i) = '(24) x-component of (rate of change of vector omega) x vector r, an' & i=i+1 mainmeat(i) = 'angular acceleration (m s^(-2)),' & i=i+1 mainmeat(i) = '(25) ALPHA, (26) THETA, (27) PHI,' & i=i+1 mainmeat(i) = '(28) AX_HI_RAW after step 1 of data processing' & i=i+1 mainmeat(i) = '(AX_LO_RAW if no AX_HI_RAW),' & i=i+1 mainmeat(i) = '(29) AY_HI_RAW after step 1 of data processing' & i=i+1 mainmeat(i) = '(AY_LO_RAW if no AY_HI_RAW), same as AY1AS1,' & i=i+1 mainmeat(i) = '(30) AZ_HI_RAW after step 1 of data processing' & i=i+1 mainmeat(i) = '(AZ_LO_RAW if no AZ_HI_RAW),' & i=i+1 mainmeat(i) = '(31) AY1AS3, (32) SAY1, (33) AY7AS3, (34) SAY7, (35) AY39AS3,' & i=i+1 mainmeat(i) = '(36) SAY39, (37) CY1, (38) SCY1, (39) CY7, (40) SCY7, (41) CY39,' & i=i+1 mainmeat(i) = '(42) SCY3 (43) RHO1, (44) SRHO1, (45) RHO7, (46) SRHO7,' & i=i+1 mainmeat(i) = '(47) RHO39 and (48) SRHO39. Columns (49) to (61) were intended to contain' & i=i+1 mainmeat(i) = 'pressure and temperature information. They do not. They always contain' & i=i+1 mainmeat(i) = 'null values of 0.0000000. The vector r used to calculate angular' & i=i+1 mainmeat(i) = 'accelerations was (0.164, -0.544, 1.137) metres.' & i=i+1 ;help, i i=0 while i lt n_elements(preamble) do begin if strlen(preamble(i)) ge bigpdsstruct.maxstrlen then stop preamble(i) = preamble(i) + bigpdsstruct.blankline junk = strmid(preamble(i),0,bigpdsstruct.maxstrlen) preamble(i) = junk i=i+1 endwhile i=0 while i lt n_elements(mainmeat) do begin if strlen(mainmeat(i)) ge bigpdsstruct.maxstrlen then stop mainmeat(i) = mainmeat(i) + bigpdsstruct.blankline junk = strmid(mainmeat(i),0,bigpdsstruct.maxstrlen) mainmeat(i) = junk i=i+1 endwhile junk='' openw, lun1, outfile, /get_lun i=0 while i lt n_elements(preamble) do begin printf, lun1, preamble(i) i=i+1 endwhile i=0 while i lt n_elements(mainmeat) do begin printf, lun1, mainmeat(i) i=i+1 endwhile free_lun, lun1 end