14.02.2013 Views

Thesis - Leigh Moody.pdf - Bad Request - Cranfield University

Thesis - Leigh Moody.pdf - Bad Request - Cranfield University

Thesis - Leigh Moody.pdf - Bad Request - Cranfield University

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 8 / Simulation<br />

_ _<br />

8.5 Internal Data Communication between Software Modules<br />

Communication between modules, other than utilities, is performed using a<br />

global pool of variables, the “global common block (GCB). These data are<br />

defined in isolated code segments, compiled into the relevant modules using<br />

the INCLUDE statement, and include variable definitions, scaling factors<br />

and units used for automated I/O. The major program variables required for<br />

data logging and windows display are contained in the GCB defined in code<br />

segment COMMON.FTN. Here variables are mapped to a location in a 64<br />

bit real vector, or a 32 bit integer vector. Logical and character types are not<br />

supported since they require conversion for automated I/O purposes. This<br />

code segment also contains an initialisation flag, typed utility functions,<br />

work variables, vectors and matrices that are available for local use in each<br />

module containing it. Data is automatically “SAVED” between invocations.<br />

The use of a GCB, contrary to the usual software ethos based on argument<br />

lists, was adopted to promote:<br />

• Rapid software development<br />

• Consistent use of unique variable names and units<br />

• Use of general plotting, printing and data management facilities<br />

• Interactively changing variables prior to, and during, execution<br />

• Interactive parameter browsing and plotting facilities<br />

Supporting the GCB are subsidiary common blocks dealing with data<br />

transfer between modules comprising localised functionality, or parameters<br />

that are not required for data logging, or windows visualisation. These<br />

additional common blocks have the extension “*.FTN”, their purpose being:<br />

• COMAER: Missile aerodynamics and their derivatives<br />

• COMCNG: User defined in-run change data<br />

• COMGEN: Transformation matrices, random seeds, etc.<br />

• COMGPS: GPS sensor local common block<br />

• COMMAP: DLMS map data<br />

• COMOPT: Missile trajectory optimisation data<br />

• COMSFF: Tracking and Missile Observer data<br />

• COMTWF: Target wire frame model data<br />

• COMWIN: FORTRAN / C++ interface data<br />

• PRIPLO: Automated printing and plotting data<br />

Where practicable these files contain data structures identical to those used<br />

in the GCB to facilitate transfer between them as designs evolve.<br />

8-8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!