Please use the following naming convention: a) Each Unit in FLASH 3 is assigned an identifier (Grid, Driver, Hydro etc). All of the public functions of a unit in FLASH 3 start with its unique identifier, followed by an underscore, followed by the name of the function. For example "Driver_global", "Hydro_timestep" etc. In FLASH 2 even though the modules do have identifiers (dBase, mesh etc), this naming convention is used erratically. b) The subunit names in FLASH 3 are composits of the unit name and some identifier that reflects the functionality of the subunit. For example all routines related to Lagrangian particles in the Grid unit are contained in the subunit GridParticles b) All module scope variables available in a data module should begin with a unique two- or three- letter identifier, followed by an underscore, then followed by a description. e.g. if Module is designated by "fm", then public variables should begin with "fm_": real,save :: fm_variableName c) Non-data-module variables should NOT have an underscore in them. Instead, they should follow a convention where they begin with a lowercase letter, and subsequent descriptive words are capitalized. e.g. integer :: numberDiscreteQuantities This convention will be enforced at the programming interface level, e.g. in the argument calls to subroutines. d) Where possible, use the prefix (fm_ in this case) for the non public functions in a module/unit. Examples are functions fm_localFoo in ModuleImpl1 and functions fm_localFoo1 and fm_localFoo2 in ModuleImpl2 of this template. This naming convention is encouraged but not enforced.