PageRenderTime 68ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/wrfv2_fire/external/fftpack/fftpack5/r1f4kf.F

http://github.com/jbeezley/wrf-fire
FORTRAN Legacy | 76 lines | 49 code | 1 blank | 26 comment | 0 complexity | 013fc332cd41c275762d72dce1f05fee MD5 | raw file
Possible License(s): AGPL-1.0
  1. !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  2. !
  3. ! FFTPACK 5.0
  4. !
  5. ! Authors: Paul N. Swarztrauber and Richard A. Valent
  6. !
  7. ! $Id: r1f4kf.f,v 1.2 2004/06/15 21:29:20 rodney Exp $
  8. !
  9. !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  10. SUBROUTINE R1F4KF (IDO,L1,CC,IN1,CH,IN2,WA1,WA2,WA3)
  11. REAL CC(IN1,IDO,L1,4) ,CH(IN2,IDO,4,L1) , &
  12. & WA1(IDO) ,WA2(IDO) ,WA3(IDO)
  13. !
  14. HSQT2=SQRT(2.)/2.
  15. DO 101 K=1,L1
  16. CH(1,1,1,K) = (CC(1,1,K,2)+CC(1,1,K,4)) &
  17. & +(CC(1,1,K,1)+CC(1,1,K,3))
  18. CH(1,IDO,4,K) = (CC(1,1,K,1)+CC(1,1,K,3)) &
  19. & -(CC(1,1,K,2)+CC(1,1,K,4))
  20. CH(1,IDO,2,K) = CC(1,1,K,1)-CC(1,1,K,3)
  21. CH(1,1,3,K) = CC(1,1,K,4)-CC(1,1,K,2)
  22. 101 END DO
  23. IF (IDO-2) 107,105,102
  24. 102 IDP2 = IDO+2
  25. DO 104 K=1,L1
  26. DO 103 I=3,IDO,2
  27. IC = IDP2-I
  28. CH(1,I-1,1,K) = ((WA1(I-2)*CC(1,I-1,K,2)+WA1(I-1)* &
  29. & CC(1,I,K,2))+(WA3(I-2)*CC(1,I-1,K,4)+WA3(I-1)* &
  30. & CC(1,I,K,4)))+(CC(1,I-1,K,1)+(WA2(I-2)*CC(1,I-1,K,3)+ &
  31. & WA2(I-1)*CC(1,I,K,3)))
  32. CH(1,IC-1,4,K) = (CC(1,I-1,K,1)+(WA2(I-2)*CC(1,I-1,K,3)+ &
  33. & WA2(I-1)*CC(1,I,K,3)))-((WA1(I-2)*CC(1,I-1,K,2)+ &
  34. & WA1(I-1)*CC(1,I,K,2))+(WA3(I-2)*CC(1,I-1,K,4)+ &
  35. & WA3(I-1)*CC(1,I,K,4)))
  36. CH(1,I,1,K) = ((WA1(I-2)*CC(1,I,K,2)-WA1(I-1)* &
  37. & CC(1,I-1,K,2))+(WA3(I-2)*CC(1,I,K,4)-WA3(I-1)* &
  38. & CC(1,I-1,K,4)))+(CC(1,I,K,1)+(WA2(I-2)*CC(1,I,K,3)- &
  39. & WA2(I-1)*CC(1,I-1,K,3)))
  40. CH(1,IC,4,K) = ((WA1(I-2)*CC(1,I,K,2)-WA1(I-1)* &
  41. & CC(1,I-1,K,2))+(WA3(I-2)*CC(1,I,K,4)-WA3(I-1)* &
  42. & CC(1,I-1,K,4)))-(CC(1,I,K,1)+(WA2(I-2)*CC(1,I,K,3)- &
  43. & WA2(I-1)*CC(1,I-1,K,3)))
  44. CH(1,I-1,3,K) = ((WA1(I-2)*CC(1,I,K,2)-WA1(I-1)* &
  45. & CC(1,I-1,K,2))-(WA3(I-2)*CC(1,I,K,4)-WA3(I-1)* &
  46. & CC(1,I-1,K,4)))+(CC(1,I-1,K,1)-(WA2(I-2)*CC(1,I-1,K,3)+ &
  47. & WA2(I-1)*CC(1,I,K,3)))
  48. CH(1,IC-1,2,K) = (CC(1,I-1,K,1)-(WA2(I-2)*CC(1,I-1,K,3)+ &
  49. & WA2(I-1)*CC(1,I,K,3)))-((WA1(I-2)*CC(1,I,K,2)-WA1(I-1)* &
  50. & CC(1,I-1,K,2))-(WA3(I-2)*CC(1,I,K,4)-WA3(I-1)* &
  51. & CC(1,I-1,K,4)))
  52. CH(1,I,3,K) = ((WA3(I-2)*CC(1,I-1,K,4)+WA3(I-1)* &
  53. & CC(1,I,K,4))-(WA1(I-2)*CC(1,I-1,K,2)+WA1(I-1)* &
  54. & CC(1,I,K,2)))+(CC(1,I,K,1)-(WA2(I-2)*CC(1,I,K,3)- &
  55. & WA2(I-1)*CC(1,I-1,K,3)))
  56. CH(1,IC,2,K) = ((WA3(I-2)*CC(1,I-1,K,4)+WA3(I-1)* &
  57. & CC(1,I,K,4))-(WA1(I-2)*CC(1,I-1,K,2)+WA1(I-1)* &
  58. & CC(1,I,K,2)))-(CC(1,I,K,1)-(WA2(I-2)*CC(1,I,K,3)- &
  59. & WA2(I-1)*CC(1,I-1,K,3)))
  60. 103 CONTINUE
  61. 104 END DO
  62. IF (MOD(IDO,2) .EQ. 1) RETURN
  63. 105 CONTINUE
  64. DO 106 K=1,L1
  65. CH(1,IDO,1,K) = (HSQT2*(CC(1,IDO,K,2)-CC(1,IDO,K,4)))+ &
  66. & CC(1,IDO,K,1)
  67. CH(1,IDO,3,K) = CC(1,IDO,K,1)-(HSQT2*(CC(1,IDO,K,2)- &
  68. & CC(1,IDO,K,4)))
  69. CH(1,1,2,K) = (-HSQT2*(CC(1,IDO,K,2)+CC(1,IDO,K,4)))- &
  70. & CC(1,IDO,K,3)
  71. CH(1,1,4,K) = (-HSQT2*(CC(1,IDO,K,2)+CC(1,IDO,K,4)))+ &
  72. & CC(1,IDO,K,3)
  73. 106 END DO
  74. 107 RETURN
  75. END