Changeset 4433


Ignore:
Timestamp:
Feb 28, 2020 10:14:43 PM (4 years ago)
Author:
gronemeier
Message:

remove warning for newly implemented RANS mode (turbulence_closure_mod)

File:
1 edited

Legend:

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

    r4370 r4433  
    2525! -----------------
    2626! $Id$
     27! remove warning for newly implemented RANS mode
     28!
     29! 4370 2020-01-10 14:00:44Z raasch
    2730! vector directives added to force vectorization on Intel19 compiler
    28 ! 
     31!
    2932! 4346 2019-12-18 11:55:56Z motisi
    3033! Introduction of wall_flags_total_0, which currently sets bits based on static
    3134! topography information used in wall_flags_static_0
    32 ! 
     35!
    3336! 4329 2019-12-10 15:46:36Z motisi
    3437! Renamed wall_flags_0 to wall_flags_static_0
    35 ! 
     38!
    3639! 4182 2019-08-22 15:20:23Z scharf
    3740! Corrected "Former revisions" section
    38 ! 
     41!
    3942! 4177 2019-08-20 14:32:34Z gronemeier
    4043! add comment
    41 ! 
     44!
    4245! 4170 2019-08-19 17:12:31Z gronemeier
    4346! - add performance optimizations according to K. Ketelsen
     
    4649! - bugfix in using l_wall in initialization (consider wall_adjustment_factor)
    4750! - always initialize diss and save the dissipation to that array
    48 ! 
     51!
    4952! 4168 2019-08-16 13:50:17Z suehring
    5053! Replace function get_topography_top_index by topo_top_ind
    51 ! 
     54!
    5255! 4110 2019-07-22 17:05:21Z suehring
    53 ! pass integer flag array as well as boundary flags to WS scalar advection 
     56! pass integer flag array as well as boundary flags to WS scalar advection
    5457! routine
    55 ! 
     58!
    5659! 4109 2019-07-22 17:00:34Z suehring
    5760! - Modularize setting of boundary conditions for TKE and dissipation
    5861! - Neumann boundary condition for TKE at model top is set also in child domain
    59 ! - Revise setting of Neumann boundary conditions at non-cyclic lateral 
     62! - Revise setting of Neumann boundary conditions at non-cyclic lateral
    6063!   boundaries
    61 ! - Bugfix, set Neumann boundary condition for TKE at vertical wall instead of 
     64! - Bugfix, set Neumann boundary condition for TKE at vertical wall instead of
    6265!   an implicit Dirichlet boundary condition which implied a sink of TKE
    6366!   at vertical walls
    64 ! 
     67!
    6568! 4048 2019-06-21 21:00:21Z knoop
    6669! write out preprocessor directives; remove tailing whitespaces
     
    7881! 3684 2019-01-20 20:20:58Z knoop
    7982! Remove unused variable simulated_time
    80 ! 
     83!
    8184! 2696 2017-12-14 17:12:51Z kanani
    8285! Initial revision
     
    161164    USE statistics,                                                           &
    162165        ONLY:  hom, hom_sum, statistic_regions
    163        
     166
    164167    USE surface_mod,                                                          &
    165168        ONLY:  bc_h,                                                          &
     
    312315    USE pmc_interface,                                                         &
    313316        ONLY : rans_mode_parent
    314  
     317
    315318    IMPLICIT NONE
    316319
     
    325328!
    326329!--    In LES mode, Neumann conditions with de/x_i=0 are assumed at solid walls.
    327 !--    Note, only TKE is prognostic in this case and dissipation is only 
    328 !--    a diagnostic quantity. 
     330!--    Note, only TKE is prognostic in this case and dissipation is only
     331!--    a diagnostic quantity.
    329332       IF ( .NOT. rans_mode )  THEN
    330333!
     
    335338             !$ACC PRESENT(bc_h, e_p)
    336339             DO  m = 1, bc_h(l)%ns
    337                 i = bc_h(l)%i(m)           
     340                i = bc_h(l)%i(m)
    338341                j = bc_h(l)%j(m)
    339342                k = bc_h(l)%k(m)
     
    345348          DO  l = 0, 3
    346349!
    347 !--          Note concerning missing ACC directive for this loop: Even though 
    348 !--          the data structure bc_v is present, it may not contain any 
    349 !--          allocated arrays in the flat but also in a topography case, 
    350 !--          leading to a runtime error. Therefore, omit ACC directives 
    351 !--          for this loop, in contrast to the bc_h loop. 
     350!--          Note concerning missing ACC directive for this loop: Even though
     351!--          the data structure bc_v is present, it may not contain any
     352!--          allocated arrays in the flat but also in a topography case,
     353!--          leading to a runtime error. Therefore, omit ACC directives
     354!--          for this loop, in contrast to the bc_h loop.
    352355             !$OMP PARALLEL DO PRIVATE( i, j, k )
    353356             DO  m = 1, bc_v(l)%ns
    354                 i = bc_v(l)%i(m)       
     357                i = bc_v(l)%i(m)
    355358                j = bc_v(l)%j(m)
    356359                k = bc_v(l)%k(m)
     
    427430!
    428431!--    Nesting case: if parent operates in RANS mode and child in LES mode,
    429 !--    no TKE is transfered. This case, set Neumann conditions at lateral and 
    430 !--    top child boundaries. 
     432!--    no TKE is transfered. This case, set Neumann conditions at lateral and
     433!--    top child boundaries.
    431434!--    If not ( both either in RANS or in LES mode ), TKE boundary condition
    432 !--    is treated in the nesting. 
     435!--    is treated in the nesting.
    433436       If ( child_domain )  THEN
    434437          IF ( rans_mode_parent  .AND.  .NOT. rans_mode )  THEN
     
    443446       ENDIF
    444447!
    445 !--    At in- and outflow boundaries also set Neumann boundary conditions 
    446 !--    for the SGS-TKE. An exception is made for the child domain if 
    447 !--    both parent and child operate in RANS mode. This case no 
     448!--    At in- and outflow boundaries also set Neumann boundary conditions
     449!--    for the SGS-TKE. An exception is made for the child domain if
     450!--    both parent and child operate in RANS mode. This case no
    448451!--    lateral Neumann boundary conditions will be set but Dirichlet
    449452!--    conditions will be set in the nesting.
     
    456459          IF ( bc_dirichlet_n  .OR.  bc_radiation_n )  THEN
    457460             e_p(:,nyn+1,:) = e_p(:,nyn,:)
    458              IF ( rans_tke_e )  diss_p(:,nyn+1,:) = diss_p(:,nyn,:) 
     461             IF ( rans_tke_e )  diss_p(:,nyn+1,:) = diss_p(:,nyn,:)
    459462          ENDIF
    460463          IF ( bc_dirichlet_l  .OR.  bc_radiation_l )  THEN
    461464             e_p(:,:,nxl-1) = e_p(:,:,nxl)
    462              IF ( rans_tke_e )  diss_p(:,nyn+1,:) = diss_p(:,nyn,:) 
     465             IF ( rans_tke_e )  diss_p(:,nyn+1,:) = diss_p(:,nyn,:)
    463466          ENDIF
    464467          IF ( bc_dirichlet_r  .OR.  bc_radiation_r )  THEN
    465468             e_p(:,:,nxr+1) = e_p(:,:,nxr)
    466              IF ( rans_tke_e )  diss_p(:,nyn+1,:) = diss_p(:,nyn,:) 
     469             IF ( rans_tke_e )  diss_p(:,nyn+1,:) = diss_p(:,nyn,:)
    467470          ENDIF
    468471       ENDIF
     
    470473
    471474!
    472 !-- Boundary conditions for TKE dissipation rate in RANS mode. 
     475!-- Boundary conditions for TKE dissipation rate in RANS mode.
    473476    IF ( rans_tke_e )  THEN
    474477!
     
    550553    ENDIF
    551554
    552  END SUBROUTINE tcm_boundary_conds 
    553  
     555 END SUBROUTINE tcm_boundary_conds
     556
    554557!------------------------------------------------------------------------------!
    555558! Description:
     
    607610          CALL message( 'tcm_check_parameters', 'PA0501', 1, 2, 0, 6, 0 )
    608611       ENDIF
    609 
    610        message_string = 'RANS mode is still in development! ' //               &
    611                         '&Not all features of PALM are yet compatible '//      &
    612                         'with RANS mode. &Use at own risk!'
    613        CALL message( 'tcm_check_parameters', 'PA0502', 0, 1, 0, 6, 0 )
    614612
    615613    ELSE
     
    14951493                         l_wall(k,j,i) = MIN( l_wall(k,j,i), l_grid(k),                &
    14961494                                              SQRT( 0.25_wp * dx**2 +                  &
    1497                                              ( zw(k) - zu(k) )**2 ) )                 
     1495                                             ( zw(k) - zu(k) )**2 ) )
    14981496!
    14991497!--                   xy-distance (horizontal edges)
     
    41134111!
    41144112!-- Neumann boundary condition for dissipation diss(nzb,:,:) = diss(nzb+1,:,:).
    4115 !-- Note, bc cannot be set in tcm_boundary conditions as the dissipation 
    4116 !-- in LES mode is only a diagnostic quantity. 
     4113!-- Note, bc cannot be set in tcm_boundary conditions as the dissipation
     4114!-- in LES mode is only a diagnostic quantity.
    41174115    IF ( .NOT. rans_tke_e .AND. ( use_sgs_for_particles  .OR.                  &
    41184116         wang_kernel  .OR.  collision_turbulence  ) )  THEN
     
    42944292!-- For each surface type determine start and end index (in case of elevated
    42954293!-- topography several up/downward facing surfaces may exist.
    4296 !-- Note, bc cannot be set in tcm_boundary conditions as the dissipation 
    4297 !-- in LES mode is only a diagnostic quantity. 
     4294!-- Note, bc cannot be set in tcm_boundary conditions as the dissipation
     4295!-- in LES mode is only a diagnostic quantity.
    42984296    IF ( .NOT. rans_tke_e .AND.  ( use_sgs_for_particles  .OR.  wang_kernel    &
    42994297          .OR.  collision_turbulence ) )  THEN
     
    46844682!--             @note The following code cannot be transferred to a subroutine
    46854683!--             due to errors when using OpenACC directives. The execution
    4686 !--             crashes reliably if a subroutine is called at this point (the 
     4684!--             crashes reliably if a subroutine is called at this point (the
    46874685!--             reasong for this behaviour is unknown, however).
    46884686                dvar_dz = atmos_ocean_sign * ( var(k+1,j,i) - var(k-1,j,i) ) * dd2zu(k)
Note: See TracChangeset for help on using the changeset viewer.