22.3: Windows Compilation
- Page ID
- 54393
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)Please note, the Fortran compiler download and installation (previous section) must have been completed before starting this step. In order to compile and work with programs under Windows, it will be necessary to provide typed commands. This is done from within the “Command Prompt” utility.
Command Prompt Window
The first step is to open the Windows Command Prompt Window. In Windows 7, the “Command Prompt” is usually under Programs \(\rightarrow\) Accessories \(\rightarrow\) Command Prompt. In Windows 8 or Window 10, the “Command Prompt” can be found by using Search and is listed under the Windows System heading.
The open Command Prompt window for any Windows version will look similar to the following:

Once the Command Prompt is open, the device and directory for the working files can be set.
Device and Directory
In order to compile and work with programs under Windows, a working directory should be established. This is where the program files will be stored. First, establish the device of the working directory. If the files are on C:\ (the main hard drive), the device is already set. If the working directory is located on a network drive, alternate drive, or USB drive, the device will need to be set.
Using the “My Computer”, determine the device or drive letter where your directory is located. Type that letter at the prompt in the Command Prompt window. For example, if your device is K, you would type “k:”.
At the drive prompt (i.e., “C:\>” or “K:\>”) you will need to change directory into the directory where your files are (if you created one). The “cd <dir_name>” command can be used. For example, if the directory is named cs117, the command would be “cd cs117”.
For example:
C:\Documents and Settings\Ed\My Documents> k: C:\> cd cs117
At this point, typing dir
(for directory) will provide a list of files in the directory. While the format will appear different, the files are the same as shown in the My Computer listing.
Compiler Installation Verification
To ensure the compiler is installed correctly, open the “Command Prompt”, and type gfortran
at the prompt.
C:\cs117> gfortran gfortran: fatal error: no input files compilation terminated.
The “no input files” message means that the installation was completed successfully. It is not necessary to set the device or directory in order to perform this verification.
However, if the following message is displayed,
C:\cs117> gfortran 'gfortran' is not recognized as an internal or external command, operable program or batch file.
it means that the Fortran compiler is not installed. The installation issue must be addressed before continuing. Once the installation is completed successfully, the compilation steps detailed in Chapter 3 can be completed.
Compilation
Once the Fortran compiler is installed, programs can be compiled. Open the “Command Prompt”, and set the device and directory as appropriate.
At this point the program can be compiled, using “gfortran. The optional “-o” qualifier is used to set the name of the output file. To execute, you can type the name of the executable (that was specified with the “-o”).
To compile the example program, the following command would be entered:
C:\cs117> gfortran -o hw hw.f95
This command will tell the 'gfortran' compiler to read the file hw.f95
and, if there are no errors, create an executable file named hw.exe
. If there is an error, the compiler will generate an error message, sometimes cryptic, and provide a line number. Such errors are usually the result of mistyping one of the instructions. Any errors must be resolved before continuing.
Executing
To execute or run a program, type the name of the executable file. For example, to execute or run the hw.exe
program:
C:\cs117> hw Hello World C:\cs117>
Which will execute the example program and display the “Hello World” message to the screen.
Example
A more complete example is as follows:

It is not necessary to type the extension (i.e., “.exe”) portion of the file name.