Skip to content

Commit 41bf915

Browse files
committed
Explicit typecast to unsigned long to int in calls to pow() to avoid error on Visual C++.
1 parent 9e24b94 commit 41bf915

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/libaatm/src/ATMProfile.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1507,7 +1507,7 @@ double AtmProfile::poli2(double ha,
15071507
b = b / (x2 - x1);
15081508
a = y1 - c * x1 * x1 - b * x1;
15091509

1510-
return a + b * ha + c * pow(ha, 2);
1510+
return a + b * ha + c * pow(ha, (int)2);
15111511
}
15121512

15131513
size_t AtmProfile::mkAtmProfile()
@@ -1670,7 +1670,7 @@ size_t AtmProfile::mkAtmProfile()
16701670

16711671
// std::cout << "layer: " << i << " " << v_layerPressure[i - 1] - dp * pow(dp1, i - 1) << " " << prLimit << std::endl;
16721672

1673-
if( (v_layerPressure[i - 1] - dp * pow(dp1, i - 1) <= prLimit ) ) { //&& (v_layerTemperature[i - 1] <= tx[typeAtm_ - 1][0]) ) { // &&(fabs(prLimit-v_layerPressure[i - 1]-dp*pow(dp1,i-1))>=20.0) ) {
1673+
if( (v_layerPressure[i - 1] - dp * pow(dp1, (int)(i - 1)) <= prLimit ) ) { //&& (v_layerTemperature[i - 1] <= tx[typeAtm_ - 1][0]) ) { // &&(fabs(prLimit-v_layerPressure[i - 1]-dp*pow(dp1,i-1))>=20.0) ) {
16741674

16751675
if(control) {
16761676

@@ -1695,15 +1695,15 @@ size_t AtmProfile::mkAtmProfile()
16951695

16961696
for(k = 0; k < 20; k++) {
16971697

1698-
if( (fabs(v_layerPressure[i - 1] - dp * pow(dp1, i - 1) > 1.05*px[typeAtm_ - 1][k])) &&
1699-
(fabs(v_layerPressure[i - 1] - dp * pow(dp1, i - 1) - px[typeAtm_ - 1][k])) <= minmin ) {
1698+
if( (fabs(v_layerPressure[i - 1] - dp * pow(dp1, (int)(i - 1)) > 1.05*px[typeAtm_ - 1][k])) &&
1699+
(fabs(v_layerPressure[i - 1] - dp * pow(dp1, (int)(i - 1)) - px[typeAtm_ - 1][k])) <= minmin ) {
17001700

17011701
j = k;
17021702

17031703
/* std::cout << "P=" << v_layerPressure[i - 1] - dp * pow(dp1, i - 1)
17041704
<< " prLimit=" << prLimit << " px[" << typeAtm_ - 1 << "][" << k << "]="
17051705
<< px[typeAtm_ - 1][k] << std::endl; */
1706-
minmin = fabs(v_layerPressure[i - 1] - dp * pow(dp1, i - 1) - px[typeAtm_ - 1][k]);
1706+
minmin = fabs(v_layerPressure[i - 1] - dp * pow(dp1, int(i - 1)) - px[typeAtm_ - 1][k]);
17071707
/* std::cout << " minmin=" << minmin << std::endl; */
17081708

17091709
}
@@ -1775,20 +1775,20 @@ size_t AtmProfile::mkAtmProfile()
17751775
// std::cout << "i,j,v_layerPressure.size()-1=" << i << "," << j << "," << v_layerPressure.size() - 1 << std::endl;
17761776

17771777
if(i > v_layerPressure.size() - 1) {
1778-
v_layerPressure.push_back(v_layerPressure[i - 1] - dp * pow(dp1, i - 1));
1778+
v_layerPressure.push_back(v_layerPressure[i - 1] - dp * pow(dp1, (int)(i - 1)));
17791779

17801780
www = v_layerWaterVapor[i - 1] / 1000.0; // in kg/m**3
1781-
g = g0 * pow(1. + ((v_layerThickness[i - 1] / 1000.0)) / rt, -2); // gravity corrected for the height
1781+
g = g0 * pow(1. + ((v_layerThickness[i - 1] / 1000.0)) / rt, (int)(-2)); // gravity corrected for the height
17821782
dh = 288.6948 * v_layerTemperature[i - 1] * (1.0 + 0.61 * www / 1000.0)
17831783
* log(v_layerPressure[i - 1] / v_layerPressure[i]) / g;
17841784
v_layerThickness.push_back(v_layerThickness[i - 1] + dh);
17851785
//std::cout << "layer " << i << " v_layerThickness[" << i << "]=" << v_layerThickness[i] << " v_layerPressure[" << i << "]=" << v_layerPressure[i] << std::endl;
17861786
v_layerTemperature.push_back(v_layerTemperature[i - 1] + dt * dh / 1000.0);
17871787
v_layerWaterVapor.push_back(wgr0 * exp(-v_layerThickness[i] / (1000.0 * h0))); //r[i] in kgr/(m**2*1000m) [gr/m**3]
17881788
} else {
1789-
v_layerPressure[i] = v_layerPressure[i - 1] - dp * pow(dp1, i - 1);
1789+
v_layerPressure[i] = v_layerPressure[i - 1] - dp * pow(dp1, (int)(i - 1));
17901790
www = v_layerWaterVapor[i - 1] / 1000.0; // in kg/m**3
1791-
g = g0 * pow(1. + ((v_layerThickness[i - 1] / 1000.0)) / rt, -2); // gravity corrected for the height
1791+
g = g0 * pow(1. + ((v_layerThickness[i - 1] / 1000.0)) / rt, (int)(-2)); // gravity corrected for the height
17921792
dh = 288.6948 * v_layerTemperature[i - 1] * (1.0 + 0.61 * www / 1000.0)
17931793
* log(v_layerPressure[i - 1] / v_layerPressure[i]) / g;
17941794
v_layerThickness[i] = v_layerThickness[i - 1] + dh;

0 commit comments

Comments
 (0)