Ignore:
Timestamp:
Nov 13, 2012 5:11:03 PM (12 years ago)
Author:
hoffmann
Message:

two-moment cloud physics implemented

Location:
palm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk

  • palm/trunk/SOURCE

  • palm/trunk/SOURCE/advec_ws.f90

    r1037 r1053  
    2020! Current revisions:
    2121! ------------------
     22! necessary expansions according to the two new prognostic equations (nr, qr)
     23! of the two-moment cloud physics scheme:
     24! +flux_l_*, flux_s_*, diss_l_*, diss_s_*, sums_ws*s_ws_l
    2225!
    2326! Former revisions:
     
    210213          ENDIF
    211214
     215          IF ( cloud_physics .AND. icloud_scheme == 0 )  THEN
     216             ALLOCATE( sums_wsqrs_ws_l(nzb:nzt+1,0:threads_per_task-1) )
     217             ALLOCATE( sums_wsnrs_ws_l(nzb:nzt+1,0:threads_per_task-1) )
     218             sums_wsqrs_ws_l = 0.0
     219             sums_wsnrs_ws_l = 0.0
     220          ENDIF
     221
    212222          IF ( ocean )  THEN
    213223             ALLOCATE( sums_wssas_ws_l(nzb:nzt+1,0:threads_per_task-1) )
     
    253263
    254264             IF ( humidity .OR. passive_scalar )  THEN
    255                 ALLOCATE( flux_s_q(nzb+1:nzt,0:threads_per_task-1),         &
     265                ALLOCATE( flux_s_q(nzb+1:nzt,0:threads_per_task-1),          &
    256266                          diss_s_q(nzb+1:nzt,0:threads_per_task-1) )
    257                 ALLOCATE( flux_l_q(nzb+1:nzt,nys:nyn,0:threads_per_task-1), &
     267                ALLOCATE( flux_l_q(nzb+1:nzt,nys:nyn,0:threads_per_task-1),  &
    258268                          diss_l_q(nzb+1:nzt,nys:nyn,0:threads_per_task-1) )
    259269             ENDIF
     270
     271             IF ( cloud_physics .AND. icloud_scheme == 0 )  THEN
     272                ALLOCATE( flux_s_qr(nzb+1:nzt,0:threads_per_task-1),         &
     273                          diss_s_qr(nzb+1:nzt,0:threads_per_task-1),         &
     274                          flux_s_nr(nzb+1:nzt,0:threads_per_task-1),         &
     275                          diss_s_nr(nzb+1:nzt,0:threads_per_task-1) )
     276                ALLOCATE( flux_l_qr(nzb+1:nzt,nys:nyn,0:threads_per_task-1), &
     277                          diss_l_qr(nzb+1:nzt,nys:nyn,0:threads_per_task-1), &
     278                          flux_l_nr(nzb+1:nzt,nys:nyn,0:threads_per_task-1), &
     279                          diss_l_nr(nzb+1:nzt,nys:nyn,0:threads_per_task-1) )
     280             END IF
    260281
    261282             IF ( ocean )  THEN
     
    297318          sums_wspts_ws_l = 0.0
    298319          IF ( humidity .OR. passive_scalar )  sums_wsqs_ws_l = 0.0
     320          IF ( cloud_physics .AND. icloud_scheme == 0 )  THEN
     321             sums_wsqrs_ws_l = 0.0
     322             sums_wsnrs_ws_l = 0.0
     323          ENDIF
    299324          IF ( ocean )  sums_wssas_ws_l = 0.0
    300325
     
    307332! Scalar advection - Call for grid point i,j
    308333!------------------------------------------------------------------------------!
    309     SUBROUTINE advec_s_ws_ij( i, j, sk, sk_char,swap_flux_y_local,  &
    310                               swap_diss_y_local, swap_flux_x_local, &
     334    SUBROUTINE advec_s_ws_ij( i, j, sk, sk_char, swap_flux_y_local,  &
     335                              swap_diss_y_local, swap_flux_x_local,  &
    311336                              swap_diss_x_local, i_omp, tn )
    312337
     
    727752                                 * weight_substep(intermediate_timestep_count)
    728753             ENDDO
     754
     755          CASE ( 'qr' )
     756
     757             DO  k = nzb, nzt
     758                sums_wsqrs_ws_l(k,tn)  = sums_wsqrs_ws_l(k,tn) +               &
     759                                      ( flux_t(k) + diss_t(k) )                &
     760                                 * weight_substep(intermediate_timestep_count)
     761             ENDDO
     762
     763          CASE ( 'nr' )
     764
     765             DO  k = nzb, nzt
     766                sums_wsnrs_ws_l(k,tn)  = sums_wsnrs_ws_l(k,tn) +               &
     767                                      ( flux_t(k) + diss_t(k) )                &
     768                                 * weight_substep(intermediate_timestep_count)
     769             ENDDO
     770
    729771
    730772         END SELECT
Note: See TracChangeset for help on using the changeset viewer.