chksn4.f 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. *DECK CHKSN4
  2. SUBROUTINE CHKSN4 (MBDCND, NBDCND, ALPHA, BETA, COFX, SINGLR)
  3. C***BEGIN PROLOGUE CHKSN4
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to SEPX4
  6. C***LIBRARY SLATEC
  7. C***TYPE SINGLE PRECISION (CHKSN4-S)
  8. C***AUTHOR (UNKNOWN)
  9. C***DESCRIPTION
  10. C
  11. C This subroutine checks if the PDE SEPX4
  12. C must solve is a singular operator.
  13. C
  14. C***SEE ALSO SEPX4
  15. C***ROUTINES CALLED (NONE)
  16. C***COMMON BLOCKS SPL4
  17. C***REVISION HISTORY (YYMMDD)
  18. C 801001 DATE WRITTEN
  19. C 890531 Changed all specific intrinsics to generic. (WRB)
  20. C 891214 Prologue converted to Version 4.0 format. (BAB)
  21. C 900402 Added TYPE section. (WRB)
  22. C***END PROLOGUE CHKSN4
  23. C
  24. COMMON /SPL4/ KSWX ,KSWY ,K ,L ,
  25. 1 AIT ,BIT ,CIT ,DIT ,
  26. 2 MIT ,NIT ,IS ,MS ,
  27. 3 JS ,NS ,DLX ,DLY ,
  28. 4 TDLX3 ,TDLY3 ,DLX4 ,DLY4
  29. LOGICAL SINGLR
  30. EXTERNAL COFX
  31. C***FIRST EXECUTABLE STATEMENT CHKSN4
  32. SINGLR = .FALSE.
  33. C
  34. C CHECK IF THE BOUNDARY CONDITIONS ARE
  35. C ENTIRELY PERIODIC AND/OR MIXED
  36. C
  37. IF ((MBDCND.NE.0 .AND. MBDCND.NE.3) .OR.
  38. 1 (NBDCND.NE.0 .AND. NBDCND.NE.3)) RETURN
  39. C
  40. C CHECK THAT MIXED CONDITIONS ARE PURE NEUMAN
  41. C
  42. IF (MBDCND .NE. 3) GO TO 10
  43. IF (ALPHA.NE.0.0 .OR. BETA.NE.0.0) RETURN
  44. 10 CONTINUE
  45. C
  46. C CHECK THAT NON-DERIVATIVE COEFFICIENT FUNCTIONS
  47. C ARE ZERO
  48. C
  49. DO 30 I=IS,MS
  50. XI = AIT+(I-1)*DLX
  51. CALL COFX (XI,AI,BI,CI)
  52. IF (CI .NE. 0.0) RETURN
  53. 30 CONTINUE
  54. C
  55. C THE OPERATOR MUST BE SINGULAR IF THIS POINT IS REACHED
  56. C
  57. SINGLR = .TRUE.
  58. RETURN
  59. END