1 !-------------------------------------------------------------------------!
3 ! N A S P A R A L L E L B E N C H M A R K S 3.3 !
7 !-------------------------------------------------------------------------!
9 ! This benchmark is part of the NAS Parallel Benchmark 3.3 suite. !
10 ! It is described in NAS Technical Reports 95-020 and 02-007 !
12 ! Permission to use, copy, distribute and modify this software !
13 ! for any purpose with or without fee is hereby granted. We !
14 ! request, however, that all derived work reference the NAS !
15 ! Parallel Benchmarks 3.3. This software is provided "as is" !
16 ! without express or implied warranty. !
18 ! Information on NPB 3.3, including the technical report, the !
19 ! original specifications, source code, results and information !
20 ! on how to submit new results, is available at: !
22 ! http://www.nas.nasa.gov/Software/NPB/ !
24 ! Send comments or suggestions to npb@nas.nasa.gov !
26 ! NAS Parallel Benchmarks Group !
27 ! NASA Ames Research Center !
29 ! Moffett Field, CA 94035-1000 !
31 ! E-mail: npb@nas.nasa.gov !
32 ! Fax: (650) 604-3957 !
34 !-------------------------------------------------------------------------!
36 c---------------------------------------------------------------------
38 c Authors: S. Weeratunga
43 c---------------------------------------------------------------------
45 c---------------------------------------------------------------------
47 c---------------------------------------------------------------------
49 c---------------------------------------------------------------------
51 c driver for the performance evaluation of the solver for
52 c five coupled parabolic/elliptic partial differential equations.
54 c---------------------------------------------------------------------
61 double precision mflops
64 c---------------------------------------------------------------------
65 c initialize communications
66 c---------------------------------------------------------------------
69 c---------------------------------------------------------------------
71 c---------------------------------------------------------------------
74 c---------------------------------------------------------------------
75 c set up processor grid
76 c---------------------------------------------------------------------
79 c---------------------------------------------------------------------
80 c determine the neighbors
81 c---------------------------------------------------------------------
84 c---------------------------------------------------------------------
85 c set up sub-domain sizes
86 c---------------------------------------------------------------------
89 c---------------------------------------------------------------------
91 c---------------------------------------------------------------------
94 c---------------------------------------------------------------------
95 c set the masks required for comm
96 c---------------------------------------------------------------------
99 c---------------------------------------------------------------------
100 c set the boundary values for dependent variables
101 c---------------------------------------------------------------------
104 c---------------------------------------------------------------------
105 c set the initial values for dependent variables
106 c---------------------------------------------------------------------
109 c---------------------------------------------------------------------
110 c compute the forcing term based on prescribed exact solution
111 c---------------------------------------------------------------------
114 c---------------------------------------------------------------------
115 c perform one SSOR iteration to touch all data and program pages
116 c---------------------------------------------------------------------
119 c---------------------------------------------------------------------
120 c reset the boundary and initial values
121 c---------------------------------------------------------------------
125 c---------------------------------------------------------------------
126 c perform the SSOR iterations
127 c---------------------------------------------------------------------
130 c---------------------------------------------------------------------
131 c compute the solution error
132 c---------------------------------------------------------------------
135 c---------------------------------------------------------------------
136 c compute the surface integral
137 c---------------------------------------------------------------------
140 c---------------------------------------------------------------------
142 c---------------------------------------------------------------------
144 call verify ( rsdnm, errnm, frc, class, verified )
145 mflops = float(itmax)*(1984.77*float( nx0 )
148 > -10923.3*(float( nx0+ny0+nz0 )/3.)**2
149 > +27770.9* float( nx0+ny0+nz0 )/3.
151 > / (maxtime*1000000.)
153 call print_results('LU', class, nx0,
154 > ny0, nz0, itmax, nnodes_compiled,
155 > num, maxtime, mflops, ' floating point', verified,
156 > npbversion, compiletime, cs1, cs2, cs3, cs4, cs5, cs6,
161 call mpi_finalize(ierr)