ERROR: STOP ITOUGH2 : Signal 1 recevied.
Hello everyone,
i'm a student, and i'm working on changing the primary variable in iTOUGH2, after some changing in file EOSX and T2F.F and IT2MAIN.F , i compile my executable and when i want to test my modification i got this 'ERROR: STOP ITOUGH2 : Signal 1 recevied.' i know this is a message of subroutine signal 1, due to NBREAK=1.
1-i hope that someone will tell me where i made the error ,
2-i'm not familliar with the code but i run my code on mingw ( gcc compiler) i don't know the comande for just a forward solving and not inverse solving, so wich parameter i should fixe to get a forward solving like tOUGH2
thank you !
14 replies
-
Hi Amri,
The error message most likely occurs because of an array-bound violation somewhere in the new code section you added. Check your modifications carefully. Here are some other suggestions:
(1) Compile in debug mode, so you may get traceback information.
(2) In case you use a newer version of iTOUGH2, add the following command to the iTOUGH2 input file:
> COMPUTATION
>> STOP
>>> ignore SIGNAL
<<<
This disables the signal handler, so you should get the line number in the source code where the exception occurs.
(3) I don't know whether you are running (i)TOUGH2 using the script files you find in ~/itough2/Scripts, which is the preferred way. If so, just type
tough2 input_file 3
to run iTOUGH2 in forward mode (add directory Scripts to your command search path).
If you run the executable directly, provide a dummy iTOUGH2 input file (it actually can be an empty file; or see file ~/itough2/SpecialFiles/invdir) to run iTOUGH2 in forward mode.
All of this is described in great detail in the iTOUGH2 read.me file - please read it!
Best,
Stefan
-
Amri,
I don't know which version of the code you have. The distribution license by LBNL includes the read.me file.
Please study the primary variable choices for single-phase and two-phase conditions, which explains why (PG,PL,T) is not a suitable combination (specifically if capillary pressures are zero).
It is not quite clear why you want to change primary variables. I hope you have a compelling reason, as it requires substantial changes in the EOS module and all subroutines that access the primary variable vector X.
Best,
Stefan
-
-
Amri,
If you don't have capillary pressures, Pl=Pg for all saturations, so you end up with only two equations for three primary variables.
I'm sorry, but I did not understand the other questions/requests you had.
Stefan
-
Dear Finsterle,
I would like to thank you for your answers, and I am taking into account your answers, but I can not understand when Pc = 0.0 the code changes the resolution in (P, X, T) so why there will be a problem ( number of equations and number of unknowns)?
-
Amri,
I assume with "resolution" you mean "solution variables", i.e., the set of primary variables, which in TOUGH2 depends on the phase state, i.e., whether you have two-phase (gas and liquid) conditions or single-phase (gas or liquid) conditions. The choice does not depend on Pc, as you seem to imply.
Your choice of the set (Pg, Pl, T) for two-phase conditions is acceptable, but collapses if Pc(0<Sl<1) = 0.0 or very small or very flat.
Again, assuming I understand you correctly, you wanted this alternative set because you want to handle a finite air-entry pressure at Sg=0. Your choice is fine for that. There may be other alternatives, but I don't know about the relative stability of each of those options. Please let us know how it goes!
Stefan