After splitting the calculation formula in the following codes compiled with nvfortran, why the output of JXAvg is different? One is “1st, JXAvg= -2.7067553867765114E-017”, the other One is “2nd, JXAvg= -1.1640450816864475E-017”.
JXAvg=CorifAvgQY1Avg-IFNLFAGOAreaIE4*(1 - IFNL_HDP)(E1N1SQFDX1 +E1N2SQFDX2 + E1N3SQFDX3) &
-GHAvgOAreaIE2*((PR1N1-TiPN1-Off1N1)FDX1+(PR1N2-TiPN2-Off1N2)FDX2+(PR1N3-TiPN3-Off1N3)FDX3) &
+WSXAvg-BSXAvg+MXAvg-DispXAvg-BCXAvg+Tau0QXAvg &
-SigmaQxAvgsponge_dis_mthd &
+AvgSigmaHAbsUsponge_dis_mthd
write(,*) “1st, JXAvg=”,JXAvg
JXAvg_1=CorifAvgQY1Avg
JXAvg_2=IFNLFAGOAreaIE4*(1 - IFNL_HDP)(E1N1SQFDX1 +E1N2SQFDX2 + E1N3SQFDX3)
JXAvg_3=GHAvgOAreaIE2*((PR1N1-TiPN1-Off1N1)FDX1+(PR1N2-TiPN2-Off1N2)FDX2+(PR1N3-TiPN3-Off1N3)FDX3)
JXAvg_4=WSXAvg-BSXAvg+MXAvg-DispXAvg-BCXAvg+Tau0QXAvg
JXAvg_5=SigmaQxAvgsponge_dis_mthd
JXAvg_6=AvgSigmaHAbsUsponge_dis_mthd
JXAvg=JXAvg_1-JXAvg_2-JXAvg_3+JXAvg_4-JXAvg_5+JXAvg_6
write(,*) “2nd, JXAvg=”,JXAvg