INTRODUCTION TO PIL
Further Details On The Q1 File
- Data settings in Q1 are arranged into Groups. There are 24 Groups, the titles of which
are frequently inserted as comments. An empty Q1 with the Group names would be:
GROUP 1. Run title and other preliminaries
GROUP 2. Transience; time-step specification
GROUP 3. X-direction grid specification
GROUP 4. Y-direction grid specification
GROUP 5. Z-direction grid specification
GROUP 6. Body-fitted coordinates or grid distortion
GROUP 7. Variables stored, solved & named
GROUP 8. Terms (in differential equations) & devices
GROUP 9. Properties of the medium (or media)
GROUP 10. Inter-phase-transfer processes and properties
GROUP 11. Initialization of variable or porosity fields
GROUP 12. Convection and diffusion adjustments
GROUP 13. Boundary conditions and special sources
GROUP 14. Downstream pressure for PARAB=.TRUE.
GROUP 15. Termination of sweeps
GROUP 16. Termination of iterations
GROUP 17. Under-relaxation devices
GROUP 18. Limits on variables or increments to them
GROUP 19. Data communicated by satellite to GROUND
GROUP 20. Preliminary print-out
GROUP 21. Print-out of variables
GROUP 22. Spot-value print-out
GROUP 23. Field print-out and plot control
GROUP 24. Dumps for restarts
- The group list is just an aide-memoire, and not a questionnaire that has to be filled
- Not all the groups must be provided with data settings, for all PIL variables have
default values; PIL commands do not need to be placed in the Group they 'belong' to; and,
furthermore, the Group list itself is just a reminder and does not need to be present at
- PIL is an interpreted language (like most BASIC), not a compiled language (like
FORTRAN). Each statement is implemented immediately it is read in, either from Q1 or from
- Statements starting in column 3 or greater are treated as comments.
Getting Help And Status Checking
- Entering '?' will elicit general advice, and suggestions for further inquiry.
- Entering a variable or command followed by '?' will elicit help on that item. All
on-line help entries are also printed in the PHOENICS Reference manual, TR/200a and are
available through the on-line Encyclopedia.
- Entering a variable followed by RETURN will cause Satellite to display the current
setting of that variable.
- The command SEE will cause Satellite to display all currently active variables in Group
1. Further RETURNs will display subsequent Groups.
- SEE n will display the settings in Group n directly.
- GROUPn will display a list of all variables and commands 'belonging' to group n.
Access To The Library
- The command SEELIB will display the contents of the PHOENICS Input Library, starting
with the contents list.
- Cases from the Input Library can be accessed by LOADing them:
will cause Satellite to read in and act on the data settings for the specified case.
- Further commands or menu settings will then act to modify the basic Library case.
Ending The Session
- Once all data settings have been made and are correct, the command END will cause
Satellite to write out the EARDAT file for Earth and stop.
- Before stopping, the user is given the opportunity to overwrite the existing Q1 file
with the 'stack' of commands held in the Satellite memory.
- This will contain all that was read in from Q1 together with all that has been entered
at the keyboard.
- If the user answers NO to the 'overwrite Q1?' question, and only then realises that
three hours of hard work have been lost, they should not despair. The file COPYQ1 will
contain a copy all this material until the next time Satellite is executed.
The Satellite Stack
- Previous panels have mentioned that PIL is interpreted as soon as it is read. All legal
commands are held in a 'stack', which can be inspected - and changed - by the user.
EDITOR? will elicit information on how the stack editor works.
- The stack editor is needed because of the interpretive nature of PIL. The commands
GRDPWR(X,5,1,1); CONPOR(BL1,0,CELL,1,NX... will set NX (Number of cells in X) to 5, and
then the X limits of the CONPOR to 1,5. A subsequent NX=10 will change NX, but NOT the
grid or the CONPOR limits. The stack editor can be used to make the change in the right
- Once the stack has been edited, LOAD(STACK) will cause the new sequence of commands to
be interpreted immediately. This would happen by default if END were entered without a
The Pil Tutorials