diff --git a/src/mo_expression.F90 b/src/mo_expression.F90 index 17d9be34840d74c033a7f1907c67deff5db3e2dd..4bcdf7333a6d1100b7d808cf12ead9e31814e2b4 100644 --- a/src/mo_expression.F90 +++ b/src/mo_expression.F90 @@ -442,7 +442,7 @@ CONTAINS SELECT CASE (cqueue%list(i)%etype) CASE (VALUE) ALLOCATE (op_value) - op_value%val = REAL(cqueue%list(i)%val) + op_value%val = REAL(cqueue%list(i)%val, KIND=real_kind) expr_list%list(i)%p => op_value CASE (VARIABLE) ALLOCATE (op_variable) diff --git a/test/fortran/test_expression.f90 b/test/fortran/test_expression.f90 index cda64a857b88b75313c01d2a95b0bf1b641145c4..4920693ef7363ac8500a845b1b4570ca8202944a 100644 --- a/test/fortran/test_expression.f90 +++ b/test/fortran/test_expression.f90 @@ -50,7 +50,7 @@ CONTAINS CALL TAG_TEST("TEST_exp_erf") formula = expression("exp(1.) + erf(0.76)") - ref = EXP(1.) + ERF(0.76) + ref = EXP(1._wp) + ERF(0.76_wp) CALL formula%evaluate(ptr_val) CALL ASSERT_ALMOST_EQUAL(val, ref)