Changeset 1615


Ignore:
Timestamp:
Jul 8, 2015 6:49:19 PM (9 years ago)
Author:
suehring
Message:

Enable turbulent inflow for passive_scalar and humidity

Location:
palm/trunk/SOURCE
Files:
3 edited

Legend:

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

    r1561 r1615  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Enable turbulent inflow for passive_scalar and humidity
    2323!
    2424! Former revisions:
     
    6161
    6262    USE arrays_3d,                                                             &
    63         ONLY:  e, inflow_damping_factor, mean_inflow_profiles, pt, u, v, w
     63        ONLY:  e, inflow_damping_factor, mean_inflow_profiles, pt, q, u, v, w
    6464       
    6565    USE control_parameters,                                                    &
    66         ONLY:  recycling_plane, recycling_yshift
     66        ONLY:  humidity, passive_scalar, recycling_plane, recycling_yshift
    6767       
    6868    USE cpulog,                                                                &
     
    9191    INTEGER(iwp) ::  prev     !:
    9292
    93     REAL(wp), DIMENSION(nzb:nzt+1,5,nbgp)           ::                         &
     93    REAL(wp), DIMENSION(nzb:nzt+1,6,nbgp)           ::                         &
    9494       avpr, avpr_l  !:
    95     REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,5,nbgp) ::                         &
     95    REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,6,nbgp) ::                         &
    9696       inflow_dist, local_inflow_dist  !:
    9797
     
    101101!-- Carry out spanwise averaging in the recycling plane
    102102    avpr_l = 0.0_wp
    103     ngp_pr = ( nzt - nzb + 2 ) * 5 * nbgp
     103    ngp_pr = ( nzt - nzb + 2 ) * 6 * nbgp
    104104    ngp_ifd = ngp_pr * ( nyn - nys + 1 + 2 * nbgp )
    105105
     
    120120                avpr_l(k,4,l) = avpr_l(k,4,l) + pt(k,j,i)
    121121                avpr_l(k,5,l) = avpr_l(k,5,l) + e(k,j,i)
     122                IF ( humidity  .OR.  passive_scalar )                          &
     123                   avpr_l(k,6,l) = avpr_l(k,6,l) + q(k,j,i)
    122124
    123125             ENDDO
     
    130132!-- Now, averaging over all PEs
    131133    IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
    132     CALL MPI_ALLREDUCE( avpr_l(nzb,1,1), avpr(nzb,1,1), ngp_pr, MPI_REAL, &
     134    CALL MPI_ALLREDUCE( avpr_l(nzb,1,1), avpr(nzb,1,1), ngp_pr, MPI_REAL,      &
    133135                        MPI_SUM, comm2d, ierr )
    134136
     
    143145             avpr_l(k,4,l) = avpr_l(k,4,l) + pt(k,j,i)
    144146             avpr_l(k,5,l) = avpr_l(k,5,l) + e(k,j,i)
     147             IF ( humidity  .OR.  passive_scalar )                             &
     148                avpr_l(k,6,l) = avpr_l(k,6,l) + q(k,j,i)
    145149
    146150          ENDDO
     
    168172                inflow_dist(k,j,4,l) = pt(k,j,i)  - avpr(k,4,l)
    169173                inflow_dist(k,j,5,l) = e(k,j,i)   - avpr(k,5,l)
    170              
     174                IF ( humidity  .OR.  passive_scalar )                          &
     175                   inflow_dist(k,j,6,l) = q(k,j,i) - avpr(k,6,l)
    171176            ENDDO
    172177          ENDDO
     
    185190             inflow_dist(k,j,4,l) = pt(k,j,i)  - avpr(k,4,l)
    186191             inflow_dist(k,j,5,l) = e(k,j,i)   - avpr(k,5,l)
     192             IF ( humidity  .OR.  passive_scalar )                             &
     193                inflow_dist(k,j,6,l) = q(k,j,i) - avpr(k,6,l)
    187194             
    188195          ENDDO
     
    263270                e(k,j,-nbgp:-1)  = MAX( e(k,j,-nbgp:-1), 0.0_wp )
    264271
     272                IF ( humidity  .OR.  passive_scalar )                          &
     273                   q(k,j,-nbgp:-1)  = mean_inflow_profiles(k,6) +              &
     274                                      local_inflow_dist(k,j,6,1:nbgp) *        &
     275                                      inflow_damping_factor(k)
     276
    265277             ENDDO
    266278          ENDDO
     
    271283             DO  k = nzb, nzt + 1
    272284 
    273                  u(k,j,-nbgp+1:0) = mean_inflow_profiles(k,1) +                   &
    274                               inflow_dist(k,j,1,1:nbgp) * inflow_damping_factor(k)
    275                  v(k,j,-nbgp:-1)  = mean_inflow_profiles(k,2) +                   &
    276                               inflow_dist(k,j,2,1:nbgp) * inflow_damping_factor(k)
    277                  w(k,j,-nbgp:-1)  =                                               &
     285                u(k,j,-nbgp+1:0) = mean_inflow_profiles(k,1) +                 &
     286                           inflow_dist(k,j,1,1:nbgp) * inflow_damping_factor(k)
     287                v(k,j,-nbgp:-1)  = mean_inflow_profiles(k,2) +                 &
     288                           inflow_dist(k,j,2,1:nbgp) * inflow_damping_factor(k)
     289                w(k,j,-nbgp:-1)  =                                             &
    278290                           inflow_dist(k,j,3,1:nbgp) * inflow_damping_factor(k)
    279                  pt(k,j,-nbgp:-1) = mean_inflow_profiles(k,4) +                   &
     291                pt(k,j,-nbgp:-1) = mean_inflow_profiles(k,4) +                 &
    280292                           inflow_dist(k,j,4,1:nbgp) * inflow_damping_factor(k)
    281                  e(k,j,-nbgp:-1)  = mean_inflow_profiles(k,5) +                   &
     293                e(k,j,-nbgp:-1)  = mean_inflow_profiles(k,5) +                 &
    282294                           inflow_dist(k,j,5,1:nbgp) * inflow_damping_factor(k)
    283                  e(k,j,-nbgp:-1)  = MAX( e(k,j,-nbgp:-1), 0.0_wp )
     295                e(k,j,-nbgp:-1)  = MAX( e(k,j,-nbgp:-1), 0.0_wp )
     296
     297                IF ( humidity  .OR.  passive_scalar )                          &
     298                   q(k,j,-nbgp:-1)  = mean_inflow_profiles(k,6) +              &
     299                           inflow_dist(k,j,6,1:nbgp) * inflow_damping_factor(k)
    284300
    285301             ENDDO
  • palm/trunk/SOURCE/init_3d_model.f90

    r1586 r1615  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Enable turbulent inflow for passive_scalar and humidity
    2323!
    2424! Former revisions:
     
    12481248!--       profiles from the prerun. Alternatively, prescribed profiles
    12491249!--       for u,v-components can be used.
    1250           ALLOCATE( mean_inflow_profiles(nzb:nzt+1,5) )
     1250          ALLOCATE( mean_inflow_profiles(nzb:nzt+1,6) )
    12511251
    12521252          IF ( use_prescribed_profile_data )  THEN
     
    12591259          mean_inflow_profiles(:,4) = hom_sum(:,4,0)       ! pt
    12601260          mean_inflow_profiles(:,5) = hom_sum(:,8,0)       ! e
     1261          mean_inflow_profiles(:,6) = hom_sum(:,41,0)      ! q
    12611262
    12621263!
     
    12851286                   pt(k,j,nxlg:-1) = mean_inflow_profiles(k,4)
    12861287                   e(k,j,nxlg:-1)  = mean_inflow_profiles(k,5)
     1288                   IF ( humidity  .OR.  passive_scalar )                       &
     1289                      q(k,j,nxlg:-1)  = mean_inflow_profiles(k,6)
    12871290                ENDDO
    12881291             ENDDO
  • palm/trunk/SOURCE/read_var_list.f90

    r1586 r1615  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Enable turbulent inflow for passive_scalar and humidity
    2323!
    2424! Former revisions:
     
    442442          CASE ( 'mean_inflow_profiles' )
    443443             IF ( .NOT. ALLOCATED( mean_inflow_profiles ) )  THEN
    444                 ALLOCATE( mean_inflow_profiles(0:nz+1,5) )
     444                ALLOCATE( mean_inflow_profiles(0:nz+1,6) )
    445445             ENDIF
    446446             READ ( 13 )  mean_inflow_profiles
Note: See TracChangeset for help on using the changeset viewer.