* [PR71252][PR71269] Fix trunk errors due to stmt_to_insert
@ 2016-05-26 8:36 Kugan Vivekanandarajah
2016-05-26 9:50 ` Jakub Jelinek
0 siblings, 1 reply; 6+ messages in thread
From: Kugan Vivekanandarajah @ 2016-05-26 8:36 UTC (permalink / raw)
To: gcc-patches, Richard Biener, Jakub Jelinek
[-- Attachment #1: Type: text/plain, Size: 4939 bytes --]
Hi,
Sorry for the breakage due to the changes to tree-reassoc. Attached
patch fixes this.
I have tested the patch with spec2006 and cp2k_single_file.f90 from
PR71252 in a x86-640linux-gnu.
./build/gcc/f951 cp2k_single_file.f90 -O3 -ffast-math -march=westmere
works fine.
Tested testcase from PR71269 on gcc2-power8.
In spec2006, I saw couple of errors which I believe are not related:
1.
1464224082.10: /home/kugan.vivekanandarajah/1/usr/local/include/c++/7.0.0/bits/postypes.h:216:5:
note: candidate: template<class _StateT> bool std::operator==(const
std::fpos<_StateT>&, const std::fpos<_StateT>&)
1464224082.10: operator==(const fpos<_StateT>& __lhs, const
fpos<_StateT>& __rhs)
1464224082.10: ^~~~~~~~
1464224082.10: /home/kugan.vivekanandarajah/1/usr/local/include/c++/7.0.0/bits/postypes.h:216:5:
note: template argument deduction/substitution failed:
1464224082.10: mpsinput.cc:75:55: note:
'std::basic_istream<char>::__istream_type {aka
std::basic_istream<char>}' is not derived from 'const
std::fpos<_StateT>'
1464224082.10: if (m_input.getline(m_buf, sizeof(m_buf)) == 0)
1464224082.10: ^
1464224082.16: specmake[1]: *** [mpsinput.o] Error 1
1464224082.16: specmake[1]: *** Waiting for unfinished jobs....
1464224084.38: Stop make command: Thu May 26 02:54:44 2016 (1464224084)
1464224084.38: Elapsed time for make command: 00:00:05 (5)
1464224084.38: Error with make 'specmake build': check file
'/home/kugan.vivekanandarajah/CPU2006/benchspec/CPU2006/450.soplex/build/build_base_amd64.0000/make.err'
1464224084.38: Command returned exit code 2
1464224084.38: Error with make!
1464224084.39: Compile for '450.soplex' ended at: Thu May 26
02:54:44 2016 (1464224084)
1464224084.39: Elapsed compile for '450.soplex': 00:00:05 (5)
1464224084.39: *** Error building 450.soplex
2.
1464224111.69: 0xd99101 thread_through_all_blocks(bool)
1464224111.69: ../../gcc/gcc/tree-ssa-threadupdate.c:2450
1464224111.70: /home/kugan.vivekanandarajah/1/usr/local/bin/gcc -c -o
SPOOLES/IVL/src/IVL_util.o -DSPEC_CPU -DNDEBUG -ISPOOLES -static
-static-libgcc -O3 -fno-common -DSPEC_CPU_LP64
SPOOLES/IVL/src/IVL_util.c
1464224111.71: 0xe202d6 finalize_jump_threads
1464224111.71: ../../gcc/gcc/tree-vrp.c:10157
1464224111.71: 0xe202d6 execute_vrp
1464224111.71: ../../gcc/gcc/tree-vrp.c:10311
1464224111.71: 0xe202d6 execute
1464224111.71: ../../gcc/gcc/tree-vrp.c:10380
1464224111.71: Please submit a full bug report,
1464224111.71: with preprocessed source if appropriate.
1464224111.71: Please include the complete backtrace with any bug report.
1464224111.71: See <http://gcc.gnu.org/bugs.html> for instructions.
1464224111.72: specmake[1]: *** [SPOOLES/Graph/src/Graph_util.o] Error 1
1464224111.72: specmake[1]: *** Waiting for unfinished jobs....
1464224112.43: Stop make command: Thu May 26 02:55:12 2016 (1464224112)
1464224112.43: Elapsed time for make command: 00:00:14 (14)
1464224112.43: Error with make 'specmake build': check file
'/home/kugan.vivekanandarajah/CPU2006/benchspec/CPU2006/454.calculix/build/build_base_amd64.0000/make.err'
1464224112.43: Command returned exit code 2
1464224112.43: Error with make!
1464224112.43: Compile for '454.calculix' ended at: Thu May 26
02:55:12 2016 (1464224112)
1464224112.43: Elapsed compile for '454.calculix': 00:00:14 (14)
1464224112.43: *** Error building 454.calculix
The issues were:
1. In swap_ops_for_binary_stmt, stmt_to_insert was not swapped. That
was the reason for most of the FAILs. We ended up adding
stmt_to_insert at the wrong place which was not dominating the def.
2. In find_insert_point, I am also making sure that we insert after
the definition of operands of stmt_to_insert.
3. In rewrite_expr_tree_parallel, build_and_add_sum relies on either
of operand being inserted. If that is not the case, we have to insert
the stmt_to_insert before calling build_and_add_sum.
4. I also moved all the other stmt_to_insert insertion after the use
stmt are created.
Also regression tested on x86-64-linux gnu with no new regressions.
Is this OK for trunk,
Thanks,
Kugan
gcc/ChangeLog:
2016-05-26 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71269
PR middle-end/71252
* tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Handle stmt_to_insert.
(find_insert_point): If the operands are defined by
stmt_to_insert, insert after the operand of the stmt_to_insert is defined.
(rewrite_expr_tree): Add stmt_to_insert after adding the use stmt.
(reassociate_bb): Likewise.
(rewrite_expr_tree_parallel): Add stmt_to_insert
before build_and_add_sum creates new use stmt when the other operand
to build_and_add_sum dosent have define inst of is a GIMPLE_NOP.
gcc/testsuite/ChangeLog:
2016-05-26 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71269
* gcc.dg/tree-ssa/pr71269.c: New test.
[-- Attachment #2: p.txt --]
[-- Type: text/plain, Size: 7834 bytes --]
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c
index e69de29..b0c89ea 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c
@@ -0,0 +1,9 @@
+/* PR middle-end/71269 */
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+
+int a, b, c;
+void fn1()
+{
+ fn2 (sizeof 0 + c + a + b + b);
+}
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index c9ed679..b9a29a6 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -3767,8 +3767,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
operand_entry temp = *oe3;
oe3->op = oe1->op;
oe3->rank = oe1->rank;
+ oe3->stmt_to_insert = oe1->stmt_to_insert;
oe1->op = temp.op;
oe1->rank= temp.rank;
+ oe1->stmt_to_insert = temp.stmt_to_insert;
}
else if ((oe1->rank == oe3->rank
&& oe2->rank != oe3->rank)
@@ -3779,8 +3781,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
operand_entry temp = *oe2;
oe2->op = oe1->op;
oe2->rank = oe1->rank;
+ oe2->stmt_to_insert = oe1->stmt_to_insert;
oe1->op = temp.op;
oe1->rank = temp.rank;
+ oe1->stmt_to_insert = temp.stmt_to_insert;
}
}
@@ -3790,6 +3794,42 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
static inline gimple *
find_insert_point (gimple *stmt, tree rhs1, tree rhs2)
{
+ /* If rhs1 is defined by stmt_to_insert, insert after its argument
+ definion stmt. */
+ if (TREE_CODE (rhs1) == SSA_NAME
+ && !gimple_nop_p (SSA_NAME_DEF_STMT (rhs1))
+ && !gimple_bb (SSA_NAME_DEF_STMT (rhs1)))
+ {
+ gimple *stmt1 = SSA_NAME_DEF_STMT (rhs1);
+ gcc_assert (is_gimple_assign (stmt1));
+ tree rhs11 = gimple_assign_rhs1 (stmt1);
+ tree rhs12 = gimple_assign_rhs2 (stmt1);
+ if (TREE_CODE (rhs11) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs11)))
+ stmt = SSA_NAME_DEF_STMT (rhs11);
+ if (TREE_CODE (rhs12) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs12)))
+ stmt = SSA_NAME_DEF_STMT (rhs12);
+ }
+
+ /* If rhs2 is defined by stmt_to_insert, insert after its argument
+ definion stmt. */
+ if (TREE_CODE (rhs2) == SSA_NAME
+ && !gimple_nop_p (SSA_NAME_DEF_STMT (rhs2))
+ && !gimple_bb (SSA_NAME_DEF_STMT (rhs2)))
+ {
+ gimple *stmt1 = SSA_NAME_DEF_STMT (rhs2);
+ gcc_assert (is_gimple_assign (stmt1));
+ tree rhs11 = gimple_assign_rhs1 (stmt1);
+ tree rhs12 = gimple_assign_rhs2 (stmt1);
+ if (TREE_CODE (rhs11) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs11)))
+ stmt = SSA_NAME_DEF_STMT (rhs11);
+ if (TREE_CODE (rhs12) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs12)))
+ stmt = SSA_NAME_DEF_STMT (rhs12);
+ }
+
if (TREE_CODE (rhs1) == SSA_NAME
&& reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs1)))
stmt = SSA_NAME_DEF_STMT (rhs1);
@@ -3845,10 +3885,6 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
= find_insert_point (stmt, oe1->op, oe2->op);
/* If the stmt that defines operand has to be inserted, insert it
before the use. */
- if (oe1->stmt_to_insert)
- insert_stmt_before_use (stmt, oe1->stmt_to_insert);
- if (oe2->stmt_to_insert)
- insert_stmt_before_use (stmt, oe2->stmt_to_insert);
lhs = make_ssa_name (TREE_TYPE (lhs));
stmt
= gimple_build_assign (lhs, gimple_assign_rhs_code (stmt),
@@ -3866,15 +3902,17 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
== stmt);
/* If the stmt that defines operand has to be inserted, insert it
before the use. */
- if (oe1->stmt_to_insert)
- insert_stmt_before_use (stmt, oe1->stmt_to_insert);
- if (oe2->stmt_to_insert)
- insert_stmt_before_use (stmt, oe2->stmt_to_insert);
gimple_assign_set_rhs1 (stmt, oe1->op);
gimple_assign_set_rhs2 (stmt, oe2->op);
update_stmt (stmt);
}
+ /* If the stmt that defines operand has to be inserted, insert it
+ before the use after the stmt is inserted. */
+ if (oe1->stmt_to_insert)
+ insert_stmt_before_use (stmt, oe1->stmt_to_insert);
+ if (oe2->stmt_to_insert)
+ insert_stmt_before_use (stmt, oe2->stmt_to_insert);
if (rhs1 != oe1->op && rhs1 != oe2->op)
remove_visited_stmt_chain (rhs1);
@@ -3893,11 +3931,6 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
/* Rewrite the next operator. */
oe = ops[opindex];
- /* If the stmt that defines operand has to be inserted, insert it
- before the use. */
- if (oe->stmt_to_insert)
- insert_stmt_before_use (stmt, oe->stmt_to_insert);
-
/* Recurse on the LHS of the binary operator, which is guaranteed to
be the non-leaf side. */
tree new_rhs1
@@ -3944,6 +3977,10 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
update_stmt (stmt);
}
+ /* If the stmt that defines operand has to be inserted, insert it
+ before the use after the use_stmt is inserted. */
+ if (oe->stmt_to_insert)
+ insert_stmt_before_use (stmt, oe->stmt_to_insert);
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, " into ");
@@ -4115,24 +4152,41 @@ rewrite_expr_tree_parallel (gassign *stmt, int width,
{
/* If the stmt that defines operand has to be inserted, insert it
before the use. */
- if (stmt1)
- insert_stmt_before_use (stmts[i], stmt1);
- if (stmt2)
- insert_stmt_before_use (stmts[i], stmt2);
gimple_assign_set_rhs1 (stmts[i], op1);
gimple_assign_set_rhs2 (stmts[i], op2);
update_stmt (stmts[i]);
}
else
{
+ /* PR71252: stmt_to_insert has to be inserted after use stmt created
+ by build_and_add_sum. However if the other operand doesnt have define-stmt
+ or is defined by GIMPLE_NOP, we have to insert it first. */
+ if (stmt1
+ && (TREE_CODE (op2) != SSA_NAME
+ || !gimple_bb (SSA_NAME_DEF_STMT (op2))
+ || gimple_nop_p (SSA_NAME_DEF_STMT (op2))))
+ {
+ insert_stmt_before_use (stmts[i], stmt1);
+ stmt1 = NULL;
+ }
+ if (stmt2
+ && (TREE_CODE (op1) != SSA_NAME
+ || !gimple_bb (SSA_NAME_DEF_STMT (op1))
+ || gimple_nop_p (SSA_NAME_DEF_STMT (op1))))
+ {
+ insert_stmt_before_use (stmts[i], stmt2);
+ stmt2 = NULL;
+ }
stmts[i] = build_and_add_sum (TREE_TYPE (last_rhs1), op1, op2, opcode);
- /* If the stmt that defines operand has to be inserted, insert it
- before new build_and_add stmt after it is created. */
- if (stmt1)
- insert_stmt_before_use (stmts[i], stmt1);
- if (stmt2)
- insert_stmt_before_use (stmts[i], stmt2);
}
+
+ /* If the stmt that defines operand has to be inserted, insert it
+ before new use stmt after it is created. */
+ if (stmt1)
+ insert_stmt_before_use (stmts[i], stmt1);
+ if (stmt2)
+ insert_stmt_before_use (stmts[i], stmt2);
+ stmt1 = stmt2 = NULL;
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, " into ");
@@ -5312,15 +5366,15 @@ reassociate_bb (basic_block bb)
{
tree last_op = ops.last ()->op;
- /* If the stmt that defines operand has to be inserted, insert it
- before the use. */
- if (ops.last ()->stmt_to_insert)
- insert_stmt_before_use (stmt, ops.last ()->stmt_to_insert);
if (powi_result)
transform_stmt_to_multiply (&gsi, stmt, last_op,
powi_result);
else
transform_stmt_to_copy (&gsi, stmt, last_op);
+ /* If the stmt that defines operand has to be inserted, insert it
+ before the use. */
+ if (ops.last ()->stmt_to_insert)
+ insert_stmt_before_use (stmt, ops.last ()->stmt_to_insert);
}
else
{
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PR71252][PR71269] Fix trunk errors due to stmt_to_insert
2016-05-26 8:36 [PR71252][PR71269] Fix trunk errors due to stmt_to_insert Kugan Vivekanandarajah
@ 2016-05-26 9:50 ` Jakub Jelinek
2016-05-26 12:36 ` Kugan Vivekanandarajah
0 siblings, 1 reply; 6+ messages in thread
From: Jakub Jelinek @ 2016-05-26 9:50 UTC (permalink / raw)
To: Kugan Vivekanandarajah; +Cc: gcc-patches, Richard Biener
On Thu, May 26, 2016 at 02:17:56PM +1000, Kugan Vivekanandarajah wrote:
> --- a/gcc/tree-ssa-reassoc.c
> +++ b/gcc/tree-ssa-reassoc.c
> @@ -3767,8 +3767,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
> operand_entry temp = *oe3;
> oe3->op = oe1->op;
> oe3->rank = oe1->rank;
> + oe3->stmt_to_insert = oe1->stmt_to_insert;
> oe1->op = temp.op;
> oe1->rank= temp.rank;
> + oe1->stmt_to_insert = temp.stmt_to_insert;
If you want to swap those 3 fields (what about the others?), can't you write
std::swap (oe1->op, oe3->op);
std::swap (oe1->rank, oe3->rank);
std::swap (oe1->stmt_to_insert, oe3->stmt_to_insert);
instead and drop operand_entry temp = *oe3; ?
> }
> else if ((oe1->rank == oe3->rank
> && oe2->rank != oe3->rank)
> @@ -3779,8 +3781,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
> operand_entry temp = *oe2;
> oe2->op = oe1->op;
> oe2->rank = oe1->rank;
> + oe2->stmt_to_insert = oe1->stmt_to_insert;
> oe1->op = temp.op;
> oe1->rank = temp.rank;
> + oe1->stmt_to_insert = temp.stmt_to_insert;
> }
Similarly.
Jakub
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PR71252][PR71269] Fix trunk errors due to stmt_to_insert
2016-05-26 9:50 ` Jakub Jelinek
@ 2016-05-26 12:36 ` Kugan Vivekanandarajah
2016-05-27 11:56 ` Richard Biener
0 siblings, 1 reply; 6+ messages in thread
From: Kugan Vivekanandarajah @ 2016-05-26 12:36 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: gcc-patches, Richard Biener
[-- Attachment #1: Type: text/plain, Size: 1337 bytes --]
Hi Jakub,
On 26 May 2016 at 18:18, Jakub Jelinek <jakub@redhat.com> wrote:
> On Thu, May 26, 2016 at 02:17:56PM +1000, Kugan Vivekanandarajah wrote:
>> --- a/gcc/tree-ssa-reassoc.c
>> +++ b/gcc/tree-ssa-reassoc.c
>> @@ -3767,8 +3767,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>> operand_entry temp = *oe3;
>> oe3->op = oe1->op;
>> oe3->rank = oe1->rank;
>> + oe3->stmt_to_insert = oe1->stmt_to_insert;
>> oe1->op = temp.op;
>> oe1->rank= temp.rank;
>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>
> If you want to swap those 3 fields (what about the others?), can't you write
> std::swap (oe1->op, oe3->op);
> std::swap (oe1->rank, oe3->rank);
> std::swap (oe1->stmt_to_insert, oe3->stmt_to_insert);
> instead and drop operand_entry temp = *oe3; ?
>
>> }
>> else if ((oe1->rank == oe3->rank
>> && oe2->rank != oe3->rank)
>> @@ -3779,8 +3781,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>> operand_entry temp = *oe2;
>> oe2->op = oe1->op;
>> oe2->rank = oe1->rank;
>> + oe2->stmt_to_insert = oe1->stmt_to_insert;
>> oe1->op = temp.op;
>> oe1->rank = temp.rank;
>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>> }
>
> Similarly.
Done. Revised patch attached.
Thanks,
Kugan
[-- Attachment #2: pr71252_2.txt --]
[-- Type: text/plain, Size: 8237 bytes --]
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c b/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c
index e69de29..4dceaaa 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr71269.c
@@ -0,0 +1,10 @@
+/* PR middle-end/71269 */
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+
+int a, b, c;
+void fn2 (int);
+void fn1 ()
+{
+ fn2 (sizeof 0 + c + a + b + b);
+}
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index c9ed679..db6ac6b 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -3764,11 +3764,9 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
&& !is_phi_for_stmt (stmt, oe1->op)
&& !is_phi_for_stmt (stmt, oe2->op)))
{
- operand_entry temp = *oe3;
- oe3->op = oe1->op;
- oe3->rank = oe1->rank;
- oe1->op = temp.op;
- oe1->rank= temp.rank;
+ std::swap (oe1->op, oe3->op);
+ std::swap (oe1->rank, oe3->rank);
+ std::swap (oe1->stmt_to_insert, oe3->stmt_to_insert);
}
else if ((oe1->rank == oe3->rank
&& oe2->rank != oe3->rank)
@@ -3776,11 +3774,9 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
&& !is_phi_for_stmt (stmt, oe1->op)
&& !is_phi_for_stmt (stmt, oe3->op)))
{
- operand_entry temp = *oe2;
- oe2->op = oe1->op;
- oe2->rank = oe1->rank;
- oe1->op = temp.op;
- oe1->rank = temp.rank;
+ std::swap (oe1->op, oe2->op);
+ std::swap (oe1->rank, oe2->rank);
+ std::swap (oe1->stmt_to_insert, oe2->stmt_to_insert);
}
}
@@ -3790,6 +3786,42 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
static inline gimple *
find_insert_point (gimple *stmt, tree rhs1, tree rhs2)
{
+ /* If rhs1 is defined by stmt_to_insert, insert after its argument
+ definion stmt. */
+ if (TREE_CODE (rhs1) == SSA_NAME
+ && !gimple_nop_p (SSA_NAME_DEF_STMT (rhs1))
+ && !gimple_bb (SSA_NAME_DEF_STMT (rhs1)))
+ {
+ gimple *stmt1 = SSA_NAME_DEF_STMT (rhs1);
+ gcc_assert (is_gimple_assign (stmt1));
+ tree rhs11 = gimple_assign_rhs1 (stmt1);
+ tree rhs12 = gimple_assign_rhs2 (stmt1);
+ if (TREE_CODE (rhs11) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs11)))
+ stmt = SSA_NAME_DEF_STMT (rhs11);
+ if (TREE_CODE (rhs12) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs12)))
+ stmt = SSA_NAME_DEF_STMT (rhs12);
+ }
+
+ /* If rhs2 is defined by stmt_to_insert, insert after its argument
+ definion stmt. */
+ if (TREE_CODE (rhs2) == SSA_NAME
+ && !gimple_nop_p (SSA_NAME_DEF_STMT (rhs2))
+ && !gimple_bb (SSA_NAME_DEF_STMT (rhs2)))
+ {
+ gimple *stmt1 = SSA_NAME_DEF_STMT (rhs2);
+ gcc_assert (is_gimple_assign (stmt1));
+ tree rhs11 = gimple_assign_rhs1 (stmt1);
+ tree rhs12 = gimple_assign_rhs2 (stmt1);
+ if (TREE_CODE (rhs11) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs11)))
+ stmt = SSA_NAME_DEF_STMT (rhs11);
+ if (TREE_CODE (rhs12) == SSA_NAME
+ && reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs12)))
+ stmt = SSA_NAME_DEF_STMT (rhs12);
+ }
+
if (TREE_CODE (rhs1) == SSA_NAME
&& reassoc_stmt_dominates_stmt_p (stmt, SSA_NAME_DEF_STMT (rhs1)))
stmt = SSA_NAME_DEF_STMT (rhs1);
@@ -3843,12 +3875,6 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
{
gimple *insert_point
= find_insert_point (stmt, oe1->op, oe2->op);
- /* If the stmt that defines operand has to be inserted, insert it
- before the use. */
- if (oe1->stmt_to_insert)
- insert_stmt_before_use (stmt, oe1->stmt_to_insert);
- if (oe2->stmt_to_insert)
- insert_stmt_before_use (stmt, oe2->stmt_to_insert);
lhs = make_ssa_name (TREE_TYPE (lhs));
stmt
= gimple_build_assign (lhs, gimple_assign_rhs_code (stmt),
@@ -3864,17 +3890,17 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
{
gcc_checking_assert (find_insert_point (stmt, oe1->op, oe2->op)
== stmt);
- /* If the stmt that defines operand has to be inserted, insert it
- before the use. */
- if (oe1->stmt_to_insert)
- insert_stmt_before_use (stmt, oe1->stmt_to_insert);
- if (oe2->stmt_to_insert)
- insert_stmt_before_use (stmt, oe2->stmt_to_insert);
gimple_assign_set_rhs1 (stmt, oe1->op);
gimple_assign_set_rhs2 (stmt, oe2->op);
update_stmt (stmt);
}
+ /* If the stmt that defines operand has to be inserted, insert it
+ before the use after the stmt is inserted. */
+ if (oe1->stmt_to_insert)
+ insert_stmt_before_use (stmt, oe1->stmt_to_insert);
+ if (oe2->stmt_to_insert)
+ insert_stmt_before_use (stmt, oe2->stmt_to_insert);
if (rhs1 != oe1->op && rhs1 != oe2->op)
remove_visited_stmt_chain (rhs1);
@@ -3893,11 +3919,6 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
/* Rewrite the next operator. */
oe = ops[opindex];
- /* If the stmt that defines operand has to be inserted, insert it
- before the use. */
- if (oe->stmt_to_insert)
- insert_stmt_before_use (stmt, oe->stmt_to_insert);
-
/* Recurse on the LHS of the binary operator, which is guaranteed to
be the non-leaf side. */
tree new_rhs1
@@ -3944,6 +3965,10 @@ rewrite_expr_tree (gimple *stmt, unsigned int opindex,
update_stmt (stmt);
}
+ /* If the stmt that defines operand has to be inserted, insert it
+ before the use after the use_stmt is inserted. */
+ if (oe->stmt_to_insert)
+ insert_stmt_before_use (stmt, oe->stmt_to_insert);
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, " into ");
@@ -4115,24 +4140,41 @@ rewrite_expr_tree_parallel (gassign *stmt, int width,
{
/* If the stmt that defines operand has to be inserted, insert it
before the use. */
- if (stmt1)
- insert_stmt_before_use (stmts[i], stmt1);
- if (stmt2)
- insert_stmt_before_use (stmts[i], stmt2);
gimple_assign_set_rhs1 (stmts[i], op1);
gimple_assign_set_rhs2 (stmts[i], op2);
update_stmt (stmts[i]);
}
else
{
+ /* PR71252: stmt_to_insert has to be inserted after use stmt created
+ by build_and_add_sum. However if the other operand doesnt have define-stmt
+ or is defined by GIMPLE_NOP, we have to insert it first. */
+ if (stmt1
+ && (TREE_CODE (op2) != SSA_NAME
+ || !gimple_bb (SSA_NAME_DEF_STMT (op2))
+ || gimple_nop_p (SSA_NAME_DEF_STMT (op2))))
+ {
+ insert_stmt_before_use (stmts[i], stmt1);
+ stmt1 = NULL;
+ }
+ if (stmt2
+ && (TREE_CODE (op1) != SSA_NAME
+ || !gimple_bb (SSA_NAME_DEF_STMT (op1))
+ || gimple_nop_p (SSA_NAME_DEF_STMT (op1))))
+ {
+ insert_stmt_before_use (stmts[i], stmt2);
+ stmt2 = NULL;
+ }
stmts[i] = build_and_add_sum (TREE_TYPE (last_rhs1), op1, op2, opcode);
- /* If the stmt that defines operand has to be inserted, insert it
- before new build_and_add stmt after it is created. */
- if (stmt1)
- insert_stmt_before_use (stmts[i], stmt1);
- if (stmt2)
- insert_stmt_before_use (stmts[i], stmt2);
}
+
+ /* If the stmt that defines operand has to be inserted, insert it
+ before new use stmt after it is created. */
+ if (stmt1)
+ insert_stmt_before_use (stmts[i], stmt1);
+ if (stmt2)
+ insert_stmt_before_use (stmts[i], stmt2);
+ stmt1 = stmt2 = NULL;
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, " into ");
@@ -5312,15 +5354,15 @@ reassociate_bb (basic_block bb)
{
tree last_op = ops.last ()->op;
- /* If the stmt that defines operand has to be inserted, insert it
- before the use. */
- if (ops.last ()->stmt_to_insert)
- insert_stmt_before_use (stmt, ops.last ()->stmt_to_insert);
if (powi_result)
transform_stmt_to_multiply (&gsi, stmt, last_op,
powi_result);
else
transform_stmt_to_copy (&gsi, stmt, last_op);
+ /* If the stmt that defines operand has to be inserted, insert it
+ before the use. */
+ if (ops.last ()->stmt_to_insert)
+ insert_stmt_before_use (stmt, ops.last ()->stmt_to_insert);
}
else
{
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PR71252][PR71269] Fix trunk errors due to stmt_to_insert
2016-05-26 12:36 ` Kugan Vivekanandarajah
@ 2016-05-27 11:56 ` Richard Biener
2016-05-27 13:43 ` Kugan Vivekanandarajah
0 siblings, 1 reply; 6+ messages in thread
From: Richard Biener @ 2016-05-27 11:56 UTC (permalink / raw)
To: Kugan Vivekanandarajah; +Cc: Jakub Jelinek, gcc-patches
On Thu, May 26, 2016 at 11:32 AM, Kugan Vivekanandarajah
<kugan.vivekanandarajah@linaro.org> wrote:
> Hi Jakub,
>
>
> On 26 May 2016 at 18:18, Jakub Jelinek <jakub@redhat.com> wrote:
>> On Thu, May 26, 2016 at 02:17:56PM +1000, Kugan Vivekanandarajah wrote:
>>> --- a/gcc/tree-ssa-reassoc.c
>>> +++ b/gcc/tree-ssa-reassoc.c
>>> @@ -3767,8 +3767,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>>> operand_entry temp = *oe3;
>>> oe3->op = oe1->op;
>>> oe3->rank = oe1->rank;
>>> + oe3->stmt_to_insert = oe1->stmt_to_insert;
>>> oe1->op = temp.op;
>>> oe1->rank= temp.rank;
>>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>>
>> If you want to swap those 3 fields (what about the others?), can't you write
>> std::swap (oe1->op, oe3->op);
>> std::swap (oe1->rank, oe3->rank);
>> std::swap (oe1->stmt_to_insert, oe3->stmt_to_insert);
>> instead and drop operand_entry temp = *oe3; ?
>>
>>> }
>>> else if ((oe1->rank == oe3->rank
>>> && oe2->rank != oe3->rank)
>>> @@ -3779,8 +3781,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>>> operand_entry temp = *oe2;
>>> oe2->op = oe1->op;
>>> oe2->rank = oe1->rank;
>>> + oe2->stmt_to_insert = oe1->stmt_to_insert;
>>> oe1->op = temp.op;
>>> oe1->rank = temp.rank;
>>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>>> }
>>
>> Similarly.
>
> Done. Revised patch attached.
Your patch only adds a single testcase, please make sure to include
_all_ relevant testcases.
The swap should simply swap the whole operand, thus
std::swap (*oe1, *oe3);
it was probably not updated when all the other fields were added.
I don't like the find_insert_point changes or the change before
build_and_add_sum.
Why not move the if (stmt1) insert; if (stmt2) insert; before the if
() unconditionally?
Do we make progress with just the rest of the changes? If so please split the
patch and include relevant testcases.
Thanks,
Richard.
> Thanks,
> Kugan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PR71252][PR71269] Fix trunk errors due to stmt_to_insert
2016-05-27 11:56 ` Richard Biener
@ 2016-05-27 13:43 ` Kugan Vivekanandarajah
2016-05-27 13:52 ` Richard Biener
0 siblings, 1 reply; 6+ messages in thread
From: Kugan Vivekanandarajah @ 2016-05-27 13:43 UTC (permalink / raw)
To: Richard Biener; +Cc: Jakub Jelinek, gcc-patches
[-- Attachment #1: Type: text/plain, Size: 3206 bytes --]
Hi Richard,
On 27 May 2016 at 19:56, Richard Biener <richard.guenther@gmail.com> wrote:
> On Thu, May 26, 2016 at 11:32 AM, Kugan Vivekanandarajah
> <kugan.vivekanandarajah@linaro.org> wrote:
>> Hi Jakub,
>>
>>
>> On 26 May 2016 at 18:18, Jakub Jelinek <jakub@redhat.com> wrote:
>>> On Thu, May 26, 2016 at 02:17:56PM +1000, Kugan Vivekanandarajah wrote:
>>>> --- a/gcc/tree-ssa-reassoc.c
>>>> +++ b/gcc/tree-ssa-reassoc.c
>>>> @@ -3767,8 +3767,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>>>> operand_entry temp = *oe3;
>>>> oe3->op = oe1->op;
>>>> oe3->rank = oe1->rank;
>>>> + oe3->stmt_to_insert = oe1->stmt_to_insert;
>>>> oe1->op = temp.op;
>>>> oe1->rank= temp.rank;
>>>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>>>
>>> If you want to swap those 3 fields (what about the others?), can't you write
>>> std::swap (oe1->op, oe3->op);
>>> std::swap (oe1->rank, oe3->rank);
>>> std::swap (oe1->stmt_to_insert, oe3->stmt_to_insert);
>>> instead and drop operand_entry temp = *oe3; ?
>>>
>>>> }
>>>> else if ((oe1->rank == oe3->rank
>>>> && oe2->rank != oe3->rank)
>>>> @@ -3779,8 +3781,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>>>> operand_entry temp = *oe2;
>>>> oe2->op = oe1->op;
>>>> oe2->rank = oe1->rank;
>>>> + oe2->stmt_to_insert = oe1->stmt_to_insert;
>>>> oe1->op = temp.op;
>>>> oe1->rank = temp.rank;
>>>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>>>> }
>>>
>>> Similarly.
>>
>> Done. Revised patch attached.
>
> Your patch only adds a single testcase, please make sure to include
> _all_ relevant testcases.
>
> The swap should simply swap the whole operand, thus
>
> std::swap (*oe1, *oe3);
>
Thanks for the review.
I will change this.
> it was probably not updated when all the other fields were added.
>
> I don't like the find_insert_point changes or the change before
If we insert the stmt_to_insert before the find_insert_point, we can
end up inserting stmt_to_insert before its argument defining stmt.
This can be seen with f951 cp2k_single_file.f90 -O3 -ffast-math
-march=westmere from PR71252. I am attaching the CFG when all the
insert_stmt_before_use are moved before.
I dont understand Fortran and I am not able to reduce a testcase from this.
> build_and_add_sum.
> Why not move the if (stmt1) insert; if (stmt2) insert; before the if
> () unconditionally?
In this case also, we dont know where build_and_add_sum will insert
the new instruction. It may not be stmts[i] before calling
build_and_add_sum. Therefore we can end up inserting in a wrong place.
testcase gfortran.dg/pr71252.f90 would ICE.
>
> Do we make progress with just the rest of the changes? If so please split the
> patch and include relevant testcases.
I think there are two issues.
1. the swap which is obvious
2. insertion poing which has some related changes and shows two
different problems (listed above)
if you prefer, I can send two patches for the above.
Unfortunately, I am not able to reduce Fortran testcase. Any help from
anyone is really appreciated.
Thanks,
Kugan
>
> Thanks,
> Richard.
>
>> Thanks,
>> Kugan
[-- Attachment #2: cfg.txt --]
[-- Type: text/plain, Size: 168492 bytes --]
Error: definition in block 127 follows the use
for SSA_NAME: _1552 in statement:
_3105 = _1552 * 2.0e+0;
pbe_lsd_eval (struct xc_rho_set_type * & rho_set, struct xc_derivative_set_type * & deriv_set, integer(kind=4) & restrict grad_deriv, struct section_vals_type * & pbe_params)
{
real(kind=8) a;
real(kind=8) alpha_c;
real(kind=8) alpha_crhoa;
real(kind=8) alpha_crhob;
real(kind=8) arhoa;
real(kind=8) arhoarhoa;
real(kind=8) arhoarhob;
real(kind=8) arhob;
real(kind=8) arhobrhob;
real(kind=8) beta;
real(kind=8) chi;
real(kind=8) chirhoa;
real(kind=8) chirhoarhoa;
real(kind=8) chirhoarhob;
real(kind=8) chirhob;
real(kind=8) chirhobrhob;
real(kind=8) e_c_u_0rhoa;
real(kind=8) e_c_u_0rhoarhoa;
real(kind=8) e_c_u_0rhoarhob;
real(kind=8) e_c_u_0rhob;
real(kind=8) e_c_u_1rhoa;
real(kind=8) e_c_u_1rhob;
real(kind=8) epsilon_c_unif;
real(kind=8) epsilon_c_unifrhoa;
real(kind=8) epsilon_c_unifrhoarhoa;
real(kind=8) epsilon_c_unifrhoarhob;
real(kind=8) epsilon_c_unifrhob;
real(kind=8) epsilon_c_unifrhobrhob;
real(kind=8) epsilon_cgga;
real(kind=8) epsilon_cggarhoa;
real(kind=8) epsilon_cggarhob;
real(kind=8) ex_unif_a;
real(kind=8) ex_unif_arhoa;
real(kind=8) ex_unif_b;
real(kind=8) ex_unif_brhob;
real(kind=8) f;
real(kind=8) frhoa;
real(kind=8) frhoarhoa;
real(kind=8) frhoarhob;
real(kind=8) frhob;
real(kind=8) frhobrhob;
real(kind=8) fx_a;
real(kind=8) fx_anorm_drhoa;
real(kind=8) fx_arhoa;
real(kind=8) fx_b;
real(kind=8) fx_bnorm_drhob;
real(kind=8) fx_brhob;
real(kind=8) hnorm_drho;
integer(kind=4) ii;
real(kind=8) k_frhoa;
real(kind=8) k_frhoarhoa;
real(kind=8) k_s;
real(kind=8) k_srhoa;
real(kind=8) kappa;
real(kind=8) kf_a;
real(kind=8) kf_arhoa;
real(kind=8) kf_arhoarhoa;
real(kind=8) kf_b;
real(kind=8) kf_brhob;
real(kind=8) kf_brhobrhob;
real(kind=8) mu;
real(kind=8) my_norm_drho;
real(kind=8) my_norm_drhoa;
real(kind=8) my_norm_drhob;
real(kind=8) my_rho;
real(kind=8) phi;
real(kind=8) phirhoa;
real(kind=8) phirhoarhoa;
real(kind=8) phirhoarhob;
real(kind=8) phirhob;
real(kind=8) phirhobrhob;
real(kind=8) rs;
real(kind=8) rsrhoa;
real(kind=8) rsrhoarhoa;
real(kind=8) s_a;
real(kind=8) s_anorm_drhoa;
real(kind=8) s_arhoa;
real(kind=8) s_b;
real(kind=8) s_bnorm_drhob;
real(kind=8) s_brhob;
real(kind=8) t;
real(kind=8) t1;
real(kind=8) t1000;
real(kind=8) t1001;
real(kind=8) t101;
real(kind=8) t102;
real(kind=8) t104;
real(kind=8) t105;
real(kind=8) t1050;
real(kind=8) t107;
real(kind=8) t108;
real(kind=8) t110;
real(kind=8) t112;
real(kind=8) t113;
real(kind=8) t1164;
real(kind=8) t118;
real(kind=8) t119;
real(kind=8) t1193;
real(kind=8) t12;
real(kind=8) t122;
real(kind=8) t1228;
real(kind=8) t123;
real(kind=8) t125;
real(kind=8) t126;
real(kind=8) t1269;
real(kind=8) t1283;
real(kind=8) t1285;
real(kind=8) t1286;
real(kind=8) t1288;
real(kind=8) t129;
real(kind=8) t1291;
real(kind=8) t1293;
real(kind=8) t130;
real(kind=8) t1304;
real(kind=8) t131;
real(kind=8) t1327;
real(kind=8) t1330;
real(kind=8) t135;
real(kind=8) t137;
real(kind=8) t140;
real(kind=8) t142;
real(kind=8) t143;
real(kind=8) t146;
real(kind=8) t147;
real(kind=8) t148;
real(kind=8) t15;
real(kind=8) t1501;
real(kind=8) t1520;
real(kind=8) t153;
real(kind=8) t156;
real(kind=8) t1602;
real(kind=8) t1603;
real(kind=8) t163;
real(kind=8) t1630;
real(kind=8) t1632;
real(kind=8) t1638;
real(kind=8) t164;
real(kind=8) t1640;
real(kind=8) t167;
real(kind=8) t1674;
real(kind=8) t1677;
real(kind=8) t1680;
real(kind=8) t1711;
real(kind=8) t1712;
real(kind=8) t1713;
real(kind=8) t1739;
real(kind=8) t1741;
real(kind=8) t1743;
real(kind=8) t1748;
real(kind=8) t176;
real(kind=8) t1765;
real(kind=8) t1766;
real(kind=8) t1767;
real(kind=8) t177;
real(kind=8) t178;
real(kind=8) t179;
real(kind=8) t18;
real(kind=8) t1801;
real(kind=8) t1829;
real(kind=8) t183;
real(kind=8) t1830;
real(kind=8) t1831;
real(kind=8) t1865;
real(kind=8) t187;
real(kind=8) t1876;
real(kind=8) t190;
real(kind=8) t191;
real(kind=8) t192;
real(kind=8) t199;
real(kind=8) t2;
real(kind=8) t200;
real(kind=8) t201;
real(kind=8) t205;
real(kind=8) t21;
real(kind=8) t211;
real(kind=8) t212;
real(kind=8) t213;
real(kind=8) t22;
real(kind=8) t220;
real(kind=8) t221;
real(kind=8) t222;
real(kind=8) t226;
real(kind=8) t23;
real(kind=8) t232;
real(kind=8) t233;
real(kind=8) t234;
real(kind=8) t240;
real(kind=8) t242;
real(kind=8) t244;
real(kind=8) t245;
real(kind=8) t246;
real(kind=8) t248;
real(kind=8) t249;
real(kind=8) t250;
real(kind=8) t252;
real(kind=8) t254;
real(kind=8) t256;
real(kind=8) t257;
real(kind=8) t259;
real(kind=8) t266;
real(kind=8) t268;
real(kind=8) t269;
real(kind=8) t27;
real(kind=8) t273;
real(kind=8) t274;
real(kind=8) t277;
real(kind=8) t278;
real(kind=8) t28;
real(kind=8) t281;
real(kind=8) t282;
real(kind=8) t285;
real(kind=8) t286;
real(kind=8) t289;
real(kind=8) t293;
real(kind=8) t294;
real(kind=8) t297;
real(kind=8) t298;
real(kind=8) t299;
real(kind=8) t302;
real(kind=8) t303;
real(kind=8) t305;
real(kind=8) t306;
real(kind=8) t312;
real(kind=8) t313;
real(kind=8) t314;
real(kind=8) t317;
real(kind=8) t318;
real(kind=8) t32;
real(kind=8) t321;
real(kind=8) t324;
real(kind=8) t325;
real(kind=8) t326;
real(kind=8) t336;
real(kind=8) t337;
real(kind=8) t341;
real(kind=8) t346;
real(kind=8) t350;
real(kind=8) t40;
real(kind=8) t403;
real(kind=8) t405;
real(kind=8) t407;
real(kind=8) t409;
real(kind=8) t41;
real(kind=8) t410;
real(kind=8) t411;
real(kind=8) t413;
real(kind=8) t415;
real(kind=8) t417;
real(kind=8) t427;
real(kind=8) t429;
real(kind=8) t432;
real(kind=8) t436;
real(kind=8) t439;
real(kind=8) t442;
real(kind=8) t444;
real(kind=8) t445;
real(kind=8) t45;
real(kind=8) t453;
real(kind=8) t456;
real(kind=8) t457;
real(kind=8) t46;
real(kind=8) t467;
real(kind=8) t468;
real(kind=8) t472;
real(kind=8) t477;
real(kind=8) t481;
real(kind=8) t488;
real(kind=8) t493;
real(kind=8) t494;
real(kind=8) t50;
real(kind=8) t502;
real(kind=8) t505;
real(kind=8) t506;
real(kind=8) t518;
real(kind=8) t519;
real(kind=8) t536;
real(kind=8) t538;
real(kind=8) t543;
real(kind=8) t548;
real(kind=8) t549;
real(kind=8) t556;
real(kind=8) t564;
real(kind=8) t578;
real(kind=8) t58;
real(kind=8) t580;
real(kind=8) t588;
real(kind=8) t59;
real(kind=8) t590;
real(kind=8) t595;
real(kind=8) t600;
real(kind=8) t606;
real(kind=8) t626;
real(kind=8) t628;
real(kind=8) t63;
real(kind=8) t636;
real(kind=8) t638;
real(kind=8) t64;
real(kind=8) t643;
real(kind=8) t648;
real(kind=8) t654;
real(kind=8) t674;
real(kind=8) t676;
real(kind=8) t681;
real(kind=8) t687;
real(kind=8) t70;
real(kind=8) t71;
real(kind=8) t711;
real(kind=8) t72;
real(kind=8) t73;
real(kind=8) t74;
real(kind=8) t745;
real(kind=8) t75;
real(kind=8) t750;
real(kind=8) t755;
real(kind=8) t767;
real(kind=8) t77;
real(kind=8) t775;
real(kind=8) t776;
real(kind=8) t779;
real(kind=8) t785;
real(kind=8) t789;
real(kind=8) t795;
real(kind=8) t798;
real(kind=8) t8;
real(kind=8) t801;
real(kind=8) t812;
real(kind=8) t82;
real(kind=8) t820;
real(kind=8) t822;
real(kind=8) t839;
real(kind=8) t84;
real(kind=8) t840;
real(kind=8) t85;
real(kind=8) t858;
real(kind=8) t879;
real(kind=8) t880;
real(kind=8) t9;
real(kind=8) t904;
real(kind=8) t908;
real(kind=8) t909;
real(kind=8) t91;
real(kind=8) t911;
real(kind=8) t917;
real(kind=8) t919;
real(kind=8) t92;
real(kind=8) t924;
real(kind=8) t93;
real(kind=8) t936;
real(kind=8) t94;
real(kind=8) t944;
real(kind=8) t95;
real(kind=8) t953;
real(kind=8) t959;
real(kind=8) t96;
real(kind=8) t962;
real(kind=8) t966;
real(kind=8) t967;
real(kind=8) t97;
real(kind=8) t98;
real(kind=8) t999;
real(kind=8) tnorm_drho;
real(kind=8) trhoa;
real(kind=8) trhoanorm_drho;
real(kind=8) trhoarhoa;
real(kind=8) trhoarhob;
real(kind=8) trhob;
real(kind=8) trhobnorm_drho;
real(kind=8) trhobrhob;
integer(kind=8) dummy$dim$2$ubound;
integer(kind=8) dummy$dim$2$lbound;
integer(kind=8) dummy$dim$2$stride;
integer(kind=8) dummy$dim$1$ubound;
integer(kind=8) dummy$dim$1$lbound;
integer(kind=8) dummy$dim$1$stride;
integer(kind=8) dummy$dim$0$ubound;
integer(kind=8) dummy$dim$0$lbound;
integer(kind=8) dummy$dim$0$stride;
integer(kind=8) dummy$dtype;
integer(kind=8) dummy$offset;
void * dummy$data;
real(kind=8) scale_ex;
real(kind=8) scale_ec;
struct array3_real(kind=8) rhob;
struct array3_real(kind=8) rhoa;
integer(kind=4) param;
integer(kind=4) npoints;
struct array3_real(kind=8) norm_drhob;
struct array3_real(kind=8) norm_drhoa;
struct array3_real(kind=8) norm_drho;
integer(kind=4) handle;
real(kind=8) epsilon_rho;
struct array3_real(kind=8) e_rb_rb;
struct array3_real(kind=8) e_rb;
struct array3_real(kind=8) e_ra_rb;
struct array3_real(kind=8) e_ra_ra;
struct array3_real(kind=8) e_ra;
struct array3_real(kind=8) e_ndrb_rb;
struct array3_real(kind=8) e_ndrb_ndrb;
struct array3_real(kind=8) e_ndrb;
struct array3_real(kind=8) e_ndra_ra;
struct array3_real(kind=8) e_ndra_ndra;
struct array3_real(kind=8) e_ndra;
struct array3_real(kind=8) e_ndr_rb;
struct array3_real(kind=8) e_ndr_ra;
struct array3_real(kind=8) e_ndr_ndr;
struct array3_real(kind=8) e_ndr;
struct array3_real(kind=8) e_0;
struct xc_derivative_type * deriv;
struct array2_integer(kind=4) bo;
struct xc_rho_set_type * _1;
integer(kind=4) _2;
struct xc_derivative_set_type * _3;
integer(kind=4) _4;
void * _5;
integer(kind=8) _6;
integer(kind=8) _7;
integer(kind=8) _8;
integer(kind=8) _9;
integer(kind=8) _10;
integer(kind=8) _11;
integer(kind=4) _12;
integer(kind=8) _13;
integer(kind=4) _14;
integer(kind=4) _15;
integer(kind=4) _16;
integer(kind=8) _17;
integer(kind=8) _18;
integer(kind=8) _19;
integer(kind=4) _20;
integer(kind=8) _21;
integer(kind=4) _22;
integer(kind=4) _23;
integer(kind=4) _24;
integer(kind=4) _25;
integer(kind=8) _26;
integer(kind=8) _27;
integer(kind=8) _28;
integer(kind=4) _29;
integer(kind=8) _30;
integer(kind=4) _31;
integer(kind=4) _32;
integer(kind=4) _33;
integer(kind=4) _34;
integer(kind=4) _35;
struct xc_derivative_type * _36;
logical(kind=4) _37;
logical(kind=4) _38;
logical(kind=4) _39;
struct xc_derivative_type * _40;
struct xc_derivative_type * _41;
struct xc_derivative_type * _42;
struct xc_derivative_type * _43;
struct xc_derivative_type * _44;
logical(kind=4) _45;
logical(kind=4) _46;
logical(kind=4) _47;
struct xc_derivative_type * _48;
struct xc_derivative_type * _49;
struct xc_derivative_type * _50;
struct xc_derivative_type * _51;
struct xc_derivative_type * _52;
struct xc_derivative_type * _53;
struct xc_derivative_type * _54;
struct xc_derivative_type * _55;
struct xc_derivative_type * _56;
struct xc_derivative_type * _57;
void * _58;
void * _59;
void * _60;
void * _61;
void * _62;
void * _63;
void * _64;
void * _65;
void * _66;
void * _67;
void * _68;
void * _69;
void * _70;
void * _71;
void * _72;
void * _73;
void * _74;
void * _75;
void * _76;
void * _77;
void * _78;
real(kind=8) _105;
real(kind=8) _108;
real(kind=8) _109;
real(kind=8) _111;
real(kind=8) _112;
real(kind=8) _114;
real(kind=8) _117;
real(kind=8) _118;
real(kind=8) _120;
real(kind=8) _121;
real(kind=8) _123;
real(kind=8) _124;
real(kind=8) _126;
real(kind=8) _127;
real(kind=8) _129;
real(kind=8) _130;
real(kind=8) _132;
real(kind=8) _133;
real(kind=8) _135;
real(kind=8) _136;
real(kind=8) _138;
real(kind=8) _139;
real(kind=8) _141;
real(kind=8) _142;
real(kind=8) _144;
real(kind=8) _145;
real(kind=8) _147;
real(kind=8) _148;
real(kind=8) _150;
real(kind=8) _151;
real(kind=8) _153;
real(kind=8) _154;
real(kind=8) _156;
real(kind=8) _157;
real(kind=8) _159;
real(kind=8) _160;
real(kind=8) _162;
real(kind=8) _163;
void * _169;
void * _171;
void * _173;
void * _175;
void * _177;
void * _179;
void * _181;
void * _183;
void * _185;
void * _187;
void * _189;
void * _191;
void * _193;
void * _195;
void * _197;
void * _199;
void * _201;
void * _203;
void * _205;
void * _207;
void * _209;
real(kind=8) _248;
real(kind=8) _250;
real(kind=8) _272;
void (*<Tb45>) (character(kind=1)[1:] & restrict, integer(kind=4) & restrict, integer(kind=4)) timeset_hook.111877_278;
real(kind=8) _497;
real(kind=8) _498;
integer(kind=4) _499;
real(kind=8) _500;
real(kind=8) _501;
real(kind=8) _502;
void * _504;
real(kind=8) _505;
real(kind=8) _506;
real(kind=8) _507;
real(kind=8) _508;
real(kind=8) _509;
real(kind=8) _510;
real(kind=8) _511;
real(kind=8) _512;
real(kind=8) _513;
integer(kind=4) _514;
real(kind=8) _515;
real(kind=8) _517;
real(kind=8) M.51221_518;
void * _519;
real(kind=8) _520;
real(kind=8) _521;
real(kind=8) _522;
real(kind=8) _523;
real(kind=8) _524;
real(kind=8) reassocpow_525;
real(kind=8) _526;
real(kind=8) _527;
real(kind=8) _528;
integer(kind=4) _529;
real(kind=8) _530;
real(kind=8) _531;
real(kind=8) _532;
void * _534;
real(kind=8) _535;
real(kind=8) _536;
real(kind=8) _537;
real(kind=8) _538;
real(kind=8) _539;
real(kind=8) _540;
real(kind=8) _541;
real(kind=8) _542;
real(kind=8) _543;
integer(kind=4) _544;
real(kind=8) _545;
real(kind=8) _546;
real(kind=8) _547;
void * _549;
real(kind=8) _550;
real(kind=8) _551;
real(kind=8) _552;
real(kind=8) _553;
real(kind=8) _554;
real(kind=8) _555;
real(kind=8) _556;
real(kind=8) _557;
real(kind=8) _558;
integer(kind=4) _559;
real(kind=8) _560;
real(kind=8) _561;
real(kind=8) _562;
void * _564;
real(kind=8) _565;
real(kind=8) _566;
real(kind=8) _567;
real(kind=8) _568;
real(kind=8) _569;
real(kind=8) _570;
real(kind=8) _571;
real(kind=8) _572;
real(kind=8) _573;
integer(kind=4) _574;
real(kind=8) _575;
real(kind=8) _576;
real(kind=8) _577;
void * _579;
real(kind=8) _580;
real(kind=8) _581;
real(kind=8) _582;
real(kind=8) _583;
real(kind=8) _584;
real(kind=8) _585;
real(kind=8) _586;
real(kind=8) _587;
real(kind=8) _588;
integer(kind=4) _589;
real(kind=8) _590;
real(kind=8) _591;
void * _594;
real(kind=8) _595;
real(kind=8) _596;
real(kind=8) _597;
real(kind=8) _598;
real(kind=8) _599;
real(kind=8) _600;
real(kind=8) _601;
real(kind=8) _602;
real(kind=8) _603;
integer(kind=4) _604;
real(kind=8) _605;
real(kind=8) _606;
real(kind=8) M.51220_608;
void * _609;
real(kind=8) _610;
real(kind=8) _611;
real(kind=8) _612;
real(kind=8) _613;
real(kind=8) _614;
real(kind=8) _615;
real(kind=8) _616;
real(kind=8) _617;
real(kind=8) _618;
integer(kind=4) _619;
real(kind=8) _620;
real(kind=8) _621;
real(kind=8) _622;
real(kind=8) _623;
void * _624;
real(kind=8) _625;
real(kind=8) _626;
real(kind=8) _627;
real(kind=8) _628;
real(kind=8) _629;
real(kind=8) _630;
real(kind=8) _631;
real(kind=8) _632;
real(kind=8) _633;
integer(kind=4) _634;
real(kind=8) _635;
real(kind=8) _636;
real(kind=8) _637;
real(kind=8) _638;
void * _639;
real(kind=8) _640;
real(kind=8) _641;
real(kind=8) _642;
real(kind=8) _643;
real(kind=8) _644;
real(kind=8) reassocpow_645;
real(kind=8) _646;
real(kind=8) _648;
integer(kind=4) _649;
real(kind=8) _650;
real(kind=8) reassocpow_651;
real(kind=8) _652;
real(kind=8) _653;
void * _654;
real(kind=8) _655;
real(kind=8) _656;
real(kind=8) _657;
real(kind=8) _658;
real(kind=8) _659;
real(kind=8) _660;
real(kind=8) _661;
real(kind=8) _663;
integer(kind=4) _664;
real(kind=8) _665;
real(kind=8) reassocpow_666;
real(kind=8) _667;
real(kind=8) _668;
void * _669;
real(kind=8) _670;
real(kind=8) _671;
real(kind=8) _672;
real(kind=8) _673;
real(kind=8) _674;
real(kind=8) _675;
real(kind=8) _676;
real(kind=8) _677;
real(kind=8) _678;
integer(kind=4) _679;
real(kind=8) reassocpow_680;
real(kind=8) _681;
real(kind=8) _682;
real(kind=8) _683;
void * _684;
real(kind=8) _685;
real(kind=8) _686;
real(kind=8) _687;
real(kind=8) _688;
real(kind=8) _689;
real(kind=8) _690;
real(kind=8) _691;
real(kind=8) _692;
real(kind=8) _693;
integer(kind=4) _694;
real(kind=8) _695;
real(kind=8) _696;
real(kind=8) _697;
real(kind=8) _698;
void * _699;
real(kind=8) _700;
real(kind=8) _701;
real(kind=8) _702;
real(kind=8) _703;
real(kind=8) _704;
real(kind=8) _705;
real(kind=8) reassocpow_706;
real(kind=8) _707;
integer(kind=4) _709;
real(kind=8) _710;
real(kind=8) _711;
real(kind=8) _712;
real(kind=8) _713;
void * _714;
real(kind=8) _720;
real(kind=8) _721;
real(kind=8) _723;
integer(kind=4) _724;
real(kind=8) _727;
void * _729;
real(kind=8) M.51223_731;
real(kind=8) M.51222_736;
integer(kind=4) _737;
real(kind=8) _738;
real(kind=8) _739;
integer(kind=8) _741;
integer(kind=8) _742;
real(kind=8) _743;
real(kind=8) _744;
real(kind=8) _745;
real(kind=8) _746;
real(kind=8) _748;
real(kind=8) _749;
real(kind=8) _750;
real(kind=8) _762;
real(kind=8) _768;
real(kind=8) _769;
real(kind=8) _771;
real(kind=8) _774;
real(kind=8) _779;
real(kind=8) _780;
real(kind=8) _783;
real(kind=8) _784;
real(kind=8) _786;
real(kind=8) _789;
real(kind=8) _792;
real(kind=8) _795;
real(kind=8) _796;
real(kind=8) _798;
real(kind=8) _801;
real(kind=8) _813;
real(kind=8) _814;
real(kind=8) _815;
real(kind=8) _818;
real(kind=8) _819;
real(kind=8) _820;
real(kind=8) _821;
real(kind=8) _825;
real(kind=8) _828;
real(kind=8) _829;
real(kind=8) _830;
real(kind=8) _832;
real(kind=8) _833;
real(kind=8) _834;
real(kind=8) _851;
real(kind=8) _854;
real(kind=8) _855;
real(kind=8) _860;
real(kind=8) _863;
real(kind=8) _864;
real(kind=8) _865;
real(kind=8) _869;
real(kind=8) _870;
real(kind=8) _871;
real(kind=8) _874;
real(kind=8) _880;
real(kind=8) _887;
real(kind=8) _892;
real(kind=8) _894;
real(kind=8) _902;
real(kind=8) _909;
real(kind=8) _911;
real(kind=8) _913;
real(kind=8) _917;
real(kind=8) _918;
real(kind=8) _919;
real(kind=8) _920;
real(kind=8) _921;
real(kind=8) _922;
real(kind=8) _923;
real(kind=8) _925;
real(kind=8) _927;
real(kind=8) _928;
real(kind=8) _929;
real(kind=8) _930;
real(kind=8) _931;
real(kind=8) _935;
real(kind=8) _936;
real(kind=8) _937;
real(kind=8) _939;
real(kind=8) _941;
real(kind=8) _949;
real(kind=8) _953;
real(kind=8) _955;
real(kind=8) _957;
real(kind=8) _961;
real(kind=8) _964;
real(kind=8) _966;
real(kind=8) _972;
real(kind=8) _976;
real(kind=8) _978;
real(kind=8) _980;
real(kind=8) _984;
real(kind=8) _987;
real(kind=8) _989;
real(kind=8) _995;
real(kind=8) _999;
real(kind=8) _1001;
real(kind=8) _1003;
real(kind=8) _1009;
real(kind=8) _1010;
real(kind=8) _1012;
real(kind=8) _1014;
real(kind=8) _1015;
real(kind=8) _1042;
real(kind=8) _1045;
real(kind=8) _1052;
real(kind=8) _1057;
real(kind=8) _1059;
real(kind=8) _1061;
real(kind=8) _1063;
real(kind=8) _1065;
real(kind=8) _1067;
real(kind=8) _1070;
real(kind=8) _1074;
real(kind=8) _1075;
real(kind=8) _1077;
real(kind=8) _1078;
real(kind=8) _1079;
real(kind=8) _1091;
real(kind=8) _1098;
real(kind=8) _1099;
real(kind=8) _1101;
real(kind=8) _1104;
real(kind=8) _1105;
real(kind=8) _1106;
real(kind=8) _1107;
real(kind=8) _1108;
real(kind=8) _1109;
real(kind=8) _1113;
real(kind=8) _1114;
real(kind=8) _1115;
real(kind=8) _1116;
real(kind=8) _1118;
real(kind=8) _1121;
real(kind=8) _1123;
real(kind=8) _1126;
real(kind=8) _1128;
real(kind=8) _1130;
real(kind=8) _1133;
real(kind=8) _1135;
real(kind=8) _1136;
real(kind=8) _1138;
real(kind=8) _1142;
real(kind=8) _1143;
real(kind=8) _1144;
real(kind=8) _1145;
real(kind=8) _1146;
real(kind=8) _1147;
real(kind=8) _1148;
real(kind=8) _1149;
real(kind=8) _1150;
real(kind=8) _1151;
real(kind=8) _1152;
real(kind=8) _1154;
real(kind=8) _1155;
real(kind=8) _1156;
real(kind=8) _1157;
real(kind=8) _1158;
real(kind=8) _1159;
real(kind=8) _1160;
real(kind=8) _1161;
real(kind=8) _1165;
real(kind=8) _1168;
real(kind=8) _1171;
real(kind=8) _1174;
real(kind=8) _1175;
real(kind=8) _1201;
real(kind=8) _1208;
real(kind=8) _1209;
real(kind=8) _1211;
real(kind=8) _1212;
real(kind=8) _1221;
real(kind=8) _1222;
real(kind=8) _1224;
real(kind=8) _1227;
real(kind=8) _1228;
real(kind=8) _1229;
real(kind=8) _1230;
real(kind=8) _1231;
real(kind=8) _1234;
real(kind=8) _1235;
real(kind=8) _1236;
real(kind=8) _1237;
real(kind=8) _1239;
real(kind=8) _1242;
real(kind=8) _1244;
real(kind=8) _1247;
real(kind=8) _1249;
real(kind=8) _1251;
real(kind=8) _1254;
real(kind=8) _1256;
real(kind=8) _1257;
real(kind=8) _1259;
real(kind=8) _1263;
real(kind=8) _1264;
real(kind=8) _1265;
real(kind=8) _1266;
real(kind=8) _1267;
real(kind=8) _1268;
real(kind=8) _1269;
real(kind=8) _1270;
real(kind=8) _1272;
real(kind=8) _1273;
real(kind=8) _1274;
real(kind=8) _1275;
real(kind=8) _1276;
real(kind=8) _1277;
real(kind=8) _1278;
real(kind=8) _1279;
real(kind=8) _1286;
real(kind=8) _1288;
real(kind=8) _1290;
real(kind=8) _1291;
real(kind=8) _1292;
real(kind=8) _1293;
real(kind=8) _1294;
real(kind=8) _1295;
real(kind=8) _1296;
real(kind=8) _1300;
real(kind=8) _1301;
real(kind=8) _1302;
real(kind=8) _1303;
real(kind=8) _1304;
real(kind=8) _1305;
real(kind=8) _1306;
real(kind=8) _1307;
real(kind=8) _1308;
real(kind=8) _1309;
real(kind=8) _1310;
real(kind=8) _1311;
real(kind=8) _1312;
real(kind=8) _1313;
real(kind=8) _1314;
real(kind=8) _1315;
real(kind=8) _1316;
real(kind=8) _1317;
real(kind=8) _1318;
real(kind=8) _1319;
real(kind=8) _1320;
real(kind=8) _1321;
real(kind=8) _1322;
real(kind=8) _1323;
real(kind=8) _1324;
real(kind=8) _1325;
real(kind=8) _1326;
real(kind=8) _1329;
real(kind=8) _1333;
real(kind=8) _1336;
real(kind=8) _1337;
real(kind=8) _1342;
real(kind=8) _1344;
real(kind=8) _1347;
real(kind=8) _1349;
real(kind=8) _1351;
real(kind=8) _1353;
real(kind=8) _1355;
real(kind=8) _1357;
real(kind=8) _1358;
real(kind=8) _1360;
real(kind=8) _1361;
real(kind=8) _1362;
real(kind=8) _1364;
real(kind=8) _1366;
real(kind=8) _1371;
real(kind=8) _1374;
real(kind=8) _1375;
real(kind=8) _1376;
real(kind=8) _1378;
real(kind=8) _1381;
real(kind=8) _1384;
real(kind=8) _1385;
real(kind=8) _1386;
real(kind=8) _1388;
real(kind=8) _1393;
real(kind=8) _1398;
real(kind=8) _1400;
real(kind=8) _1403;
real(kind=8) _1405;
real(kind=8) _1410;
real(kind=8) _1412;
real(kind=8) _1415;
real(kind=8) _1417;
real(kind=8) _1420;
real(kind=8) _1423;
real(kind=8) _1425;
real(kind=8) _1428;
real(kind=8) _1431;
real(kind=8) _1432;
real(kind=8) _1433;
real(kind=8) _1436;
real(kind=8) _1438;
real(kind=8) _1439;
real(kind=8) _1441;
real(kind=8) _1442;
real(kind=8) _1443;
real(kind=8) _1445;
real(kind=8) _1447;
real(kind=8) _1452;
real(kind=8) _1455;
real(kind=8) _1456;
real(kind=8) _1457;
real(kind=8) _1459;
real(kind=8) _1462;
real(kind=8) _1465;
real(kind=8) _1466;
real(kind=8) _1467;
real(kind=8) _1469;
real(kind=8) _1474;
real(kind=8) _1475;
real(kind=8) _1476;
real(kind=8) _1477;
real(kind=8) _1479;
real(kind=8) _1480;
real(kind=8) _1482;
real(kind=8) _1485;
real(kind=8) _1488;
real(kind=8) _1492;
real(kind=8) _1495;
real(kind=8) _1499;
real(kind=8) _1501;
real(kind=8) _1503;
real(kind=8) _1505;
real(kind=8) _1508;
real(kind=8) _1509;
real(kind=8) _1512;
real(kind=8) _1513;
real(kind=8) _1514;
real(kind=8) _1516;
real(kind=8) _1518;
real(kind=8) _1523;
real(kind=8) _1526;
real(kind=8) _1527;
real(kind=8) _1528;
real(kind=8) _1530;
real(kind=8) _1533;
real(kind=8) _1536;
real(kind=8) _1537;
real(kind=8) _1538;
real(kind=8) _1540;
real(kind=8) _1541;
real(kind=8) _1545;
real(kind=8) _1546;
real(kind=8) _1547;
real(kind=8) _1549;
real(kind=8) _1550;
real(kind=8) _1552;
real(kind=8) _1555;
real(kind=8) _1559;
real(kind=8) _1562;
real(kind=8) _1566;
real(kind=8) _1568;
real(kind=8) _1574;
real(kind=8) _1576;
real(kind=8) _1577;
real(kind=8) _1579;
real(kind=8) _1580;
real(kind=8) _1582;
real(kind=8) _1584;
real(kind=8) _1585;
real(kind=8) _1587;
real(kind=8) _1594;
real(kind=8) _1598;
real(kind=8) _1606;
real(kind=8) _1610;
real(kind=8) _1611;
real(kind=8) _1613;
real(kind=8) _1614;
real(kind=8) _1616;
real(kind=8) _1618;
real(kind=8) _1620;
real(kind=8) _1621;
real(kind=8) _1625;
real(kind=8) _1628;
real(kind=8) _1629;
real(kind=8) _1630;
real(kind=8) _1632;
real(kind=8) _1637;
real(kind=8) _1639;
real(kind=8) _1641;
real(kind=8) _1644;
real(kind=8) _1646;
real(kind=8) _1648;
real(kind=8) _1650;
real(kind=8) _1653;
real(kind=8) _1655;
real(kind=8) _1657;
real(kind=8) _1659;
real(kind=8) _1660;
real(kind=8) _1661;
real(kind=8) _1663;
real(kind=8) _1664;
real(kind=8) _1666;
real(kind=8) _1670;
real(kind=8) _1671;
real(kind=8) _1685;
real(kind=8) _1692;
real(kind=8) _1695;
real(kind=8) _1697;
real(kind=8) _1699;
real(kind=8) _1702;
real(kind=8) _1704;
real(kind=8) _1706;
real(kind=8) _1708;
real(kind=8) _1710;
real(kind=8) _1713;
real(kind=8) _1716;
real(kind=8) _1718;
real(kind=8) _1721;
real(kind=8) _1722;
real(kind=8) _1723;
real(kind=8) _1725;
real(kind=8) _1727;
real(kind=8) _1729;
real(kind=8) _1730;
real(kind=8) _1731;
real(kind=8) _1733;
real(kind=8) _1735;
real(kind=8) _1736;
real(kind=8) _1738;
real(kind=8) _1740;
real(kind=8) _1742;
real(kind=8) _1743;
real(kind=8) _1745;
real(kind=8) _1746;
real(kind=8) _1748;
real(kind=8) _1749;
real(kind=8) _1750;
real(kind=8) _1752;
real(kind=8) _1755;
real(kind=8) _1756;
real(kind=8) _1759;
real(kind=8) _1760;
real(kind=8) _1761;
real(kind=8) _1765;
real(kind=8) _1766;
real(kind=8) _1767;
real(kind=8) _1768;
real(kind=8) _1770;
real(kind=8) _1771;
real(kind=8) _1775;
real(kind=8) _1778;
real(kind=8) _1780;
real(kind=8) _1782;
real(kind=8) _1785;
real(kind=8) _1786;
real(kind=8) _1788;
real(kind=8) _1790;
real(kind=8) _1791;
real(kind=8) _1793;
real(kind=8) _1794;
real(kind=8) _1798;
real(kind=8) _1800;
real(kind=8) _1801;
real(kind=8) _1802;
real(kind=8) _1803;
real(kind=8) _1805;
real(kind=8) _1806;
real(kind=8) _1807;
real(kind=8) _1809;
real(kind=8) _1810;
real(kind=8) _1811;
real(kind=8) _1813;
real(kind=8) _1814;
real(kind=8) _1815;
real(kind=8) _1816;
real(kind=8) _1818;
real(kind=8) _1819;
real(kind=8) _1820;
real(kind=8) _1821;
real(kind=8) _1822;
real(kind=8) _1823;
real(kind=8) _1825;
real(kind=8) _1829;
real(kind=8) _1832;
real(kind=8) _1834;
real(kind=8) _1836;
real(kind=8) _1839;
real(kind=8) _1841;
real(kind=8) _1842;
real(kind=8) _1843;
real(kind=8) _1844;
real(kind=8) _1845;
real(kind=8) _1846;
real(kind=8) _1847;
real(kind=8) _1848;
real(kind=8) _1849;
real(kind=8) _1853;
real(kind=8) _1858;
real(kind=8) _1860;
real(kind=8) _1863;
real(kind=8) _1864;
real(kind=8) _1865;
real(kind=8) _1867;
real(kind=8) _1873;
real(kind=8) _1877;
real(kind=8) _1879;
real(kind=8) _1883;
real(kind=8) _1886;
real(kind=8) _1887;
real(kind=8) _1888;
real(kind=8) _1892;
real(kind=8) _1897;
real(kind=8) _1899;
real(kind=8) _1902;
real(kind=8) _1903;
real(kind=8) _1904;
real(kind=8) _1906;
real(kind=8) _1912;
real(kind=8) _1913;
real(kind=8) _1914;
real(kind=8) _1915;
real(kind=8) _1916;
real(kind=8) _1919;
real(kind=8) _1921;
real(kind=8) _1925;
real(kind=8) _1927;
real(kind=8) _1930;
real(kind=8) _1934;
real(kind=8) _1937;
real(kind=8) _1940;
real(kind=8) _1943;
real(kind=8) _1946;
real(kind=8) _1948;
real(kind=8) _1949;
real(kind=8) _1953;
real(kind=8) _1955;
real(kind=8) _1958;
real(kind=8) _1959;
real(kind=8) _1960;
real(kind=8) _1962;
real(kind=8) _1968;
real(kind=8) _1969;
real(kind=8) _1970;
real(kind=8) _1971;
real(kind=8) _1974;
real(kind=8) _1978;
real(kind=8) _1980;
real(kind=8) _1983;
real(kind=8) _1987;
real(kind=8) _1990;
real(kind=8) _1993;
real(kind=8) _1997;
real(kind=8) _2001;
real(kind=8) _2004;
real(kind=8) _2005;
real(kind=8) _2008;
real(kind=8) _2009;
real(kind=8) _2011;
real(kind=8) _2015;
real(kind=8) _2018;
real(kind=8) _2021;
real(kind=8) _2028;
real(kind=8) _2029;
real(kind=8) _2030;
real(kind=8) _2032;
real(kind=8) _2038;
real(kind=8) _2040;
real(kind=8) _2042;
real(kind=8) _2045;
real(kind=8) _2048;
real(kind=8) _2051;
real(kind=8) _2052;
real(kind=8) _2053;
real(kind=8) _2055;
real(kind=8) _2056;
real(kind=8) _2058;
real(kind=8) _2067;
real(kind=8) _2076;
real(kind=8) _2077;
real(kind=8) _2079;
real(kind=8) _2082;
real(kind=8) _2085;
real(kind=8) _2088;
real(kind=8) _2091;
real(kind=8) _2094;
real(kind=8) _2096;
real(kind=8) _2097;
real(kind=8) _2098;
real(kind=8) _2099;
real(kind=8) _2101;
real(kind=8) _2103;
real(kind=8) _2105;
real(kind=8) _2106;
real(kind=8) _2107;
real(kind=8) _2108;
real(kind=8) _2110;
real(kind=8) _2112;
real(kind=8) _2115;
real(kind=8) _2117;
real(kind=8) _2118;
real(kind=8) _2121;
real(kind=8) _2122;
real(kind=8) _2123;
real(kind=8) _2125;
real(kind=8) _2126;
real(kind=8) _2128;
real(kind=8) _2130;
real(kind=8) _2132;
real(kind=8) _2135;
real(kind=8) _2138;
real(kind=8) _2141;
real(kind=8) _2143;
real(kind=8) _2144;
real(kind=8) _2145;
real(kind=8) _2146;
real(kind=8) _2147;
real(kind=8) _2148;
real(kind=8) _2149;
real(kind=8) _2150;
real(kind=8) _2151;
real(kind=8) _2153;
real(kind=8) _2155;
real(kind=8) _2157;
real(kind=8) _2160;
real(kind=8) _2163;
real(kind=8) _2164;
real(kind=8) _2165;
real(kind=8) _2168;
real(kind=8) _2171;
real(kind=8) _2174;
real(kind=8) _2178;
real(kind=8) _2181;
real(kind=8) _2186;
real(kind=8) _2189;
real(kind=8) _2192;
real(kind=8) _2195;
real(kind=8) _2199;
real(kind=8) _2202;
real(kind=8) _2207;
real(kind=8) _2211;
real(kind=8) _2213;
real(kind=8) _2214;
real(kind=8) _2216;
real(kind=8) _2217;
real(kind=8) _2219;
real(kind=8) _2223;
real(kind=8) _2226;
real(kind=8) _2229;
real(kind=8) _2230;
real(kind=8) _2242;
real(kind=8) _2244;
real(kind=8) _2246;
real(kind=8) _2252;
real(kind=8) _2255;
real(kind=8) _2256;
real(kind=8) _2257;
real(kind=8) _2259;
real(kind=8) _2260;
real(kind=8) _2262;
real(kind=8) _2265;
real(kind=8) _2266;
real(kind=8) _2279;
real(kind=8) _2281;
real(kind=8) _2283;
real(kind=8) _2285;
real(kind=8) _2288;
real(kind=8) _2292;
real(kind=8) _2294;
real(kind=8) _2296;
real(kind=8) _2299;
real(kind=8) _2301;
real(kind=8) _2303;
real(kind=8) _2306;
real(kind=8) _2307;
real(kind=8) _2309;
real(kind=8) _2312;
real(kind=8) _2313;
real(kind=8) _2314;
real(kind=8) _2316;
real(kind=8) _2318;
real(kind=8) _2320;
real(kind=8) _2322;
real(kind=8) _2324;
real(kind=8) _2325;
real(kind=8) _2327;
real(kind=8) _2329;
real(kind=8) _2330;
real(kind=8) _2331;
real(kind=8) _2334;
real(kind=8) _2335;
real(kind=8) _2338;
real(kind=8) _2339;
real(kind=8) _2343;
real(kind=8) _2344;
real(kind=8) _2345;
real(kind=8) _2347;
real(kind=8) _2348;
real(kind=8) _2352;
real(kind=8) _2355;
real(kind=8) _2357;
real(kind=8) _2359;
real(kind=8) _2362;
real(kind=8) _2363;
real(kind=8) _2365;
real(kind=8) _2367;
real(kind=8) _2368;
real(kind=8) _2370;
real(kind=8) _2371;
real(kind=8) _2375;
real(kind=8) _2377;
real(kind=8) _2378;
real(kind=8) _2379;
real(kind=8) _2380;
real(kind=8) _2382;
real(kind=8) _2383;
real(kind=8) _2384;
real(kind=8) _2386;
real(kind=8) _2387;
real(kind=8) _2388;
real(kind=8) _2390;
real(kind=8) _2391;
real(kind=8) _2393;
real(kind=8) _2394;
real(kind=8) _2395;
real(kind=8) _2396;
real(kind=8) _2397;
real(kind=8) _2400;
real(kind=8) _2404;
real(kind=8) _2407;
real(kind=8) _2410;
real(kind=8) _2413;
real(kind=8) _2415;
real(kind=8) _2416;
real(kind=8) _2417;
real(kind=8) _2418;
real(kind=8) _2419;
real(kind=8) _2420;
real(kind=8) _2421;
real(kind=8) _2422;
real(kind=8) _2423;
real(kind=8) _2428;
real(kind=8) _2431;
real(kind=8) _2433;
real(kind=8) _2440;
real(kind=8) _2441;
real(kind=8) _2442;
real(kind=8) _2444;
real(kind=8) _2447;
real(kind=8) _2450;
real(kind=8) _2453;
real(kind=8) _2456;
real(kind=8) _2457;
real(kind=8) _2458;
real(kind=8) _2460;
real(kind=8) _2462;
real(kind=8) _2465;
real(kind=8) _2467;
real(kind=8) _2469;
real(kind=8) _2472;
real(kind=8) _2473;
real(kind=8) _2475;
real(kind=8) _2478;
real(kind=8) _2481;
real(kind=8) _2482;
real(kind=8) _2483;
real(kind=8) _2484;
real(kind=8) _2486;
real(kind=8) _2487;
real(kind=8) _2489;
real(kind=8) _2491;
real(kind=8) _2493;
real(kind=8) _2494;
real(kind=8) _2495;
real(kind=8) _2496;
real(kind=8) _2497;
real(kind=8) _2498;
real(kind=8) _2499;
real(kind=8) _2500;
real(kind=8) _2502;
real(kind=8) _2510;
real(kind=8) _2512;
real(kind=8) _2515;
real(kind=8) _2518;
real(kind=8) _2521;
real(kind=8) _2524;
real(kind=8) _2525;
real(kind=8) _2526;
real(kind=8) _2528;
real(kind=8) _2530;
real(kind=8) _2533;
real(kind=8) _2536;
real(kind=8) _2539;
real(kind=8) _2540;
real(kind=8) _2542;
real(kind=8) _2545;
real(kind=8) _2548;
real(kind=8) _2549;
real(kind=8) _2550;
real(kind=8) _2551;
real(kind=8) _2553;
real(kind=8) _2555;
real(kind=8) _2557;
real(kind=8) _2559;
real(kind=8) _2560;
real(kind=8) _2561;
real(kind=8) _2562;
real(kind=8) _2563;
real(kind=8) _2564;
real(kind=8) _2565;
real(kind=8) _2566;
real(kind=8) _2567;
real(kind=8) _2571;
real(kind=8) _2572;
real(kind=8) _2576;
real(kind=8) _2577;
real(kind=8) _2579;
real(kind=8) _2583;
real(kind=8) _2586;
real(kind=8) _2589;
real(kind=8) _2591;
real(kind=8) _2593;
real(kind=8) _2594;
real(kind=8) _2595;
real(kind=8) _2596;
real(kind=8) _2597;
real(kind=8) _2598;
real(kind=8) _2600;
real(kind=8) _2602;
real(kind=8) _2603;
real(kind=8) _2604;
real(kind=8) _2605;
real(kind=8) _2606;
real(kind=8) _2607;
real(kind=8) _2608;
real(kind=8) _2609;
real(kind=8) _2612;
real(kind=8) _2614;
real(kind=8) _2615;
real(kind=8) _2618;
real(kind=8) _2621;
real(kind=8) _2622;
real(kind=8) _2623;
real(kind=8) _2625;
real(kind=8) _2626;
real(kind=8) _2627;
real(kind=8) _2628;
real(kind=8) _2629;
real(kind=8) _2630;
real(kind=8) _2631;
real(kind=8) _2633;
real(kind=8) _2634;
real(kind=8) _2635;
real(kind=8) _2636;
real(kind=8) _2637;
real(kind=8) _2639;
real(kind=8) _2642;
real(kind=8) _2643;
real(kind=8) _2644;
real(kind=8) _2645;
real(kind=8) _2646;
real(kind=8) _2647;
real(kind=8) _2648;
real(kind=8) _2649;
real(kind=8) _2652;
real(kind=8) _2654;
real(kind=8) _2655;
real(kind=8) _2658;
real(kind=8) _2661;
real(kind=8) _2662;
real(kind=8) _2663;
real(kind=8) _2665;
real(kind=8) _2666;
real(kind=8) _2667;
real(kind=8) _2668;
real(kind=8) _2669;
real(kind=8) _2670;
real(kind=8) _2671;
real(kind=8) _2673;
real(kind=8) _2674;
real(kind=8) _2675;
real(kind=8) _2676;
real(kind=8) _2677;
real(kind=8) _2679;
real(kind=8) _2682;
real(kind=8) _2683;
real(kind=8) _2684;
real(kind=8) _2685;
real(kind=8) _2686;
real(kind=8) _2688;
void (*<Tb31>) (integer(kind=4) & restrict) timestop_hook.111875_2689;
integer(kind=4) _2690;
real(kind=8) _2695;
real(kind=8) _2696;
real(kind=8) _2734;
real(kind=8) _2735;
real(kind=8) _2736;
real(kind=8) _2737;
real(kind=8) _2738;
real(kind=8) _2739;
real(kind=8) _2740;
real(kind=8) _2741;
real(kind=8) _2742;
real(kind=8) _2743;
real(kind=8) _2744;
real(kind=8) _2745;
real(kind=8) _2746;
real(kind=8) _2747;
real(kind=8) _2748;
real(kind=8) _2749;
real(kind=8) _2750;
real(kind=8) _2751;
real(kind=8) _2754;
real(kind=8) _2755;
real(kind=8) _2756;
real(kind=8) _2757;
real(kind=8) _2758;
real(kind=8) _2759;
real(kind=8) _2760;
real(kind=8) reassocpow_2761;
real(kind=8) _2762;
real(kind=8) _2763;
real(kind=8) _2765;
real(kind=8) _2766;
real(kind=8) reassocpow_2767;
real(kind=8) _2768;
real(kind=8) _2769;
real(kind=8) _2771;
real(kind=8) _2772;
real(kind=8) _2773;
real(kind=8) _2774;
real(kind=8) _2775;
real(kind=8) _2776;
real(kind=8) _2777;
real(kind=8) _2778;
real(kind=8) _2779;
real(kind=8) _2780;
real(kind=8) _2781;
real(kind=8) _2782;
real(kind=8) _2783;
real(kind=8) _2784;
real(kind=8) _2785;
real(kind=8) _2794;
real(kind=8) _2795;
real(kind=8) _2796;
real(kind=8) _2797;
real(kind=8) _2798;
real(kind=8) _2799;
real(kind=8) _2800;
real(kind=8) _2801;
real(kind=8) _2802;
real(kind=8) _2803;
real(kind=8) _2804;
real(kind=8) _2805;
real(kind=8) _2806;
real(kind=8) _2807;
real(kind=8) _2808;
real(kind=8) _2809;
real(kind=8) _2810;
real(kind=8) _2811;
real(kind=8) _2812;
real(kind=8) _2813;
real(kind=8) _2814;
real(kind=8) _2815;
real(kind=8) _2816;
real(kind=8) _2817;
real(kind=8) _2818;
real(kind=8) _2819;
real(kind=8) _2820;
real(kind=8) _2821;
real(kind=8) _2822;
real(kind=8) _2823;
real(kind=8) _2824;
real(kind=8) _2825;
real(kind=8) _2826;
real(kind=8) _2827;
real(kind=8) reassocpow_2828;
real(kind=8) _2829;
real(kind=8) _2830;
real(kind=8) _2831;
real(kind=8) _2832;
real(kind=8) _2833;
real(kind=8) _2834;
real(kind=8) _2835;
real(kind=8) _2836;
real(kind=8) _2837;
real(kind=8) _2838;
real(kind=8) _2839;
real(kind=8) _2840;
real(kind=8) _2841;
real(kind=8) _2842;
real(kind=8) _2843;
real(kind=8) _2844;
real(kind=8) _2845;
real(kind=8) _2846;
real(kind=8) _2847;
real(kind=8) _2848;
real(kind=8) _2849;
real(kind=8) _2850;
real(kind=8) _2851;
real(kind=8) _2852;
real(kind=8) _2853;
real(kind=8) _2854;
real(kind=8) _2855;
real(kind=8) _2856;
real(kind=8) _2857;
real(kind=8) _2858;
real(kind=8) _2859;
real(kind=8) _2860;
real(kind=8) _2861;
real(kind=8) _2862;
real(kind=8) _2863;
real(kind=8) _2864;
real(kind=8) _2865;
real(kind=8) _2866;
real(kind=8) _2867;
real(kind=8) _2868;
real(kind=8) _2869;
real(kind=8) _2870;
real(kind=8) _2871;
real(kind=8) _2872;
real(kind=8) _2873;
real(kind=8) _2874;
real(kind=8) _2875;
real(kind=8) _2876;
real(kind=8) _2877;
real(kind=8) _2878;
real(kind=8) _2879;
real(kind=8) _2880;
real(kind=8) _2881;
real(kind=8) _2882;
real(kind=8) _2883;
real(kind=8) _2884;
real(kind=8) _2885;
real(kind=8) reassocpow_2886;
real(kind=8) _2887;
real(kind=8) _2889;
real(kind=8) _2890;
real(kind=8) _2891;
real(kind=8) _2892;
real(kind=8) _2893;
real(kind=8) _2894;
real(kind=8) _2895;
real(kind=8) _2896;
real(kind=8) _2897;
real(kind=8) _2909;
real(kind=8) _2910;
real(kind=8) _2913;
real(kind=8) _2914;
real(kind=8) _2915;
real(kind=8) _2916;
real(kind=8) _2917;
real(kind=8) _2918;
real(kind=8) _2919;
real(kind=8) _2920;
real(kind=8) _2921;
real(kind=8) _2922;
real(kind=8) _2923;
real(kind=8) _2924;
real(kind=8) _2925;
real(kind=8) _2926;
real(kind=8) _2927;
real(kind=8) _2928;
real(kind=8) _2929;
real(kind=8) _2930;
real(kind=8) _2931;
real(kind=8) _2932;
real(kind=8) _2933;
real(kind=8) _2934;
real(kind=8) _2935;
real(kind=8) _2936;
real(kind=8) _2937;
real(kind=8) _2938;
real(kind=8) _2939;
real(kind=8) reassocpow_2940;
real(kind=8) _2941;
real(kind=8) _2942;
real(kind=8) _2944;
real(kind=8) _2945;
real(kind=8) _2946;
real(kind=8) _2947;
real(kind=8) _2948;
real(kind=8) _2949;
real(kind=8) _2950;
real(kind=8) _2951;
real(kind=8) _2952;
real(kind=8) _2953;
real(kind=8) _2954;
real(kind=8) _2955;
real(kind=8) _2956;
real(kind=8) _2957;
real(kind=8) reassocpow_2958;
real(kind=8) _2959;
real(kind=8) _2960;
real(kind=8) _2962;
real(kind=8) _2963;
real(kind=8) _2964;
real(kind=8) _2965;
real(kind=8) _2966;
real(kind=8) _2967;
real(kind=8) _2968;
real(kind=8) _2969;
real(kind=8) _2970;
real(kind=8) _2971;
real(kind=8) _2972;
real(kind=8) _2973;
real(kind=8) _2974;
real(kind=8) _2975;
real(kind=8) _2976;
real(kind=8) _2977;
real(kind=8) _2978;
real(kind=8) reassocpow_2979;
real(kind=8) _2980;
real(kind=8) _2981;
real(kind=8) _2983;
real(kind=8) _2984;
real(kind=8) _2985;
real(kind=8) _2986;
real(kind=8) _2987;
real(kind=8) reassocpow_2988;
real(kind=8) _2989;
real(kind=8) _2990;
real(kind=8) _2991;
real(kind=8) _2992;
real(kind=8) _2993;
real(kind=8) _2994;
real(kind=8) _2995;
real(kind=8) _2996;
real(kind=8) _2997;
real(kind=8) _2998;
real(kind=8) _2999;
real(kind=8) _3000;
real(kind=8) _3001;
real(kind=8) _3002;
real(kind=8) _3003;
real(kind=8) _3004;
real(kind=8) _3005;
real(kind=8) _3006;
real(kind=8) _3007;
real(kind=8) _3008;
real(kind=8) _3009;
real(kind=8) _3010;
real(kind=8) _3011;
real(kind=8) _3012;
real(kind=8) reassocpow_3013;
real(kind=8) _3014;
real(kind=8) _3016;
real(kind=8) _3017;
real(kind=8) _3018;
real(kind=8) _3019;
real(kind=8) _3020;
real(kind=8) reassocpow_3021;
real(kind=8) reassocpow_3022;
real(kind=8) _3023;
real(kind=8) _3024;
real(kind=8) _3025;
real(kind=8) _3026;
real(kind=8) _3027;
real(kind=8) _3028;
real(kind=8) _3029;
real(kind=8) _3030;
real(kind=8) _3031;
real(kind=8) _3032;
real(kind=8) _3033;
real(kind=8) _3034;
real(kind=8) _3035;
real(kind=8) _3036;
real(kind=8) _3037;
real(kind=8) _3038;
real(kind=8) _3039;
real(kind=8) _3040;
real(kind=8) _3041;
real(kind=8) _3042;
real(kind=8) _3043;
real(kind=8) _3044;
real(kind=8) _3045;
real(kind=8) _3046;
real(kind=8) _3047;
real(kind=8) _3048;
real(kind=8) _3049;
real(kind=8) _3050;
real(kind=8) reassocpow_3051;
real(kind=8) _3052;
real(kind=8) _3054;
real(kind=8) _3055;
real(kind=8) _3056;
real(kind=8) _3057;
real(kind=8) _3058;
real(kind=8) _3059;
real(kind=8) _3060;
real(kind=8) _3061;
real(kind=8) _3062;
real(kind=8) _3063;
real(kind=8) _3064;
real(kind=8) _3065;
real(kind=8) _3066;
real(kind=8) reassocpow_3067;
real(kind=8) _3068;
real(kind=8) _3069;
real(kind=8) _3070;
real(kind=8) _3071;
real(kind=8) _3072;
real(kind=8) _3073;
real(kind=8) _3074;
real(kind=8) _3075;
real(kind=8) _3076;
real(kind=8) _3077;
real(kind=8) reassocpow_3078;
real(kind=8) _3079;
real(kind=8) _3081;
real(kind=8) _3082;
real(kind=8) _3083;
real(kind=8) _3084;
real(kind=8) _3085;
real(kind=8) _3086;
real(kind=8) _3087;
real(kind=8) _3088;
real(kind=8) _3089;
real(kind=8) _3090;
real(kind=8) _3091;
real(kind=8) _3092;
real(kind=8) _3093;
real(kind=8) _3102;
real(kind=8) _3103;
real(kind=8) _3104;
real(kind=8) _3105;
real(kind=8) _3106;
real(kind=8) _3107;
real(kind=8) _3108;
real(kind=8) _3109;
real(kind=8) _3110;
real(kind=8) _3111;
real(kind=8) _3112;
real(kind=8) _3113;
real(kind=8) _3114;
real(kind=8) _3115;
real(kind=8) _3116;
real(kind=8) _3117;
real(kind=8) _3118;
real(kind=8) _3119;
real(kind=8) _3120;
real(kind=8) _3121;
real(kind=8) _3122;
real(kind=8) _3123;
real(kind=8) _3124;
real(kind=8) _3125;
real(kind=8) _3126;
real(kind=8) _3127;
real(kind=8) _3128;
real(kind=8) _3129;
real(kind=8) _3130;
real(kind=8) _3131;
real(kind=8) _3132;
real(kind=8) _3133;
real(kind=8) _3134;
real(kind=8) _3135;
real(kind=8) _3136;
real(kind=8) _3137;
real(kind=8) _3138;
real(kind=8) _3139;
real(kind=8) _3140;
real(kind=8) _3141;
real(kind=8) _3144;
real(kind=8) _3145;
real(kind=8) _3146;
real(kind=8) _3147;
real(kind=8) _3148;
real(kind=8) _3149;
real(kind=8) _3150;
real(kind=8) _3151;
real(kind=8) _3152;
real(kind=8) _3153;
real(kind=8) _3154;
real(kind=8) _3155;
real(kind=8) _3156;
real(kind=8) _3157;
real(kind=8) _3158;
real(kind=8) _3159;
real(kind=8) _3160;
real(kind=8) _3161;
real(kind=8) _3162;
real(kind=8) _3163;
real(kind=8) _3164;
real(kind=8) _3165;
real(kind=8) _3166;
real(kind=8) _3167;
real(kind=8) _3168;
real(kind=8) _3169;
real(kind=8) _3170;
real(kind=8) _3173;
real(kind=8) _3174;
real(kind=8) _3175;
real(kind=8) _3176;
real(kind=8) _3177;
real(kind=8) _3178;
real(kind=8) _3179;
real(kind=8) reassocpow_3180;
real(kind=8) reassocpow_3181;
real(kind=8) reassocpow_3182;
real(kind=8) reassocpow_3183;
real(kind=8) reassocpow_3184;
real(kind=8) reassocpow_3185;
real(kind=8) reassocpow_3186;
real(kind=8) _3187;
real(kind=8) _3188;
real(kind=8) _3189;
real(kind=8) _3190;
real(kind=8) _3191;
real(kind=8) _3192;
real(kind=8) _3193;
real(kind=8) _3194;
real(kind=8) _3195;
real(kind=8) _3196;
real(kind=8) _3197;
real(kind=8) _3198;
real(kind=8) _3199;
real(kind=8) _3200;
real(kind=8) _3201;
real(kind=8) _3202;
real(kind=8) _3203;
real(kind=8) _3206;
real(kind=8) _3207;
real(kind=8) reassocpow_3208;
real(kind=8) reassocpow_3209;
real(kind=8) reassocpow_3210;
real(kind=8) reassocpow_3211;
real(kind=8) reassocpow_3212;
real(kind=8) reassocpow_3215;
real(kind=8) _3216;
real(kind=8) _3217;
real(kind=8) _3219;
real(kind=8) _3220;
real(kind=8) _3221;
real(kind=8) _3222;
real(kind=8) _3223;
real(kind=8) _3224;
real(kind=8) _3225;
real(kind=8) _3226;
real(kind=8) _3227;
real(kind=8) _3228;
real(kind=8) _3229;
real(kind=8) _3230;
real(kind=8) _3231;
real(kind=8) _3232;
real(kind=8) _3233;
real(kind=8) reassocpow_3234;
real(kind=8) _3235;
real(kind=8) _3236;
real(kind=8) reassocpow_3237;
real(kind=8) reassocpow_3238;
real(kind=8) reassocpow_3239;
real(kind=8) _3240;
real(kind=8) _3241;
real(kind=8) _3242;
real(kind=8) _3243;
real(kind=8) _3244;
real(kind=8) _3245;
real(kind=8) _3246;
real(kind=8) _3247;
real(kind=8) _3248;
real(kind=8) _3249;
real(kind=8) _3250;
real(kind=8) _3251;
real(kind=8) _3252;
real(kind=8) _3253;
real(kind=8) _3254;
real(kind=8) _3255;
real(kind=8) _3256;
real(kind=8) _3257;
real(kind=8) _3258;
real(kind=8) _3259;
real(kind=8) _3260;
real(kind=8) _3261;
real(kind=8) reassocpow_3262;
real(kind=8) _3263;
real(kind=8) _3264;
real(kind=8) reassocpow_3265;
real(kind=8) reassocpow_3266;
real(kind=8) reassocpow_3267;
real(kind=8) _3268;
real(kind=8) _3269;
real(kind=8) _3270;
real(kind=8) reassocpow_3271;
real(kind=8) _3272;
real(kind=8) _3273;
real(kind=8) reassocpow_3274;
real(kind=8) reassocpow_3275;
real(kind=8) _3276;
real(kind=8) _3277;
real(kind=8) _3278;
real(kind=8) reassocpow_3279;
real(kind=8) _3280;
real(kind=8) reassocpow_3281;
real(kind=8) _3282;
real(kind=8) _3283;
real(kind=8) _3284;
real(kind=8) _3285;
real(kind=8) _3286;
real(kind=8) _3287;
real(kind=8) _3288;
real(kind=8) _3289;
real(kind=8) _3290;
real(kind=8) _3291;
real(kind=8) _3292;
real(kind=8) _3293;
real(kind=8) _3296;
real(kind=8) _3297;
real(kind=8) _3298;
real(kind=8) _3299;
real(kind=8) reassocpow_3300;
real(kind=8) _3301;
real(kind=8) _3304;
real(kind=8) _3305;
real(kind=8) _3306;
real(kind=8) _3307;
real(kind=8) reassocpow_3308;
real(kind=8) _3309;
real(kind=8) _3312;
real(kind=8) _3313;
real(kind=8) _3314;
real(kind=8) _3315;
real(kind=8) reassocpow_3316;
real(kind=8) _3317;
real(kind=8) reassocpow_3318;
real(kind=8) reassocpow_3319;
real(kind=8) _3320;
real(kind=8) _3321;
real(kind=8) _3322;
real(kind=8) _3323;
real(kind=8) reassocpow_3324;
real(kind=8) _3325;
real(kind=8) _3326;
real(kind=8) _3327;
real(kind=8) reassocpow_3328;
real(kind=8) _3329;
real(kind=8) _3330;
real(kind=8) reassocpow_3331;
real(kind=8) reassocpow_3332;
real(kind=8) reassocpow_3333;
real(kind=8) reassocpow_3334;
real(kind=8) _3335;
real(kind=8) reassocpow_3336;
real(kind=8) reassocpow_3337;
real(kind=8) _3338;
real(kind=8) reassocpow_3339;
real(kind=8) reassocpow_3340;
real(kind=8) _3341;
real(kind=8) _3342;
real(kind=8) _3343;
real(kind=8) _3344;
real(kind=8) _3345;
real(kind=8) _3346;
real(kind=8) _3347;
real(kind=8) _3348;
real(kind=8) _3349;
real(kind=8) _3350;
real(kind=8) _3351;
real(kind=8) _3352;
real(kind=8) _3353;
real(kind=8) _3354;
real(kind=8) _3355;
real(kind=8) _3356;
real(kind=8) _3357;
real(kind=8) _3358;
real(kind=8) _3359;
real(kind=8) _3360;
real(kind=8) _3361;
real(kind=8) _3362;
real(kind=8) _3363;
real(kind=8) _3364;
;; basic block 2, loop depth 0
;; pred: ENTRY
timeset_hook.111877_278 = timeset_hook;
if (timeset_hook.111877_278 != 0B)
goto <bb 3>;
else
goto <bb 4>;
;; succ: 3
;; 4
;; basic block 3, loop depth 0
;; pred: 2
timeset_hook.111877_278 (&"pbe_lsd_eval"[1]{lb: 1 sz: 1}, &handle, 12);
goto <bb 5>;
;; succ: 5
;; basic block 4, loop depth 0
;; pred: 2
handle = -1;
;; succ: 5
;; basic block 5, loop depth 0
;; pred: 4
;; 3
bo.data = 0B;
_1 = *rho_set_107(D);
if (_1 == 0B)
goto <bb 6>;
else
goto <bb 7>;
;; succ: 6
;; 7
;; basic block 6, loop depth 0
;; pred: 5
cp__a (&"xc/xc_pbe.F"[1]{lb: 1 sz: 1}, &C.395853, 11);
;; succ:
;; basic block 7, loop depth 0
;; pred: 5
_2 = *_1.ref_count;
if (_2 <= 0)
goto <bb 8>;
else
goto <bb 9>;
;; succ: 8
;; 9
;; basic block 8, loop depth 0
;; pred: 7
cp__a (&"xc/xc_pbe.F"[1]{lb: 1 sz: 1}, &C.395855, 11);
;; succ:
;; basic block 9, loop depth 0
;; pred: 7
_3 = *deriv_set_110(D);
if (_3 == 0B)
goto <bb 10>;
else
goto <bb 11>;
;; succ: 10
;; 11
;; basic block 10, loop depth 0
;; pred: 9
cp__a (&"xc/xc_pbe.F"[1]{lb: 1 sz: 1}, &C.395857, 11);
;; succ:
;; basic block 11, loop depth 0
;; pred: 9
_4 = *_3.ref_count;
if (_4 <= 0)
goto <bb 12>;
else
goto <bb 13>;
;; succ: 12
;; 13
;; basic block 12, loop depth 0
;; pred: 11
cp__a (&"xc/xc_pbe.F"[1]{lb: 1 sz: 1}, &C.395859, 11);
;; succ:
;; basic block 13, loop depth 0
;; pred: 11
xc_rho_set_get.constprop (rho_set_107(D), 0B, 0B, 0B, &norm_drho, &rhoa, &rhob, &norm_drhoa, &norm_drhob, 0B, 0B, 0B, 0B, 0B, 0B, 0B, 0B, 0B, &epsilon_rho, 0B, 0B, 0B, 0B, 0B, &bo);
_5 = bo.data;
_6 = bo.offset;
_7 = bo.dim[1].stride;
_8 = _6 + _7;
_9 = bo.dim[0].stride;
_10 = _9 * 2;
_11 = _8 + _10;
_12 = MEM[(integer(kind=4)[0:] *)_5][_11];
_13 = _8 + _9;
_14 = MEM[(integer(kind=4)[0:] *)_5][_13];
_15 = _12 - _14;
_16 = _15 + 1;
_17 = _7 * 2;
_18 = _6 + _17;
_19 = _10 + _18;
_20 = MEM[(integer(kind=4)[0:] *)_5][_19];
_21 = _9 + _18;
_22 = MEM[(integer(kind=4)[0:] *)_5][_21];
_23 = _20 - _22;
_24 = _23 + 1;
_25 = _16 * _24;
_26 = _7 * 3;
_27 = _6 + _26;
_28 = _10 + _27;
_29 = MEM[(integer(kind=4)[0:] *)_5][_28];
_30 = _9 + _27;
_31 = MEM[(integer(kind=4)[0:] *)_5][_30];
_32 = _29 - _31;
_33 = _32 + 1;
_34 = _25 * _33;
dummy$data_104 = MEM[(struct array3_real(kind=8) *)&rhoa];
dummy$offset_282 = MEM[(struct array3_real(kind=8) *)&rhoa + 8B];
dummy$dtype_283 = MEM[(struct array3_real(kind=8) *)&rhoa + 16B];
dummy$dim$0$stride_284 = MEM[(struct array3_real(kind=8) *)&rhoa + 24B];
dummy$dim$0$lbound_285 = MEM[(struct array3_real(kind=8) *)&rhoa + 32B];
dummy$dim$0$ubound_286 = MEM[(struct array3_real(kind=8) *)&rhoa + 40B];
dummy$dim$1$stride_287 = MEM[(struct array3_real(kind=8) *)&rhoa + 48B];
dummy$dim$1$lbound_288 = MEM[(struct array3_real(kind=8) *)&rhoa + 56B];
dummy$dim$1$ubound_289 = MEM[(struct array3_real(kind=8) *)&rhoa + 64B];
dummy$dim$2$stride_290 = MEM[(struct array3_real(kind=8) *)&rhoa + 72B];
dummy$dim$2$lbound_291 = MEM[(struct array3_real(kind=8) *)&rhoa + 80B];
dummy$dim$2$ubound_292 = MEM[(struct array3_real(kind=8) *)&rhoa + 88B];
MEM[(struct array3_real(kind=8) *)&e_0] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_0 + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_0 + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_0 + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_0 + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_0 + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_0 + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_0 + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_0 + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_0 + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_0 + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_0 + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ra] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ra + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ra + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ra + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ra + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ra + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ra + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ra + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ra + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ra + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ra + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ra + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_rb] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_rb + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_rb + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_rb + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_rb + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_rb + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_rb + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_rb + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_rb + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_rb + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_rb + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_rb + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndra_ra + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndr] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndr + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndr + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndr + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndr + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndr + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndr + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndr + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndr + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndr + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndr + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndr + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndra] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndra + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndra + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndra + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndra + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndra + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndra + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndra + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndra + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndra + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndra + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndra + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndrb] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndrb + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ra_ra] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ra_ra + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ra_rb] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ra_rb + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_rb_rb] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_rb_rb + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndr_ra + 88B] = dummy$dim$2$ubound_292;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb] = dummy$data_104;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 8B] = dummy$offset_282;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 16B] = dummy$dtype_283;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 24B] = dummy$dim$0$stride_284;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 32B] = dummy$dim$0$lbound_285;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 40B] = dummy$dim$0$ubound_286;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 48B] = dummy$dim$1$stride_287;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 56B] = dummy$dim$1$lbound_288;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 64B] = dummy$dim$1$ubound_289;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 72B] = dummy$dim$2$stride_290;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 80B] = dummy$dim$2$lbound_291;
MEM[(struct array3_real(kind=8) *)&e_ndr_rb + 88B] = dummy$dim$2$ubound_292;
_35 = *grad_deriv_115(D);
if (_35 >= 0)
goto <bb 14>;
else
goto <bb 20>;
;; succ: 14
;; 20
;; basic block 14, loop depth 0
;; pred: 13
_36 = xc_dset_get_derivative.constprop (deriv_set_110(D), &""[1]{lb: 1 sz: 1}, &C.395861, 0);
if (_36 == 0B)
goto <bb 15>;
else
goto <bb 16>;
;; succ: 15
;; 16
;; basic block 15, loop depth 0
;; pred: 14
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 16, loop depth 0
;; pred: 14
_499 = _36->ref_count;
if (_499 <= 0)
goto <bb 17>;
else
goto <bb 18>;
;; succ: 17
;; 18
;; basic block 17, loop depth 0
;; pred: 16
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 18, loop depth 0
;; pred: 16
MEM[(struct array3_real(kind=8) *)&e_0] = _36->deriv_data;
_504 = MEM[(struct array3_real(kind=8) *)&e_0].data;
if (_504 == 0B)
goto <bb 19>;
else
goto <bb 20>;
;; succ: 19
;; 20
;; basic block 19, loop depth 0
;; pred: 18
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 20, loop depth 0
;; pred: 13
;; 18
_37 = _35 > 0;
_38 = _35 == -1;
_39 = _38 | _37;
if (_39 != 0)
goto <bb 21>;
else
goto <bb 51>;
;; succ: 21
;; 51
;; basic block 21, loop depth 0
;; pred: 20
_40 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(rhoa)"[1]{lb: 1 sz: 1}, &C.395863, 6);
if (_40 == 0B)
goto <bb 22>;
else
goto <bb 23>;
;; succ: 22
;; 23
;; basic block 22, loop depth 0
;; pred: 21
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 23, loop depth 0
;; pred: 21
_574 = _40->ref_count;
if (_574 <= 0)
goto <bb 24>;
else
goto <bb 25>;
;; succ: 24
;; 25
;; basic block 24, loop depth 0
;; pred: 23
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 25, loop depth 0
;; pred: 23
MEM[(struct array3_real(kind=8) *)&e_ra] = _40->deriv_data;
_579 = MEM[(struct array3_real(kind=8) *)&e_ra].data;
if (_579 == 0B)
goto <bb 26>;
else
goto <bb 27>;
;; succ: 26
;; 27
;; basic block 26, loop depth 0
;; pred: 25
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 27, loop depth 0
;; pred: 25
_41 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(rhob)"[1]{lb: 1 sz: 1}, &C.395864, 6);
if (_41 == 0B)
goto <bb 28>;
else
goto <bb 29>;
;; succ: 28
;; 29
;; basic block 28, loop depth 0
;; pred: 27
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 29, loop depth 0
;; pred: 27
_559 = _41->ref_count;
if (_559 <= 0)
goto <bb 30>;
else
goto <bb 31>;
;; succ: 30
;; 31
;; basic block 30, loop depth 0
;; pred: 29
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 31, loop depth 0
;; pred: 29
MEM[(struct array3_real(kind=8) *)&e_rb] = _41->deriv_data;
_564 = MEM[(struct array3_real(kind=8) *)&e_rb].data;
if (_564 == 0B)
goto <bb 32>;
else
goto <bb 33>;
;; succ: 32
;; 33
;; basic block 32, loop depth 0
;; pred: 31
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 33, loop depth 0
;; pred: 31
_42 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drho)"[1]{lb: 1 sz: 1}, &C.395865, 11);
if (_42 == 0B)
goto <bb 34>;
else
goto <bb 35>;
;; succ: 34
;; 35
;; basic block 34, loop depth 0
;; pred: 33
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 35, loop depth 0
;; pred: 33
_544 = _42->ref_count;
if (_544 <= 0)
goto <bb 36>;
else
goto <bb 37>;
;; succ: 36
;; 37
;; basic block 36, loop depth 0
;; pred: 35
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 37, loop depth 0
;; pred: 35
MEM[(struct array3_real(kind=8) *)&e_ndr] = _42->deriv_data;
_549 = MEM[(struct array3_real(kind=8) *)&e_ndr].data;
if (_549 == 0B)
goto <bb 38>;
else
goto <bb 39>;
;; succ: 38
;; 39
;; basic block 38, loop depth 0
;; pred: 37
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 39, loop depth 0
;; pred: 37
_43 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drhoa)"[1]{lb: 1 sz: 1}, &C.395866, 12);
if (_43 == 0B)
goto <bb 40>;
else
goto <bb 41>;
;; succ: 40
;; 41
;; basic block 40, loop depth 0
;; pred: 39
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 41, loop depth 0
;; pred: 39
_529 = _43->ref_count;
if (_529 <= 0)
goto <bb 42>;
else
goto <bb 43>;
;; succ: 42
;; 43
;; basic block 42, loop depth 0
;; pred: 41
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 43, loop depth 0
;; pred: 41
MEM[(struct array3_real(kind=8) *)&e_ndra] = _43->deriv_data;
_534 = MEM[(struct array3_real(kind=8) *)&e_ndra].data;
if (_534 == 0B)
goto <bb 44>;
else
goto <bb 45>;
;; succ: 44
;; 45
;; basic block 44, loop depth 0
;; pred: 43
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 45, loop depth 0
;; pred: 43
_44 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drhob)"[1]{lb: 1 sz: 1}, &C.395867, 12);
if (_44 == 0B)
goto <bb 46>;
else
goto <bb 47>;
;; succ: 46
;; 47
;; basic block 46, loop depth 0
;; pred: 45
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 47, loop depth 0
;; pred: 45
_514 = _44->ref_count;
if (_514 <= 0)
goto <bb 48>;
else
goto <bb 49>;
;; succ: 48
;; 49
;; basic block 48, loop depth 0
;; pred: 47
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 49, loop depth 0
;; pred: 47
MEM[(struct array3_real(kind=8) *)&e_ndrb] = _44->deriv_data;
_519 = MEM[(struct array3_real(kind=8) *)&e_ndrb].data;
if (_519 == 0B)
goto <bb 50>;
else
goto <bb 51>;
;; succ: 50
;; 51
;; basic block 50, loop depth 0
;; pred: 49
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 51, loop depth 0
;; pred: 20
;; 49
_45 = _35 > 1;
_46 = _35 == -2;
_47 = _46 | _45;
if (_47 != 0)
goto <bb 52>;
else
goto <bb 112>;
;; succ: 52
;; 112
;; basic block 52, loop depth 0
;; pred: 51
_48 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(rhoa)(rhoa)"[1]{lb: 1 sz: 1}, &C.395869, 12);
if (_48 == 0B)
goto <bb 53>;
else
goto <bb 54>;
;; succ: 53
;; 54
;; basic block 53, loop depth 0
;; pred: 52
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 54, loop depth 0
;; pred: 52
_724 = _48->ref_count;
if (_724 <= 0)
goto <bb 55>;
else
goto <bb 56>;
;; succ: 55
;; 56
;; basic block 55, loop depth 0
;; pred: 54
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 56, loop depth 0
;; pred: 54
MEM[(struct array3_real(kind=8) *)&e_ra_ra] = _48->deriv_data;
_729 = MEM[(struct array3_real(kind=8) *)&e_ra_ra].data;
if (_729 == 0B)
goto <bb 57>;
else
goto <bb 58>;
;; succ: 57
;; 58
;; basic block 57, loop depth 0
;; pred: 56
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 58, loop depth 0
;; pred: 56
_49 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(rhoa)(rhob)"[1]{lb: 1 sz: 1}, &C.395870, 12);
if (_49 == 0B)
goto <bb 59>;
else
goto <bb 60>;
;; succ: 59
;; 60
;; basic block 59, loop depth 0
;; pred: 58
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 60, loop depth 0
;; pred: 58
_709 = _49->ref_count;
if (_709 <= 0)
goto <bb 61>;
else
goto <bb 62>;
;; succ: 61
;; 62
;; basic block 61, loop depth 0
;; pred: 60
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 62, loop depth 0
;; pred: 60
MEM[(struct array3_real(kind=8) *)&e_ra_rb] = _49->deriv_data;
_714 = MEM[(struct array3_real(kind=8) *)&e_ra_rb].data;
if (_714 == 0B)
goto <bb 63>;
else
goto <bb 64>;
;; succ: 63
;; 64
;; basic block 63, loop depth 0
;; pred: 62
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 64, loop depth 0
;; pred: 62
_50 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(rhob)(rhob)"[1]{lb: 1 sz: 1}, &C.395871, 12);
if (_50 == 0B)
goto <bb 65>;
else
goto <bb 66>;
;; succ: 65
;; 66
;; basic block 65, loop depth 0
;; pred: 64
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 66, loop depth 0
;; pred: 64
_694 = _50->ref_count;
if (_694 <= 0)
goto <bb 67>;
else
goto <bb 68>;
;; succ: 67
;; 68
;; basic block 67, loop depth 0
;; pred: 66
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 68, loop depth 0
;; pred: 66
MEM[(struct array3_real(kind=8) *)&e_rb_rb] = _50->deriv_data;
_699 = MEM[(struct array3_real(kind=8) *)&e_rb_rb].data;
if (_699 == 0B)
goto <bb 69>;
else
goto <bb 70>;
;; succ: 69
;; 70
;; basic block 69, loop depth 0
;; pred: 68
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 70, loop depth 0
;; pred: 68
_51 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drho)(rhoa)"[1]{lb: 1 sz: 1}, &C.395872, 17);
if (_51 == 0B)
goto <bb 71>;
else
goto <bb 72>;
;; succ: 71
;; 72
;; basic block 71, loop depth 0
;; pred: 70
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 72, loop depth 0
;; pred: 70
_679 = _51->ref_count;
if (_679 <= 0)
goto <bb 73>;
else
goto <bb 74>;
;; succ: 73
;; 74
;; basic block 73, loop depth 0
;; pred: 72
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 74, loop depth 0
;; pred: 72
MEM[(struct array3_real(kind=8) *)&e_ndr_ra] = _51->deriv_data;
_684 = MEM[(struct array3_real(kind=8) *)&e_ndr_ra].data;
if (_684 == 0B)
goto <bb 75>;
else
goto <bb 76>;
;; succ: 75
;; 76
;; basic block 75, loop depth 0
;; pred: 74
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 76, loop depth 0
;; pred: 74
_52 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drho)(rhob)"[1]{lb: 1 sz: 1}, &C.395873, 17);
if (_52 == 0B)
goto <bb 77>;
else
goto <bb 78>;
;; succ: 77
;; 78
;; basic block 77, loop depth 0
;; pred: 76
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 78, loop depth 0
;; pred: 76
_664 = _52->ref_count;
if (_664 <= 0)
goto <bb 79>;
else
goto <bb 80>;
;; succ: 79
;; 80
;; basic block 79, loop depth 0
;; pred: 78
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 80, loop depth 0
;; pred: 78
MEM[(struct array3_real(kind=8) *)&e_ndr_rb] = _52->deriv_data;
_669 = MEM[(struct array3_real(kind=8) *)&e_ndr_rb].data;
if (_669 == 0B)
goto <bb 81>;
else
goto <bb 82>;
;; succ: 81
;; 82
;; basic block 81, loop depth 0
;; pred: 80
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 82, loop depth 0
;; pred: 80
_53 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drhoa)(rhoa)"[1]{lb: 1 sz: 1}, &C.395874, 18);
if (_53 == 0B)
goto <bb 83>;
else
goto <bb 84>;
;; succ: 83
;; 84
;; basic block 83, loop depth 0
;; pred: 82
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 84, loop depth 0
;; pred: 82
_649 = _53->ref_count;
if (_649 <= 0)
goto <bb 85>;
else
goto <bb 86>;
;; succ: 85
;; 86
;; basic block 85, loop depth 0
;; pred: 84
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 86, loop depth 0
;; pred: 84
MEM[(struct array3_real(kind=8) *)&e_ndra_ra] = _53->deriv_data;
_654 = MEM[(struct array3_real(kind=8) *)&e_ndra_ra].data;
if (_654 == 0B)
goto <bb 87>;
else
goto <bb 88>;
;; succ: 87
;; 88
;; basic block 87, loop depth 0
;; pred: 86
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 88, loop depth 0
;; pred: 86
_54 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drhob)(rhob)"[1]{lb: 1 sz: 1}, &C.395875, 18);
if (_54 == 0B)
goto <bb 89>;
else
goto <bb 90>;
;; succ: 89
;; 90
;; basic block 89, loop depth 0
;; pred: 88
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 90, loop depth 0
;; pred: 88
_634 = _54->ref_count;
if (_634 <= 0)
goto <bb 91>;
else
goto <bb 92>;
;; succ: 91
;; 92
;; basic block 91, loop depth 0
;; pred: 90
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 92, loop depth 0
;; pred: 90
MEM[(struct array3_real(kind=8) *)&e_ndrb_rb] = _54->deriv_data;
_639 = MEM[(struct array3_real(kind=8) *)&e_ndrb_rb].data;
if (_639 == 0B)
goto <bb 93>;
else
goto <bb 94>;
;; succ: 93
;; 94
;; basic block 93, loop depth 0
;; pred: 92
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 94, loop depth 0
;; pred: 92
_55 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drho)(norm_drho)"[1]{lb: 1 sz: 1}, &C.395876, 22);
if (_55 == 0B)
goto <bb 95>;
else
goto <bb 96>;
;; succ: 95
;; 96
;; basic block 95, loop depth 0
;; pred: 94
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 96, loop depth 0
;; pred: 94
_619 = _55->ref_count;
if (_619 <= 0)
goto <bb 97>;
else
goto <bb 98>;
;; succ: 97
;; 98
;; basic block 97, loop depth 0
;; pred: 96
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 98, loop depth 0
;; pred: 96
MEM[(struct array3_real(kind=8) *)&e_ndr_ndr] = _55->deriv_data;
_624 = MEM[(struct array3_real(kind=8) *)&e_ndr_ndr].data;
if (_624 == 0B)
goto <bb 99>;
else
goto <bb 100>;
;; succ: 99
;; 100
;; basic block 99, loop depth 0
;; pred: 98
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 100, loop depth 0
;; pred: 98
_56 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drhoa)(norm_drhoa)"[1]{lb: 1 sz: 1}, &C.395877, 24);
if (_56 == 0B)
goto <bb 101>;
else
goto <bb 102>;
;; succ: 101
;; 102
;; basic block 101, loop depth 0
;; pred: 100
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 102, loop depth 0
;; pred: 100
_604 = _56->ref_count;
if (_604 <= 0)
goto <bb 103>;
else
goto <bb 104>;
;; succ: 103
;; 104
;; basic block 103, loop depth 0
;; pred: 102
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 104, loop depth 0
;; pred: 102
MEM[(struct array3_real(kind=8) *)&e_ndra_ndra] = _56->deriv_data;
_609 = MEM[(struct array3_real(kind=8) *)&e_ndra_ndra].data;
if (_609 == 0B)
goto <bb 105>;
else
goto <bb 106>;
;; succ: 105
;; 106
;; basic block 105, loop depth 0
;; pred: 104
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 106, loop depth 0
;; pred: 104
_57 = xc_dset_get_derivative.constprop (deriv_set_110(D), &"(norm_drhob)(norm_drhob)"[1]{lb: 1 sz: 1}, &C.395878, 24);
if (_57 == 0B)
goto <bb 107>;
else
goto <bb 108>;
;; succ: 107
;; 108
;; basic block 107, loop depth 0
;; pred: 106
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374067, 24);
;; succ:
;; basic block 108, loop depth 0
;; pred: 106
_589 = _57->ref_count;
if (_589 <= 0)
goto <bb 109>;
else
goto <bb 110>;
;; succ: 109
;; 110
;; basic block 109, loop depth 0
;; pred: 108
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374069, 24);
;; succ:
;; basic block 110, loop depth 0
;; pred: 108
MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb] = _57->deriv_data;
_594 = MEM[(struct array3_real(kind=8) *)&e_ndrb_ndrb].data;
if (_594 == 0B)
goto <bb 111>;
else
goto <bb 112>;
;; succ: 111
;; 112
;; basic block 111, loop depth 0
;; pred: 110
cp__a (&"xc/xc_derivative_types.F"[1]{lb: 1 sz: 1}, &C.374075, 24);
;; succ:
;; basic block 112, loop depth 0
;; pred: 51
;; 110
section_vals_val_get.constprop (pbe_params_164(D), &"scale_c"[1]{lb: 1 sz: 1}, 0B, 0B, 0B, 0B, 0B, 0B, &scale_ec, 0B, 0B, 0B, 0B, 0B, 0B, 7, 0, 0);
section_vals_val_get.constprop (pbe_params_164(D), &"scale_x"[1]{lb: 1 sz: 1}, 0B, 0B, 0B, 0B, 0B, 0B, &scale_ex, 0B, 0B, 0B, 0B, 0B, 0B, 7, 0, 0);
section_vals_val_get.constprop (pbe_params_164(D), &"parametrization"[1]{lb: 1 sz: 1}, 0B, 0B, 0B, 0B, 0B, ¶m, 0B, 0B, 0B, 0B, 0B, 0B, 0B, 15, 0, 0);
_169 = _gfortran_internal_pack (&rhoa);
_171 = _gfortran_internal_pack (&rhob);
_173 = _gfortran_internal_pack (&norm_drho);
_175 = _gfortran_internal_pack (&norm_drhoa);
_177 = _gfortran_internal_pack (&norm_drhob);
_179 = _gfortran_internal_pack (&e_0);
_181 = _gfortran_internal_pack (&e_ra);
_183 = _gfortran_internal_pack (&e_rb);
_185 = _gfortran_internal_pack (&e_ndra_ra);
_187 = _gfortran_internal_pack (&e_ndrb_rb);
_189 = _gfortran_internal_pack (&e_ndr_ndr);
_191 = _gfortran_internal_pack (&e_ndra_ndra);
_193 = _gfortran_internal_pack (&e_ndrb_ndrb);
_195 = _gfortran_internal_pack (&e_ndr);
_197 = _gfortran_internal_pack (&e_ndra);
_199 = _gfortran_internal_pack (&e_ndrb);
_201 = _gfortran_internal_pack (&e_ra_ra);
_203 = _gfortran_internal_pack (&e_ra_rb);
_205 = _gfortran_internal_pack (&e_rb_rb);
_207 = _gfortran_internal_pack (&e_ndr_ra);
_209 = _gfortran_internal_pack (&e_ndr_rb);
_737 = param;
switch (_737) <default: L.59821, case 11: <L95>, case 12: L.59819, case 13: L.59820>
;; succ: 115
;; 116
;; 113
;; 114
;; basic block 113, loop depth 0
;; pred: 112
L.59819:
goto <bb 116> (<L95>);
;; succ: 116
;; basic block 114, loop depth 0
;; pred: 112
L.59820:
goto <bb 116> (<L95>);
;; succ: 116
;; basic block 115, loop depth 0
;; pred: 112
L.59821:
cp__b (&"xc/xc_pbe.F"[1]{lb: 1 sz: 1}, &C.395663, &""[1]{lb: 1 sz: 1}, 11, 0);
;; succ:
;; basic block 116, loop depth 0
;; pred: 112
;; 113
;; 114
# beta_848 = PHI <6.67250000000000065281113847959204576909542083740234375e-2(112), 6.67250000000000065281113847959204576909542083740234375e-2(113), 4.599999999999999922284388276239042170345783233642578125e-2(114)>
# kappa_888 = PHI <8.040000000000000479616346638067625463008880615234375e-1(112), 1.24500000000000010658141036401502788066864013671875e+0(113), 8.040000000000000479616346638067625463008880615234375e-1(114)>
# mu_890 = PHI <2.195164512208958029759742203168570995330810546875e-1(112), 2.195164512208958029759742203168570995330810546875e-1(113), 1.2345679012345678327022824305458925664424896240234375e-1(114)>
<L95>:
if (_34 > 0)
goto <bb 117>;
else
goto <bb 129>;
;; succ: 117
;; 129
;; basic block 117, loop depth 1
;; pred: 116
;; 128
# ii_740 = PHI <1(116), ii_2687(128)>
_741 = (integer(kind=8)) ii_740;
_742 = _741 + -1;
_743 = MEM[(real(kind=8)[0:] *)_169][_742];
M.51220_608 = MAX_EXPR <_743, 0.0>;
_744 = MEM[(real(kind=8)[0:] *)_171][_742];
M.51221_518 = MAX_EXPR <_744, 0.0>;
my_rho_747 = M.51221_518 + M.51220_608;
_748 = epsilon_rho;
if (my_rho_747 > _748)
goto <bb 118>;
else
goto <bb 128>;
;; succ: 118
;; 128
;; basic block 118, loop depth 1
;; pred: 117
M.51222_736 = MAX_EXPR <M.51220_608, 2.220446049250313080847263336181640625e-12>;
M.51223_731 = MAX_EXPR <M.51221_518, 2.220446049250313080847263336181640625e-12>;
my_rho_751 = M.51223_731 + M.51222_736;
my_norm_drho_752 = MEM[(real(kind=8)[0:] *)_173][_742];
my_norm_drhoa_753 = MEM[(real(kind=8)[0:] *)_175][_742];
my_norm_drhob_754 = MEM[(real(kind=8)[0:] *)_177][_742];
t1_755 = M.51222_736 - M.51223_731;
t2_756 = 1.0e+0 / my_rho_751;
chi_757 = t2_756 * t1_755;
t8_758 = t2_756 * 3.18309886183790691216444201927515678107738494873046875e-1;
t9_759 = __builtin_cbrt (t8_758);
rs_761 = t9_759 * 9.0856029641606961266830921886139549314975738525390625e-1;
_762 = rs_761 * 2.137000000000000010658141036401502788066864013671875e-1;
t12_763 = _762 + 1.0e+0;
t15_764 = __builtin_sqrt (rs_761);
t18_765 = rs_761 * t15_764;
t21_766 = __builtin_pow (rs_761, 2.0e+0);
t22_767 = t21_766 * 4.92939999999999989288568258416489697992801666259765625e-1;
_768 = t15_764 * 7.59569999999999989626076057902537286281585693359375e+0;
_769 = rs_761 * 3.5876000000000001222133505507372319698333740234375e+0;
_3347 = _768 + t22_767;
_771 = t18_765 * 1.6382000000000001005417971100541763007640838623046875e+0;
_3348 = _3347 + _769;
t23_773 = _3348 + _771;
_774 = 1.6081824322151103245914782746694982051849365234375e+1 / t23_773;
t27_775 = _774 + 1.0e+0;
t28_776 = __builtin_log (t27_775);
_3346 = t28_776 * 6.218200000000000116084919454806367866694927215576171875e-2;
_779 = _3346 * t12_763;
_780 = rs_761 * 2.0547999999999999598543354295543394982814788818359375e-1;
t32_781 = _780 + 1.0e+0;
t40_782 = t21_766 * 6.251700000000000034816594052244909107685089111328125e-1;
_783 = t15_764 * 1.4118900000000000005684341886080801486968994140625e+1;
_784 = rs_761 * 6.19770000000000020889956431346945464611053466796875e+0;
_3344 = _783 + t40_782;
_786 = t18_765 * 3.36620000000000008100187187665142118930816650390625e+0;
_3345 = _3344 + _784;
t41_788 = _3345 + _786;
_789 = 3.216468317787069963742396794259548187255859375e+1 / t41_788;
t45_790 = _789 + 1.0e+0;
t46_791 = __builtin_log (t45_790);
_792 = rs_761 * 1.1125000000000000166533453693773481063544750213623046875e-1;
t50_793 = _792 + 1.0e+0;
t58_794 = t21_766 * 4.967099999999999848654397283098660409450531005859375e-1;
_795 = t15_764 * 1.0356999999999999317878973670303821563720703125e+1;
_796 = rs_761 * 3.62309999999999998721023075631819665431976318359375e+0;
_3342 = _795 + t58_794;
_798 = t18_765 * 8.802600000000000424194013248779810965061187744140625e-1;
_3343 = _3342 + _796;
t59_800 = _3343 + _798;
_801 = 2.960857464321667720241748611442744731903076171875e+1 / t59_800;
t63_802 = _801 + 1.0e+0;
t64_803 = __builtin_log (t63_802);
_3341 = t64_803 * 3.37739999999999984670040475975838489830493927001953125e-2;
alpha_c_806 = _3341 * t50_793;
t70_807 = chi_757 + 1.0e+0;
t71_808 = __builtin_cbrt (t70_807);
t72_809 = t71_808 * t70_807;
t73_810 = 1.0e+0 - chi_757;
t74_811 = __builtin_cbrt (t73_810);
t75_812 = t74_811 * t73_810;
_813 = t72_809 + t75_812;
_814 = _813 + -2.0e+0;
_815 = ((_814));
f_816 = _815 * 1.9236610509315361650095610457356087863445281982421875e+0;
t77_817 = alpha_c_806 * f_816;
reassocpow_3340 = __builtin_powi (chi_757, 2);
_818 = reassocpow_3340;
reassocpow_3339 = __builtin_powi (_818, 2);
_819 = reassocpow_3339;
_820 = 1.0e+0 - _819;
_821 = ((_820));
t82_822 = _821 * 5.8482236226346462348857357937959022819995880126953125e-1;
_3338 = t46_791 * 3.1089999999999999580335696691690827719867229461669921875e-2;
_825 = _3338 * t32_781;
t84_826 = _779 - _825;
t85_827 = t84_826 * f_816;
_828 = t77_817 * t82_822;
_746 = -_779;
_829 = _828 - _779;
_830 = t85_827 * _819;
epsilon_c_unif_831 = _829 + _830;
reassocpow_3337 = __builtin_powi (t71_808, 2);
_832 = reassocpow_3337;
reassocpow_3336 = __builtin_powi (t74_811, 2);
_833 = reassocpow_3336;
_834 = _833 + _832;
phi_835 = _834 * 5.0e-1;
t91_836 = my_rho_751 * 9.869604401089357992304940125904977321624755859375e+0;
t92_837 = __builtin_cbrt (t91_836);
t93_839 = t92_837 * 4.59082296573172177200916621586657129228115081787109375e-1;
t94_840 = __builtin_sqrt (t93_839);
k_s_841 = t94_840 * 2.0e+0;
t95_842 = 2.0e+0 / _834;
t96_843 = t95_842 * my_norm_drho_752;
t97_844 = 5.0e-1 / t94_840;
t98_845 = t97_844 * t2_756;
_3335 = t98_845 * 5.0e-1;
t_847 = _3335 * t96_843;
t101_849 = beta_848 * 3.216396844291481471600491204299032688140869140625e+1;
t102_850 = epsilon_c_unif_831 * 3.216396844291481471600491204299032688140869140625e+1;
reassocpow_3334 = __builtin_powi (phi_835, 2);
_851 = reassocpow_3334;
t104_852 = _851 * phi_835;
t105_853 = 1.0e+0 / t104_852;
_854 = t102_850 * t105_853;
_855 = -_854;
t107_856 = __builtin_exp (_855);
t108_857 = t107_856 - 1.0e+0;
a_858 = t101_849 / t108_857;
t110_859 = t104_852 * 3.1090690869654900863050528414532891474664211273193359375e-2;
reassocpow_3333 = __builtin_powi (t_847, 2);
_860 = reassocpow_3333;
t112_861 = _860 * a_858;
t113_862 = t112_861 + 1.0e+0;
reassocpow_3332 = __builtin_powi (a_858, 2);
_863 = reassocpow_3332;
reassocpow_3331 = __builtin_powi (_860, 2);
_864 = reassocpow_3331;
_865 = _864 * _863;
_3330 = t112_861 + 1.0e+0;
t118_867 = _3330 + _865;
t119_868 = 1.0e+0 / t118_867;
_869 = _860 * t101_849;
_870 = t113_862 * _869;
_871 = _870 * t119_868;
t122_872 = _871 + 1.0e+0;
t123_873 = __builtin_log (t122_872);
_874 = t110_859 * t123_873;
epsilon_cgga_875 = epsilon_c_unif_831 + _874;
t125_876 = M.51222_736 * 9.869604401089357992304940125904977321624755859375e+0;
t126_877 = __builtin_cbrt (t125_876);
kf_a_878 = t126_877 * 1.8171205928321396694258282877854071557521820068359375e+0;
_880 = kf_a_878 * 2.3873241463784300453454534363118000328540802001953125e-1;
ex_unif_a_881 = -_880;
t129_882 = 5.5032120814910445716350295697338879108428955078125e-1 / t126_877;
t130_883 = t129_882 * my_norm_drhoa_753;
t131_884 = 1.0e+0 / M.51222_736;
_3329 = t131_884 * 5.0e-1;
s_a_886 = _3329 * t130_883;
reassocpow_3328 = __builtin_powi (s_a_886, 2);
_887 = reassocpow_3328;
t135_889 = 1.0e+0 / kappa_888;
_3327 = t135_889 * mu_890;
_892 = _3327 * _887;
t137_893 = _892 + 1.0e+0;
_894 = kappa_888 / t137_893;
_750 = -_894;
_3326 = kappa_888 + 1.0e+0;
fx_a_896 = _3326 - _894;
t140_897 = ex_unif_a_881 * M.51222_736;
t142_898 = M.51223_731 * 9.869604401089357992304940125904977321624755859375e+0;
t143_899 = __builtin_cbrt (t142_898);
kf_b_900 = t143_899 * 1.8171205928321396694258282877854071557521820068359375e+0;
_902 = kf_b_900 * 2.3873241463784300453454534363118000328540802001953125e-1;
ex_unif_b_903 = -_902;
t146_904 = 5.5032120814910445716350295697338879108428955078125e-1 / t143_899;
t147_905 = t146_904 * my_norm_drhob_754;
t148_906 = 1.0e+0 / M.51223_731;
_3325 = t148_906 * 5.0e-1;
s_b_908 = _3325 * t147_905;
reassocpow_3324 = __builtin_powi (s_b_908, 2);
_909 = reassocpow_3324;
_3323 = t135_889 * mu_890;
_911 = _3323 * _909;
t153_912 = _911 + 1.0e+0;
_913 = kappa_888 / t153_912;
_749 = -_913;
_3322 = kappa_888 + 1.0e+0;
fx_b_915 = _3322 - _913;
t156_916 = ex_unif_b_903 * M.51223_731;
if (_35 >= 0)
goto <bb 119>;
else
goto <bb 120>;
;; succ: 119
;; 120
;; basic block 119, loop depth 1
;; pred: 118
_917 = MEM[(real(kind=8)[0:] *)_179][_742];
_918 = scale_ex;
_919 = fx_a_896 * t140_897;
_920 = fx_b_915 * t156_916;
_921 = _920 + _919;
_922 = _921 * 2.0e+0;
_923 = ((_922));
_3321 = _918 * 5.0e-1;
_925 = _3321 * _923;
_927 = scale_ec;
_928 = my_rho_751 * _927;
_929 = _928 * epsilon_cgga_875;
_3320 = _929 + _917;
_930 = _3320 + _925;
MEM[(real(kind=8)[0:] *)_179][_742] = _930;
;; succ: 120
;; basic block 120, loop depth 1
;; pred: 118
;; 119
reassocpow_3319 = __builtin_powi (my_rho_751, 2);
_931 = reassocpow_3319;
t163_932 = 1.0e+0 / _931;
t164_933 = t163_932 * t1_755;
chirhoa_934 = t2_756 - t164_933;
reassocpow_3318 = __builtin_powi (t9_759, 2);
_935 = reassocpow_3318;
_937 = 1.156814898173240901968483740347437560558319091796875e+0 / _935;
_3317 = t163_932 * 8.333333333333332870740406406184774823486804962158203125e-2;
_939 = _3317 * _937;
rsrhoa_940 = -_939;
reassocpow_3316 = __builtin_powi (t23_773, 2);
_941 = reassocpow_3316;
t176_942 = 1.0e+0 / _941;
t177_943 = t176_942 * t12_763;
t178_944 = 1.0e+0 / t15_764;
t179_945 = t178_944 * 7.59569999999999989626076057902537286281585693359375e+0;
t183_946 = t15_764 * 1.6382000000000001005417971100541763007640838623046875e+0;
t187_947 = 1.1006424162982091363716108389780856668949127197265625e+0 / t9_759;
_949 = t179_945 * 5.0e-1;
_953 = t183_946 * 1.5e+0;
_955 = t22_767 * 2.0e+0;
_957 = _955 * t187_947;
_3314 = _949 + _953;
_3315 = _3314 + 3.5876000000000001222133505507372319698333740234375e+0;
_3312 = _3315 + _957;
_3313 = _3312 * rsrhoa_940;
t190_958 = _3313;
t191_959 = 1.0e+0 / t27_775;
t192_960 = t190_958 * t191_959;
_961 = t192_960 * t177_943;
_3309 = t28_776 * 1.32882933999999997692897935053224500734359025955200195312e-2;
_964 = _3309 * rsrhoa_940;
e_c_u_0rhoa_965 = _961 - _964;
reassocpow_3308 = __builtin_powi (t41_788, 2);
_966 = reassocpow_3308;
t199_967 = 1.0e+0 / _966;
t200_968 = t199_967 * t32_781;
t201_969 = t178_944 * 1.4118900000000000005684341886080801486968994140625e+1;
t205_970 = t15_764 * 3.36620000000000008100187187665142118930816650390625e+0;
_972 = t201_969 * 5.0e-1;
_976 = t205_970 * 1.5e+0;
_978 = t40_782 * 2.0e+0;
_980 = _978 * t187_947;
_3306 = _972 + _976;
_3307 = _3306 + 6.19770000000000020889956431346945464611053466796875e+0;
_3304 = _3307 + _980;
_3305 = _3304 * rsrhoa_940;
t211_981 = _3305;
t212_982 = 1.0e+0 / t45_790;
t213_983 = t211_981 * t212_982;
_984 = t213_983 * t200_968;
_3301 = t46_791 * 6.38837320000000020991937077496913843788206577301025390625e-3;
_987 = _3301 * rsrhoa_940;
e_c_u_1rhoa_988 = _984 - _987;
reassocpow_3300 = __builtin_powi (t59_800, 2);
_989 = reassocpow_3300;
t220_990 = 1.0e+0 / _989;
t221_991 = t220_990 * t50_793;
t222_992 = t178_944 * 1.0356999999999999317878973670303821563720703125e+1;
t226_993 = t15_764 * 8.802600000000000424194013248779810965061187744140625e-1;
_995 = t222_992 * 5.0e-1;
_999 = t226_993 * 1.5e+0;
_1001 = t58_794 * 2.0e+0;
_1003 = _1001 * t187_947;
_3298 = _995 + _999;
_3299 = _3298 + 3.62309999999999998721023075631819665431976318359375e+0;
_3296 = _3299 + _1003;
_3297 = _3296 * rsrhoa_940;
t232_1004 = _3297;
t233_1005 = 1.0e+0 / t63_802;
t234_1006 = t232_1004 * t233_1005;
_3293 = t64_803 * 3.75735749999999996823207837337577075231820344924926757812e-3;
_1009 = _3293 * rsrhoa_940;
_1010 = t234_1006 * t221_991;
alpha_crhoa_1011 = _1009 - _1010;
_1012 = t71_808 - t74_811;
_3292 = chirhoa_934 * 1.3333333333333332593184650249895639717578887939453125e+0;
_1014 = _3292 * _1012;
_1015 = ((_1014));
frhoa_1016 = _1015 * 1.9236610509315361650095610457356087863445281982421875e+0;
t240_1017 = alpha_crhoa_1011 * f_816;
t242_1018 = alpha_c_806 * frhoa_1016;
_3283 = t240_1017 + t242_1018;
_3284 = _3283 * t82_822;
t244_1019 = _818 * chi_757;
t245_1020 = t244_1019 * 5.8482236226346462348857357937959022819995880126953125e-1;
t246_1021 = t245_1020 * chirhoa_934;
_3291 = t246_1021 * 4.0e+0;
t248_1023 = _3291 * t77_817;
t249_1024 = e_c_u_1rhoa_988 - e_c_u_0rhoa_965;
t250_1025 = t249_1024 * f_816;
t252_1026 = t84_826 * frhoa_1016;
_3285 = t250_1025 + t252_1026;
_3286 = _3285 * _819;
t254_1027 = t244_1019 * chirhoa_934;
_3290 = t254_1027 * 4.0e+0;
t256_1029 = _3290 * t85_827;
_745 = -t248_1023;
_3287 = t256_1029 - t248_1023;
_3288 = _3287 + e_c_u_0rhoa_965;
_3289 = _3288 + _3284;
epsilon_c_unifrhoa_1039 = _3289 + _3286;
t257_1040 = 1.0e+0 / t71_808;
t259_1041 = 1.0e+0 / t74_811;
_1042 = t257_1040 - t259_1041;
_3282 = chirhoa_934 * 3.33333333333333314829616256247390992939472198486328125e-1;
phirhoa_1044 = _3282 * _1042;
reassocpow_3281 = __builtin_powi (t92_837, 2);
_1045 = reassocpow_3281;
k_frhoa_1046 = 4.74481090219174372890620361431501805782318115234375e+0 / _1045;
t266_1047 = 1.0e+0 / t94_840;
_3280 = t266_1047 * 3.18309886183790691216444201927515678107738494873046875e-1;
k_srhoa_1049 = _3280 * k_frhoa_1046;
t268_1050 = 1.0e+0 / _851;
t269_1051 = t268_1050 * my_norm_drho_752;
reassocpow_3279 = __builtin_powi (k_s_841, 2);
_1052 = reassocpow_3279;
t273_1053 = 1.0e+0 / _1052;
t274_1054 = t273_1053 * t2_756;
t277_1055 = t97_844 * t163_932;
_3276 = t277_1055 * 5.0e-1;
_1057 = t269_1051 * t98_845;
_3278 = phirhoa_1044 * 5.0e-1;
_1059 = _3278 * _1057;
_1061 = t274_1054 * t96_843;
_3277 = k_srhoa_1049 * 5.0e-1;
_1063 = _3277 * _1061;
_3349 = _1059 + _1063;
_1065 = _3276 * t96_843;
_3361 = _3349 + _1065;
trhoa_1066 = -_3361;
reassocpow_3275 = __builtin_powi (t108_857, 2);
_1067 = reassocpow_3275;
t281_1068 = 1.0e+0 / _1067;
t282_1069 = epsilon_c_unifrhoa_1039 * 3.216396844291481471600491204299032688140869140625e+1;
reassocpow_3274 = __builtin_powi (_851, 2);
_1070 = reassocpow_3274;
t285_1071 = 1.0e+0 / _1070;
t286_1072 = t285_1071 * phirhoa_1044;
_3273 = t286_1072 * 3.0e+0;
_1074 = _3273 * t102_850;
_1075 = t282_1069 * t105_853;
t289_1076 = _1074 - _1075;
_1077 = t281_1068 * t101_849;
_1078 = t289_1076 * _1077;
_1079 = _1078 * t107_856;
arhoa_1080 = -_1079;
t293_1081 = _851 * 3.1090690869654900863050528414532891474664211273193359375e-2;
t294_1082 = phirhoa_1044 * t123_873;
t297_1083 = t_847 * t101_849;
t298_1084 = t119_868 * t113_862;
t299_1085 = t298_1084 * trhoa_1066;
t302_1086 = arhoa_1080 * _860;
t303_1087 = t_847 * a_858;
_3272 = t303_1087 * 2.0e+0;
t305_1089 = _3272 * trhoa_1066;
t306_1090 = t302_1086 + t305_1089;
reassocpow_3271 = __builtin_powi (t118_867, 2);
_1091 = reassocpow_3271;
t312_1092 = 1.0e+0 / _1091;
t313_1093 = t312_1092 * t113_862;
t314_1094 = _864 * a_858;
t317_1095 = _860 * t_847;
t318_1096 = t317_1095 * _863;
_3270 = t314_1094 * 2.0e+0;
_1098 = _3270 * arhoa_1080;
_1099 = t306_1090 + _1098;
_3269 = t318_1096 * 4.0e+0;
_1101 = _3269 * trhoa_1066;
t321_1102 = _1099 + _1101;
_3268 = t297_1083 * 2.0e+0;
_1104 = _3268 * t299_1085;
_1105 = t306_1090 * _869;
_1106 = _1105 * t119_868;
_1107 = _1106 + _1104;
_1108 = t313_1093 * _869;
_1109 = t321_1102 * _1108;
_738 = -_1109;
t324_1110 = _1107 - _1109;
t325_1111 = 1.0e+0 / t122_872;
t326_1112 = t324_1110 * t325_1111;
_1113 = t293_1081 * t294_1082;
_1114 = _1113 * 3.0e+0;
_1115 = epsilon_c_unifrhoa_1039 + _1114;
_1116 = t326_1112 * t110_859;
epsilon_cggarhoa_1117 = _1115 + _1116;
reassocpow_3267 = __builtin_powi (t126_877, 2);
_1118 = reassocpow_3267;
kf_arhoa_1119 = 5.978087133442063105803754297085106372833251953125e+0 / _1118;
_1121 = kf_arhoa_1119 * 2.3873241463784300453454534363118000328540802001953125e-1;
ex_unif_arhoa_1122 = -_1121;
reassocpow_3266 = __builtin_powi (kf_a_878, 2);
_1123 = reassocpow_3266;
t336_1124 = 1.0e+0 / _1123;
t337_1125 = t336_1124 * my_norm_drhoa_753;
reassocpow_3265 = __builtin_powi (M.51222_736, 2);
_1126 = reassocpow_3265;
t341_1127 = 1.0e+0 / _1126;
_1128 = t337_1125 * t131_884;
_3264 = kf_arhoa_1119 * 5.0e-1;
_1130 = _3264 * _1128;
_3263 = t341_1127 * 5.0e-1;
_1133 = _3263 * t130_883;
_3350 = _1130 + _1133;
s_arhoa_1134 = -_3350;
reassocpow_3262 = __builtin_powi (t137_893, 2);
_1135 = reassocpow_3262;
_1136 = 1.0e+0 / _1135;
t346_1137 = _1136 * mu_890;
_1138 = t346_1137 * s_a_886;
_3261 = s_arhoa_1134 * 2.0e+0;
fx_arhoa_1140 = _3261 * _1138;
t350_1141 = ex_unif_arhoa_1122 * M.51222_736;
if (_39 != 0)
goto <bb 121>;
else
goto <bb 122>;
;; succ: 121
;; 122
;; basic block 121, loop depth 1
;; pred: 120
_1145 = MEM[(real(kind=8)[0:] *)_181][_742];
_1146 = scale_ex;
_702 = -_880;
_1147 = t350_1141 - _880;
_1148 = fx_a_896 * _1147;
_1149 = fx_arhoa_1140 * t140_897;
_1150 = _1149 + _1148;
_1151 = _1150 * 2.0e+0;
_1152 = ((_1151));
_3260 = _1146 * 5.0e-1;
_1154 = _3260 * _1152;
_1155 = _1154 + _1145;
_1156 = scale_ec;
_1157 = epsilon_cggarhoa_1117 * my_rho_751;
_1158 = _1157 + epsilon_cgga_875;
_1159 = ((_1158));
_1160 = _1159 * _1156;
_1161 = _1155 + _1160;
MEM[(real(kind=8)[0:] *)_181][_742] = _1161;
;; succ: 122
;; basic block 122, loop depth 1
;; pred: 120
;; 121
_3351 = t2_756 + t164_933;
chirhob_1163 = -_3351;
_3259 = t191_959 * t177_943;
_1165 = _3259 * t190_958;
e_c_u_0rhob_1166 = _1165 - _964;
_3258 = t212_982 * t200_968;
_1168 = _3258 * t211_981;
e_c_u_1rhob_1169 = _1168 - _987;
_3257 = t233_1005 * t221_991;
_1171 = _3257 * t232_1004;
alpha_crhob_1172 = _1009 - _1171;
_3256 = chirhob_1163 * 1.3333333333333332593184650249895639717578887939453125e+0;
_1174 = _3256 * _1012;
_1175 = ((_1174));
frhob_1176 = _1175 * 1.9236610509315361650095610457356087863445281982421875e+0;
t403_1177 = alpha_crhob_1172 * f_816;
t405_1178 = alpha_c_806 * frhob_1176;
_3247 = t403_1177 + t405_1178;
_3248 = _3247 * t82_822;
t407_1179 = t245_1020 * chirhob_1163;
_3255 = t407_1179 * 4.0e+0;
t409_1181 = _3255 * t77_817;
t410_1182 = e_c_u_1rhob_1169 - e_c_u_0rhob_1166;
t411_1183 = t410_1182 * f_816;
t413_1184 = t84_826 * frhob_1176;
_3249 = t411_1183 + t413_1184;
_3250 = _3249 * _819;
t415_1185 = chirhob_1163 * t244_1019;
_3254 = t415_1185 * 4.0e+0;
t417_1187 = _3254 * t85_827;
_2735 = -t409_1181;
_3251 = t417_1187 - t409_1181;
_3252 = _3251 + e_c_u_0rhob_1166;
_3253 = _3252 + _3248;
epsilon_c_unifrhob_1197 = _3253 + _3250;
_3246 = chirhob_1163 * 3.33333333333333314829616256247390992939472198486328125e-1;
phirhob_1199 = _3246 * _1042;
_3245 = phirhob_1199 * 5.0e-1;
_1201 = _3245 * _1057;
_3352 = _1201 + _1063;
_3362 = _3352 + _1065;
trhob_1204 = -_3362;
t427_1205 = epsilon_c_unifrhob_1197 * 3.216396844291481471600491204299032688140869140625e+1;
t429_1206 = t285_1071 * phirhob_1199;
_3244 = t429_1206 * 3.0e+0;
_1208 = _3244 * t102_850;
_1209 = t427_1205 * t105_853;
t432_1210 = _1208 - _1209;
_1211 = t432_1210 * _1077;
_1212 = _1211 * t107_856;
arhob_1213 = -_1212;
t436_1214 = phirhob_1199 * t123_873;
t439_1215 = t298_1084 * trhob_1204;
t442_1216 = arhob_1213 * _860;
_3243 = t303_1087 * 2.0e+0;
t444_1218 = _3243 * trhob_1204;
t445_1219 = t442_1216 + t444_1218;
_3242 = t314_1094 * 2.0e+0;
_1221 = _3242 * arhob_1213;
_1222 = t445_1219 + _1221;
_3241 = t318_1096 * 4.0e+0;
_1224 = _3241 * trhob_1204;
t453_1225 = _1222 + _1224;
_3240 = t297_1083 * 2.0e+0;
_1227 = _3240 * t439_1215;
_1228 = t445_1219 * _869;
_1229 = _1228 * t119_868;
_1230 = _1229 + _1227;
_1231 = t453_1225 * _1108;
_936 = -_1231;
t456_1232 = _1230 - _1231;
t457_1233 = t456_1232 * t325_1111;
_1234 = t293_1081 * t436_1214;
_1235 = _1234 * 3.0e+0;
_1236 = epsilon_c_unifrhob_1197 + _1235;
_1237 = t457_1233 * t110_859;
epsilon_cggarhob_1238 = _1236 + _1237;
reassocpow_3239 = __builtin_powi (t143_899, 2);
_1239 = reassocpow_3239;
kf_brhob_1240 = 5.978087133442063105803754297085106372833251953125e+0 / _1239;
_1242 = kf_brhob_1240 * 2.3873241463784300453454534363118000328540802001953125e-1;
ex_unif_brhob_1243 = -_1242;
reassocpow_3238 = __builtin_powi (kf_b_900, 2);
_1244 = reassocpow_3238;
t467_1245 = 1.0e+0 / _1244;
t468_1246 = t467_1245 * my_norm_drhob_754;
reassocpow_3237 = __builtin_powi (M.51223_731, 2);
_1247 = reassocpow_3237;
t472_1248 = 1.0e+0 / _1247;
_1249 = t468_1246 * t148_906;
_3236 = kf_brhob_1240 * 5.0e-1;
_1251 = _3236 * _1249;
_3235 = t472_1248 * 5.0e-1;
_1254 = _3235 * t147_905;
_3353 = _1251 + _1254;
s_brhob_1255 = -_3353;
reassocpow_3234 = __builtin_powi (t153_912, 2);
_1256 = reassocpow_3234;
_1257 = 1.0e+0 / _1256;
t477_1258 = _1257 * mu_890;
_1259 = t477_1258 * s_b_908;
_3233 = s_brhob_1255 * 2.0e+0;
fx_brhob_1261 = _3233 * _1259;
t481_1262 = ex_unif_brhob_1243 * M.51223_731;
if (_39 != 0)
goto <bb 123>;
else
goto <bb 124>;
;; succ: 123
;; 124
;; basic block 123, loop depth 1
;; pred: 122
_1263 = MEM[(real(kind=8)[0:] *)_183][_742];
_1264 = scale_ex;
_701 = -_902;
_1265 = t481_1262 - _902;
_1266 = fx_b_915 * _1265;
_1267 = fx_brhob_1261 * t156_916;
_1268 = _1267 + _1266;
_1269 = _1268 * 2.0e+0;
_1270 = ((_1269));
_3232 = _1264 * 5.0e-1;
_1272 = _3232 * _1270;
_1273 = _1272 + _1263;
_1274 = scale_ec;
_1275 = epsilon_cggarhob_1238 * my_rho_751;
_1276 = _1275 + epsilon_cgga_875;
_1277 = ((_1276));
_1278 = _1277 * _1274;
_1279 = _1273 + _1278;
MEM[(real(kind=8)[0:] *)_183][_742] = _1279;
;; succ: 124
;; basic block 124, loop depth 1
;; pred: 122
;; 123
t488_1280 = t95_842 * t97_844;
_3231 = t2_756 * 5.0e-1;
tnorm_drho_1282 = _3231 * t488_1280;
t494_1284 = tnorm_drho_1282 * a_858;
_3228 = t494_1284 * t101_849;
_1286 = t303_1087 * 2.0e+0;
_1288 = t318_1096 * 4.0e+0;
_3229 = _1288 + _1286;
_3230 = _3229 * tnorm_drho_1282;
t502_1289 = _3230;
_1290 = t298_1084 * t297_1083;
_1291 = _1290 * tnorm_drho_1282;
_1292 = _3228 * t317_1095;
_1293 = t119_868 * _1292;
_1294 = _1291 + _1293;
_1295 = _1294 * 2.0e+0;
_1296 = _1108 * t502_1289;
t505_1297 = _1295 - _1296;
t506_1298 = t505_1297 * t325_1111;
hnorm_drho_1299 = t506_1298 * t110_859;
if (_39 != 0)
goto <bb 125>;
else
goto <bb 176>;
;; succ: 125
;; 176
;; basic block 125, loop depth 1
;; pred: 124
_1300 = MEM[(real(kind=8)[0:] *)_195][_742];
_1301 = scale_ec;
_1302 = my_rho_751 * _1301;
_1303 = _1302 * hnorm_drho_1299;
_1304 = _1303 + _1300;
MEM[(real(kind=8)[0:] *)_195][_742] = _1304;
_3227 = t131_884 * 5.0e-1;
s_anorm_drhoa_578 = _3227 * t129_882;
_3226 = s_anorm_drhoa_578 * 2.0e+0;
fx_anorm_drhoa_730 = _3226 * _1138;
_1309 = MEM[(real(kind=8)[0:] *)_197][_742];
_1310 = scale_ex;
_1311 = t140_897 * _1310;
_1312 = _1311 * fx_anorm_drhoa_730;
_1313 = _1312 + _1309;
MEM[(real(kind=8)[0:] *)_197][_742] = _1313;
_3225 = t148_906 * 5.0e-1;
s_bnorm_drhob_733 = _3225 * t146_904;
_3224 = s_bnorm_drhob_733 * 2.0e+0;
fx_bnorm_drhob_735 = _3224 * _1259;
_1318 = MEM[(real(kind=8)[0:] *)_199][_742];
_1319 = _1310;
_1320 = t156_916 * _1310;
_1321 = _1320 * fx_bnorm_drhob_735;
_1322 = _1321 + _1318;
MEM[(real(kind=8)[0:] *)_199][_742] = _1322;
;; succ: 126
;; basic block 126, loop depth 1
;; pred: 176
;; 125
# s_anorm_drhoa_716 = PHI <s_anorm_drhoa_563(176), s_anorm_drhoa_578(125)>
# fx_anorm_drhoa_717 = PHI <fx_anorm_drhoa_533(176), fx_anorm_drhoa_730(125)>
# s_bnorm_drhob_718 = PHI <s_bnorm_drhob_725(176), s_bnorm_drhob_733(125)>
# fx_bnorm_drhob_719 = PHI <fx_bnorm_drhob_715(176), fx_bnorm_drhob_735(125)>
if (_47 != 0)
goto <bb 127>;
else
goto <bb 128>;
;; succ: 127
;; 128
;; basic block 127, loop depth 1
;; pred: 126
_1326 = _931 * my_rho_751;
t518_1327 = 1.0e+0 / _1326;
t519_1328 = t518_1327 * t1_755;
_2696 = -t163_932;
_1329 = t519_1328 - t163_932;
chirhoarhoa_1330 = _1329 * 2.0e+0;
_3219 = t518_1327 * 1.666666666666666574148081281236954964697360992431640625e-1;
_1333 = _3219 * _937;
_3216 = t8_758 * 1.8e+1;
reassocpow_3215 = __builtin_powi (_931, 2);
_3217 = _3216 * _935;
_1336 = reassocpow_3215 * _3217;
_1337 = 3.68225618573237711839141184100299142301082611083984375e-1 / _1336;
rsrhoarhoa_1338 = _1333 - _1337;
t536_1339 = rsrhoa_940 * 2.137000000000000010658141036401502788066864013671875e-1;
_1342 = _941 * t23_773;
t543_1343 = t12_763 / _1342;
reassocpow_3212 = __builtin_powi (t190_958, 2);
_1344 = reassocpow_3212;
t548_1345 = 1.0e+0 / t18_765;
reassocpow_3211 = __builtin_powi (_939, 2);
_1347 = reassocpow_3211;
reassocpow_3210 = __builtin_powi (rs_761, 2);
_1349 = reassocpow_3210;
t564_1350 = 1.0e+0 / _1349;
reassocpow_3209 = __builtin_powi (_941, 2);
_1351 = reassocpow_3209;
t578_1352 = t12_763 / _1351;
reassocpow_3208 = __builtin_powi (t27_775, 2);
_1353 = reassocpow_3208;
t580_1354 = 1.0e+0 / _1353;
_3206 = t536_1339 * t176_942;
_3207 = _3206 * t191_959;
_1355 = _3207 * t190_958;
_3203 = t28_776 * 6.64414669999999988464489675266122503671795129776000976562e-3;
_1357 = _3203 * rsrhoarhoa_1338;
_1358 = _1355 - _1357;
_3202 = t543_1343 * t191_959;
_1360 = _3202 * _1344;
_2695 = -_1360;
_1361 = _1358 - _1360;
_1362 = _1361 * 2.0e+0;
_1364 = t179_945 * 5.0e-1;
_3201 = t548_1345 * 1.8989249999999999740651901447563432157039642333984375e+0;
_1366 = _3201 * _1347;
_1317 = -_1366;
_3200 = t178_944 * 1.2286500000000000198951966012828052043914794921875e+0;
_1371 = _3200 * _1347;
_3199 = _1371 - _1366;
_1374 = t183_946 * 1.5e+0;
_3196 = _1364 + _1374;
_3197 = _3196 + 3.5876000000000001222133505507372319698333740234375e+0;
_3198 = _3197 * rsrhoarhoa_1338;
_1375 = _3199 + _3198;
_1376 = t22_767 * 4.0e+0;
_3195 = t564_1350 * _1376;
_1378 = _3195 * _1347;
_3194 = _955 * t187_947;
_1381 = _3194 * rsrhoarhoa_1338;
_3191 = _1381 + _1378;
_3193 = t564_1350 * _955;
_1384 = _3193 * _1347;
_1316 = -_1384;
_3192 = _3191 - _1384;
_1385 = _3192 + _1375;
_1386 = ((_1385));
_3190 = t191_959 * t177_943;
_1388 = _3190 * _1386;
_3188 = t578_1352 * 1.6081824322151103245914782746694982051849365234375e+1;
_3189 = _3188 * t580_1354;
_1393 = _3189 * _1344;
_3187 = _1362 + _1393;
e_c_u_0rhoarhoa_1394 = _3187 + _1388;
t588_1395 = rsrhoa_940 * 2.0547999999999999598543354295543394982814788818359375e-1;
_1398 = _966 * t41_788;
t595_1399 = t32_781 / _1398;
reassocpow_3186 = __builtin_powi (t211_981, 2);
_1400 = reassocpow_3186;
reassocpow_3185 = __builtin_powi (_966, 2);
_1403 = reassocpow_3185;
t626_1404 = t32_781 / _1403;
reassocpow_3184 = __builtin_powi (t45_790, 2);
_1405 = reassocpow_3184;
t628_1406 = 1.0e+0 / _1405;
t636_1407 = rsrhoa_940 * 1.1125000000000000166533453693773481063544750213623046875e-1;
_1410 = _989 * t59_800;
t643_1411 = t50_793 / _1410;
reassocpow_3183 = __builtin_powi (t232_1004, 2);
_1412 = reassocpow_3183;
reassocpow_3182 = __builtin_powi (_989, 2);
_1415 = reassocpow_3182;
t674_1416 = t50_793 / _1415;
reassocpow_3181 = __builtin_powi (t63_802, 2);
_1417 = reassocpow_3181;
t676_1418 = 1.0e+0 / _1417;
t681_1419 = 1.0e+0 / _832;
reassocpow_3180 = __builtin_powi (chirhoa_934, 2);
_1420 = reassocpow_3180;
t687_1421 = 1.0e+0 / _833;
_1423 = t681_1419 * 4.444444444444444197728216749965213239192962646484375e-1;
_3179 = chirhoarhoa_1330 * 1.3333333333333332593184650249895639717578887939453125e+0;
_1425 = _3179 * t71_808;
_1428 = t687_1421 * 4.444444444444444197728216749965213239192962646484375e-1;
_3175 = _1428 + _1423;
_3176 = _3175 * _1420;
_3178 = chirhoarhoa_1330 * 1.3333333333333332593184650249895639717578887939453125e+0;
_1431 = _3178 * t74_811;
_1315 = -_1431;
_3177 = _1425 - _1431;
_1432 = _3177 + _3176;
_1433 = ((_1432));
frhoarhoa_1434 = _1433 * 1.9236610509315361650095610457356087863445281982421875e+0;
t711_1435 = _818 * 5.8482236226346462348857357937959022819995880126953125e-1;
_3173 = t588_1395 * t199_967;
_3174 = _3173 * t212_982;
_1436 = _3174 * t211_981;
_3170 = t46_791 * 3.19418660000000010495968538748456921894103288650512695312e-3;
_1438 = _3170 * rsrhoarhoa_1338;
_1439 = _1436 - _1438;
_3169 = t595_1399 * t212_982;
_1441 = _3169 * _1400;
_1314 = -_1441;
_1442 = _1439 - _1441;
_1443 = _1442 * 2.0e+0;
_1445 = t201_969 * 5.0e-1;
_3168 = t548_1345 * 3.52972500000000000142108547152020037174224853515625e+0;
_1447 = _3168 * _1347;
_1308 = -_1447;
_3167 = t178_944 * 2.52465000000000028279600883251987397670745849609375e+0;
_1452 = _3167 * _1347;
_3166 = _1452 - _1447;
_1455 = t205_970 * 1.5e+0;
_3163 = _1445 + _1455;
_3164 = _3163 + 6.19770000000000020889956431346945464611053466796875e+0;
_3165 = _3164 * rsrhoarhoa_1338;
_1456 = _3166 + _3165;
_1457 = t40_782 * 4.0e+0;
_3162 = t564_1350 * _1457;
_1459 = _3162 * _1347;
_3161 = _978 * t187_947;
_1462 = _3161 * rsrhoarhoa_1338;
_3158 = _1462 + _1459;
_3160 = t564_1350 * _978;
_1465 = _3160 * _1347;
_1307 = -_1465;
_3159 = _3158 - _1465;
_1466 = _3159 + _1456;
_1467 = ((_1466));
_3157 = t212_982 * t200_968;
_1469 = _3157 * _1467;
_3155 = t626_1404 * 3.216468317787069963742396794259548187255859375e+1;
_3156 = _3155 * t628_1406;
_1474 = _3156 * _1400;
_3154 = _1443 + _1474;
_1475 = _3154 + _1469;
_1306 = -e_c_u_0rhoarhoa_1394;
_1476 = _1475 - e_c_u_0rhoarhoa_1394;
_1477 = ((_1476));
_3153 = f_816 * _819;
_1479 = _3153 * _1477;
_1480 = t77_817 * t245_1020;
_3152 = chirhoarhoa_1330 * 4.0e+0;
_1482 = _3152 * _1480;
_1305 = -_1482;
_3151 = frhoa_1016 * _819;
_1485 = _3151 * t249_1024;
_3150 = t254_1027 * 4.0e+0;
_1488 = _3150 * t250_1025;
_1492 = t84_826 * _819;
_3149 = t254_1027 * 4.0e+0;
_1495 = _3149 * t252_1026;
_3105 = _1552 * 2.0e+0;
_3104 = _1495 * 2.0e+0;
_3108 = _3105 + _3104;
_3106 = _1485 * 2.0e+0;
_3109 = _3108 + _3106;
_3107 = _1488 * 2.0e+0;
_3110 = _3109 + _3107;
_1499 = t85_827 * _818;
_3148 = _1420 * 1.2e+1;
_1501 = _3148 * _1499;
_1503 = t85_827 * t244_1019;
_3147 = chirhoarhoa_1330 * 4.0e+0;
_1505 = _3147 * _1503;
_3146 = t64_803 * 1.87867874999999998411603918668788537615910172462463378906e-3;
_1508 = _3146 * rsrhoarhoa_1338;
_3144 = t636_1407 * t220_990;
_3145 = _3144 * t233_1005;
_1509 = _3145 * t232_1004;
_623 = -_1509;
_3141 = t643_1411 * t233_1005;
_1512 = _3141 * _1412;
_3140 = _1512 + _1508;
_1513 = _3140 - _1509;
_1514 = _1513 * 2.0e+0;
_1516 = t222_992 * 5.0e-1;
_3139 = t548_1345 * 2.58924999999999982946974341757595539093017578125e+0;
_1518 = _3139 * _1347;
_668 = -_1518;
_3138 = t178_944 * 6.601950000000000873257022249163128435611724853515625e-1;
_1523 = _3138 * _1347;
_3137 = _1523 - _1518;
_1526 = t226_993 * 1.5e+0;
_3134 = _1516 + _1526;
_3135 = _3134 + 3.62309999999999998721023075631819665431976318359375e+0;
_3136 = _3135 * rsrhoarhoa_1338;
_1527 = _3137 + _3136;
_1528 = t58_794 * 4.0e+0;
_3133 = t564_1350 * _1528;
_1530 = _3133 * _1347;
_3132 = _1001 * t187_947;
_1533 = _3132 * rsrhoarhoa_1338;
_3129 = _1533 + _1530;
_3131 = t564_1350 * _1001;
_1536 = _3131 * _1347;
_698 = -_1536;
_3130 = _3129 - _1536;
_1537 = _3130 + _1527;
_1538 = ((_1537));
_3128 = t233_1005 * t221_991;
_1540 = _3128 * _1538;
_1541 = _1514 - _1540;
_3126 = t674_1416 * 2.960857464321667720241748611442744731903076171875e+1;
_3127 = _3126 * t676_1418;
_1545 = _3127 * _1412;
_1546 = _1541 - _1545;
_1547 = ((_1546));
_3125 = f_816 * t82_822;
_1549 = _3125 * _1547;
_1550 = _1549 + e_c_u_0rhoarhoa_1394;
_3124 = frhoa_1016 * t82_822;
_1552 = _3124 * alpha_crhoa_1011;
_3123 = t246_1021 * 4.0e+0;
_1555 = _3123 * t240_1017;
_105 = -_1555;
_1559 = alpha_c_806 * t82_822;
_3102 = _1559 + _1492;
_3103 = frhoarhoa_1434 * _3102;
_3122 = t246_1021 * 4.0e+0;
_1562 = _3122 * t242_1018;
_117 = -_1562;
_3111 = _3110 - _1562;
_123 = -_1555;
_129 = -_1562;
_3112 = _3111 - _1562;
_1566 = t711_1435 * t77_817;
_3121 = _1420 * 1.2e+1;
_1568 = _3121 * _1566;
_135 = -_1568;
_3113 = _3112 - _1482;
_3114 = _3113 + _1501;
_3115 = _3114 + _1505;
_3116 = _3115 - _1568;
_3117 = _3116 + _3103;
_3118 = _3117 - _1555;
_3119 = _3118 - _1555;
_3120 = _3119 + _1550;
epsilon_c_unifrhoarhoa_1570 = _3120 + _1479;
t750_1571 = 1.0e+0 / t72_809;
t755_1572 = 1.0e+0 / t75_812;
_3093 = chirhoarhoa_1330 * 3.33333333333333314829616256247390992939472198486328125e-1;
_1574 = _3093 * t257_1040;
_3092 = _1420 * 1.11111111111111104943205418749130330979824066162109375e-1;
_1576 = _3092 * t750_1571;
_1577 = _1574 - _1576;
_3091 = _1420 * 1.11111111111111104943205418749130330979824066162109375e-1;
_1579 = _3091 * t755_1572;
_1580 = _1577 - _1579;
_3090 = chirhoarhoa_1330 * 3.33333333333333314829616256247390992939472198486328125e-1;
_1582 = _3090 * t259_1041;
phirhoarhoa_1583 = _1580 - _1582;
_1584 = _1045 * t91_836;
_1585 = 3.121960437507227226205941406078636646270751953125e+1 / _1584;
k_frhoarhoa_1586 = -_1585;
_1587 = t93_839 * t94_840;
t767_1588 = 1.0e+0 / _1587;
_3089 = t97_844 * my_norm_drho_752;
t775_1591 = _3089 * t105_853;
t776_1592 = phirhoa_1044 * t2_756;
t779_1593 = t269_1051 * t273_1053;
_1594 = t269_1051 * t277_1055;
_3088 = phirhoa_1044 * 5.0e-1;
t785_1596 = _3088 * _1594;
t789_1597 = k_srhoa_1049 * t2_756;
_1598 = _1052 * k_s_841;
t795_1599 = t96_843 / _1598;
_3085 = t163_932 * 5.0e-1;
_3086 = _3085 * t273_1053;
_3087 = _3086 * t96_843;
t801_1603 = _3087 * k_srhoa_1049;
_3084 = t97_844 * t518_1327;
t812_1605 = _3084 * t96_843;
_1606 = t775_1591 * t776_1592;
_3082 = k_srhoa_1049 * 5.0e-1;
_3083 = _3082 * t776_1592;
_1610 = _3083 * t779_1593;
_1611 = _1610 + t785_1596;
_1613 = _1057 * phirhoarhoa_1583;
_1614 = _1613 * 5.0e-1;
_141 = -_1614;
_1616 = t779_1593 * t789_1597;
_1618 = _1616 * 5.0e-1;
_3068 = _1618 + _1606;
_3069 = _3068 * phirhoa_1044;
_3070 = t801_1603 * 2.0e+0;
_3071 = t812_1605 + _3070;
_1620 = t789_1597 * t795_1599;
_1621 = _1620 * k_srhoa_1049;
_3072 = _3071 + _1621;
_3073 = _3072 + t785_1596;
_3081 = t266_1047 * -3.18309886183790691216444201927515678107738494873046875e-1;
_1625 = _3081 * _1585;
reassocpow_3078 = __builtin_powi (k_frhoa_1046, 2);
_3079 = t767_1588 * 5.06605918211688877050846713245846331119537353515625e-2;
_1628 = reassocpow_3078 * _3079;
_1629 = _1625 - _1628;
_1630 = ((_1629));
_3077 = _1061 * 5.0e-1;
_1632 = _3077 * _1630;
_147 = -_1632;
_3074 = _3073 - _1614;
_3075 = _3074 + _1611;
_3076 = _3075 + _3069;
trhoarhoa_1636 = _3076 - _1632;
_1637 = _1067 * t108_857;
t820_1638 = t101_849 / _1637;
reassocpow_3067 = __builtin_powi (t107_856, 2);
_1639 = reassocpow_3067;
_3066 = t820_1638 * _1639;
_1641 = _1070 * phi_835;
t839_1642 = 1.0e+0 / _1641;
t840_1643 = t839_1642 * phirhoa_1044;
_1644 = _3066 * t289_1076;
_3065 = t289_1076 * 2.0e+0;
_1646 = _3065 * _1644;
_3064 = t286_1072 * 3.0e+0;
_1648 = _3064 * t282_1069;
_3063 = t105_853 * 3.216396844291481471600491204299032688140869140625e+1;
_1650 = _3063 * epsilon_c_unifrhoarhoa_1570;
_153 = -_1650;
_3058 = _1648 * 2.0e+0;
_1653 = t840_1643 * t102_850;
_3062 = phirhoa_1044 * 1.2e+1;
_1655 = _3062 * _1653;
_159 = -_1655;
_1657 = t102_850 * t285_1071;
_3061 = phirhoarhoa_1583 * 3.0e+0;
_1659 = _3061 * _1657;
_3059 = _1659 + _3058;
_3060 = _3059 - _1655;
_1660 = _3060 - _1650;
_1661 = ((_1660));
_3057 = _1077 * t107_856;
_1663 = _3057 * _1661;
_1664 = _1646 - _1663;
_3056 = t289_1076 * t107_856;
_1666 = _3056 * _1078;
arhoarhoa_1667 = _1664 - _1666;
t858_1668 = phi_835 * 3.1090690869654900863050528414532891474664211273193359375e-2;
_3055 = trhoa_1066 * 2.0e+0;
_1670 = _3055 * _1290;
_1671 = _1106 + _1670;
_250 = -_1109;
t879_1672 = _1671 - _1109;
t880_1673 = t879_1672 * t325_1111;
_3035 = t119_868 * t297_1083;
t908_1675 = arhoarhoa_1667 * _860;
t909_1676 = arhoa_1080 * t_847;
_3054 = trhoa_1066 * 2.0e+0;
t911_1678 = _3054 * t909_1676;
reassocpow_3051 = __builtin_powi (trhoa_1066, 2);
_3052 = a_858 * 2.0e+0;
t917_1681 = reassocpow_3051 * _3052;
_3050 = t303_1087 * 2.0e+0;
t919_1683 = _3050 * trhoarhoa_1636;
_3029 = t312_1092 * _869;
_1685 = _1091 * t118_867;
t936_1686 = t113_862 / _1685;
t944_1687 = t317_1095 * a_858;
t953_1688 = _860 * _863;
_3047 = t911_1678 * 2.0e+0;
_3048 = t917_1681 + _3047;
_3049 = _3048 + t919_1683;
_1692 = _3049 + t908_1675;
_3046 = _864 * 2.0e+0;
_1695 = _3046 * arhoa_1080;
_1697 = arhoa_1080 * t944_1687;
_1699 = _1697 * 8.0e+0;
_3045 = t314_1094 * 2.0e+0;
_1702 = _3045 * arhoarhoa_1667;
_1704 = trhoa_1066 * t944_1687;
_1706 = _1704 * 8.0e+0;
_3037 = _1695 + _1706;
_3038 = _3037 * arhoa_1080;
_1708 = trhoa_1066 * t953_1688;
_1710 = _1708 * 1.2e+1;
_3039 = _1699 + _1710;
_3040 = _3039 * trhoa_1066;
_3041 = _3038 + _3040;
_3044 = t318_1096 * 4.0e+0;
_1713 = _3044 * trhoarhoa_1636;
_3042 = _3041 + _1713;
_3043 = _3042 + _1702;
t959_1714 = _3043 + _1692;
_1716 = t299_1085 * t101_849;
_3036 = t119_868 * t297_1083;
_1718 = _3036 * t306_1090;
_1721 = t313_1093 * t297_1083;
_1722 = _1721 * trhoa_1066;
_1723 = t321_1102 * _1722;
_2688 = -_1723;
_1725 = trhoarhoa_1636 * _1290;
_3034 = _1725 - _1723;
_1727 = _3035 * t306_1090;
_3031 = _1718 + _1727;
_3032 = _3031 + _1716;
_3033 = _3032 * trhoa_1066;
_1729 = _3034 + _3033;
_1730 = _1729 * 2.0e+0;
_1731 = ((_1692));
_3030 = t119_868 * _869;
_1733 = _3030 * _1731;
_1735 = _3029 * t306_1090;
_1736 = _1735 * t321_1102;
_1738 = t321_1102 * _1721;
_3028 = trhoa_1066 * 2.0e+0;
_1740 = _3028 * _1738;
_2751 = -_1740;
_1742 = _1105 * t312_1092;
_1743 = _1742 * t321_1102;
_603 = -_1743;
_3360 = _1736 + _1743;
_3023 = -_3360;
_1745 = t936_1686 * _869;
_1746 = t321_1102 * _1745;
_3027 = t321_1102 * 2.0e+0;
_1748 = _3027 * _1746;
_3024 = _1748 - _3360;
_3025 = _3024 - _1740;
_3026 = _3025 + _1730;
_1749 = _3026 + _1733;
_1750 = t959_1714 * _1108;
_622 = -_1750;
t962_1751 = _1749 - _1750;
reassocpow_3022 = __builtin_powi (t122_872, 2);
_1752 = reassocpow_3022;
t966_1753 = 1.0e+0 / _1752;
_2995 = t966_1753 * t110_859;
_1755 = _1118 * t125_876;
_1756 = 3.93342367215436325977861997671425342559814453125e+1 / _1755;
kf_arhoarhoa_1757 = -_1756;
reassocpow_3021 = __builtin_powi (mu_890, 2);
_1759 = reassocpow_3021;
_1760 = _1135 * t137_893;
_1761 = 1.0e+0 / _1760;
_3020 = _887 * _1759;
t1000_1763 = _3020 * _1761;
t1001_1764 = s_arhoa_1134 * t135_889;
_1765 = MEM[(real(kind=8)[0:] *)_201][_742];
_1766 = scale_ex;
_1767 = fx_a_896 * ex_unif_arhoa_1122;
_1768 = fx_arhoa_1140 * ex_unif_a_881;
_3019 = _1767 * 2.0e+0;
_1770 = _1768 + _3019;
_1771 = _1770 * 2.0e+0;
_3017 = M.51222_736 * 4.774648292756860090690906872623600065708160400390625e-1;
_3018 = _3017 * kf_arhoarhoa_1757;
_1775 = _3018 * fx_a_896;
_2749 = -_1775;
_3016 = t350_1141 * 2.0e+0;
_1778 = _3016 * fx_arhoa_1140;
_3001 = _1778 * 2.0e+0;
_3002 = _3001 - _1775;
_1780 = _1768 * 2.0e+0;
_3003 = _3002 + _1780;
_1782 = _3003 + _1771;
reassocpow_3013 = __builtin_powi (s_arhoa_1134, 2);
_3014 = t346_1137 * 2.0e+0;
_1785 = reassocpow_3013 * _3014;
_1786 = t1001_1764 * t1000_1763;
_3012 = s_arhoa_1134 * 8.0e+0;
_1788 = _3012 * _1786;
_633 = -_1788;
_1790 = _1123 * kf_a_878;
_1791 = my_norm_drhoa_753 / _1790;
_3007 = kf_arhoa_1119 * _1791;
_1793 = _3007 * t131_884;
_1794 = t337_1125 * t341_1127;
_3008 = _1793 + _1794;
_3009 = _3008 * kf_arhoa_1119;
_3011 = kf_arhoarhoa_1757 * 5.0e-1;
_1798 = _3011 * _1128;
_652 = -_1798;
_3010 = _3009 - _1798;
_1800 = _1126 * M.51222_736;
_1801 = t130_883 / _1800;
_1802 = _3010 + _1801;
_1803 = ((_1802));
_3006 = _1803 * 2.0e+0;
_1805 = _3006 * _1138;
_3005 = _1805 + _1785;
_1806 = _3005 - _1788;
_1807 = ((_1806));
_3004 = t140_897 * 2.0e+0;
_1809 = _3004 * _1807;
_1810 = _1782 + _1809;
_1811 = ((_1810));
_3000 = _1766 * 5.0e-1;
_1813 = _3000 * _1811;
_1814 = _1813 + _1765;
_1815 = scale_ec;
_1816 = t293_1081 * t123_873;
_2999 = phirhoa_1044 * 3.0e+0;
_1818 = _2999 * _1816;
_1819 = epsilon_c_unifrhoa_1039 + _1818;
_1820 = t880_1673 * t110_859;
_1821 = _1819 + _1820;
_1822 = _1821 + epsilon_cggarhoa_1117;
_1823 = t294_1082 * t858_1668;
_1825 = _1823 * 6.0e+0;
_2998 = t293_1081 * 3.0e+0;
_1829 = _2998 * t880_1673;
_2997 = _1816 * 3.0e+0;
_1832 = _2997 * phirhoarhoa_1583;
_2992 = epsilon_c_unifrhoarhoa_1570 + _1832;
_1834 = t326_1112 * t293_1081;
_1836 = _1834 * 3.0e+0;
_2989 = _1829 + _1836;
_2990 = _2989 + _1825;
_2991 = _2990 * phirhoa_1044;
_2996 = t325_1111 * t110_859;
_1839 = _2996 * t962_1751;
_1841 = _2995 * t324_1110;
_1842 = _1841 * t879_1672;
_2747 = -_1842;
_2993 = _2992 - _1842;
_2994 = _2993 + _2991;
_1843 = _2994 + _1839;
_1844 = ((_1843));
_1845 = _1844 * my_rho_751;
_1846 = _1822 + _1845;
_1847 = ((_1846));
_1848 = _1847 * _1815;
_1849 = _1814 + _1848;
MEM[(real(kind=8)[0:] *)_201][_742] = _1849;
chirhoarhob_1850 = t519_1328 * 2.0e+0;
reassocpow_2988 = __builtin_powi (rsrhoa_940, 2);
t1050_1852 = t564_1350 * reassocpow_2988;
_1853 = _1357 * 2.0e+0;
_144 = -_1853;
_2975 = _1355 * 2.0e+0;
_2976 = _2975 - _1853;
_2986 = t543_1343 * 2.0e+0;
_2987 = _2986 * t190_958;
_1858 = _2987 * t192_960;
_162 = -_1858;
_2977 = _2976 - _1858;
_1860 = t1050_1852 * _1376;
_2984 = _1860 + _1381;
_1863 = t1050_1852 * _955;
_150 = -_1863;
_2985 = _2984 - _1863;
_1864 = _2985 + _1375;
_1865 = ((_1864));
_2983 = t191_959 * t177_943;
_1867 = _2983 * _1865;
_2980 = t578_1352 * 1.6081824322151103245914782746694982051849365234375e+1;
reassocpow_2979 = __builtin_powi (t190_958, 2);
_2981 = _2980 * t580_1354;
_1873 = reassocpow_2979 * _2981;
_2978 = _2977 + _1873;
e_c_u_0rhoarhob_1874 = _2978 + _1867;
_2974 = chirhoa_934 * 4.444444444444444197728216749965213239192962646484375e-1;
_1877 = _2974 * t681_1419;
_2973 = chirhoarhob_1850 * 1.3333333333333332593184650249895639717578887939453125e+0;
_1879 = _2973 * t71_808;
_2972 = chirhoa_934 * 4.444444444444444197728216749965213239192962646484375e-1;
_1883 = _2972 * t687_1421;
_2968 = _1883 + _1877;
_2969 = _2968 * chirhob_1163;
_2971 = chirhoarhob_1850 * 1.3333333333333332593184650249895639717578887939453125e+0;
_1886 = _2971 * t74_811;
_272 = -_1886;
_2970 = _1879 - _1886;
_1887 = _2970 + _2969;
_1888 = ((_1887));
frhoarhob_1889 = _1888 * 1.9236610509315361650095610457356087863445281982421875e+0;
_2967 = chirhoa_934 * chirhob_1163;
t1164_1891 = _2967 * _818;
_1892 = _1438 * 2.0e+0;
_156 = -_1892;
_2954 = _1436 * 2.0e+0;
_2955 = _2954 - _1892;
_2965 = t595_1399 * 2.0e+0;
_2966 = _2965 * t211_981;
_1897 = _2966 * t213_983;
_653 = -_1897;
_2956 = _2955 - _1897;
_1899 = t1050_1852 * _1457;
_2963 = _1899 + _1462;
_1902 = t1050_1852 * _978;
_683 = -_1902;
_2964 = _2963 - _1902;
_1903 = _2964 + _1456;
_1904 = ((_1903));
_2962 = t212_982 * t200_968;
_1906 = _2962 * _1904;
_2959 = t626_1404 * 3.216468317787069963742396794259548187255859375e+1;
reassocpow_2958 = __builtin_powi (t211_981, 2);
_2960 = _2959 * t628_1406;
_1912 = reassocpow_2958 * _2960;
_2957 = _2956 + _1912;
_1913 = _2957 + _1906;
_713 = -e_c_u_0rhoarhob_1874;
_1914 = _1913 - e_c_u_0rhoarhob_1874;
_1915 = ((_1914));
_1916 = _1915 * f_816;
_2953 = chirhoarhob_1850 * 4.0e+0;
_1919 = _2953 * _1480;
_114 = -_1919;
_1921 = t249_1024 * frhob_1176;
_1925 = t250_1025 * 4.0e+0;
_1927 = t410_1182 * frhoa_1016;
_2951 = _1921 + _1927;
_1930 = frhoarhob_1889 * t84_826;
_2952 = _2951 + _1930;
_2913 = _2952 + _1916;
_2914 = _2913 * _819;
_1934 = t252_1026 * 4.0e+0;
_2915 = _1925 + _1934;
_2916 = _2915 * t415_1185;
_1937 = t411_1183 * 4.0e+0;
_1940 = t413_1184 * 4.0e+0;
_2917 = _1937 + _1940;
_2918 = _2917 * t254_1027;
_2950 = t1164_1891 * 1.2e+1;
_1943 = _2950 * t85_827;
_2949 = chirhoarhob_1850 * 4.0e+0;
_1946 = _2949 * _1503;
_1948 = _1508 * 2.0e+0;
_1949 = _1948 - _1509;
_120 = -_1509;
_2937 = _1949 - _1509;
_2947 = t643_1411 * 2.0e+0;
_2948 = _2947 * t232_1004;
_1953 = _2948 * t234_1006;
_2938 = _2937 + _1953;
_1955 = t1050_1852 * _1528;
_2945 = _1955 + _1533;
_1958 = t1050_1852 * _1001;
_126 = -_1958;
_2946 = _2945 - _1958;
_1959 = _2946 + _1527;
_1960 = ((_1959));
_2944 = t233_1005 * t221_991;
_1962 = _2944 * _1960;
_132 = -_1962;
_2941 = t674_1416 * 2.960857464321667720241748611442744731903076171875e+1;
reassocpow_2940 = __builtin_powi (t232_1004, 2);
_2942 = _2941 * t676_1418;
_1968 = reassocpow_2940 * _2942;
_573 = -_1968;
_2939 = _2938 - _1968;
_1969 = _2939 - _1962;
_1970 = ((_1969));
_1971 = _1970 * f_816;
_1974 = alpha_crhoa_1011 * frhob_1176;
_2936 = t407_1179 * 4.0e+0;
_1978 = _2936 * t240_1017;
_577 = -_1978;
_1980 = alpha_crhob_1172 * frhoa_1016;
_2934 = _1974 + _1980;
_1983 = frhoarhob_1889 * alpha_c_806;
_2935 = _2934 + _1983;
_2909 = _2935 + _1971;
_2910 = _2909 * t82_822;
_2933 = t407_1179 * 4.0e+0;
_1987 = _2933 * t242_1018;
_138 = -_1987;
_2919 = _1943 - _1987;
_2932 = t246_1021 * 4.0e+0;
_1990 = _2932 * t403_1177;
_2738 = -_1990;
_2931 = t246_1021 * 4.0e+0;
_1993 = _2931 * t405_1178;
_558 = -_1993;
_2920 = _2919 - _1993;
_2930 = t1164_1891 * 7.0178683471615759259520928026176989078521728515625e+0;
_1997 = _2930 * t77_817;
_739 = -_1997;
_2921 = _2920 - _1919;
_2922 = _2921 + _1946;
_2923 = _2922 - _1997;
_2924 = _2923 - _1978;
_2925 = _2924 - _1990;
_2926 = _2925 + _2916;
_2927 = _2926 + _2918;
_2928 = _2927 + e_c_u_0rhoarhob_1874;
_2929 = _2928 + _2910;
epsilon_c_unifrhoarhob_1999 = _2929 + _2914;
_2897 = chirhoarhob_1850 * 3.33333333333333314829616256247390992939472198486328125e-1;
_2001 = _2897 * t257_1040;
_2895 = chirhoa_934 * chirhob_1163;
_2896 = _2895 * 1.11111111111111104943205418749130330979824066162109375e-1;
_2004 = _2896 * t750_1571;
_2005 = _2001 - _2004;
_2893 = chirhoa_934 * chirhob_1163;
_2894 = _2893 * 1.11111111111111104943205418749130330979824066162109375e-1;
_2008 = _2894 * t755_1572;
_2009 = _2005 - _2008;
_2892 = chirhoarhob_1850 * 3.33333333333333314829616256247390992939472198486328125e-1;
_2011 = _2892 * t259_1041;
phirhoarhob_2012 = _2009 - _2011;
_2891 = phirhob_1199 * 5.0e-1;
t1228_2014 = _2891 * _1594;
_2015 = _1606 * phirhob_1199;
_2890 = _1057 * 5.0e-1;
_2018 = _2890 * phirhoarhob_2012;
_562 = -_2018;
_2877 = t801_1603 * 2.0e+0;
_2878 = t812_1605 + _2877;
_2889 = phirhob_1199 * 5.0e-1;
_2021 = _2889 * _1616;
_2879 = _2878 + _1621;
_2880 = _2879 + t1228_2014;
_2881 = _2880 + _2015;
reassocpow_2886 = __builtin_powi (k_frhoa_1046, 2);
_2887 = t767_1588 * 5.06605918211688877050846713245846331119537353515625e-2;
_2028 = reassocpow_2886 * _2887;
_2029 = _1625 - _2028;
_2030 = ((_2029));
_2885 = _1061 * 5.0e-1;
_2032 = _2885 * _2030;
_2739 = -_2032;
_2882 = _2881 + _2021;
_2883 = _2882 + _1611;
_2884 = _2883 - _2018;
trhoarhob_2036 = _2884 - _2032;
_2876 = t432_1210 * 2.0e+0;
_2038 = _2876 * _1644;
_2875 = t429_1206 * 3.0e+0;
_2040 = _2875 * t282_1069;
_2874 = t105_853 * 3.216396844291481471600491204299032688140869140625e+1;
_2042 = _2874 * epsilon_c_unifrhoarhob_1999;
_588 = -_2042;
_2873 = t286_1072 * 3.0e+0;
_2045 = _2873 * t427_1205;
_2872 = phirhob_1199 * 1.2e+1;
_2048 = _2872 * _1653;
_543 = -_2048;
_2871 = phirhoarhob_2012 * 3.0e+0;
_2051 = _2871 * _1657;
_2868 = _2051 - _2048;
_2869 = _2868 + _2040;
_2870 = _2869 + _2045;
_2052 = _2870 - _2042;
_2053 = ((_2052));
_2867 = _1077 * t107_856;
_2055 = _2867 * _2053;
_2056 = _2038 - _2055;
_2866 = t432_1210 * t107_856;
_2058 = _2866 * _1078;
arhoarhob_2059 = _2056 - _2058;
_2849 = t119_868 * t297_1083;
t1283_2061 = arhoarhob_2059 * _860;
_2865 = trhob_1204 * 2.0e+0;
t1285_2063 = _2865 * t909_1676;
t1286_2064 = arhob_1213 * t_847;
t1288_2066 = t1286_2064 * 2.0e+0;
_2067 = trhob_1204 * a_858;
t1291_2069 = _2067 * 2.0e+0;
_2860 = t1288_2066 + t1291_2069;
_2861 = _2860 * trhoa_1066;
_2864 = t303_1087 * 2.0e+0;
t1293_2071 = _2864 * trhoarhob_2036;
_2843 = t312_1092 * _869;
_2862 = t1285_2063 + t1293_2071;
_2863 = _2862 + _2861;
_2076 = _2863 + t1283_2061;
_2077 = arhob_1213 * _864;
_2859 = arhoa_1080 * 2.0e+0;
_2079 = _2859 * _2077;
_2082 = _1697 * 8.0e+0;
_2858 = t314_1094 * 2.0e+0;
_2085 = _2858 * arhoarhob_2059;
_2857 = _1704 * 8.0e+0;
_2088 = _2857 * arhob_1213;
_2091 = _1708 * 1.2e+1;
_2850 = _2082 + _2091;
_2851 = _2850 * trhob_1204;
_2856 = t318_1096 * 4.0e+0;
_2094 = _2856 * trhoarhob_2036;
_2852 = _2088 + _2094;
_2853 = _2852 + _2079;
_2854 = _2853 + _2851;
_2855 = _2854 + _2085;
t1327_2095 = _2855 + _2076;
_2096 = trhob_1204 * t101_849;
_2097 = t299_1085 * _2096;
_2098 = _2849 * t445_1219;
_2099 = _2098 * trhoa_1066;
_2101 = t453_1225 * _1722;
_547 = -_2101;
_2103 = trhoarhob_2036 * _1290;
_2846 = _2103 + _2097;
_2847 = _2846 + _2099;
_2105 = _1727 * trhob_1204;
_2848 = _2847 + _2105;
_2106 = _2848 - _2101;
_2107 = _2106 * 2.0e+0;
_2108 = ((_2076));
_2845 = t119_868 * _869;
_2110 = _2845 * _2108;
_2112 = _1735 * t453_1225;
_2844 = trhob_1204 * 2.0e+0;
_2115 = _2844 * _1738;
_2750 = -_2115;
_2117 = _2843 * t445_1219;
_2118 = _2117 * t321_1102;
_618 = -_2118;
_3359 = _2112 + _2118;
_2838 = -_3359;
_2842 = t453_1225 * 2.0e+0;
_2121 = _2842 * _1746;
_2839 = _2121 - _3359;
_2840 = _2839 - _2115;
_2841 = _2840 + _2107;
_2122 = _2841 + _2110;
_2123 = t1327_2095 * _1108;
_637 = -_2123;
t1330_2124 = _2122 - _2123;
_2125 = MEM[(real(kind=8)[0:] *)_203][_742];
_2126 = epsilon_cggarhob_1238 + epsilon_cggarhoa_1117;
_2128 = _1823 * 6.0e+0;
_2130 = t457_1233 * t293_1081;
_2837 = phirhoa_1044 * 3.0e+0;
_2132 = _2837 * _2130;
_2836 = _1816 * 3.0e+0;
_2135 = _2836 * phirhoarhob_2012;
_2831 = epsilon_c_unifrhoarhob_1999 + _2135;
_2832 = _2831 + _2132;
_2138 = _1834 * 3.0e+0;
_2829 = _2138 + _2128;
_2830 = _2829 * phirhob_1199;
_2835 = t325_1111 * t110_859;
_2141 = _2835 * t1330_2124;
_2143 = _1841 * t456_1232;
_2748 = -_2143;
_2833 = _2832 - _2143;
_2834 = _2833 + _2830;
_2144 = _2834 + _2141;
_2145 = ((_2144));
_2146 = _2145 * my_rho_751;
_2147 = _2126 + _2146;
_2148 = ((_2147));
_2149 = _2148 * _1815;
_2150 = _2149 + _2125;
MEM[(real(kind=8)[0:] *)_203][_742] = _2150;
_2151 = t519_1328 + t163_932;
chirhobrhob_2152 = _2151 * 2.0e+0;
reassocpow_2828 = __builtin_powi (chirhob_1163, 2);
_2153 = reassocpow_2828;
_2155 = t681_1419 * 4.444444444444444197728216749965213239192962646484375e-1;
_2827 = chirhobrhob_2152 * 1.3333333333333332593184650249895639717578887939453125e+0;
_2157 = _2827 * t71_808;
_2160 = t687_1421 * 4.444444444444444197728216749965213239192962646484375e-1;
_2823 = _2160 + _2155;
_2824 = _2823 * _2153;
_2826 = chirhobrhob_2152 * 1.3333333333333332593184650249895639717578887939453125e+0;
_2163 = _2826 * t74_811;
_648 = -_2163;
_2825 = _2157 - _2163;
_2164 = _2825 + _2824;
_2165 = ((_2164));
frhobrhob_2166 = _2165 * 1.9236610509315361650095610457356087863445281982421875e+0;
_2822 = chirhobrhob_2152 * 4.0e+0;
_2168 = _2822 * _1480;
_1144 = -_2168;
_2821 = frhob_1176 * _819;
_2171 = _2821 * t410_1182;
_2820 = t415_1185 * 4.0e+0;
_2174 = _2820 * t411_1183;
_2178 = t84_826 * _819;
_2819 = t415_1185 * 4.0e+0;
_2181 = _2819 * t413_1184;
_2797 = _2192 * 2.0e+0;
_2796 = _2181 * 2.0e+0;
_2800 = _2797 + _2796;
_2798 = _2171 * 2.0e+0;
_2801 = _2800 + _2798;
_2799 = _2174 * 2.0e+0;
_2802 = _2801 + _2799;
_2818 = _2153 * 1.2e+1;
_2186 = _2818 * _1499;
_2817 = chirhobrhob_2152 * 4.0e+0;
_2189 = _2817 * _1503;
_2816 = frhob_1176 * t82_822;
_2192 = _2816 * alpha_crhob_1172;
_2815 = t407_1179 * 4.0e+0;
_2195 = _2815 * t403_1177;
_727 = -_2195;
_2199 = alpha_c_806 * t82_822;
_2794 = _2199 + _2178;
_2795 = frhobrhob_2166 * _2794;
_2814 = t407_1179 * 4.0e+0;
_2202 = _2814 * t405_1178;
_1324 = -_2202;
_2803 = _2802 - _2202;
_1323 = -_2195;
_2746 = -_2202;
_2804 = _2803 - _2202;
_2813 = _2153 * 1.2e+1;
_2207 = _2813 * _1566;
_682 = -_2207;
_2805 = _2804 - _2168;
_2806 = _2805 + _2186;
_2807 = _2806 + _2189;
_2808 = _2807 - _2207;
_2809 = _2808 + _2795;
_2810 = _2809 - _2195;
_2811 = _2810 - _2195;
_2812 = _2811 + _1550;
epsilon_c_unifrhobrhob_2209 = _2812 + _1479;
_2785 = chirhobrhob_2152 * 3.33333333333333314829616256247390992939472198486328125e-1;
_2211 = _2785 * t257_1040;
_2784 = _2153 * 1.11111111111111104943205418749130330979824066162109375e-1;
_2213 = _2784 * t750_1571;
_2214 = _2211 - _2213;
_2783 = _2153 * 1.11111111111111104943205418749130330979824066162109375e-1;
_2216 = _2783 * t755_1572;
_2217 = _2214 - _2216;
_2782 = chirhobrhob_2152 * 3.33333333333333314829616256247390992939472198486328125e-1;
_2219 = _2782 * t259_1041;
phirhobrhob_2220 = _2217 - _2219;
t1520_2221 = phirhob_1199 * t2_756;
_2223 = t775_1591 * phirhob_1199;
_2781 = k_srhoa_1049 * 5.0e-1;
_2226 = _2781 * t779_1593;
_2771 = _2226 + _2223;
_2772 = _2771 * t1520_2221;
_2229 = _1057 * phirhobrhob_2220;
_2230 = _2229 * 5.0e-1;
_678 = -_2230;
_2774 = t1228_2014 * 2.0e+0;
_2773 = t801_1603 * 2.0e+0;
_2775 = _2774 + _2773;
_2776 = _2775 + t812_1605;
_2777 = _2776 + _1621;
_2745 = -_1632;
_2778 = _2777 + _2021;
_2779 = _2778 - _2230;
_2780 = _2779 + _2772;
trhobrhob_2238 = _2780 - _1632;
_2768 = _1639 * 2.0e+0;
reassocpow_2767 = __builtin_powi (t432_1210, 2);
_2769 = _2768 * t820_1638;
_2242 = reassocpow_2767 * _2769;
_2766 = t429_1206 * 3.0e+0;
_2244 = _2766 * t427_1205;
_2765 = t105_853 * 3.216396844291481471600491204299032688140869140625e+1;
_2246 = _2765 * epsilon_c_unifrhobrhob_2209;
_697 = -_2246;
_2757 = _2244 * 2.0e+0;
_2762 = t839_1642 * 1.2e+1;
reassocpow_2761 = __builtin_powi (phirhob_1199, 2);
_2763 = _2762 * t102_850;
_2252 = reassocpow_2761 * _2763;
_693 = -_2252;
_2760 = phirhobrhob_2220 * 3.0e+0;
_2255 = _2760 * _1657;
_2758 = _2255 + _2757;
_2759 = _2758 - _2252;
_2256 = _2759 - _2246;
_2257 = ((_2256));
_2756 = _1077 * t107_856;
_2259 = _2756 * _2257;
_2260 = _2242 - _2259;
_2755 = t432_1210 * t107_856;
_2262 = _2755 * _1211;
arhobrhob_2263 = _2260 - _2262;
_2754 = trhob_1204 * 2.0e+0;
_2265 = _2754 * _1290;
_2266 = _1229 + _2265;
_2744 = -_1231;
t1602_2267 = _2266 - _1231;
t1603_2268 = t1602_2267 * t325_1111;
t1630_2269 = arhobrhob_2263 * _860;
_118 = trhob_1204 * 2.0e+0;
t1632_2271 = _118 * t1286_2064;
_133 = trhob_1204 * 2.0e+0;
t1638_2273 = _133 * _2067;
_130 = t303_1087 * 2.0e+0;
t1640_2275 = _130 * trhobrhob_2238;
_121 = t1632_2271 * 2.0e+0;
_124 = t1638_2273 + _121;
_127 = _124 + t1640_2275;
_2279 = _127 + t1630_2269;
_163 = arhob_1213 * 2.0e+0;
_2281 = _163 * _2077;
_2283 = arhob_1213 * t944_1687;
_2285 = _2283 * 8.0e+0;
_160 = t314_1094 * 2.0e+0;
_2288 = _160 * arhobrhob_2263;
_157 = t944_1687 * 8.0e+0;
_2292 = _157 * arhob_1213;
_2294 = trhob_1204 * t953_1688;
_2296 = _2294 * 1.2e+1;
_154 = _2292 + _2296;
_136 = _154 + _2285;
_139 = _136 * trhob_1204;
_151 = t318_1096 * 4.0e+0;
_2299 = _151 * trhobrhob_2238;
_142 = _2281 + _2299;
_145 = _142 + _139;
_148 = _145 + _2288;
t1674_2300 = _148 + _2279;
_2301 = t439_1215 * _2096;
_248 = t119_868 * t297_1083;
_2303 = _248 * t445_1219;
_112 = _2303 + _2098;
_111 = _112 * trhob_1204;
_2306 = _1721 * trhob_1204;
_2307 = t453_1225 * _2306;
_712 = -_2307;
_2309 = trhobrhob_2238 * _1290;
_109 = _2309 + _2301;
_108 = _109 + _111;
_2312 = _108 - _2307;
_2313 = _2312 * 2.0e+0;
_2314 = ((_2279));
_497 = t119_868 * _869;
_2316 = _497 * _2314;
_2318 = _2117 * t453_1225;
_2320 = t453_1225 * _1721;
_500 = trhob_1204 * 2.0e+0;
_2322 = _500 * _2320;
_2743 = -_2322;
_2324 = _1228 * t312_1092;
_2325 = _2324 * t453_1225;
_723 = -_2325;
_3358 = _2318 + _2325;
_508 = -_3358;
_2327 = t453_1225 * _1745;
_501 = t453_1225 * 2.0e+0;
_2329 = _501 * _2327;
_509 = _2329 - _3358;
_510 = _509 - _2322;
_511 = _510 + _2313;
_2330 = _511 + _2316;
_2331 = t1674_2300 * _1108;
_528 = -_2331;
t1677_2332 = _2330 - _2331;
_556 = t966_1753 * t110_859;
_2334 = _1239 * t142_898;
_2335 = 3.93342367215436325977861997671425342559814453125e+1 / _2334;
kf_brhobrhob_2336 = -_2335;
_2338 = _1256 * t153_912;
_2339 = 1.0e+0 / _2338;
_507 = _909 * _1759;
t1712_2341 = _507 * _2339;
t1713_2342 = s_brhob_1255 * t135_889;
_2343 = MEM[(real(kind=8)[0:] *)_205][_742];
_2344 = fx_b_915 * ex_unif_brhob_1243;
_2345 = fx_brhob_1261 * ex_unif_b_903;
_506 = _2344 * 2.0e+0;
_2347 = _2345 + _506;
_2348 = _2347 * 2.0e+0;
_512 = M.51223_731 * 4.774648292756860090690906872623600065708160400390625e-1;
_505 = _512 * kf_brhobrhob_2336;
_2352 = _505 * fx_b_915;
_2736 = -_2352;
_515 = t481_1262 * 2.0e+0;
_2355 = _515 * fx_brhob_1261;
_538 = _2355 * 2.0e+0;
_539 = _538 - _2352;
_2357 = _2345 * 2.0e+0;
_540 = _539 + _2357;
_2359 = _540 + _2348;
reassocpow_525 = __builtin_powi (s_brhob_1255, 2);
_526 = t477_1258 * 2.0e+0;
_2362 = reassocpow_525 * _526;
_2363 = t1713_2342 * t1712_2341;
_524 = s_brhob_1255 * 8.0e+0;
_2365 = _524 * _2363;
_1325 = -_2365;
_2367 = _1244 * kf_b_900;
_2368 = my_norm_drhob_754 / _2367;
_527 = kf_brhob_1240 * _2368;
_2370 = _527 * t148_906;
_2371 = t468_1246 * t472_1248;
_520 = _2370 + _2371;
_521 = _520 * kf_brhob_1240;
_523 = kf_brhobrhob_2336 * 5.0e-1;
_2375 = _523 * _1249;
_2742 = -_2375;
_522 = _521 - _2375;
_2377 = _1247 * M.51223_731;
_2378 = t147_905 / _2377;
_2379 = _522 + _2378;
_2380 = ((_2379));
_530 = _2380 * 2.0e+0;
_2382 = _530 * _1259;
_531 = _2382 + _2362;
_2383 = _531 - _2365;
_2384 = ((_2383));
_541 = t156_916 * 2.0e+0;
_2386 = _541 * _2384;
_2387 = _2359 + _2386;
_2388 = ((_2387));
_537 = _1766 * 5.0e-1;
_2390 = _537 * _2388;
_2391 = _2390 + _2343;
_536 = phirhob_1199 * 3.0e+0;
_2393 = _536 * _1816;
_2394 = epsilon_c_unifrhob_1197 + _2393;
_2395 = t1603_2268 * t110_859;
_2396 = _2394 + _2395;
_2397 = _2396 + epsilon_cggarhob_1238;
_535 = t858_1668 * 6.0e+0;
_2400 = _535 * t436_1214;
_542 = t293_1081 * 3.0e+0;
_2404 = _542 * t1603_2268;
_545 = _1816 * 3.0e+0;
_2407 = _545 * phirhobrhob_2220;
_553 = epsilon_c_unifrhobrhob_2209 + _2407;
_2410 = _2130 * 3.0e+0;
_550 = _2404 + _2410;
_551 = _550 + _2400;
_552 = _551 * phirhob_1199;
_546 = t325_1111 * t110_859;
_2413 = _546 * t1677_2332;
_2415 = _556 * t456_1232;
_2416 = _2415 * t1602_2267;
_517 = -_2416;
_554 = _553 - _2416;
_555 = _554 + _552;
_2417 = _555 + _2413;
_2418 = ((_2417));
_2419 = _2418 * my_rho_751;
_2420 = _2397 + _2419;
_2421 = ((_2420));
_2422 = _2421 * _1815;
_2423 = _2391 + _2422;
MEM[(real(kind=8)[0:] *)_205][_742] = _2423;
t1739_2424 = t268_1050 * t97_844;
t1741_2425 = t95_842 * t273_1053;
_561 = t163_932 * 5.0e-1;
_557 = t776_1592 * 5.0e-1;
_2428 = _557 * t1739_2424;
_560 = t1741_2425 * 5.0e-1;
_2431 = _560 * t789_1597;
_3354 = _2428 + _2431;
_2433 = _561 * t488_1280;
_3363 = _3354 + _2433;
trhoanorm_drho_2434 = -_3363;
t1748_2435 = tnorm_drho_1282 * t101_849;
t1765_2436 = t909_1676 * tnorm_drho_1282;
t1766_2437 = trhoa_1066 * t494_1284;
t1767_2438 = trhoanorm_drho_2434 * t303_1087;
_571 = t1748_2435 * 2.0e+0;
_2440 = _571 * t299_1085;
_2441 = _869 * t494_1284;
_2442 = _2441 * t119_868;
_570 = trhoa_1066 * 4.0e+0;
_2444 = _570 * _2442;
_569 = t502_1289 * 2.0e+0;
_2447 = _569 * _1722;
_513 = -_2447;
_568 = trhoanorm_drho_2434 * 2.0e+0;
_2450 = _568 * _1290;
_600 = _2440 + _2450;
_601 = _600 + _2444;
_591 = _601 - _2447;
_567 = tnorm_drho_1282 * 2.0e+0;
_2453 = _567 * _1727;
_590 = _591 + _2453;
_566 = t1766_2437 + t1767_2438;
_2456 = _566 + t1765_2436;
_2457 = _2456 * 2.0e+0;
_2458 = ((_2457));
_565 = t119_868 * _869;
_2460 = _565 * _2458;
_2462 = _1735 * t502_1289;
_2741 = -_2462;
_587 = _590 - _2462;
_572 = tnorm_drho_1282 * 2.0e+0;
_2465 = _572 * _1738;
_532 = -_2465;
_2467 = t312_1092 * _1292;
_575 = _2467 * 2.0e+0;
_2469 = _575 * t321_1102;
_2740 = -_2469;
_580 = _587 - _2469;
_576 = t502_1289 * 2.0e+0;
_2472 = _576 * _1746;
_581 = _580 + _2472;
_582 = _581 + _2460;
_2473 = _582 - _2465;
_2475 = _1697 * 8.0e+0;
_2478 = _1708 * 1.2e+1;
_583 = _2475 + _2478;
_584 = _583 * tnorm_drho_1282;
_585 = _2457 + _584;
_586 = t318_1096 * 4.0e+0;
_2481 = _586 * trhoanorm_drho_2434;
_2482 = _585 + _2481;
_2483 = ((_2482));
_2484 = _2483 * _1108;
_502 = -_2484;
t1801_2485 = _2473 - _2484;
_2486 = MEM[(real(kind=8)[0:] *)_207][_742];
_2487 = t506_1298 * t293_1081;
_599 = phirhoa_1044 * 3.0e+0;
_2489 = _599 * _2487;
_598 = t325_1111 * t110_859;
_2491 = _598 * t1801_2485;
_2493 = _1841 * t505_1297;
_2737 = -_2493;
_597 = _2489 - _2493;
_2494 = _597 + _2491;
_2495 = ((_2494));
_2496 = _2495 * my_rho_751;
_2497 = _2496 + hnorm_drho_1299;
_2498 = ((_2497));
_2499 = _2498 * _1815;
_2500 = _2499 + _2486;
MEM[(real(kind=8)[0:] *)_207][_742] = _2500;
_596 = t1520_2221 * 5.0e-1;
_2502 = _596 * t1739_2424;
_3355 = _2502 + _2431;
_3364 = _3355 + _2433;
trhobnorm_drho_2505 = -_3364;
t1829_2506 = t1286_2064 * tnorm_drho_1282;
t1830_2507 = trhob_1204 * t494_1284;
t1831_2508 = trhobnorm_drho_2505 * t303_1087;
_595 = t1748_2435 * 2.0e+0;
_2510 = _595 * t439_1215;
_602 = trhob_1204 * 4.0e+0;
_2512 = _602 * _2442;
_605 = t502_1289 * 2.0e+0;
_2515 = _605 * _2306;
_498 = -_2515;
_606 = trhobnorm_drho_2505 * 2.0e+0;
_2518 = _606 * _1290;
_632 = _2510 + _2518;
_625 = _632 + _2512;
_626 = _625 - _2515;
_616 = tnorm_drho_1282 * 2.0e+0;
_2521 = _616 * _2098;
_627 = _626 + _2521;
_615 = t1830_2507 + t1831_2508;
_2524 = _615 + t1829_2506;
_2525 = _2524 * 2.0e+0;
_2526 = ((_2525));
_614 = t119_868 * _869;
_2528 = _614 * _2526;
_2530 = _2117 * t502_1289;
_1143 = -_2530;
_628 = _627 - _2530;
_613 = tnorm_drho_1282 * 2.0e+0;
_2533 = _613 * _2320;
_1142 = -_2533;
_612 = _2467 * 2.0e+0;
_2536 = _612 * t453_1225;
_667 = -_2536;
_629 = _628 - _2536;
_611 = t502_1289 * 2.0e+0;
_2539 = _611 * _2327;
_630 = _629 + _2539;
_631 = _630 + _2528;
_2540 = _631 - _2533;
_2542 = _2283 * 8.0e+0;
_2545 = _2294 * 1.2e+1;
_621 = _2542 + _2545;
_620 = _621 * tnorm_drho_1282;
_617 = _2525 + _620;
_610 = t318_1096 * 4.0e+0;
_2548 = _610 * trhobnorm_drho_2505;
_2549 = _617 + _2548;
_2550 = ((_2549));
_2551 = _2550 * _1108;
_2734 = -_2551;
t1865_2552 = _2540 - _2551;
_2553 = MEM[(real(kind=8)[0:] *)_209][_742];
_635 = phirhob_1199 * 3.0e+0;
_2555 = _635 * _2487;
_636 = t325_1111 * t110_859;
_2557 = _636 * t1865_2552;
_2559 = _2415 * t505_1297;
_663 = -_2559;
_646 = _2555 - _2559;
_2560 = _646 + _2557;
_2561 = ((_2560));
_2562 = _2561 * my_rho_751;
_2563 = _2562 + hnorm_drho_1299;
_2564 = ((_2563));
_2565 = _2564 * _1815;
_2566 = _2565 + _2553;
MEM[(real(kind=8)[0:] *)_209][_742] = _2566;
reassocpow_645 = __builtin_powi (tnorm_drho_1282, 2);
_2567 = reassocpow_645;
t1876_2568 = _2567 * a_858;
_2571 = MEM[(real(kind=8)[0:] *)_189][_742];
_2572 = my_rho_751 * _1815;
_643 = t101_849 * 2.0e+0;
_644 = _643 * _2567;
_2576 = _644 * t113_862;
_2577 = _869 * t1876_2568;
_2579 = _2577 * 1.0e+1;
_656 = _2579 + _2576;
_657 = _656 * t119_868;
_641 = tnorm_drho_1282 * 4.0e+0;
_642 = _641 * t502_1289;
_2583 = _642 * _1721;
_638 = -_2583;
_640 = t502_1289 * 4.0e+0;
_2586 = _640 * _2467;
_720 = -_2586;
reassocpow_651 = __builtin_powi (t502_1289, 2);
_650 = _1745 * 2.0e+0;
_2589 = reassocpow_651 * _650;
_658 = _2589 - _2586;
_659 = _658 + _657;
_2591 = t1876_2568 * 2.0e+0;
_661 = _2567 * 1.2e+1;
_2593 = _661 * t953_1688;
_2594 = _2593 + _2591;
_2595 = ((_2594));
_2596 = _1108 * _2595;
_721 = -_2596;
_660 = _659 - _2596;
_2597 = _660 - _2583;
_2598 = ((_2597));
_655 = t325_1111 * t110_859;
_2600 = _655 * _2598;
reassocpow_666 = __builtin_powi (t505_1297, 2);
_665 = t966_1753 * t110_859;
_2602 = reassocpow_666 * _665;
_2603 = _2600 - _2602;
_2604 = ((_2603));
_2605 = _2572 * _2604;
_2606 = _2605 + _2571;
MEM[(real(kind=8)[0:] *)_189][_742] = _2606;
_2607 = MEM[(real(kind=8)[0:] *)_185][_742];
_711 = -_880;
_2608 = t350_1141 - _880;
_2609 = fx_anorm_drhoa_717 * _2608;
_675 = s_arhoa_1134 * 2.0e+0;
_676 = _675 * t346_1137;
_2612 = _676 * s_anorm_drhoa_716;
_674 = _1786 * 8.0e+0;
_2614 = _674 * s_anorm_drhoa_716;
_710 = -_2614;
_2615 = _2612 - _2614;
_672 = t131_884 * 5.0e-1;
_673 = _672 * kf_arhoa_1119;
_2618 = _673 * t336_1124;
_671 = t341_1127 * 5.0e-1;
_2621 = _671 * t129_882;
_3356 = _2618 + _2621;
_2622 = -_3356;
_2623 = ((_2622));
_670 = _2623 * 2.0e+0;
_2625 = _670 * _1138;
_2626 = _2615 + _2625;
_2627 = ((_2626));
_2628 = _2627 * t140_897;
_2629 = _2628 + _2609;
_2630 = _2629 * 2.0e+0;
_2631 = ((_2630));
_677 = _1766 * 5.0e-1;
_2633 = _677 * _2631;
_2634 = _2633 + _2607;
MEM[(real(kind=8)[0:] *)_185][_742] = _2634;
reassocpow_680 = __builtin_powi (s_anorm_drhoa_716, 2);
_2635 = reassocpow_680;
_2636 = MEM[(real(kind=8)[0:] *)_191][_742];
_2637 = t140_897 * _1766;
_681 = t346_1137 * 2.0e+0;
_2639 = _681 * _2635;
_690 = t135_889 * 8.0e+0;
_691 = _690 * t1000_1763;
_2642 = _691 * _2635;
_2643 = _2639 - _2642;
_2644 = ((_2643));
_2645 = _2637 * _2644;
_2646 = _2645 + _2636;
MEM[(real(kind=8)[0:] *)_191][_742] = _2646;
_2647 = MEM[(real(kind=8)[0:] *)_187][_742];
_707 = -_902;
_2648 = t481_1262 - _902;
_2649 = fx_bnorm_drhob_719 * _2648;
_688 = s_brhob_1255 * 2.0e+0;
_689 = _688 * t477_1258;
_2652 = _689 * s_bnorm_drhob_718;
_687 = _2363 * 8.0e+0;
_2654 = _687 * s_bnorm_drhob_718;
_700 = -_2654;
_2655 = _2652 - _2654;
_685 = t148_906 * 5.0e-1;
_686 = _685 * kf_brhob_1240;
_2658 = _686 * t467_1245;
_692 = t472_1248 * 5.0e-1;
_2661 = _692 * t146_904;
_3357 = _2658 + _2661;
_2662 = -_3357;
_2663 = ((_2662));
_695 = _2663 * 2.0e+0;
_2665 = _695 * _1259;
_2666 = _2655 + _2665;
_2667 = ((_2666));
_2668 = _2667 * t156_916;
_2669 = _2668 + _2649;
_2670 = _2669 * 2.0e+0;
_2671 = ((_2670));
_696 = _1766 * 5.0e-1;
_2673 = _696 * _2671;
_2674 = _2673 + _2647;
MEM[(real(kind=8)[0:] *)_187][_742] = _2674;
reassocpow_706 = __builtin_powi (s_bnorm_drhob_718, 2);
_2675 = reassocpow_706;
_2676 = MEM[(real(kind=8)[0:] *)_193][_742];
_2677 = t156_916 * _1766;
_705 = t477_1258 * 2.0e+0;
_2679 = _705 * _2675;
_703 = t135_889 * 8.0e+0;
_704 = _703 * t1712_2341;
_2682 = _704 * _2675;
_2683 = _2679 - _2682;
_2684 = ((_2683));
_2685 = _2677 * _2684;
_2686 = _2685 + _2676;
MEM[(real(kind=8)[0:] *)_193][_742] = _2686;
;; succ: 128
;; basic block 128, loop depth 1
;; pred: 117
;; 126
;; 127
ii_2687 = ii_740 + 1;
if (_34 == ii_740)
goto <bb 129>;
else
goto <bb 117>;
;; succ: 129
;; 117
;; basic block 129, loop depth 0
;; pred: 128
;; 116
_58 = rhoa.data;
if (_58 != _169)
goto <bb 130>;
else
goto <bb 131>;
;; succ: 130
;; 131
;; basic block 130, loop depth 0
;; pred: 129
__builtin_free (_169);
;; succ: 131
;; basic block 131, loop depth 0
;; pred: 129
;; 130
_59 = rhob.data;
if (_59 != _171)
goto <bb 132>;
else
goto <bb 133>;
;; succ: 132
;; 133
;; basic block 132, loop depth 0
;; pred: 131
__builtin_free (_171);
;; succ: 133
;; basic block 133, loop depth 0
;; pred: 131
;; 132
_60 = norm_drho.data;
if (_60 != _173)
goto <bb 134>;
else
goto <bb 135>;
;; succ: 134
;; 135
;; basic block 134, loop depth 0
;; pred: 133
__builtin_free (_173);
;; succ: 135
;; basic block 135, loop depth 0
;; pred: 133
;; 134
_61 = norm_drhoa.data;
if (_61 != _175)
goto <bb 136>;
else
goto <bb 137>;
;; succ: 136
;; 137
;; basic block 136, loop depth 0
;; pred: 135
__builtin_free (_175);
;; succ: 137
;; basic block 137, loop depth 0
;; pred: 135
;; 136
_62 = norm_drhob.data;
if (_62 != _177)
goto <bb 138>;
else
goto <bb 139>;
;; succ: 138
;; 139
;; basic block 138, loop depth 0
;; pred: 137
__builtin_free (_177);
;; succ: 139
;; basic block 139, loop depth 0
;; pred: 137
;; 138
_63 = e_0.data;
if (_63 != _179)
goto <bb 140>;
else
goto <bb 141>;
;; succ: 140
;; 141
;; basic block 140, loop depth 0
;; pred: 139
_gfortran_internal_unpack (&e_0, _179);
__builtin_free (_179);
;; succ: 141
;; basic block 141, loop depth 0
;; pred: 139
;; 140
_64 = e_ra.data;
if (_64 != _181)
goto <bb 142>;
else
goto <bb 143>;
;; succ: 142
;; 143
;; basic block 142, loop depth 0
;; pred: 141
_gfortran_internal_unpack (&e_ra, _181);
__builtin_free (_181);
;; succ: 143
;; basic block 143, loop depth 0
;; pred: 141
;; 142
_65 = e_rb.data;
if (_65 != _183)
goto <bb 144>;
else
goto <bb 145>;
;; succ: 144
;; 145
;; basic block 144, loop depth 0
;; pred: 143
_gfortran_internal_unpack (&e_rb, _183);
__builtin_free (_183);
;; succ: 145
;; basic block 145, loop depth 0
;; pred: 143
;; 144
_66 = e_ndra_ra.data;
if (_66 != _185)
goto <bb 146>;
else
goto <bb 147>;
;; succ: 146
;; 147
;; basic block 146, loop depth 0
;; pred: 145
_gfortran_internal_unpack (&e_ndra_ra, _185);
__builtin_free (_185);
;; succ: 147
;; basic block 147, loop depth 0
;; pred: 145
;; 146
_67 = e_ndrb_rb.data;
if (_67 != _187)
goto <bb 148>;
else
goto <bb 149>;
;; succ: 148
;; 149
;; basic block 148, loop depth 0
;; pred: 147
_gfortran_internal_unpack (&e_ndrb_rb, _187);
__builtin_free (_187);
;; succ: 149
;; basic block 149, loop depth 0
;; pred: 147
;; 148
_68 = e_ndr_ndr.data;
if (_68 != _189)
goto <bb 150>;
else
goto <bb 151>;
;; succ: 150
;; 151
;; basic block 150, loop depth 0
;; pred: 149
_gfortran_internal_unpack (&e_ndr_ndr, _189);
__builtin_free (_189);
;; succ: 151
;; basic block 151, loop depth 0
;; pred: 149
;; 150
_69 = e_ndra_ndra.data;
if (_69 != _191)
goto <bb 152>;
else
goto <bb 153>;
;; succ: 152
;; 153
;; basic block 152, loop depth 0
;; pred: 151
_gfortran_internal_unpack (&e_ndra_ndra, _191);
__builtin_free (_191);
;; succ: 153
;; basic block 153, loop depth 0
;; pred: 151
;; 152
_70 = e_ndrb_ndrb.data;
if (_70 != _193)
goto <bb 154>;
else
goto <bb 155>;
;; succ: 154
;; 155
;; basic block 154, loop depth 0
;; pred: 153
_gfortran_internal_unpack (&e_ndrb_ndrb, _193);
__builtin_free (_193);
;; succ: 155
;; basic block 155, loop depth 0
;; pred: 153
;; 154
_71 = e_ndr.data;
if (_71 != _195)
goto <bb 156>;
else
goto <bb 157>;
;; succ: 156
;; 157
;; basic block 156, loop depth 0
;; pred: 155
_gfortran_internal_unpack (&e_ndr, _195);
__builtin_free (_195);
;; succ: 157
;; basic block 157, loop depth 0
;; pred: 155
;; 156
_72 = e_ndra.data;
if (_72 != _197)
goto <bb 158>;
else
goto <bb 159>;
;; succ: 158
;; 159
;; basic block 158, loop depth 0
;; pred: 157
_gfortran_internal_unpack (&e_ndra, _197);
__builtin_free (_197);
;; succ: 159
;; basic block 159, loop depth 0
;; pred: 157
;; 158
_73 = e_ndrb.data;
if (_73 != _199)
goto <bb 160>;
else
goto <bb 161>;
;; succ: 160
;; 161
;; basic block 160, loop depth 0
;; pred: 159
_gfortran_internal_unpack (&e_ndrb, _199);
__builtin_free (_199);
;; succ: 161
;; basic block 161, loop depth 0
;; pred: 159
;; 160
_74 = e_ra_ra.data;
if (_74 != _201)
goto <bb 162>;
else
goto <bb 163>;
;; succ: 162
;; 163
;; basic block 162, loop depth 0
;; pred: 161
_gfortran_internal_unpack (&e_ra_ra, _201);
__builtin_free (_201);
;; succ: 163
;; basic block 163, loop depth 0
;; pred: 161
;; 162
_75 = e_ra_rb.data;
if (_75 != _203)
goto <bb 164>;
else
goto <bb 165>;
;; succ: 164
;; 165
;; basic block 164, loop depth 0
;; pred: 163
_gfortran_internal_unpack (&e_ra_rb, _203);
__builtin_free (_203);
;; succ: 165
;; basic block 165, loop depth 0
;; pred: 163
;; 164
_76 = e_rb_rb.data;
if (_76 != _205)
goto <bb 166>;
else
goto <bb 167>;
;; succ: 166
;; 167
;; basic block 166, loop depth 0
;; pred: 165
_gfortran_internal_unpack (&e_rb_rb, _205);
__builtin_free (_205);
;; succ: 167
;; basic block 167, loop depth 0
;; pred: 165
;; 166
_77 = e_ndr_ra.data;
if (_77 != _207)
goto <bb 168>;
else
goto <bb 169>;
;; succ: 168
;; 169
;; basic block 168, loop depth 0
;; pred: 167
_gfortran_internal_unpack (&e_ndr_ra, _207);
__builtin_free (_207);
;; succ: 169
;; basic block 169, loop depth 0
;; pred: 167
;; 168
_78 = e_ndr_rb.data;
if (_78 != _209)
goto <bb 170>;
else
goto <bb 171>;
;; succ: 170
;; 171
;; basic block 170, loop depth 0
;; pred: 169
_gfortran_internal_unpack (&e_ndr_rb, _209);
__builtin_free (_209);
;; succ: 171
;; basic block 171, loop depth 0
;; pred: 169
;; 170
timestop_hook.111875_2689 = timestop_hook;
if (timestop_hook.111875_2689 != 0B)
goto <bb 172>;
else
goto <bb 173>;
;; succ: 172
;; 173
;; basic block 172, loop depth 0
;; pred: 171
timestop_hook.111875_2689 (&handle);
goto <bb 175>;
;; succ: 175
;; basic block 173, loop depth 0
;; pred: 171
_2690 = handle;
if (_2690 != -1)
goto <bb 174>;
else
goto <bb 175>;
;; succ: 174
;; 175
;; basic block 174, loop depth 0
;; pred: 173
__base_hooks_MOD_timestop.part.53 (&handle);
;; succ:
;; basic block 175, loop depth 0
;; pred: 173
;; 172
bo ={v} {CLOBBER};
e_0 ={v} {CLOBBER};
e_ndr ={v} {CLOBBER};
e_ndr_ndr ={v} {CLOBBER};
e_ndr_ra ={v} {CLOBBER};
e_ndr_rb ={v} {CLOBBER};
e_ndra ={v} {CLOBBER};
e_ndra_ndra ={v} {CLOBBER};
e_ndra_ra ={v} {CLOBBER};
e_ndrb ={v} {CLOBBER};
e_ndrb_ndrb ={v} {CLOBBER};
e_ndrb_rb ={v} {CLOBBER};
e_ra ={v} {CLOBBER};
e_ra_ra ={v} {CLOBBER};
e_ra_rb ={v} {CLOBBER};
e_rb ={v} {CLOBBER};
e_rb_rb ={v} {CLOBBER};
epsilon_rho ={v} {CLOBBER};
handle ={v} {CLOBBER};
norm_drho ={v} {CLOBBER};
norm_drhoa ={v} {CLOBBER};
norm_drhob ={v} {CLOBBER};
param ={v} {CLOBBER};
rhoa ={v} {CLOBBER};
rhob ={v} {CLOBBER};
scale_ec ={v} {CLOBBER};
scale_ex ={v} {CLOBBER};
return;
;; succ: EXIT
;; basic block 176, loop depth 1
;; pred: 124
_3223 = t131_884 * 5.0e-1;
s_anorm_drhoa_563 = _3223 * t129_882;
_3222 = s_anorm_drhoa_563 * 2.0e+0;
fx_anorm_drhoa_533 = _3222 * _1138;
_3221 = t148_906 * 5.0e-1;
s_bnorm_drhob_725 = _3221 * t146_904;
_3220 = s_bnorm_drhob_725 * 2.0e+0;
fx_bnorm_drhob_715 = _3220 * _1259;
goto <bb 126>;
;; succ: 126
}
cp2k_single_file.f90:455476:0: internal compiler error: verify_ssa failed
0xe0c6b9 verify_ssa(bool, bool)
../../gcc/gcc/tree-ssa.c:1041
0xb456ed execute_function_todo
../../gcc/gcc/passes.c:1971
0xb4602b execute_todo
../../gcc/gcc/passes.c:2016
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PR71252][PR71269] Fix trunk errors due to stmt_to_insert
2016-05-27 13:43 ` Kugan Vivekanandarajah
@ 2016-05-27 13:52 ` Richard Biener
0 siblings, 0 replies; 6+ messages in thread
From: Richard Biener @ 2016-05-27 13:52 UTC (permalink / raw)
To: Kugan Vivekanandarajah; +Cc: Jakub Jelinek, gcc-patches
On Fri, May 27, 2016 at 2:36 PM, Kugan Vivekanandarajah
<kugan.vivekanandarajah@linaro.org> wrote:
> Hi Richard,
>
> On 27 May 2016 at 19:56, Richard Biener <richard.guenther@gmail.com> wrote:
>> On Thu, May 26, 2016 at 11:32 AM, Kugan Vivekanandarajah
>> <kugan.vivekanandarajah@linaro.org> wrote:
>>> Hi Jakub,
>>>
>>>
>>> On 26 May 2016 at 18:18, Jakub Jelinek <jakub@redhat.com> wrote:
>>>> On Thu, May 26, 2016 at 02:17:56PM +1000, Kugan Vivekanandarajah wrote:
>>>>> --- a/gcc/tree-ssa-reassoc.c
>>>>> +++ b/gcc/tree-ssa-reassoc.c
>>>>> @@ -3767,8 +3767,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>>>>> operand_entry temp = *oe3;
>>>>> oe3->op = oe1->op;
>>>>> oe3->rank = oe1->rank;
>>>>> + oe3->stmt_to_insert = oe1->stmt_to_insert;
>>>>> oe1->op = temp.op;
>>>>> oe1->rank= temp.rank;
>>>>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>>>>
>>>> If you want to swap those 3 fields (what about the others?), can't you write
>>>> std::swap (oe1->op, oe3->op);
>>>> std::swap (oe1->rank, oe3->rank);
>>>> std::swap (oe1->stmt_to_insert, oe3->stmt_to_insert);
>>>> instead and drop operand_entry temp = *oe3; ?
>>>>
>>>>> }
>>>>> else if ((oe1->rank == oe3->rank
>>>>> && oe2->rank != oe3->rank)
>>>>> @@ -3779,8 +3781,10 @@ swap_ops_for_binary_stmt (vec<operand_entry *> ops,
>>>>> operand_entry temp = *oe2;
>>>>> oe2->op = oe1->op;
>>>>> oe2->rank = oe1->rank;
>>>>> + oe2->stmt_to_insert = oe1->stmt_to_insert;
>>>>> oe1->op = temp.op;
>>>>> oe1->rank = temp.rank;
>>>>> + oe1->stmt_to_insert = temp.stmt_to_insert;
>>>>> }
>>>>
>>>> Similarly.
>>>
>>> Done. Revised patch attached.
>>
>> Your patch only adds a single testcase, please make sure to include
>> _all_ relevant testcases.
>>
>> The swap should simply swap the whole operand, thus
>>
>> std::swap (*oe1, *oe3);
>>
>
> Thanks for the review.
>
> I will change this.
>
>> it was probably not updated when all the other fields were added.
>>
>> I don't like the find_insert_point changes or the change before
>
> If we insert the stmt_to_insert before the find_insert_point, we can
> end up inserting stmt_to_insert before its argument defining stmt.
> This can be seen with f951 cp2k_single_file.f90 -O3 -ffast-math
> -march=westmere from PR71252. I am attaching the CFG when all the
> insert_stmt_before_use are moved before.
Hmm, but then this effectively means we should have find_insert_point
for inserting to_insert stmts in the first place? That is, in
insert_stmt_before_use use find_insert_point on the stmt_to_insert
ops?
> I dont understand Fortran and I am not able to reduce a testcase from this.
>
>> build_and_add_sum.
>> Why not move the if (stmt1) insert; if (stmt2) insert; before the if
>> () unconditionally?
>
> In this case also, we dont know where build_and_add_sum will insert
> the new instruction. It may not be stmts[i] before calling
> build_and_add_sum. Therefore we can end up inserting in a wrong place.
> testcase gfortran.dg/pr71252.f90 would ICE.
So split off build_and_add_sum_1 which does not do stmt insertion and
instead treat it like a to_insert stmt at this point (simply insert it
at stmts[i]
or using find_insert_point)?
>>
>> Do we make progress with just the rest of the changes? If so please split the
>> patch and include relevant testcases.
>
> I think there are two issues.
> 1. the swap which is obvious
> 2. insertion poing which has some related changes and shows two
> different problems (listed above)
>
> if you prefer, I can send two patches for the above.
Yes please.
> Unfortunately, I am not able to reduce Fortran testcase. Any help from
> anyone is really appreciated.
>
>
> Thanks,
> Kugan
>
>>
>> Thanks,
>> Richard.
>>
>>> Thanks,
>>> Kugan
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-05-27 13:11 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-26 8:36 [PR71252][PR71269] Fix trunk errors due to stmt_to_insert Kugan Vivekanandarajah
2016-05-26 9:50 ` Jakub Jelinek
2016-05-26 12:36 ` Kugan Vivekanandarajah
2016-05-27 11:56 ` Richard Biener
2016-05-27 13:43 ` Kugan Vivekanandarajah
2016-05-27 13:52 ` Richard Biener
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).