chkpr4.f 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. *DECK CHKPR4
  2. SUBROUTINE CHKPR4 (IORDER, A, B, M, MBDCND, C, D, N, NBDCND, COFX,
  3. + IDMN, IERROR)
  4. C***BEGIN PROLOGUE CHKPR4
  5. C***SUBSIDIARY
  6. C***PURPOSE Subsidiary to SEPX4
  7. C***LIBRARY SLATEC
  8. C***TYPE SINGLE PRECISION (CHKPR4-S)
  9. C***AUTHOR (UNKNOWN)
  10. C***DESCRIPTION
  11. C
  12. C This program checks the input parameters for errors.
  13. C
  14. C***SEE ALSO SEPX4
  15. C***ROUTINES CALLED (NONE)
  16. C***REVISION HISTORY (YYMMDD)
  17. C 801001 DATE WRITTEN
  18. C 890531 Changed all specific intrinsics to generic. (WRB)
  19. C 891214 Prologue converted to Version 4.0 format. (BAB)
  20. C 900402 Added TYPE section. (WRB)
  21. C***END PROLOGUE CHKPR4
  22. EXTERNAL COFX
  23. C***FIRST EXECUTABLE STATEMENT CHKPR4
  24. IERROR = 1
  25. IF (A.GE.B .OR. C.GE.D) RETURN
  26. C
  27. C CHECK BOUNDARY SWITCHES
  28. C
  29. IERROR = 2
  30. IF (MBDCND.LT.0 .OR. MBDCND.GT.4) RETURN
  31. IERROR = 3
  32. IF (NBDCND.LT.0 .OR. NBDCND.GT.4) RETURN
  33. C
  34. C CHECK FIRST DIMENSION IN CALLING ROUTINE
  35. C
  36. IERROR = 5
  37. IF (IDMN .LT. 7) RETURN
  38. C
  39. C CHECK M
  40. C
  41. IERROR = 6
  42. IF (M.GT.(IDMN-1) .OR. M.LT.6) RETURN
  43. C
  44. C CHECK N
  45. C
  46. IERROR = 7
  47. IF (N .LT. 5) RETURN
  48. C
  49. C CHECK IORDER
  50. C
  51. IERROR = 8
  52. IF (IORDER.NE.2 .AND. IORDER.NE.4) RETURN
  53. C
  54. C CHECK THAT EQUATION IS ELLIPTIC
  55. C
  56. DLX = (B-A)/M
  57. DO 30 I=2,M
  58. XI = A+(I-1)*DLX
  59. CALL COFX (XI,AI,BI,CI)
  60. IF (AI.GT.0.0) GO TO 10
  61. IERROR=10
  62. RETURN
  63. 10 CONTINUE
  64. 30 CONTINUE
  65. C
  66. C NO ERROR FOUND
  67. C
  68. IERROR = 0
  69. RETURN
  70. END