Ignore:
Timestamp:
Nov 13, 2012 5:11:03 PM (9 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/data_output_2d.f90

    r1037 r1053  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! +qr, nr, qc and cross sections
    2323!
    2424! Former revisions:
     
    290290                two_d = .TRUE.
    291291                level_z(nzb+1) = zu(nzb+1)
     292
     293             CASE ( 'nr_xy', 'nr_xz', 'nr_yz' )
     294                IF ( av == 0 )  THEN
     295                   to_be_resorted => nr
     296                ELSE
     297                   to_be_resorted => nr_av
     298                ENDIF
     299                IF ( mode == 'xy' )  level_z = zu
    292300
    293301             CASE ( 'p_xy', 'p_xz', 'p_yz' )
     
    376384
    377385             CASE ( 'prr*_xy' )        ! 2d-array
    378                 IF ( av == 0 )  THEN
    379                    CALL exchange_horiz_2d( precipitation_rate )
    380                    DO  i = nxlg, nxrg
    381                       DO  j = nysg, nyng
    382                          local_pf(i,j,nzb+1) =  precipitation_rate(j,i)
    383                       ENDDO
    384                    ENDDO
    385                 ELSE
    386                    CALL exchange_horiz_2d( precipitation_rate_av )
    387                    DO  i = nxlg, nxrg
    388                       DO  j = nysg, nyng
    389                          local_pf(i,j,nzb+1) =  precipitation_rate_av(j,i)
    390                       ENDDO
    391                    ENDDO
     386                IF ( icloud_scheme == 1 )  THEN
     387                   IF ( av == 0 )  THEN
     388                      CALL exchange_horiz_2d( precipitation_rate )
     389                      DO  i = nxlg, nxrg
     390                         DO  j = nysg, nyng
     391                            local_pf(i,j,nzb+1) =  precipitation_rate(j,i)
     392                         ENDDO
     393                      ENDDO
     394                   ELSE
     395                      CALL exchange_horiz_2d( precipitation_rate_av )
     396                      DO  i = nxlg, nxrg
     397                         DO  j = nysg, nyng
     398                            local_pf(i,j,nzb+1) =  precipitation_rate_av(j,i)
     399                         ENDDO
     400                      ENDDO
     401                   ENDIF
     402                ELSE
     403                   IF ( av == 0 )  THEN
     404                      CALL exchange_horiz_2d( prr(nzb+1,:,:) )
     405                      DO  i = nxlg, nxrg
     406                         DO  j = nysg, nyng
     407                            local_pf(i,j,nzb+1) = prr(nzb+1,j,i) * hyrho(nzb+1)
     408                         ENDDO
     409                      ENDDO
     410                   ELSE
     411                      CALL exchange_horiz_2d( prr_av(nzb+1,:,:) )
     412                      DO  i = nxlg, nxrg
     413                         DO  j = nysg, nyng
     414                            local_pf(i,j,nzb+1) = prr_av(nzb+1,j,i) * hyrho(nzb+1)
     415                         ENDDO
     416                      ENDDO
     417                   ENDIF
    392418                ENDIF
    393419                resorted = .TRUE.
    394420                two_d = .TRUE.
    395421                level_z(nzb+1) = zu(nzb+1)
     422
     423             CASE ( 'prr_xy', 'prr_xz', 'prr_yz' )
     424                IF ( av == 0 )  THEN
     425                   CALL exchange_horiz( prr, nbgp )
     426                   DO  i = nxlg, nxrg
     427                      DO  j = nysg, nyng
     428                         DO  k = nzb, nzt+1
     429                            local_pf(i,j,k) = prr(k,j,i)
     430                         ENDDO
     431                      ENDDO
     432                   ENDDO
     433                ELSE
     434                   CALL exchange_horiz( prr_av, nbgp )
     435                   DO  i = nxlg, nxrg
     436                      DO  j = nysg, nyng
     437                         DO  k = nzb, nzt+1
     438                            local_pf(i,j,k) = prr_av(k,j,i)
     439                         ENDDO
     440                      ENDDO
     441                   ENDDO
     442                ENDIF
     443                resorted = .TRUE.
     444                IF ( mode == 'xy' )  level_z = zu
    396445
    397446             CASE ( 'pt_xy', 'pt_xz', 'pt_yz' )
     
    424473                IF ( mode == 'xy' )  level_z = zu
    425474
     475             CASE ( 'qc_xy', 'qc_xz', 'qc_yz' )
     476                IF ( av == 0 )  THEN
     477                   to_be_resorted => ql
     478                ELSE
     479                   to_be_resorted => ql_av
     480                ENDIF
     481                IF ( mode == 'xy' )  level_z = zu
     482
    426483             CASE ( 'ql_xy', 'ql_xz', 'ql_yz' )
    427484                IF ( av == 0 )  THEN
    428                    to_be_resorted => ql
    429                 ELSE
    430                    to_be_resorted => ql_av
     485                   IF ( icloud_scheme == 0 )  THEN
     486                      DO  i = nxlg, nxrg
     487                         DO  j = nysg, nyng
     488                            DO  k = nzb, nz_do3d
     489                               local_pf(i,j,k) = ql(k,j,i) + qr(k,j,i)
     490                            ENDDO
     491                         ENDDO
     492                      ENDDO
     493                      resorted = .TRUE.
     494                   ELSE
     495                      to_be_resorted => ql
     496                   ENDIF
     497                ELSE
     498                   IF ( icloud_scheme == 0 )  THEN
     499                      DO  i = nxlg, nxrg
     500                         DO  j = nysg, nyng
     501                            DO  k = nzb, nz_do3d
     502                               local_pf(i,j,k) = ql_av(k,j,i) + qr_av(k,j,i)
     503                            ENDDO
     504                         ENDDO
     505                      ENDDO
     506                      resorted = .TRUE.
     507                   ELSE
     508                      to_be_resorted => ql_av
     509                   ENDIF
    431510                ENDIF
    432511                IF ( mode == 'xy' )  level_z = zu
     
    478557                   CALL exchange_horiz( ql_vp_av, nbgp )
    479558                   to_be_resorted => ql_vp
     559                ENDIF
     560                IF ( mode == 'xy' )  level_z = zu
     561
     562             CASE ( 'qr_xy', 'qr_xz', 'qr_yz' )
     563                IF ( av == 0 )  THEN
     564                   to_be_resorted => qr
     565                ELSE
     566                   to_be_resorted => qr_av
    480567                ENDIF
    481568                IF ( mode == 'xy' )  level_z = zu
Note: See TracChangeset for help on using the changeset viewer.