Ignore:
Timestamp:
Jul 12, 2016 4:34:24 PM (5 years ago)
Author:
suehring
Message:

Separate balance equations for humidity and passive_scalar

File:
1 edited

Legend:

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

    r1958 r1960  
    1919! Current revisions:
    2020! ------------------
    21 !
     21! Separate humidity and passive scalar.
     22! Bugfix concerning labeling of timeseries.
    2223!
    2324! Former revisions:
     
    326327       
    327328       INTEGER(iwp) ::  i               !< loop variable
     329       INTEGER(iwp) ::  id_pt           !< identifyer for labeling
     330       INTEGER(iwp) ::  id_q            !< identifyer for labeling
     331       INTEGER(iwp) ::  id_ql           !< identifyer for labeling
     332       INTEGER(iwp) ::  id_s            !< identifyer for labeling       
     333       INTEGER(iwp) ::  id_u = 1        !< identifyer for labeling 
     334       INTEGER(iwp) ::  id_v = 2        !< identifyer for labeling
     335       INTEGER(iwp) ::  id_w = 3        !< identifyer for labeling
    328336       INTEGER(iwp) ::  k               !< index variable
    329337       
     
    332340!--    Define output quanities, at least three variables are measured (u,v,w)
    333341       num_var_fl = 3
    334        IF ( .NOT. neutral )                      num_var_fl = num_var_fl + 1
    335        IF ( humidity .OR. passive_scalar )       num_var_fl = num_var_fl + 1
    336        IF ( cloud_physics .OR. cloud_droplets )  num_var_fl = num_var_fl + 1 
     342       IF ( .NOT. neutral                     )  THEN
     343          num_var_fl = num_var_fl + 1
     344          id_pt      = num_var_fl
     345       ENDIF
     346       IF ( humidity                          )  THEN
     347          num_var_fl = num_var_fl + 1
     348          id_q       = num_var_fl
     349       ENDIF
     350       IF ( cloud_physics .OR. cloud_droplets )  THEN
     351          num_var_fl = num_var_fl + 1 
     352          id_ql      = num_var_fl
     353       ENDIF
     354       IF ( passive_scalar                    )  THEN
     355          num_var_fl = num_var_fl + 1
     356          id_s       = num_var_fl
     357       ENDIF
    337358!
    338359!--    Write output strings for dimensions x, y, z
     
    364385          DO i=1, num_var_fl
    365386
    366              SELECT CASE ( i )
    367                      
    368                 CASE( 1 )
    369                    dofl_label(k) = TRIM( label_leg ) // '_u'
    370                    dofl_unit(k)  = 'm/s'
    371                    k             = k + 1
    372 
    373                 CASE( 2 )
    374                    dofl_label(k) = TRIM( label_leg ) // '_v'
    375                    dofl_unit(k)  = 'm/s'
    376                    k             = k + 1
    377 
    378                 CASE( 3 )
    379                    dofl_label(k) = TRIM( label_leg ) // '_w'
    380                    dofl_unit(k)  = 'm/s'
    381                    k             = k + 1
    382 
    383                 CASE( 4 )
    384                    dofl_label(k) = TRIM( label_leg ) // '_pt'
    385                    dofl_unit(k)  = 'K'
    386                    k             = k + 1
    387 
    388                 CASE( 5 )
    389                    dofl_label(k) = TRIM( label_leg ) // '_q'
    390                    dofl_unit(k)  = 'kg/kg'
    391                    k             = k + 1
    392 
    393                 CASE( 6 )
    394                    dofl_label(k) = TRIM( label_leg ) // '_ql'
    395                    dofl_unit(k)  = 'kg/kg'
    396                    k             = k + 1
    397 
    398              END SELECT
    399 
     387             IF ( i == id_u      )  THEN         
     388                dofl_label(k) = TRIM( label_leg ) // '_u'
     389                dofl_unit(k)  = 'm/s'
     390                k             = k + 1
     391             ELSEIF ( i == id_v  )  THEN       
     392                dofl_label(k) = TRIM( label_leg ) // '_v'
     393                dofl_unit(k)  = 'm/s'
     394                k             = k + 1
     395             ELSEIF ( i == id_w  )  THEN         
     396                dofl_label(k) = TRIM( label_leg ) // '_w'
     397                dofl_unit(k)  = 'm/s'
     398                k             = k + 1
     399             ELSEIF ( i == id_pt )  THEN       
     400                dofl_label(k) = TRIM( label_leg ) // '_pt'
     401                dofl_unit(k)  = 'K'
     402                k             = k + 1
     403             ELSEIF ( i == id_q  )  THEN       
     404                dofl_label(k) = TRIM( label_leg ) // '_q'
     405                dofl_unit(k)  = 'kg/kg'
     406                k             = k + 1
     407             ELSEIF ( i == id_ql )  THEN       
     408                dofl_label(k) = TRIM( label_leg ) // '_ql'
     409                dofl_unit(k)  = 'kg/kg'
     410                k             = k + 1
     411             ELSEIF ( i == id_s  )  THEN                         
     412                dofl_label(k) = TRIM( label_leg ) // '_s'
     413                dofl_unit(k)  = 'kg/kg'
     414                k             = k + 1
     415             ENDIF
    400416          ENDDO
    401417         
     
    421437
    422438       USE arrays_3d,                                                          &
    423            ONLY:  ddzu, ddzw, pt, q, ql, u, v, w, zu, zw
     439           ONLY:  ddzu, ddzw, pt, q, ql, s, u, v, w, zu, zw
    424440
    425441       USE control_parameters,                                                 &
     
    596612                ENDIF
    597613!
    598 !--             Humidity or passive scalar
    599                 IF ( humidity .OR. passive_scalar )  THEN
     614!--             Humidity
     615                IF ( humidity )  THEN
    600616                   CALL interpolate_xyz( q, zu, ddzu, 1.0_wp, x, y, var_index, j, i )
    601617                   var_index = var_index + 1
     
    605621                IF ( cloud_physics .OR. cloud_droplets )  THEN
    606622                   CALL interpolate_xyz( ql, zu, ddzu, 1.0_wp, x, y, var_index, j, i )
     623                   var_index = var_index + 1
     624                ENDIF
     625!
     626!--             Passive scalar
     627                IF ( passive_scalar )  THEN
     628                   CALL interpolate_xyz( s, zu, ddzu, 1.0_wp, x, y, var_index, j, i )
    607629                   var_index = var_index + 1
    608630                ENDIF
Note: See TracChangeset for help on using the changeset viewer.