1 | subroutine maxim |
---|
2 | #define DEBUG_LEVEL 1 |
---|
3 | |
---|
4 | !********** Nearly everything available via modules ***** |
---|
5 | use grid_info |
---|
6 | use immersed_boundary |
---|
7 | use dependent_variables |
---|
8 | use intermediate_variables |
---|
9 | use rhs_variables |
---|
10 | use pde_parameters |
---|
11 | use dimensional_scales |
---|
12 | use mpi_parameters |
---|
13 | use boundary_information |
---|
14 | use counters_flags_etc |
---|
15 | use mpi_times |
---|
16 | |
---|
17 | implicit none |
---|
18 | |
---|
19 | ! local variables |
---|
20 | |
---|
21 | include '../input/problem_size.h' |
---|
22 | include 'mpif.h' |
---|
23 | |
---|
24 | real :: error,sum_error |
---|
25 | !********************************************************* |
---|
26 | |
---|
27 | if ( myid == numprocs-1 .and. mod(istep,10) == 0 ) then |
---|
28 | print*,' ' |
---|
29 | print*,' MINVAL(U)=',minval(U*U_scale),' MAXVAL(U)=',maxval(U*U_scale) |
---|
30 | print*,' MINVAL(V)=',minval(V*U_scale),' MAXVAL(V)=',maxval(V*U_scale) |
---|
31 | print*,' MINVAL(W)=',minval(W*U_scale),' MAXVAL(W)=',maxval(W*U_scale) |
---|
32 | print*,' MINVAL(s1)=',minval(s1*s1_scale),' MAXVAL(s1)=',maxval(s1*s1_scale) |
---|
33 | print*,' MINVAL(s2)=',minval(s2*s2_scale),' MAXVAL(s2)=',maxval(s2*s2_scale) |
---|
34 | print*,' MINVAL(pd)=',minval(pd),' MAXVAL(s2)=',maxval(pd) |
---|
35 | print*,' ' |
---|
36 | |
---|
37 | endif |
---|
38 | |
---|
39 | |
---|
40 | error=0. |
---|
41 | sum_error=0. |
---|
42 | if ( maxval(abs(U)) > 1.e6 .or. maxval(abs(v)) > 1.e6 .or. maxval(abs(W)) > 1.e6 .or. maxval(abs(s1)) > 1.e6 .or. maxval(abs(s2)) > 1.e6 ) then |
---|
43 | error=1. |
---|
44 | endif |
---|
45 | |
---|
46 | call MPI_BARRIER(comm,ierr) |
---|
47 | call MPI_ALLREDUCE(error,sum_error,1,MPI_REAL,MPI_SUM,comm,ierr) |
---|
48 | |
---|
49 | if ( sum_error .ge. 1. ) then |
---|
50 | print*,' ' |
---|
51 | print*,' ********* ERROR ERROR ERROR ERROR *******' |
---|
52 | print*,' ' |
---|
53 | print*,' MINVAL(U)=',minval(U*U_scale),' MAXVAL(U)=',maxval(U*U_scale) |
---|
54 | print*,' MINVAL(V)=',minval(V*U_scale),' MAXVAL(V)=',maxval(V*U_scale) |
---|
55 | print*,' MINVAL(W)=',minval(W*U_scale),' MAXVAL(W)=',maxval(W*U_scale) |
---|
56 | print*,' MINVAL(s1)=',minval(s1*s1_scale),' MAXVAL(s1)=',maxval(s1*s1_scale) |
---|
57 | print*,' MINVAL(s2)=',minval(s2*s2_scale),' MAXVAL(s2)=',maxval(s2*s2_scale) |
---|
58 | print*,' MINVAL(pd)=',minval(pd),' MAXVAL(s2)=',maxval(pd) |
---|
59 | print*,' ' |
---|
60 | goto 999 |
---|
61 | !call mpi_barrier(comm,ierr) |
---|
62 | !call MPI_Time(1) |
---|
63 | !call mpi_finalize(ierr) |
---|
64 | else |
---|
65 | goto 1000 |
---|
66 | endif |
---|
67 | |
---|
68 | 999 call mpi_barrier(comm,ierr) |
---|
69 | call MPI_Time(1) |
---|
70 | STOP ' the next time...' |
---|
71 | |
---|
72 | 1000 continue |
---|
73 | |
---|
74 | end subroutine maxim |
---|
75 | |
---|