dyncfs 2.0.0__tar.gz → 2.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. {dyncfs-2.0.0/dyncfs.egg-info → dyncfs-2.0.2}/PKG-INFO +1 -1
  2. {dyncfs-2.0.0 → dyncfs-2.0.2/dyncfs.egg-info}/PKG-INFO +1 -1
  3. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs.egg-info/SOURCES.txt +0 -4
  4. {dyncfs-2.0.0 → dyncfs-2.0.2}/pyproject.toml +4 -2
  5. dyncfs-2.0.2/setup.py +75 -0
  6. dyncfs-2.0.0/dyncfs/exec/edcmp2.bin +0 -0
  7. dyncfs-2.0.0/dyncfs/exec/edgrn2.bin +0 -0
  8. dyncfs-2.0.0/dyncfs/exec/qseis2025.bin +0 -0
  9. dyncfs-2.0.0/dyncfs/exec/qssp2020.bin +0 -0
  10. dyncfs-2.0.0/setup.py +0 -114
  11. {dyncfs-2.0.0 → dyncfs-2.0.2}/LICENSE +0 -0
  12. {dyncfs-2.0.0 → dyncfs-2.0.2}/MANIFEST.in +0 -0
  13. {dyncfs-2.0.0 → dyncfs-2.0.2}/README.md +0 -0
  14. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/__init__.py +0 -0
  15. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/cfs_dynamic.py +0 -0
  16. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/cfs_dynamic_backup.py +0 -0
  17. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/cfs_static.py +0 -0
  18. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/configuration.py +0 -0
  19. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/convert_input_format.py +0 -0
  20. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_edcmp.py +0 -0
  21. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_edcmp_bulk.py +0 -0
  22. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_edgrn.py +0 -0
  23. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_edgrn_bulk.py +0 -0
  24. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_nd_by_crust1_ak135.py +0 -0
  25. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_qseis2025.py +0 -0
  26. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_qseis2025_bulk.py +0 -0
  27. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_qssp2020.py +0 -0
  28. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/create_qssp2020_bulk.py +0 -0
  29. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/crust1.py +0 -0
  30. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/edcmp2inp.py +0 -0
  31. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/edgrn2inp.py +0 -0
  32. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/exec/TauP-2.6.1.jar +0 -0
  33. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/focal_mechanism.py +0 -0
  34. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/geo.py +0 -0
  35. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/main.py +0 -0
  36. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/obspy_geo.py +0 -0
  37. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/plot_cfs_dynamic_2d.py +0 -0
  38. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/plot_cfs_dynamic_3d.py +0 -0
  39. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/plot_cfs_static_2d.py +0 -0
  40. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/plot_cfs_static_3d.py +0 -0
  41. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/plot_gif.py +0 -0
  42. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/plot_slip_2d.py +0 -0
  43. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/plot_slip_3d.py +0 -0
  44. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/pytaup.py +0 -0
  45. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/qseis2025inp.py +0 -0
  46. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/qssp2020inp.py +0 -0
  47. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/read_edcmp.py +0 -0
  48. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/read_qseis2025.py +0 -0
  49. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/read_qssp2020.py +0 -0
  50. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/signal_process.py +0 -0
  51. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs/utils.py +0 -0
  52. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs.egg-info/dependency_links.txt +0 -0
  53. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs.egg-info/entry_points.txt +0 -0
  54. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs.egg-info/requires.txt +0 -0
  55. {dyncfs-2.0.0 → dyncfs-2.0.2}/dyncfs.egg-info/top_level.txt +0 -0
  56. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/dc3d.f +0 -0
  57. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/dc3d0.f +0 -0
  58. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/edcdisc.f +0 -0
  59. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/edcglobal.h +0 -0
  60. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/edcgrn.f +0 -0
  61. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/edcmain.f +0 -0
  62. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/edcoutput.f +0 -0
  63. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/getdata.f +0 -0
  64. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edcmp2.0_src/okada.f +0 -0
  65. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/axb.f +0 -0
  66. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/bessj.f +0 -0
  67. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/bessj0.f +0 -0
  68. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/bessj1.f +0 -0
  69. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgbstab.f +0 -0
  70. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgglobal.h +0 -0
  71. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edghask.f +0 -0
  72. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgkern.f +0 -0
  73. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edglayer.f +0 -0
  74. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgmain.f +0 -0
  75. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgmatinv.f +0 -0
  76. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgmatrix.f +0 -0
  77. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgmoment.f +0 -0
  78. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgpsv.f +0 -0
  79. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgsh.f +0 -0
  80. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgsublay.f +0 -0
  81. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/edgwvint.f +0 -0
  82. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/gemp.f +0 -0
  83. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/getdata.f +0 -0
  84. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/edgrn2.0_src/memcpy.f +0 -0
  85. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/bessj.f +0 -0
  86. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/bessj0.f +0 -0
  87. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/bessj1.f +0 -0
  88. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/caxcb.f +0 -0
  89. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/cdgemp.f +0 -0
  90. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/cmemcpy.f +0 -0
  91. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/four1.f +0 -0
  92. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/getdata.f +0 -0
  93. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsam2ve.f +0 -0
  94. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsbsj.f +0 -0
  95. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsfftinv.f +0 -0
  96. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsgetinp.f +0 -0
  97. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsglobal.h +0 -0
  98. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qshksh.f +0 -0
  99. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qskern.f +0 -0
  100. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qslayer.f +0 -0
  101. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsmain.f +0 -0
  102. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsmatrix0.f +0 -0
  103. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsmultis.f +0 -0
  104. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qspsv.f +0 -0
  105. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsqmodel.f +0 -0
  106. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qssh.f +0 -0
  107. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qssource.f +0 -0
  108. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qssublay.f +0 -0
  109. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qsve2am.f +0 -0
  110. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qswavelet.f +0 -0
  111. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qswaveno.f +0 -0
  112. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/qswvint.f +0 -0
  113. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qseis2025_src/taper.f +0 -0
  114. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/banddpasss.f +0 -0
  115. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/brunewvlet.f +0 -0
  116. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/butterworth.f +0 -0
  117. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/caxcb.f +0 -0
  118. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/cdsvd500.f +0 -0
  119. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/cmemcpy.f +0 -0
  120. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/disazi.f +0 -0
  121. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/four1w.f +0 -0
  122. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/fsimpson.f +0 -0
  123. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/legendre.f +0 -0
  124. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/moments.f +0 -0
  125. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpalloc.f +0 -0
  126. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpdifmat0.f +0 -0
  127. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpdifmatl.f +0 -0
  128. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpdifmats.f +0 -0
  129. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpfftinv.f +0 -0
  130. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpgetinp.f +0 -0
  131. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpgrnspec.f +0 -0
  132. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qplegendre.f +0 -0
  133. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpmain.f +0 -0
  134. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qppsvkern.f +0 -0
  135. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qppsvkerng.f +0 -0
  136. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpqmodel.f +0 -0
  137. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpshkern.f +0 -0
  138. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpsmat.f +0 -0
  139. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpsmat0.f +0 -0
  140. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpsmatc.f +0 -0
  141. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpsprop.f +0 -0
  142. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpsprop0.f +0 -0
  143. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpspropg.f +0 -0
  144. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpspropg0.f +0 -0
  145. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart0.f +0 -0
  146. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart0a.f +0 -0
  147. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart0g.f +0 -0
  148. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart2t.f +0 -0
  149. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart4.f +0 -0
  150. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart4a.f +0 -0
  151. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart4g.f +0 -0
  152. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart6.f +0 -0
  153. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart6a.f +0 -0
  154. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpstart6g.f +0 -0
  155. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpsublayer.f +0 -0
  156. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qptmat.f +0 -0
  157. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qptprop.f +0 -0
  158. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/qpwvint.f +0 -0
  159. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/ruku.f +0 -0
  160. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/skipdoc.f +0 -0
  161. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbdphj.f +0 -0
  162. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbdphy.f +0 -0
  163. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbh12.f +0 -0
  164. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbjh.f +0 -0
  165. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbphj.f +0 -0
  166. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbphy.f +0 -0
  167. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbpsj.f +0 -0
  168. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/spbpsy.f +0 -0
  169. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/swavelet.f +0 -0
  170. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/taper.f +0 -0
  171. {dyncfs-2.0.0 → dyncfs-2.0.2}/fortran_src_codes/qssp2020_src/transfs2t.f +0 -0
  172. {dyncfs-2.0.0 → dyncfs-2.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dyncfs
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: A Python library for computing Coulomb Failure Stress Change.
5
5
  Author-email: Zhou Jiangcheng <zhoujcpku@outlook.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dyncfs
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: A Python library for computing Coulomb Failure Stress Change.
5
5
  Author-email: Zhou Jiangcheng <zhoujcpku@outlook.com>
6
6
  License: MIT License
@@ -41,10 +41,6 @@ setup.py
41
41
  ./dyncfs/signal_process.py
42
42
  ./dyncfs/utils.py
43
43
  ./dyncfs/exec/TauP-2.6.1.jar
44
- ./dyncfs/exec/edcmp2.bin
45
- ./dyncfs/exec/edgrn2.bin
46
- ./dyncfs/exec/qseis2025.bin
47
- ./dyncfs/exec/qssp2020.bin
48
44
  dyncfs/__init__.py
49
45
  dyncfs/cfs_dynamic.py
50
46
  dyncfs/cfs_dynamic_backup.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "dyncfs"
7
- version = "2.0.0"
7
+ version = "2.0.2"
8
8
  description = "A Python library for computing Coulomb Failure Stress Change."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -34,5 +34,7 @@ where = ["."]
34
34
  include = ["dyncfs*"]
35
35
 
36
36
  [tool.setuptools.package-data]
37
- dyncfs = ["exec/*"]
37
+ dyncfs = ["exec/*.jar"]
38
38
 
39
+ [tool.setuptools.exclude-package-data]
40
+ dyncfs = ["exec/*.bin", "exec/*.exe", "exec/*.o", "exec/*.out"]
dyncfs-2.0.2/setup.py ADDED
@@ -0,0 +1,75 @@
1
+ import os
2
+ import platform
3
+ import shutil
4
+ import subprocess
5
+ from setuptools import setup
6
+ from setuptools.command.build_py import build_py as _build_py
7
+ from setuptools import setup, Distribution
8
+
9
+
10
+ project_root = os.path.dirname(os.path.abspath(__file__))
11
+ platform_exec = "exe" if platform.system() == "Windows" else "bin"
12
+
13
+
14
+ class BinaryDistribution(Distribution):
15
+ def has_ext_modules(self):
16
+ return True
17
+
18
+
19
+ def _compile_dir(src_dir: str, out_bin: str, extra_flags: list[str]) -> None:
20
+ cmd = "gfortran ./*.f -O3 %s -o %s" % (
21
+ " ".join("%s" % extra_flags[_] for _ in range(len(extra_flags))),
22
+ out_bin,
23
+ )
24
+ print(src_dir)
25
+ print(cmd)
26
+ proc = subprocess.run(cmd, cwd=src_dir, shell=True, text=True, capture_output=True)
27
+ if proc.returncode != 0:
28
+ raise RuntimeError(
29
+ f"[dyncfs] Fortran compile failed for {src_dir}\n"
30
+ f"Error:\n{proc.stderr or proc.stdout}"
31
+ )
32
+
33
+
34
+ class CustomBuildPy(_build_py):
35
+ def run(self):
36
+ _build_py.run(self)
37
+
38
+ if not shutil.which("gfortran"):
39
+ raise ValueError(
40
+ r"Please install gfortran and ensure "
41
+ r"that command \'gfortran\' can be directly called"
42
+ )
43
+ if not shutil.which("java"):
44
+ raise ValueError(
45
+ r"Please install java and ensure that "
46
+ r"command \'java\' can be directly called"
47
+ )
48
+
49
+ exec_dir = os.path.join(project_root, "dyncfs", "exec")
50
+ os.makedirs(exec_dir, exist_ok=True)
51
+
52
+ fortran_src_root = os.path.join(project_root, "fortran_src_codes")
53
+ fortran_subdirs = {
54
+ "edgrn2.0_src": f"edgrn2.{platform_exec}",
55
+ "edcmp2.0_src": f"edcmp2.{platform_exec}",
56
+ "qssp2020_src": f"qssp2020.{platform_exec}",
57
+ "qseis2025_src": f"qseis2025.{platform_exec}",
58
+ }
59
+
60
+ for src_folder, bin_name in fortran_subdirs.items():
61
+ fortran_src_dir = os.path.join(fortran_src_root, src_folder)
62
+ output_binary = os.path.join(exec_dir, bin_name)
63
+
64
+ extra = []
65
+ env_fflags = os.environ.get("DYNCFS_FFLAGS", "")
66
+ if env_fflags:
67
+ extra += env_fflags.split()
68
+ if src_folder == "qseis2025_src":
69
+ extra += ["-ffixed-line-length-none"]
70
+
71
+ print(f"[dyncfs] Compiling {src_folder} -> {output_binary}")
72
+ _compile_dir(fortran_src_dir, output_binary, extra)
73
+
74
+
75
+ setup(cmdclass={"build_py": CustomBuildPy}, distclass=BinaryDistribution) # type:ignore
Binary file
Binary file
Binary file
Binary file
dyncfs-2.0.0/setup.py DELETED
@@ -1,114 +0,0 @@
1
- import os
2
- import glob
3
- import platform
4
- import shutil
5
- import subprocess
6
- from setuptools import setup, find_packages
7
- from setuptools.command.build_py import build_py as _build_py
8
-
9
- project_root = os.path.dirname(os.path.abspath(__file__))
10
-
11
- # req_file = os.path.join(project_root, "requirements.txt")
12
- # with open(req_file, encoding="utf-8") as f:
13
- # requirements = [
14
- # line.strip() for line in f if line.strip() and not line.startswith("#")
15
- # ]
16
-
17
- platform_exec = "exe" if platform.system() == "Windows" else "bin"
18
-
19
-
20
- def _compile_dir(src_dir: str, out_bin: str, extra_flags: list[str]) -> None:
21
- build_dir = os.path.join(src_dir, "_build_mod")
22
- os.makedirs(build_dir, exist_ok=True)
23
-
24
- pats = ["*.f", "*.for", "*.f90", "*.F", "*.F90"]
25
- files = []
26
- for p in pats:
27
- files.extend(glob.glob(os.path.join(src_dir, p)))
28
- if not files:
29
- raise RuntimeError(f"[dyncfs] No Fortran sources in {src_dir}")
30
-
31
- remaining = sorted(files)
32
- compiled_objs = []
33
- last_err = ""
34
- for _ in range(10):
35
- progressed = False
36
- for f in list(remaining):
37
- obj = os.path.join(build_dir, os.path.basename(f) + ".o")
38
- cmd = [
39
- "gfortran",
40
- "-c",
41
- "-O3",
42
- "-J",
43
- build_dir,
44
- "-I",
45
- build_dir,
46
- "-I",
47
- src_dir,
48
- *extra_flags,
49
- f,
50
- "-o",
51
- obj,
52
- ]
53
- proc = subprocess.run(cmd, cwd=src_dir, text=True, capture_output=True)
54
- if proc.returncode == 0:
55
- remaining.remove(f)
56
- compiled_objs.append(obj)
57
- progressed = True
58
- else:
59
- last_err = proc.stderr or proc.stdout
60
- if not remaining:
61
- break
62
- if not progressed:
63
- raise RuntimeError(
64
- "[dyncfs] Fortran compile stalled.\n"
65
- f"Uncompiled: {[os.path.basename(x) for x in remaining]}\n"
66
- f"Last error:\n{last_err}"
67
- )
68
-
69
- link_cmd = ["gfortran", *compiled_objs, "-o", out_bin]
70
- subprocess.run(link_cmd, cwd=src_dir, check=True)
71
-
72
-
73
- class CustomBuildPy(_build_py):
74
- def run(self):
75
- _build_py.run(self)
76
-
77
- if not shutil.which("gfortran"):
78
- raise ValueError(
79
- "Please install gfortran and ensure "
80
- "that command 'gfortran' can be directly called"
81
- )
82
- if not shutil.which("jar"):
83
- raise ValueError(
84
- "Please install java and ensure that "
85
- "command 'jar' can be directly called"
86
- )
87
-
88
- exec_dir = os.path.join(project_root, "dyncfs", "exec")
89
- os.makedirs(exec_dir, exist_ok=True)
90
-
91
- fortran_src_root = os.path.join(project_root, "fortran_src_codes")
92
- fortran_subdirs = {
93
- "edgrn2.0_src": f"edgrn2.{platform_exec}",
94
- "edcmp2.0_src": f"edcmp2.{platform_exec}",
95
- "qssp2020_src": f"qssp2020.{platform_exec}",
96
- "qseis2025_src": f"qseis2025.{platform_exec}",
97
- }
98
-
99
- for src_folder, bin_name in fortran_subdirs.items():
100
- fortran_src_dir = os.path.join(fortran_src_root, src_folder)
101
- output_binary = os.path.join(exec_dir, bin_name)
102
-
103
- extra = []
104
- env_fflags = os.environ.get("DYNCFS_FFLAGS", "")
105
- if env_fflags:
106
- extra += env_fflags.split()
107
- if src_folder == "qseis2025_src":
108
- extra += ["-ffixed-line-length-none"]
109
-
110
- print(f"[dyncfs] Compiling {src_folder} -> {output_binary}")
111
- _compile_dir(fortran_src_dir, output_binary, extra)
112
-
113
-
114
- setup(cmdclass={"build_py": CustomBuildPy})
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes