The advent of the digital computer has had a profound influence on the complexity and the way in which problems are tackled in the heat and mass transfer field. It is now common to solve most groups of equations by numerical means, even though analytical solutions may exist, and to regard the solution of sets of hundreds of linear simultaneous equations as an everyday event. The heart of the computer is the central processor, which is responsible for carrying out arithmetic operations in correct sequence. The central processor also has the responsibility to organize the transfer of information between various parts of the computer; for example, it will transfer numbers from memory stores to the arithmetic operations unit and vice versa. The central processor takes its instructions from the computer programme held in store.
A computer programme consists of a set of instructions which enables the computer to perform the tasks the programmer requires. Typically, a programme will comprise input instructions, instructions to control the processing of the data and output instructions. All of these instructions have to be precise and unambiguous. In their simplest forms, computer programmes instruct the computer in a way in which there is a direct correspondence between instruction and control circuits in the computer. Such programmes are written in what is referred to as machine language. A machine language instruction includes the address of the location in the store containing the piece of information to be acted upon. Many of the programmes for early computers were written in machine language. Creation of these programmes was time-consuming and required a great deal of skill. The programmes themselves, once written, tended to be efficient in both the usage of store space and the time required for the machine to undertake a given operation.
As computers became more powerful (faster, with larger memories and relatively cheaper), the need for higher level languages, which would enable the programmer to specify sequences of operations in concise terms, became apparent. Examples of such high-level languages include FORTRAN, ALGOL, BASIC and C. These languages allow the programmer to create a programme in the same way a numerical analyst would write his algorithm based on the original equations. Instructions encapsulated within the high-level languages can only be used by the computer if these are translated into machine language statements. This process of translation is achieved by a compiler. A compiler is, itself, a programme written in machine language which, after translating from high-level language to machine language, organizes the allocation of storage for the translated programme instructions. The compiler is also responsible for detecting ‘obvious’ errors. High-level languages reduce the task of organizing storage allocation and save the programmer enormous amounts of time; however, it is generally-accepted that machine language programmes produced by compilers are not as efficient as those crafted by experienced programmers. A typical programme will consist of a main programme segment and a number of subprogrammes or subroutines. The role of the main programme segment is to steer or control the course of the computations and to call the subprogrammes as required. This is quite an elegant way of organizing the work since it is likely that the subroutines will be called many rimes to do repeat operations during the execution of the complete programme.
There has been an impressive development in the number and quality of commercial subroutine libraries, which contain very efficient programmes for specific tasks. These tasks vary from specific numerical manipulation of arithmetic data, such as inverting a matrix, to the plotting of complex three-dimensional functions. These subroutines are likely to be efficient and robust, and offer the further advantages of saving programmer time and effort. It is therefore common practice to adopt appropriate commercial subroutines and integrate them into customised computer programmes.
The continual increase in the performance of computers has made it possible to sacrifice some efficiency for improved utilization of programmer effort. Further, increases in central processor speed and faster memory have enabled the development of programmes which fit users’ needs and expectations. Thus, many computer users these days expect programmes to be built into a Windows environment, to be able to use click-on-icons, and to have access to pull down menus. Computer programmers are now faced with the challenge of writing the specific parts of their code in one of the common high-level languages, and then creating an attractive and useful package by exploiting the graphical user interface (GUI) of the Windows operating system. There are sophisticated software packages available which provide the programmer with appropriate tools to create graphical user interfaces for specific applications.
A modern large commercial computer programme is likely to consist of a core programme, written in possibly more than one high-level language, with a number of subroutines taken from a specialist subroutine library. This will be interfaced with a GUI, which will give it a ‘user friendly’ appearance. The programme may also be interfaced with a number of data banks, where it has access to thermal properties data (or other appropriate data).