NON DARCY Code merge with George's new files
Files from George Z. for non darcy codes and tests to be merged with last release. Files sent from George: /project/eesdev/FEHM/from_george/NONDARCY_PKG_jan2025/NONDARCY_PKG_LANL_280125
Missing files found in full project: /project/eesdev/FEHM/from_george/NONDARCY_PKG_jan2025/FEHM3.6_VER_HP_wo_tests/FEHM3.6_VER_HP_240125/src_050924
Important these files with George's names replace master with correct names: input_w_nondarcy_2.f copied to input.f gensl2_w_nondarcy.f copied to gensl2.f
Summary of code changes
First files sent from George:
New: com_nondarcy.f - new use module with non-darcy variables innondarcy.f - new subroutine to read in non-darcy flow parameter geneq2_nondarcy.f - new subroutine that assembles discrete equations
Modified with George's name, rename to master names: gensl2.f = gensl2_w_nondarcy.f - added coding for enabling and testing non-darcy flow input.f = input_w_nondarcy.f - added coding for input of non-darcy flow, use com_nondarcy, allocate hdflow, enable macro ndar for non darcy
Modified: airctr.f - added arrays related to non-darcy flow allocmem.f - none (changed date only) bnswer.f - added iad_min_sv (minimum NR iteration if changed during simulation) add a line for debugging(disabled) comai.f - added addiad_min_sv comji.f - added small array for non-darcy application fehmn.f - change and add write statements and parsing for vtk fluid_prop_control.f - corrected small error related to vapor pressue memory for non-darcy isothermal flow, n_allocate_iso added and replaces some n_allocate variables gradctr.f - fixed error when using saved zones and 'grad' keyword inpres.f - minor changed date plot_new.f - corrected error for history plot of sir pressure structured.f - init ifdm_elem = 0 thrair.f - allocated variables needed for non-darcy flow
Files from George's project merged with master:
inflow.f - calls hdbc_mod and pflow comdi.f - define hdflow flow_boundary_conditions.f - init hdflow to tempb and call hdbc_mod mainrip.f - corrected so src has PC version, GFORTRAN has UNIX version Sub_FEHM_tec_to_vtk.f - fixed bad characters appearing in vtk log file name steady.f - add pdifmax_old for max calculations zone.f - add subroutine hdbc_mod and additions for BC or zones elevation mismatch
Files fixed for linux by removing long lines and change 0.0 to 0.0d0 in arguments. compute_exit_new.f fem_elastic_stiffness.f rdcon.f rlperm.f setconnarray.f stressperm_24.f sub_bcgstabnn.f
Build files for Linux: Makefile and Makefile.depends Build file for WINDOWS: FEHM3.6_VER2.vfproj (rename to FEHM3.6_VER3.vfproj)
Update from George Feb 13 2025
I have the latest GitHub FEHM Intel project up and running. All good with some subtle differences with the latest non-GitHub version I have. I have a 2D seepage face problem that I don't believe is in the verification suite. To get the same total water mass comparison (aka mass balance error) I had to fiddle with the Impedance factor in the flo3 macro. Not a big deal but I need to know why.
Update Received from George Jun 16 2025 Put on new branch gaz-nondarcy2 by tamiller Copied to local space at /project/eesdev/FEHM/from_george/SRC_150625/ Working on merge at /project/eesdev/FEHM/FEHM_BRANCHES/FEHM_gaz-nondarcy2/src
Hi Terry and Phil. I am trying to get the new source to you pretty fast because I think it will improve a majority of the ndar problems.
Comments:
-
Fixed the VTK issue where FEHM crashes sometimes after the simulation has finished (igeo must be "1" to generate an element list, I insured this internally)
-
Corrected bugs in isothermal 2-phase flow with ndar. (included single phase as well).
-
Added heat and mass (water) 2- phase ndar flow.
-
I ran the V+V that I have. All tests passed except Richards Eq and "barometric". I think Richards Eq does work, but the pearl scripts do not seem to find the output they need ( I'll check more).
airctr_a.f added code for testing and debugging allocmem.f allocated array t5_nd (holds area term necessary for ndar) com_nondarcy.f added variables xrl_nd, xrv_nd to track ndar rel perms comci.f added arrays rlf_nd(:) and other rel perm arrays used fo ndar comji.f added arrays t5_nd(:) t8_nd(:) t9_nd(:) for ndar fehmn.f can't find any changes for this time period geneq1_w_nondarcy_c.f major new ndar subroutine added use com_nondarcy, added ndar local variables geneq2_nondarcy_c3.f corrected ndar derivative bugs gensl1_w_nondarcy.f added call to geneq1_w_nondarcy gensl2_w_nondarcy_a.f modified the way fully saturated flow accumulation term is assembled innondarcy.f allocate rlf_nd and related arrays if ndar simulations input_w_nondarcy_2.f added use file to allow iogeo to be used (a fix for vtk, vtk always needs geometry) non_darcy_subroutines_b3.f added coding for ndar WH 2-phase flow derivatives plot_new.f corrected bug for cap presssure when flow if saturated only flow read_avs_io.f parameter igeo now set in scanin, igeo = 1 is necessary for vtk storsx_read.f can't find change thermw.f added coding to save rel perm data for use in equation generation with ndar thrair_c.f modified coding to save rel perm data for ndar
rename based on subroutines matched to github src files: /project/eesdev/FEHM/from_george/SRC_150625/SRC_150625/src_renamed
New files: geneq1_w_nondarcy.f with subroutine geneq1_w_nondarcy() non_darcy_subroutines.f with nd_flow_vel() and nd_props() that used to be in geneq2_nondarcy.f
mv geneq2_nondarcy_c3.f geneq2_nondarcy.f mv non_darcy_subroutines_b3.f non_darcy_subroutines.f mv airctr_a.f airctr.f mv geneq1_w_nondarcy_c.f geneq1_w_nondarcy.f mv gensl1_w_nondarcy.f gensl1.f mv gensl2_w_nondarcy_a.f gensl2.f mv input_w_nondarcy_2.f input.f mv thrair_c.f thrair.f