Ignore:
Timestamp:
Oct 17, 2019 11:29:38 AM (5 years ago)
Author:
schwenkel
Message:

Introducing module interface for boundary conditions and move module specific boundary conditions into their modules

File:
1 edited

Legend:

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

    r4182 r4268  
    2525! -----------------
    2626! $Id$
     27! Removing bulk cloud variables to respective module
     28!
     29! 4182 2019-08-22 15:20:23Z scharf
    2730! Corrected "Former revisions" section
    2831!
     
    6467    USE arrays_3d,                                                             &
    6568        ONLY:  c_u, c_u_m, c_u_m_l, c_v, c_v_m, c_v_m_l, c_w, c_w_m, c_w_m_l,  &
    66                dzu, nc_p, nr_p, pt, pt_init, pt_p, q,                          &
    67                q_p, qc_p, qr_p, s, s_p, sa, sa_p, u, u_init, u_m_l, u_m_n,     &
     69               dzu, pt, pt_init, pt_p, q,                                      &
     70               q_p, s, s_p, sa, sa_p, u, u_init, u_m_l, u_m_n,                 &
    6871               u_m_r, u_m_s, u_p, v, v_init, v_m_l, v_m_n, v_m_r, v_m_s, v_p,  &
    6972               w, w_p, w_m_l, w_m_n, w_m_r, w_m_s
    70 
    71     USE bulk_cloud_model_mod,                                                  &
    72         ONLY: bulk_cloud_model, microphysics_morrison, microphysics_seifert
    7373
    7474    USE chemistry_model_mod,                                                   &
     
    102102 
    103103    USE salsa_mod,                                                             &
    104         ONLY:  salsa_boundary_conds       
     104        ONLY:  salsa_boundary_conds
    105105
    106106    USE surface_mod,                                                           &
     
    136136       !$ACC PRESENT(bc_h, w_p)
    137137       DO  m = 1, bc_h(l)%ns
    138           i = bc_h(l)%i(m)           
     138          i = bc_h(l)%i(m)
    139139          j = bc_h(l)%j(m)
    140140          k = bc_h(l)%k(m)
     
    174174             !$OMP PARALLEL DO PRIVATE( i, j, k )
    175175             DO  m = 1, bc_h(l)%ns
    176                 i = bc_h(l)%i(m)           
     176                i = bc_h(l)%i(m)
    177177                j = bc_h(l)%j(m)
    178178                k = bc_h(l)%k(m)
     
    223223          !$OMP PARALLEL DO PRIVATE( i, j, k )
    224224          DO  m = 1, bc_h(l)%ns
    225              i = bc_h(l)%i(m)           
     225             i = bc_h(l)%i(m)
    226226             j = bc_h(l)%j(m)
    227227             k = bc_h(l)%k(m)
     
    253253             !$OMP PARALLEL DO PRIVATE( i, j, k )
    254254             DO  m = 1, bc_h(l)%ns
    255                 i = bc_h(l)%i(m)           
     255                i = bc_h(l)%i(m)
    256256                j = bc_h(l)%j(m)
    257257                k = bc_h(l)%k(m)
     
    259259             ENDDO
    260260          ENDDO
    261          
     261
    262262       ELSE
    263          
     263
    264264          DO  l = 0, 1
    265265             !$OMP PARALLEL DO PRIVATE( i, j, k )
    266266             DO  m = 1, bc_h(l)%ns
    267                 i = bc_h(l)%i(m)           
     267                i = bc_h(l)%i(m)
    268268                j = bc_h(l)%j(m)
    269269                k = bc_h(l)%k(m)
     
    279279          q_p(nzt+1,:,:) = q_p(nzt,:,:) + bc_q_t_val * dzu(nzt+1)
    280280       ENDIF
    281 
    282        IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
    283 !             
    284 !--       Surface conditions cloud water (Dirichlet)
    285 !--       Run loop over all non-natural and natural walls. Note, in wall-datatype
    286 !--       the k coordinate belongs to the atmospheric grid point, therefore, set
    287 !--       qr_p and nr_p at upward (k-1) and downward-facing (k+1) walls
    288           DO  l = 0, 1
    289           !$OMP PARALLEL DO PRIVATE( i, j, k )
    290              DO  m = 1, bc_h(l)%ns
    291                 i = bc_h(l)%i(m)           
    292                 j = bc_h(l)%j(m)
    293                 k = bc_h(l)%k(m)
    294                 qc_p(k+bc_h(l)%koff,j,i) = 0.0_wp
    295                 nc_p(k+bc_h(l)%koff,j,i) = 0.0_wp
    296              ENDDO
    297           ENDDO
    298 !
    299 !--       Top boundary condition for cloud water (Dirichlet)
    300           qc_p(nzt+1,:,:) = 0.0_wp
    301           nc_p(nzt+1,:,:) = 0.0_wp
    302            
    303        ENDIF
    304 
    305        IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
    306 !             
    307 !--       Surface conditions rain water (Dirichlet)
    308 !--       Run loop over all non-natural and natural walls. Note, in wall-datatype
    309 !--       the k coordinate belongs to the atmospheric grid point, therefore, set
    310 !--       qr_p and nr_p at upward (k-1) and downward-facing (k+1) walls
    311           DO  l = 0, 1
    312           !$OMP PARALLEL DO PRIVATE( i, j, k )
    313              DO  m = 1, bc_h(l)%ns
    314                 i = bc_h(l)%i(m)           
    315                 j = bc_h(l)%j(m)
    316                 k = bc_h(l)%k(m)
    317                 qr_p(k+bc_h(l)%koff,j,i) = 0.0_wp
    318                 nr_p(k+bc_h(l)%koff,j,i) = 0.0_wp
    319              ENDDO
    320           ENDDO
    321 !
    322 !--       Top boundary condition for rain water (Dirichlet)
    323           qr_p(nzt+1,:,:) = 0.0_wp
    324           nr_p(nzt+1,:,:) = 0.0_wp
    325            
    326        ENDIF
    327281    ENDIF
    328282!
     
    336290!--    s_p at k-1
    337291       IF ( ibc_s_b == 0 ) THEN
    338          
     292
    339293          DO  l = 0, 1
    340294             !$OMP PARALLEL DO PRIVATE( i, j, k )
    341295             DO  m = 1, bc_h(l)%ns
    342                 i = bc_h(l)%i(m)           
     296                i = bc_h(l)%i(m)
    343297                j = bc_h(l)%j(m)
    344298                k = bc_h(l)%k(m)
     
    346300             ENDDO
    347301          ENDDO
    348          
     302
    349303       ELSE
    350          
     304
    351305          DO  l = 0, 1
    352306             !$OMP PARALLEL DO PRIVATE( i, j, k )
    353307             DO  m = 1, bc_h(l)%ns
    354                 i = bc_h(l)%i(m)           
     308                i = bc_h(l)%i(m)
    355309                j = bc_h(l)%j(m)
    356310                k = bc_h(l)%k(m)
     
    411365       IF ( humidity )  THEN
    412366          q_p(:,nys-1,:) = q_p(:,nys,:)
    413           IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
    414              qc_p(:,nys-1,:) = qc_p(:,nys,:)
    415              nc_p(:,nys-1,:) = nc_p(:,nys,:)
    416           ENDIF
    417           IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
    418              qr_p(:,nys-1,:) = qr_p(:,nys,:)
    419              nr_p(:,nys-1,:) = nr_p(:,nys,:)
    420           ENDIF
    421367       ENDIF
    422368       IF ( passive_scalar )  s_p(:,nys-1,:) = s_p(:,nys,:)
     
    425371       IF ( humidity )  THEN
    426372          q_p(:,nyn+1,:) = q_p(:,nyn,:)
    427           IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
    428              qc_p(:,nyn+1,:) = qc_p(:,nyn,:)
    429              nc_p(:,nyn+1,:) = nc_p(:,nyn,:)
    430           ENDIF
    431           IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
    432              qr_p(:,nyn+1,:) = qr_p(:,nyn,:)
    433              nr_p(:,nyn+1,:) = nr_p(:,nyn,:)
    434           ENDIF
    435373       ENDIF
    436374       IF ( passive_scalar )  s_p(:,nyn+1,:) = s_p(:,nyn,:)
     
    439377       IF ( humidity )  THEN
    440378          q_p(:,:,nxl-1) = q_p(:,:,nxl)
    441           IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
    442              qc_p(:,:,nxl-1) = qc_p(:,:,nxl)
    443              nc_p(:,:,nxl-1) = nc_p(:,:,nxl)
    444           ENDIF
    445           IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
    446              qr_p(:,:,nxl-1) = qr_p(:,:,nxl)
    447              nr_p(:,:,nxl-1) = nr_p(:,:,nxl)
    448           ENDIF
    449379       ENDIF
    450380       IF ( passive_scalar )  s_p(:,:,nxl-1) = s_p(:,:,nxl)
     
    453383       IF ( humidity )  THEN
    454384          q_p(:,:,nxr+1) = q_p(:,:,nxr)
    455           IF ( bulk_cloud_model  .AND.  microphysics_morrison )  THEN
    456              qc_p(:,:,nxr+1) = qc_p(:,:,nxr)
    457              nc_p(:,:,nxr+1) = nc_p(:,:,nxr)
    458           ENDIF
    459           IF ( bulk_cloud_model  .AND.  microphysics_seifert )  THEN
    460              qr_p(:,:,nxr+1) = qr_p(:,:,nxr)
    461              nr_p(:,:,nxr+1) = nr_p(:,:,nxr)
    462           ENDIF
    463385       ENDIF
    464386       IF ( passive_scalar )  s_p(:,:,nxr+1) = s_p(:,:,nxr)
     
    479401          u_p(:,-1,:) = u(:,0,:)
    480402          v_p(:,0,:)  = v(:,1,:)
    481           w_p(:,-1,:) = w(:,0,:)         
     403          w_p(:,-1,:) = w(:,0,:)
    482404       ELSEIF ( .NOT. use_cmax )  THEN
    483405
     
    528450                IF ( denom /= 0.0_wp )  THEN
    529451                   c_w(k,i) = -c_max * ( w(k,0,i) - w_m_s(k,0,i) ) / ( denom * tsc(2) )
     452                   IF ( c_w(k,i) < 0.0_wp )  THEN
     453                      c_w(k,i) = 0.0_wp
     454                   ELSEIF ( c_w(k,i) > c_max )  THEN
     455                      c_w(k,i) = c_max
     456                   ENDIF
     457                ELSE
     458                   c_w(k,i) = c_max
     459                ENDIF
     460
     461                c_u_m_l(k) = c_u_m_l(k) + c_u(k,i)
     462                c_v_m_l(k) = c_v_m_l(k) + c_v(k,i)
     463                c_w_m_l(k) = c_w_m_l(k) + c_w(k,i)
     464
     465             ENDDO
     466          ENDDO
     467
     468#if defined( __parallel )
     469          IF ( collective_wait )  CALL MPI_BARRIER( comm1dx, ierr )
     470          CALL MPI_ALLREDUCE( c_u_m_l(nzb+1), c_u_m(nzb+1), nzt-nzb, MPI_REAL, &
     471                              MPI_SUM, comm1dx, ierr )   
     472          IF ( collective_wait )  CALL MPI_BARRIER( comm1dx, ierr )
     473          CALL MPI_ALLREDUCE( c_v_m_l(nzb+1), c_v_m(nzb+1), nzt-nzb, MPI_REAL, &
     474                              MPI_SUM, comm1dx, ierr ) 
     475          IF ( collective_wait )  CALL MPI_BARRIER( comm1dx, ierr )
     476          CALL MPI_ALLREDUCE( c_w_m_l(nzb+1), c_w_m(nzb+1), nzt-nzb, MPI_REAL, &
     477                              MPI_SUM, comm1dx, ierr ) 
     478#else
     479          c_u_m = c_u_m_l
     480          c_v_m = c_v_m_l
     481          c_w_m = c_w_m_l
     482#endif
     483
     484          c_u_m = c_u_m / (nx+1)
     485          c_v_m = c_v_m / (nx+1)
     486          c_w_m = c_w_m / (nx+1)
     487
     488!
     489!--       Save old timelevels for the next timestep
     490          IF ( intermediate_timestep_count == 1 )  THEN
     491             u_m_s(:,:,:) = u(:,0:1,:)
     492             v_m_s(:,:,:) = v(:,1:2,:)
     493             w_m_s(:,:,:) = w(:,0:1,:)
     494          ENDIF
     495
     496!
     497!--       Calculate the new velocities
     498          DO  k = nzb+1, nzt+1
     499             DO  i = nxlg, nxrg
     500                u_p(k,-1,i) = u(k,-1,i) - dt_3d * tsc(2) * c_u_m(k) *          &
     501                                       ( u(k,-1,i) - u(k,0,i) ) * ddy
     502
     503                v_p(k,0,i)  = v(k,0,i)  - dt_3d * tsc(2) * c_v_m(k) *          &
     504                                       ( v(k,0,i) - v(k,1,i) ) * ddy
     505
     506                w_p(k,-1,i) = w(k,-1,i) - dt_3d * tsc(2) * c_w_m(k) *          &
     507                                       ( w(k,-1,i) - w(k,0,i) ) * ddy
     508             ENDDO
     509          ENDDO
     510
     511!
     512!--       Bottom boundary at the outflow
     513          IF ( ibc_uv_b == 0 )  THEN
     514             u_p(nzb,-1,:) = 0.0_wp
     515             v_p(nzb,0,:)  = 0.0_wp 
     516          ELSE
     517             u_p(nzb,-1,:) =  u_p(nzb+1,-1,:)
     518             v_p(nzb,0,:)  =  v_p(nzb+1,0,:)
     519          ENDIF
     520          w_p(nzb,-1,:) = 0.0_wp
     521
     522!
     523!--       Top boundary at the outflow
     524          IF ( ibc_uv_t == 0 )  THEN
     525             u_p(nzt+1,-1,:) = u_init(nzt+1)
     526             v_p(nzt+1,0,:)  = v_init(nzt+1)
     527          ELSE
     528             u_p(nzt+1,-1,:) = u_p(nzt,-1,:)
     529             v_p(nzt+1,0,:)  = v_p(nzt,0,:)
     530          ENDIF
     531          w_p(nzt:nzt+1,-1,:) = 0.0_wp
     532
     533       ENDIF
     534
     535    ENDIF
     536
     537    IF ( bc_radiation_n )  THEN
     538
     539       IF ( use_cmax )  THEN
     540          u_p(:,ny+1,:) = u(:,ny,:)
     541          v_p(:,ny+1,:) = v(:,ny,:)
     542          w_p(:,ny+1,:) = w(:,ny,:)
     543       ELSEIF ( .NOT. use_cmax )  THEN
     544
     545          c_max = dy / dt_3d
     546
     547          c_u_m_l = 0.0_wp
     548          c_v_m_l = 0.0_wp
     549          c_w_m_l = 0.0_wp
     550
     551          c_u_m = 0.0_wp
     552          c_v_m = 0.0_wp
     553          c_w_m = 0.0_wp
     554
     555!
     556!--       Calculate the phase speeds for u, v, and w, first local and then
     557!--       average along the outflow boundary.
     558          DO  k = nzb+1, nzt+1
     559             DO  i = nxl, nxr
     560
     561                denom = u_m_n(k,ny,i) - u_m_n(k,ny-1,i)
     562
     563                IF ( denom /= 0.0_wp )  THEN
     564                   c_u(k,i) = -c_max * ( u(k,ny,i) - u_m_n(k,ny,i) ) / ( denom * tsc(2) )
     565                   IF ( c_u(k,i) < 0.0_wp )  THEN
     566                      c_u(k,i) = 0.0_wp
     567                   ELSEIF ( c_u(k,i) > c_max )  THEN
     568                      c_u(k,i) = c_max
     569                   ENDIF
     570                ELSE
     571                   c_u(k,i) = c_max
     572                ENDIF
     573
     574                denom = v_m_n(k,ny,i) - v_m_n(k,ny-1,i)
     575
     576                IF ( denom /= 0.0_wp )  THEN
     577                   c_v(k,i) = -c_max * ( v(k,ny,i) - v_m_n(k,ny,i) ) / ( denom * tsc(2) )
     578                   IF ( c_v(k,i) < 0.0_wp )  THEN
     579                      c_v(k,i) = 0.0_wp
     580                   ELSEIF ( c_v(k,i) > c_max )  THEN
     581                      c_v(k,i) = c_max
     582                   ENDIF
     583                ELSE
     584                   c_v(k,i) = c_max
     585                ENDIF
     586
     587                denom = w_m_n(k,ny,i) - w_m_n(k,ny-1,i)
     588
     589                IF ( denom /= 0.0_wp )  THEN
     590                   c_w(k,i) = -c_max * ( w(k,ny,i) - w_m_n(k,ny,i) ) / ( denom * tsc(2) )
    530591                   IF ( c_w(k,i) < 0.0_wp )  THEN
    531592                      c_w(k,i) = 0.0_wp
     
    567628!--       Save old timelevels for the next timestep
    568629          IF ( intermediate_timestep_count == 1 )  THEN
    569              u_m_s(:,:,:) = u(:,0:1,:)
    570              v_m_s(:,:,:) = v(:,1:2,:)
    571              w_m_s(:,:,:) = w(:,0:1,:)
    572           ENDIF
    573 
    574 !
    575 !--       Calculate the new velocities
    576           DO  k = nzb+1, nzt+1
    577              DO  i = nxlg, nxrg
    578                 u_p(k,-1,i) = u(k,-1,i) - dt_3d * tsc(2) * c_u_m(k) *          &
    579                                        ( u(k,-1,i) - u(k,0,i) ) * ddy
    580 
    581                 v_p(k,0,i)  = v(k,0,i)  - dt_3d * tsc(2) * c_v_m(k) *          &
    582                                        ( v(k,0,i) - v(k,1,i) ) * ddy
    583 
    584                 w_p(k,-1,i) = w(k,-1,i) - dt_3d * tsc(2) * c_w_m(k) *          &
    585                                        ( w(k,-1,i) - w(k,0,i) ) * ddy
    586              ENDDO
    587           ENDDO
    588 
    589 !
    590 !--       Bottom boundary at the outflow
    591           IF ( ibc_uv_b == 0 )  THEN
    592              u_p(nzb,-1,:) = 0.0_wp
    593              v_p(nzb,0,:)  = 0.0_wp 
    594           ELSE                   
    595              u_p(nzb,-1,:) =  u_p(nzb+1,-1,:)
    596              v_p(nzb,0,:)  =  v_p(nzb+1,0,:)
    597           ENDIF
    598           w_p(nzb,-1,:) = 0.0_wp
    599 
    600 !
    601 !--       Top boundary at the outflow
    602           IF ( ibc_uv_t == 0 )  THEN
    603              u_p(nzt+1,-1,:) = u_init(nzt+1)
    604              v_p(nzt+1,0,:)  = v_init(nzt+1)
    605           ELSE
    606              u_p(nzt+1,-1,:) = u_p(nzt,-1,:)
    607              v_p(nzt+1,0,:)  = v_p(nzt,0,:)
    608           ENDIF
    609           w_p(nzt:nzt+1,-1,:) = 0.0_wp
    610 
    611        ENDIF
    612 
    613     ENDIF
    614 
    615     IF ( bc_radiation_n )  THEN
    616 
    617        IF ( use_cmax )  THEN
    618           u_p(:,ny+1,:) = u(:,ny,:)
    619           v_p(:,ny+1,:) = v(:,ny,:)
    620           w_p(:,ny+1,:) = w(:,ny,:)         
    621        ELSEIF ( .NOT. use_cmax )  THEN
    622 
    623           c_max = dy / dt_3d
    624 
    625           c_u_m_l = 0.0_wp
    626           c_v_m_l = 0.0_wp
    627           c_w_m_l = 0.0_wp
    628 
    629           c_u_m = 0.0_wp
    630           c_v_m = 0.0_wp
    631           c_w_m = 0.0_wp
    632 
    633 !
    634 !--       Calculate the phase speeds for u, v, and w, first local and then
    635 !--       average along the outflow boundary.
    636           DO  k = nzb+1, nzt+1
    637              DO  i = nxl, nxr
    638 
    639                 denom = u_m_n(k,ny,i) - u_m_n(k,ny-1,i)
    640 
    641                 IF ( denom /= 0.0_wp )  THEN
    642                    c_u(k,i) = -c_max * ( u(k,ny,i) - u_m_n(k,ny,i) ) / ( denom * tsc(2) )
    643                    IF ( c_u(k,i) < 0.0_wp )  THEN
    644                       c_u(k,i) = 0.0_wp
    645                    ELSEIF ( c_u(k,i) > c_max )  THEN
    646                       c_u(k,i) = c_max
    647                    ENDIF
    648                 ELSE
    649                    c_u(k,i) = c_max
    650                 ENDIF
    651 
    652                 denom = v_m_n(k,ny,i) - v_m_n(k,ny-1,i)
    653 
    654                 IF ( denom /= 0.0_wp )  THEN
    655                    c_v(k,i) = -c_max * ( v(k,ny,i) - v_m_n(k,ny,i) ) / ( denom * tsc(2) )
    656                    IF ( c_v(k,i) < 0.0_wp )  THEN
    657                       c_v(k,i) = 0.0_wp
    658                    ELSEIF ( c_v(k,i) > c_max )  THEN
    659                       c_v(k,i) = c_max
    660                    ENDIF
    661                 ELSE
    662                    c_v(k,i) = c_max
    663                 ENDIF
    664 
    665                 denom = w_m_n(k,ny,i) - w_m_n(k,ny-1,i)
    666 
    667                 IF ( denom /= 0.0_wp )  THEN
    668                    c_w(k,i) = -c_max * ( w(k,ny,i) - w_m_n(k,ny,i) ) / ( denom * tsc(2) )
    669                    IF ( c_w(k,i) < 0.0_wp )  THEN
    670                       c_w(k,i) = 0.0_wp
    671                    ELSEIF ( c_w(k,i) > c_max )  THEN
    672                       c_w(k,i) = c_max
    673                    ENDIF
    674                 ELSE
    675                    c_w(k,i) = c_max
    676                 ENDIF
    677 
    678                 c_u_m_l(k) = c_u_m_l(k) + c_u(k,i)
    679                 c_v_m_l(k) = c_v_m_l(k) + c_v(k,i)
    680                 c_w_m_l(k) = c_w_m_l(k) + c_w(k,i)
    681 
    682              ENDDO
    683           ENDDO
    684 
    685 #if defined( __parallel )   
    686           IF ( collective_wait )  CALL MPI_BARRIER( comm1dx, ierr )
    687           CALL MPI_ALLREDUCE( c_u_m_l(nzb+1), c_u_m(nzb+1), nzt-nzb, MPI_REAL, &
    688                               MPI_SUM, comm1dx, ierr )   
    689           IF ( collective_wait )  CALL MPI_BARRIER( comm1dx, ierr )
    690           CALL MPI_ALLREDUCE( c_v_m_l(nzb+1), c_v_m(nzb+1), nzt-nzb, MPI_REAL, &
    691                               MPI_SUM, comm1dx, ierr ) 
    692           IF ( collective_wait )  CALL MPI_BARRIER( comm1dx, ierr )
    693           CALL MPI_ALLREDUCE( c_w_m_l(nzb+1), c_w_m(nzb+1), nzt-nzb, MPI_REAL, &
    694                               MPI_SUM, comm1dx, ierr ) 
    695 #else
    696           c_u_m = c_u_m_l
    697           c_v_m = c_v_m_l
    698           c_w_m = c_w_m_l
    699 #endif
    700 
    701           c_u_m = c_u_m / (nx+1)
    702           c_v_m = c_v_m / (nx+1)
    703           c_w_m = c_w_m / (nx+1)
    704 
    705 !
    706 !--       Save old timelevels for the next timestep
    707           IF ( intermediate_timestep_count == 1 )  THEN
    708630                u_m_n(:,:,:) = u(:,ny-1:ny,:)
    709631                v_m_n(:,:,:) = v(:,ny-1:ny,:)
     
    731653             u_p(nzb,ny+1,:) = 0.0_wp
    732654             v_p(nzb,ny+1,:) = 0.0_wp   
    733           ELSE                   
     655          ELSE
    734656             u_p(nzb,ny+1,:) =  u_p(nzb+1,ny+1,:)
    735657             v_p(nzb,ny+1,:) =  v_p(nzb+1,ny+1,:)
     
    757679          u_p(:,:,0)  = u(:,:,1)
    758680          v_p(:,:,-1) = v(:,:,0)
    759           w_p(:,:,-1) = w(:,:,0)         
     681          w_p(:,:,-1) = w(:,:,0)
    760682       ELSEIF ( .NOT. use_cmax )  THEN
    761683
     
    870792             u_p(nzb,:,0)  = 0.0_wp
    871793             v_p(nzb,:,-1) = 0.0_wp
    872           ELSE                   
     794          ELSE
    873795             u_p(nzb,:,0)  =  u_p(nzb+1,:,0)
    874796             v_p(nzb,:,-1) =  v_p(nzb+1,:,-1)
     
    896818          u_p(:,:,nx+1) = u(:,:,nx)
    897819          v_p(:,:,nx+1) = v(:,:,nx)
    898           w_p(:,:,nx+1) = w(:,:,nx)         
     820          w_p(:,:,nx+1) = w(:,:,nx)
    899821       ELSEIF ( .NOT. use_cmax )  THEN
    900822
     
    1009931             u_p(nzb,:,nx+1) = 0.0_wp
    1010932             v_p(nzb,:,nx+1) = 0.0_wp
    1011           ELSE                   
     933          ELSE
    1012934             u_p(nzb,:,nx+1) =  u_p(nzb+1,:,nx+1)
    1013935             v_p(nzb,:,nx+1) =  v_p(nzb+1,:,nx+1)
Note: See TracChangeset for help on using the changeset viewer.