These executable routines use Fortran coarrays to compute quantities that benefit from using parallel resources. There are two simple examples in two separate source files. The compiler must support coarrays and should allow more than one image in the work group.
approximate Pi by numerical quadrature using the mid-point formula. The user will input the number of quadrature points for the integrand function f(x)=1/(1+x**2).
a matrix-vector product, y=A*x. The matrix dimensions are input. The columns of A are partitioned to the images and the matrix entries are randomly generated with values on [0,1]. The vector x is randomly generated on one image and the part of x corresponding to the columns of A is sent to each image.
Each image computes a part of the product with the data it owns. This step is done in parallel. Then these partial results are accumulated and compared with the result obtained at a single image to establish correctness. There is an allowance for rounding errors.
Input the number of quadrature points: 1000000 Using 8 images, and n = 1000000 Approximate Value of PI = 3.14159265358989 Relative error = -3.095739889957823E-014
8 images being used Input m, the number of rows (<=0 to quit): 10000 Input n, the number of cols (<=0 to quit): 1000 Satisfactory Error Check on IMAGE 1 = 3.0314E-15