Ignore:
Timestamp:
Jun 20, 2017 9:51:42 AM (7 years ago)
Author:
schwenkel
Message:

implementation of new bulk microphysics scheme

File:
1 edited

Legend:

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

    r2277 r2292  
    2525! -----------------
    2626! $Id$
     27! Implementation of new microphysic scheme: cloud_scheme = 'morrison'
     28! includes two more prognostic equations for cloud drop concentration (nc) 
     29! and cloud water content (qc).
     30!
     31! 2277 2017-06-12 10:47:51Z kanani
    2732! Removed unused variable sums_up_fraction_l
    2833!
     
    560565
    561566          IF ( cloud_physics )  THEN
    562 
    563567!
    564568!--          Liquid water content
     
    568572             ALLOCATE ( ql_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    569573#endif
     574
     575!
     576!--          3D-cloud water content
     577             IF ( .NOT. microphysics_morrison )  THEN
     578#if defined( __nopointer )
     579                ALLOCATE( qc(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     580#else
     581                ALLOCATE( qc_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     582#endif
     583             ENDIF
    570584!
    571585!--          Precipitation amount and rate (only needed if output is switched)
     
    574588
    575589!
    576 !--          3D-cloud water content
    577 #if defined( __nopointer )
    578              ALLOCATE( qc(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    579 #else
    580              ALLOCATE( qc_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    581 #endif
    582 !
    583590!--          3d-precipitation rate
    584591             ALLOCATE( prr(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     592
     593             IF ( microphysics_morrison )  THEN
     594!
     595!--             3D-cloud drop water content, cloud drop concentration arrays
     596#if defined( __nopointer )
     597                ALLOCATE( nc(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                &
     598                          nc_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg),              &
     599                          qc(nzb:nzt+1,nysg:nyng,nxlg:nxrg),                &
     600                          qc_p(nzb:nzt+1,nysg:nyng,nxlg:nxrg),              &
     601                          tnc_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg)
     602                          tqc_m(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     603#else
     604                ALLOCATE( nc_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),              &
     605                          nc_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg),              &
     606                          nc_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg),              &
     607                          qc_1(nzb:nzt+1,nysg:nyng,nxlg:nxrg),              &
     608                          qc_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg),              &
     609                          qc_3(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     610#endif
     611             ENDIF
    585612
    586613             IF ( microphysics_seifert )  THEN
     
    880907          IF ( cloud_physics )  THEN
    881908             ql => ql_1
    882              qc => qc_1
     909             IF ( .NOT. microphysics_morrison )  THEN
     910                qc => qc_1
     911             ENDIF
     912             IF ( microphysics_morrison )  THEN
     913                qc => qc_1;  qc_p  => qc_2;  tqc_m  => qc_3
     914                nc => nc_1;  nc_p  => nc_2;  tnc_m  => nc_3
     915             ENDIF
    883916             IF ( microphysics_seifert )  THEN
    884917                qr => qr_1;  qr_p  => qr_2;  tqr_m  => qr_3
     
    9791012                ENDDO
    9801013             ENDDO
     1014             IF ( cloud_physics  .AND.  microphysics_morrison )  THEN
     1015                DO  i = nxlg, nxrg
     1016                   DO  j = nysg, nyng
     1017                      qc(:,j,i) = 0.0_wp
     1018                      nc(:,j,i) = 0.0_wp
     1019                   ENDDO
     1020                ENDDO
     1021             ENDIF
    9811022             IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
    9821023                DO  i = nxlg, nxrg
     
    9861027                   ENDDO
    9871028                ENDDO
    988 
    9891029             ENDIF
    9901030          ENDIF
     1031
    9911032          IF ( passive_scalar )  THEN
    9921033             DO  i = nxlg, nxrg
     
    11071148                ENDDO
    11081149             ENDDO
     1150             IF ( cloud_physics  .AND.  microphysics_morrison )  THEN
     1151                DO  i = nxlg, nxrg
     1152                   DO  j = nysg, nyng
     1153                      qc(:,j,i) = 0.0_wp
     1154                      nc(:,j,i) = 0.0_wp
     1155                   ENDDO
     1156                ENDDO
     1157             ENDIF
     1158
    11091159             IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
    1110 
    11111160                DO  i = nxlg, nxrg
    11121161                   DO  j = nysg, nyng
     
    11151164                   ENDDO
    11161165                ENDDO
    1117 
    11181166             ENDIF
     1167
    11191168          ENDIF
    11201169         
     
    13191368          tq_m = 0.0_wp
    13201369          q_p = q
     1370          IF ( cloud_physics  .AND.  microphysics_morrison )  THEN
     1371             tqc_m = 0.0_wp
     1372             qc_p  = qc
     1373             tnc_m = 0.0_wp
     1374             nc_p  = nc
     1375          ENDIF
    13211376          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
    13221377             tqr_m = 0.0_wp
     
    15321587       IF ( humidity )  THEN
    15331588          q_p = q
     1589          IF ( cloud_physics  .AND.  microphysics_morrison )  THEN
     1590             qc_p = qc
     1591             nc_p = nc
     1592          ENDIF
    15341593          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
    15351594             qr_p = qr
     
    15471606       IF ( humidity )  THEN
    15481607          tq_m = 0.0_wp
     1608          IF ( cloud_physics  .AND.  microphysics_morrison )  THEN
     1609             tqc_m = 0.0_wp
     1610             tnc_m = 0.0_wp
     1611          ENDIF
    15491612          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
    15501613             tqr_m = 0.0_wp
Note: See TracChangeset for help on using the changeset viewer.