minso4.f 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. *DECK MINSO4
  2. SUBROUTINE MINSO4 (USOL, IDMN, ZN, ZM, PERTB)
  3. C***BEGIN PROLOGUE MINSO4
  4. C***SUBSIDIARY
  5. C***PURPOSE Subsidiary to SEPX4
  6. C***LIBRARY SLATEC
  7. C***TYPE SINGLE PRECISION (MINSO4-S)
  8. C***AUTHOR (UNKNOWN)
  9. C***DESCRIPTION
  10. C
  11. C This subroutine orthogonalizes the array USOL with respect to
  12. C the constant array in a weighted least squares norm.
  13. C
  14. C Entry at MINSO4 occurs when the final solution is
  15. C to be minimized with respect to the weighted
  16. C least squares norm.
  17. C
  18. C***SEE ALSO SEPX4
  19. C***ROUTINES CALLED (NONE)
  20. C***COMMON BLOCKS SPL4
  21. C***REVISION HISTORY (YYMMDD)
  22. C 801001 DATE WRITTEN
  23. C 891214 Prologue converted to Version 4.0 format. (BAB)
  24. C 900402 Added TYPE section. (WRB)
  25. C***END PROLOGUE MINSO4
  26. C
  27. COMMON /SPL4/ KSWX ,KSWY ,K ,L ,
  28. 1 AIT ,BIT ,CIT ,DIT ,
  29. 2 MIT ,NIT ,IS ,MS ,
  30. 3 JS ,NS ,DLX ,DLY ,
  31. 4 TDLX3 ,TDLY3 ,DLX4 ,DLY4
  32. DIMENSION USOL(IDMN,*) ,ZN(*) ,ZM(*)
  33. C***FIRST EXECUTABLE STATEMENT MINSO4
  34. ISTR = 1
  35. IFNL = K
  36. JSTR = 1
  37. JFNL = L
  38. C
  39. C COMPUTE WEIGHTED INNER PRODUCTS
  40. C
  41. UTE = 0.0
  42. ETE = 0.0
  43. DO 20 I=IS,MS
  44. II = I-IS+1
  45. DO 10 J=JS,NS
  46. JJ = J-JS+1
  47. ETE = ETE+ZM(II)*ZN(JJ)
  48. UTE = UTE+USOL(I,J)*ZM(II)*ZN(JJ)
  49. 10 CONTINUE
  50. 20 CONTINUE
  51. C
  52. C SET PERTURBATION PARAMETER
  53. C
  54. PERTRB = UTE/ETE
  55. C
  56. C SUBTRACT OFF CONSTANT PERTRB
  57. C
  58. DO 40 I=ISTR,IFNL
  59. DO 30 J=JSTR,JFNL
  60. USOL(I,J) = USOL(I,J)-PERTRB
  61. 30 CONTINUE
  62. 40 CONTINUE
  63. RETURN
  64. END