Ignore:
Timestamp:
Sep 24, 2018 3:42:55 PM (3 years ago)
Author:
knoop
Message:

Modularization of all bulk cloud physics code components

File:
1 edited

Legend:

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

    r3254 r3274  
    2626! -----------------
    2727! $Id$
     28! Modularization of all bulk cloud physics code components
     29!
     30! 3254 2018-09-17 10:53:57Z suehring
    2831! Remove redundant subroutine argument
    2932!
     
    207210    USE chem_modules
    208211
    209     USE control_parameters               
     212    USE control_parameters
    210213
    211214    USE indices,                                                               &
     
    505508                                                    !< in the domain (required to activiate RTM)
    506509
     510    LOGICAL ::  surf_bulk_cloud_model = .FALSE.                          !< use cloud microphysics
     511    LOGICAL ::  surf_microphysics_morrison = .FALSE.                  !< use 2-moment Morrison (add. prog. eq. for nc and qc)
     512    LOGICAL ::  surf_microphysics_seifert = .FALSE.                   !< use 2-moment Seifert and Beheng scheme
     513
    507514
    508515    SAVE
     
    543550    PUBLIC bc_h, ind_pav_green, ind_veg_wall, ind_wat_win, ns_h_on_file,       &
    544551           ns_v_on_file, surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v,       &
    545            surf_usm_h, surf_usm_v, surf_type, vertical_surfaces_exist
     552           surf_usm_h, surf_usm_v, surf_type, vertical_surfaces_exist,         &
     553           surf_bulk_cloud_model, surf_microphysics_morrison, surf_microphysics_seifert
    546554!
    547555!-- Public subroutines and functions
     
    10901098!
    10911099!--       
    1092        IF ( cloud_physics .AND. microphysics_morrison)  THEN
     1100       IF ( surf_bulk_cloud_model .AND. surf_microphysics_morrison)  THEN
    10931101          DEALLOCATE ( surfaces%qcs )
    10941102          DEALLOCATE ( surfaces%ncs )
     
    10981106!
    10991107!--       
    1100        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1108       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    11011109          DEALLOCATE ( surfaces%qrs )
    11021110          DEALLOCATE ( surfaces%nrs )
     
    12171225!
    12181226!--       
    1219        IF ( cloud_physics .AND. microphysics_morrison)  THEN
     1227       IF ( surf_bulk_cloud_model .AND. surf_microphysics_morrison)  THEN
    12201228          ALLOCATE ( surfaces%qcs(1:surfaces%ns)   )
    12211229          ALLOCATE ( surfaces%ncs(1:surfaces%ns)   )
     
    12251233!
    12261234!--       
    1227        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1235       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    12281236          ALLOCATE ( surfaces%qrs(1:surfaces%ns)   )
    12291237          ALLOCATE ( surfaces%nrs(1:surfaces%ns)   )
     
    12861294!
    12871295!--       
    1288        IF ( cloud_physics .AND. microphysics_morrison)  THEN
     1296       IF ( surf_bulk_cloud_model .AND. surf_microphysics_morrison)  THEN
    12891297          DEALLOCATE ( surfaces%qcsws )
    12901298          DEALLOCATE ( surfaces%ncsws )
     
    12921300!
    12931301!--       
    1294        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1302       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    12951303          DEALLOCATE ( surfaces%qrsws )
    12961304          DEALLOCATE ( surfaces%nrsws )
     
    13581366!
    13591367!--       
    1360        IF ( cloud_physics .AND. microphysics_morrison)  THEN
     1368       IF ( surf_bulk_cloud_model .AND. surf_microphysics_morrison)  THEN
    13611369          ALLOCATE ( surfaces%qcsws(1:surfaces%ns) )
    13621370          ALLOCATE ( surfaces%ncsws(1:surfaces%ns) )
     
    13641372!
    13651373!--       
    1366        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1374       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    13671375          ALLOCATE ( surfaces%qrsws(1:surfaces%ns) )
    13681376          ALLOCATE ( surfaces%nrsws(1:surfaces%ns) )
     
    14731481       DEALLOCATE ( surfaces%vpt1 )
    14741482
    1475        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1483       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    14761484          DEALLOCATE ( surfaces%qcs )
    14771485          DEALLOCATE ( surfaces%ncs )
     
    14801488       ENDIF
    14811489
    1482        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1490       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    14831491          DEALLOCATE ( surfaces%qrs )
    14841492          DEALLOCATE ( surfaces%nrs )
     
    15981606       ALLOCATE ( surfaces%vpt1(1:surfaces%ns) )
    15991607
    1600        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1608       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    16011609          ALLOCATE ( surfaces%qcs(1:surfaces%ns)   )
    16021610          ALLOCATE ( surfaces%ncs(1:surfaces%ns)   )
     
    16051613       ENDIF
    16061614
    1607        IF ( cloud_physics .AND. microphysics_seifert)  THEN
     1615       IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    16081616          ALLOCATE ( surfaces%qrs(1:surfaces%ns)   )
    16091617          ALLOCATE ( surfaces%nrs(1:surfaces%ns)   )
     
    21332141             IF ( humidity )  THEN
    21342142                surf%qs(num_h)   = 0.0_wp
    2135                 IF ( cloud_physics .AND. microphysics_morrison)  THEN
     2143                IF ( surf_bulk_cloud_model .AND. surf_microphysics_morrison)  THEN
    21362144                   surf%qcs(num_h) = 0.0_wp
    21372145                   surf%ncs(num_h) = 0.0_wp
     
    21412149
    21422150                ENDIF
    2143                 IF ( cloud_physics .AND. microphysics_seifert)  THEN
     2151                IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    21442152                   surf%qrs(num_h) = 0.0_wp
    21452153                   surf%nrs(num_h) = 0.0_wp
     
    23142322             IF ( humidity )  THEN
    23152323                surf%qsws(num_h) = 0.0_wp
    2316                 IF ( cloud_physics  .AND.  microphysics_morrison ) THEN
     2324                IF ( surf_bulk_cloud_model  .AND.  surf_microphysics_morrison ) THEN
    23172325                   surf%ncsws(num_h) = 0.0_wp
    23182326                   surf%qcsws(num_h) = 0.0_wp
    23192327                ENDIF
    2320                 IF ( cloud_physics  .AND.  microphysics_seifert ) THEN
     2328                IF ( surf_bulk_cloud_model  .AND.  surf_microphysics_seifert ) THEN
    23212329                   surf%nrsws(num_h) = 0.0_wp
    23222330                   surf%qrsws(num_h) = 0.0_wp
     
    24492457!
    24502458!--             Following wall fluxes are assumed to be zero
    2451                 IF ( cloud_physics .AND. microphysics_morrison)  THEN
     2459                IF ( surf_bulk_cloud_model .AND. surf_microphysics_morrison)  THEN
    24522460                   surf%qcs(num_v) = 0.0_wp
    24532461                   surf%ncs(num_v) = 0.0_wp
     
    24562464                   surf%ncsws(num_v) = 0.0_wp
    24572465                ENDIF
    2458                 IF ( cloud_physics .AND. microphysics_seifert)  THEN
     2466                IF ( surf_bulk_cloud_model .AND. surf_microphysics_seifert)  THEN
    24592467                   surf%qrs(num_v) = 0.0_wp
    24602468                   surf%nrs(num_v) = 0.0_wp
Note: See TracChangeset for help on using the changeset viewer.