chkprm.f 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. *DECK CHKPRM
  2. SUBROUTINE CHKPRM (INTL, IORDER, A, B, M, MBDCND, C, D, N, NBDCND,
  3. + COFX, COFY, IDMN, IERROR)
  4. C***BEGIN PROLOGUE CHKPRM
  5. C***SUBSIDIARY
  6. C***PURPOSE Subsidiary to SEPELI
  7. C***LIBRARY SLATEC
  8. C***TYPE SINGLE PRECISION (CHKPRM-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 SEPELI
  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 CHKPRM
  22. C
  23. EXTERNAL COFX ,COFY
  24. C***FIRST EXECUTABLE STATEMENT CHKPRM
  25. IERROR = 1
  26. IF (A.GE.B .OR. C.GE.D) RETURN
  27. C
  28. C CHECK BOUNDARY SWITCHES
  29. C
  30. IERROR = 2
  31. IF (MBDCND.LT.0 .OR. MBDCND.GT.4) RETURN
  32. IERROR = 3
  33. IF (NBDCND.LT.0 .OR. NBDCND.GT.4) RETURN
  34. C
  35. C CHECK FIRST DIMENSION IN CALLING ROUTINE
  36. C
  37. IERROR = 5
  38. IF (IDMN .LT. 7) RETURN
  39. C
  40. C CHECK M
  41. C
  42. IERROR = 6
  43. IF (M.GT.(IDMN-1) .OR. M.LT.6) RETURN
  44. C
  45. C CHECK N
  46. C
  47. IERROR = 7
  48. IF (N .LT. 5) RETURN
  49. C
  50. C CHECK IORDER
  51. C
  52. IERROR = 8
  53. IF (IORDER.NE.2 .AND. IORDER.NE.4) RETURN
  54. C
  55. C CHECK INTL
  56. C
  57. IERROR = 9
  58. IF (INTL.NE.0 .AND. INTL.NE.1) RETURN
  59. C
  60. C CHECK THAT EQUATION IS ELLIPTIC
  61. C
  62. DLX = (B-A)/M
  63. DLY = (D-C)/N
  64. DO 30 I=2,M
  65. XI = A+(I-1)*DLX
  66. CALL COFX (XI,AI,BI,CI)
  67. DO 20 J=2,N
  68. YJ = C+(J-1)*DLY
  69. CALL COFY (YJ,DJ,EJ,FJ)
  70. IF (AI*DJ .GT. 0.0) GO TO 10
  71. IERROR = 10
  72. RETURN
  73. 10 CONTINUE
  74. 20 CONTINUE
  75. 30 CONTINUE
  76. C
  77. C NO ERROR FOUND
  78. C
  79. IERROR = 0
  80. RETURN
  81. END