9 SUBROUTINE check_axis(NA, DIMEN, ALENGTH, DA, AXIS, &
10 axis_index, no_ijk, shift)
27 INTEGER,
INTENT(INOUT) :: NA
29 INTEGER,
INTENT(IN) :: DIMEN
31 DOUBLE PRECISION,
INTENT(INOUT) :: ALENGTH
34 LOGICAL,
INTENT(IN) :: NO_IJK
36 LOGICAL,
INTENT(IN) :: SHIFT
38 CHARACTER,
INTENT(IN) :: AXIS
40 CHARACTER,
INTENT(IN) :: AXIS_INDEX
48 DOUBLE PRECISION,
INTENT(INOUT),
DIMENSION(DIMEN) :: DA
53 DOUBLE PRECISION,
PARAMETER :: PERCENT_ERROR = 1.0
58 INTEGER :: N_SPECIFIED
62 DOUBLE PRECISION :: TEMP_STOR, lSUM, lERR
76 1100
FORMAT(
'Error 1100: The grid specification must start with D', &
77 a1,
'(0)',/
'Please correct the mfix.dat file.')
81 IF (na /=
undefined_i) n_specified = n_specified + 1
82 IF (alength /=
undefined) n_specified = n_specified + 1
83 IF (da(1) /=
undefined) n_specified = n_specified + 1
84 IF (n_specified < 2)
THEN 85 WRITE(
err_msg, 1101) axis, axis, axis, axis_index
89 1101
FORMAT(
'Error 1101: Insufficient grid information for ',a1,
'-',
90 'axis. You must',/
'specify at least two of the following: ', &
91 a1,
'LENGTH, D',a1,
', and ',a1,
'MAX',
'Please correct the ', &
102 temp_stor = alength/da(1)
104 IF(na - 1 > 0) da(2:na) = da(1)
119 IF(na>=0 .AND. na<=dimen)
THEN 128 IF(na - 1 > 0) da(2:na) = da(1)
131 IF (na > 0) alength = sum(da(:na))
138 temp_stor = alength/dble(na)
139 IF(na > 0) da(:na) = temp_stor
145 IF (na - 1 > 0) da(2:na) = da(1)
156 IF (na<0 .OR. .NOT.no_ijk .AND. na>dimen-2)
THEN 157 WRITE(
err_msg, 1001) axis_index//
'MAX', trim(
ival(na))
161 IF(alength <= 0.0)
THEN 162 WRITE(
err_msg, 1001) axis//
'LENGTH' 168 IF (da(lc)<=0.0 .OR. da(lc)==
undefined)
THEN 175 1201
FORMAT(
'Error 1201: D',a,
' is not specified or negative. ', &
176 'Please correct',/
'the mfix.dat file.')
179 lerr = 100.0*abs(lsum - alength)/alength
180 IF(lerr > percent_error)
THEN 181 WRITE(
err_msg,1202) axis, axis, axis, alength, axis, lsum, &
186 WRITE(
err_msg,
"(4x,A,' = ',A)") trim(
ivar(
'D'//axis,lc)),
190 WRITE(
err_msg,
"('Please correct the mfix.dat file')")
194 1202
FORMAT(
'Error 1202: ',a1,
'LENGTH and sum(D',a1,
') are not ', &
195 'consistent.',/3x,a1,
'LENGTH = ',g12.5,3x,
'sum(D',a1,
') = ', &
196 g12.5,/3x,
'ERROR = ',g12.5,3x,
'ERR TOL = ',g12.5,/
' ')
198 DO lc = na + 1, dimen
200 WRITE(
err_msg, 1205) axis, axis_index
205 1205
FORMAT(
'Error 1205: Too many D',a1,
' values specified. Only ',a1,&
206 'MAX permitted.',/
'Please correct the mfix.dat file.')
214 1001
FORMAT(
'Error 1001: Illegal or unknown input: ',a,
' = ',a,/ &
215 'Please correct the mfix.dat file.')
character(len=32) function ivar(VAR, i1, i2, i3)
subroutine check_axis(NA, DIMEN, ALENGTH, DA, AXIS, AXIS_INDEX, NO_IJK, SHIFT)
double precision, parameter undefined
subroutine init_err_msg(CALLER)
integer, parameter undefined_i
character(len=line_length), dimension(line_count) err_msg
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)