Defining multiple time dependent sources in GENER block
I am attempting a methane migration problem in TOUGH3 EOS7CA, and I need to define multiple time dependent sources in the GENER block.
From the descriptions given in the manual, it was understood that we can input the number of additional elements (as similar sources) and the increment in the code name of the element through NSEQ and NADD.
For the meshing done, the default element names for the intended sources are AC1 1, AD1 1, AE1 1...... AL1 1. Since the difference (/ increment) here happens in the EL format and not in the NE, how can I define the NADD for the elements mentioned above?
Can someone help me in this regard?
Very quick answer:
You cannot automatically generate element/source-code names in the EL portion of the element name; it only works for the integer section (i.e., NE) of the element name. Just copy the sources, or regenerate the mesh (e.g., rotated by 90 degrees), or (depending on the problem), inject into a single dummy element that is connected to all the source element, or ...
Already tried that.
Gave values for NADS, tried without specifying, kept LTAB 0/1, Tried without entering any of them, etc.
Every time, this is what is shown in the command prompt-
“forrt1: severe (408): fort: (2) Subscript #1 of the array F1 has value 1 which is greater than the upper bound of -1.”
The funny part is, this multiple source entering runs smoothly when I enter time-dependent methane generation rates.
Thanks for revealing the error message (this always helps narrowing down the issue)! I'm stumped by the "funny part". Something goes wrong with dynamic array allocation (which should not be related at all to which component is later used for injection). Please attach your input file, so somebody from the TOUGH3 support team can have a look at it.
I had already tried with copying 50 elements, that runs fine.
In my actual problem, there are 1500 source elements which were why I wanted to use NSEQ and NADD. When I found out that the problem was with the GENER block, from the outputs, I just tried with a single element using NADD and NSEQ.
If MOP2 (17)>0, FOFT prints the variables according to the input data in block OUTPU. I tried by keeping MOP2 (17) = 0. Then also I get the same error.
It might be some bug as suggested. Let us see...
Thank you for your help Sir..!!
Parameswaran T G ,
Did you purchase the TOUGH3 source code? If you did, please go to the file "Input_output.f90", around line 917 (your line number may not be exactly the same as mine, as I made some minor edits. But look for "!-----END OF SINK/SOURCE DATA". About 11 lines before, add an "if" statement outside the three write statements, as indicated by ! +++ below as the end of the line:
if (LTAB.gt.1) then ! +++
IF (ITAB.NE.' ') WRITE(3,36) (F3(L),L=1,LTABA)
endif ! +++
if (allocated(F1)) deallocate(F1,F2,F3)
! Return to reading keywords
!-----END OF SINK/SOURCE DATA.-----------------------------------------
If you had purchased the source code, send me an email (email@example.com) and i will send you a pc executable. Thank you.