Ignore:
Timestamp:
Mar 20, 2014 4:38:49 PM (8 years ago)
Author:
raasch
Message:

REAL functions and a lot of REAL constants provided with KIND-attribute,
some small bugfixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/init_3d_model.f90

    r1321 r1322  
    2020! Current revisions:
    2121! ------------------
    22 !
    23 !
     22! REAL constants defined as wp-kind
    2423! module interfaces removed
    2524!
     
    16041603    IF ( TRIM(timestep_scheme) == 'runge-kutta-3' )  THEN      ! for RK3-method
    16051604
    1606        weight_substep(1) = 1./6.
    1607        weight_substep(2) = 3./10.
    1608        weight_substep(3) = 8./15.
    1609 
    1610        weight_pres(1)    = 1./3.
    1611        weight_pres(2)    = 5./12.
    1612        weight_pres(3)    = 1./4.
     1605       weight_substep(1) = 1._wp/6._wp
     1606       weight_substep(2) = 3._wp/10._wp
     1607       weight_substep(3) = 8._wp/15._wp
     1608
     1609       weight_pres(1)    = 1._wp/3._wp
     1610       weight_pres(2)    = 5._wp/12._wp
     1611       weight_pres(3)    = 1._wp/4._wp
    16131612
    16141613    ELSEIF ( TRIM(timestep_scheme) == 'runge-kutta-2' )  THEN  ! for RK2-method
    16151614
    1616        weight_substep(1) = 1./2.
    1617        weight_substep(2) = 1./2.
     1615       weight_substep(1) = 1._wp/2._wp
     1616       weight_substep(2) = 1._wp/2._wp
    16181617         
    1619        weight_pres(1)    = 1./2.
    1620        weight_pres(2)    = 1./2.       
     1618       weight_pres(1)    = 1._wp/2._wp
     1619       weight_pres(2)    = 1._wp/2._wp       
    16211620
    16221621    ELSE                                     ! for Euler-method
     
    16711670          DO  k = dp_level_ind_b+1, nzt
    16721671             dp_smooth_factor(k) = 0.5 * ( 1.0 + SIN( pi * &
    1673                   ( REAL( k - dp_level_ind_b ) /  &
    1674                     REAL( nzt - dp_level_ind_b ) - 0.5 ) ) )
     1672                  ( REAL( k - dp_level_ind_b, KIND=wp ) /  &
     1673                    REAL( nzt - dp_level_ind_b, KIND=wp ) - 0.5 ) ) )
    16751674          ENDDO
    16761675       ENDIF
     
    16861685       DO  i = nxl, nxr
    16871686          IF ( ( i * dx ) < pt_damping_width )  THEN
    1688              ptdf_x(i) = pt_damping_factor * ( SIN( pi * 0.5 *        &
    1689                          REAL( pt_damping_width - i * dx ) / (        &
    1690                          REAL( pt_damping_width )            ) ) )**2
     1687             ptdf_x(i) = pt_damping_factor * ( SIN( pi * 0.5 *              &
     1688                         REAL( pt_damping_width - i * dx, KIND=wp ) / (                 &
     1689                         REAL( pt_damping_width, KIND=wp )            ) ) )**2
    16911690          ENDIF
    16921691       ENDDO
     
    16941693       DO  i = nxl, nxr
    16951694          IF ( ( i * dx ) > ( nx * dx - pt_damping_width ) )  THEN
    1696              ptdf_x(i) = pt_damping_factor *                                      &
    1697                          SIN( pi * 0.5 * ( ( i - nx ) * dx + pt_damping_width ) / &
    1698                                          REAL( pt_damping_width ) )**2
     1695             ptdf_x(i) = pt_damping_factor *                                   &
     1696                         SIN( pi * 0.5 *                                       &
     1697                              ( ( i - nx ) * dx + pt_damping_width ) /         &
     1698                              REAL( pt_damping_width, KIND=wp ) )**2
    16991699          ENDIF
    17001700       ENDDO
     
    17021702       DO  j = nys, nyn
    17031703          IF ( ( j * dy ) > ( ny * dy - pt_damping_width ) )  THEN
    1704              ptdf_y(j) = pt_damping_factor *                                      &
    1705                          SIN( pi * 0.5 * ( ( j - ny ) * dy + pt_damping_width ) / &
    1706                                          REAL( pt_damping_width ) )**2
     1704             ptdf_y(j) = pt_damping_factor *                                   &
     1705                         SIN( pi * 0.5 *                                       &
     1706                              ( ( j - ny ) * dy + pt_damping_width ) /         &
     1707                              REAL( pt_damping_width, KIND=wp ) )**2
    17071708          ENDIF
    17081709       ENDDO
     
    17101711       DO  j = nys, nyn
    17111712          IF ( ( j * dy ) < pt_damping_width )  THEN
    1712              ptdf_y(j) = pt_damping_factor *                             &
    1713                          SIN( pi * 0.5 * ( pt_damping_width - j * dy ) / &
    1714                                          REAL( pt_damping_width ) )**2
     1713             ptdf_y(j) = pt_damping_factor *                                   &
     1714                         SIN( pi * 0.5 *                                       &
     1715                             ( pt_damping_width - j * dy ) /                   &
     1716                             REAL( pt_damping_width, KIND=wp ) )**2
    17151717          ENDIF
    17161718       ENDDO
Note: See TracChangeset for help on using the changeset viewer.