-
Notifications
You must be signed in to change notification settings - Fork 23
Prognostic cloud fraction for TEMPO microphysics #146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: gsl/develop
Are you sure you want to change the base?
Changes from 23 commits
38b48a9
aa36d4a
a41b88f
531dc29
c24a709
609d1d3
b2b0550
d44d9f1
ce48a4f
ae12a47
84e925e
92beb51
b9a19d3
e46f1f2
7c6f49f
d2398f6
8c8f91c
8401b9c
73a282f
5099110
e58c070
7850397
917c9d5
79bc0ef
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -424,6 +424,7 @@ | |
| <package name="mp_tempo_in" description="parameterization of TEMPO cloud microphysics."/> | ||
| <package name="tempo_aerosolaware_in" description="variables for TEMPO with aerosol-aware microphysics."/> | ||
| <package name="tempo_hailaware_in" description="variables for TEMPO hail-aware microphysics."/> | ||
| <package name="tempo_cldfra_in" description="variables for TEMPO prognostic cloud fraction microphysics."/> | ||
| <package name="mp_wsm6_in" description="parameterization of WSM6 cloud microphysics."/> | ||
| <package name="mp_nssl2m_in" description="parameterization of NSSL 2-moment microphysics."/> | ||
| <package name="nssl3m_in" description="variables for NSSL 3-moment microphysics."/> | ||
|
|
@@ -2113,6 +2114,14 @@ | |
| <var name="nwfa" array_group="number" units="nb kg^{-1}" | ||
| description="Water-friendly aerosol number concentration" | ||
| packages="mp_thompson_aers_in;tempo_aerosolaware_in"/> | ||
|
|
||
| <var name="qal" array_group="passive" units="" | ||
| description="Prognostic loud liquid fraction" | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. loud --> cloud?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. that is kind of a loud typo |
||
| packages="tempo_cldfra_in"/> | ||
|
|
||
| <var name="qai" array_group="passive" units="" | ||
| description="Prognostic cloud ice fraction" | ||
| packages="tempo_cldfra_in"/> | ||
| </var_array> | ||
| #endif | ||
|
|
||
|
|
@@ -2504,6 +2513,14 @@ | |
| <var name="tend_nwfa" name_in_code="nwfa" array_group="number" units="nb m^{-3} s^{-1}" | ||
| description="Tendency of water-friendly aerosol number concentration multiplied by dry air density divided by d(zeta)/dz" | ||
| packages="mp_thompson_aers_in;tempo_aerosolaware_in"/> | ||
|
|
||
| <var name="tend_qal" name_in_code="qal" array_group="passive" units="" | ||
| description="Tendency of prognostic cloud liquid fraction multiplied by dry air density divided by d(zeta)/dz" | ||
| packages="tempo_cldfra_in"/> | ||
|
|
||
| <var name="tend_qai" name_in_code="qai" array_group="passive" units="" | ||
| description="Tendency of prognostic cloud ice fraction multiplied by dry air density divided by d(zeta)/dz" | ||
| packages="tempo_cldfra_in"/> | ||
| </var_array> | ||
| #endif | ||
| </var_struct> | ||
|
|
@@ -2603,6 +2620,14 @@ | |
| <var name="lbc_nwfa" name_in_code="nwfa" array_group="number" packages="mp_thompson_aers_in;tempo_aerosolaware_in" | ||
| units="m^{-3} s^{-1}" | ||
| description="Lateral boundary tendency of water-friendly aerosol number concentration"/> | ||
|
|
||
| <var name="lbc_qal" name_in_code="qal" array_group="passive" packages="tempo_cldfra_in" | ||
| units="" | ||
| description="Lateral boundary tendency of prognostic cloud liquid fraction"/> | ||
|
|
||
| <var name="lbc_qai" name_in_code="qai" array_group="passive" packages="tempo_cldfra_in" | ||
| units="" | ||
| description="Lateral boundary tendency of prognostic cloud ice fraction"/> | ||
| </var_array> | ||
| </var_struct> | ||
|
|
||
|
|
@@ -2775,7 +2800,10 @@ | |
| units="-" | ||
| description="Logical flag to turn on/off prognostic cloud fraction" | ||
| possible_values=".true. or .false."/> | ||
|
|
||
| <nml_option name="config_tempo_incld" type="logical" default_value="false" in_defaults="false" | ||
| units="-" | ||
| description="Logical flag to turn on/off in-cloud microphysics when config_tempo_cldfra is true" | ||
| possible_values=".true. or .false."/> | ||
| <nml_option name="config_tempo_ml_nc_pbl" type="logical" default_value="false" in_defaults="false" | ||
| units="-" | ||
| description="Logical flag to turn on/off ML prediction of boundary layer cloud number concentrations" | ||
|
|
@@ -2844,7 +2872,7 @@ | |
| <nml_option name="config_radt_cld_scheme" type="character" default_value="suite" in_defaults="false" | ||
| units="-" | ||
| description="configuration for calculation of horizontal cloud fraction" | ||
| possible_values="`suite',`cld_fraction',`cld_incidence',`cld_fraction_thompson',`cld_fraction_mynn'"/> | ||
| possible_values="`suite',`cld_fraction',`cld_incidence',`cld_fraction_thompson',`cld_fraction_mynn',`cld_tempo'"/> | ||
|
|
||
| <nml_option name="config_radt_lw_scheme" type="character" default_value="suite" in_defaults="false" | ||
| units="-" | ||
|
|
@@ -3168,6 +3196,9 @@ | |
| <var name="precipw" type="real" dimensions="nCells Time" units="kg m^{-2}" | ||
| description="precipitable water"/> | ||
|
|
||
| <var name="precipfrac" type="real" dimensions="nVertLevels nCells Time" units="" | ||
| description="rain/snow precipitation fraction" | ||
| packages="tempo_cldfra_in"/> | ||
|
|
||
| <!-- ================================================================================================== --> | ||
| <!-- ... PARAMETERIZATION OF CONVECTION: --> | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -86,6 +86,10 @@ subroutine allocate_cloudiness(configs) | |
| case("cld_fraction_mynn") | ||
| if(.not.allocated(qibl_p)) allocate(qibl_p(ims:ime,kms:kme,jms:jme)) | ||
| if(.not.allocated(qcbl_p)) allocate(qcbl_p(ims:ime,kms:kme,jms:jme)) | ||
|
|
||
| case("cld_tempo") | ||
| if(.not.allocated(qal_p)) allocate(qal_p(ims:ime,kms:kme,jms:jme)) | ||
| if(.not.allocated(qai_p)) allocate(qai_p(ims:ime,kms:kme,jms:jme)) | ||
| case default | ||
|
|
||
| end select cld_fraction_select | ||
|
|
@@ -124,6 +128,10 @@ subroutine deallocate_cloudiness(configs) | |
|
|
||
| if(allocated(qibl_p)) deallocate(qibl_p) | ||
| if(allocated(qcbl_p)) deallocate(qcbl_p) | ||
|
|
||
| case("cld_tempo") | ||
| if(allocated(qal_p)) deallocate(qal_p) | ||
| if(allocated(qai_p)) deallocate(qai_p) | ||
| case default | ||
|
|
||
| end select cld_fraction_select | ||
|
|
@@ -137,7 +145,7 @@ subroutine deallocate_cloudiness(configs) | |
| end subroutine deallocate_cloudiness | ||
|
|
||
| !================================================================================================================= | ||
| subroutine cloudiness_from_MPAS(itimestep,configs,mesh,diag_physics,sfc_input,its,ite) | ||
| subroutine cloudiness_from_MPAS(itimestep,configs,mesh,state,diag_physics,sfc_input,its,ite) | ||
| !================================================================================================================= | ||
|
|
||
| !input arguments: | ||
|
|
@@ -147,6 +155,7 @@ subroutine cloudiness_from_MPAS(itimestep,configs,mesh,diag_physics,sfc_input,it | |
| !input and inout arguments: | ||
| type(mpas_pool_type),intent(in) :: configs | ||
| type(mpas_pool_type),intent(in) :: mesh | ||
| type(mpas_pool_type),intent(in) :: state | ||
| type(mpas_pool_type),intent(in) :: sfc_input | ||
|
|
||
| !inout arguments: | ||
|
|
@@ -164,6 +173,10 @@ subroutine cloudiness_from_MPAS(itimestep,configs,mesh,diag_physics,sfc_input,it | |
| character(len=StrKIND),pointer:: radt_cld_scheme | ||
| character(len=StrKIND),pointer:: convection_scheme | ||
|
|
||
| integer,pointer:: index_qal, index_qai | ||
| real(kind=RKIND),dimension(:,:,:),pointer:: scalars | ||
| real(kind=RKIND),dimension(:,:),pointer:: qal, qai | ||
|
|
||
| !----------------------------------------------------------------------------------------------------------------- | ||
|
|
||
| call mpas_pool_get_config(configs,'config_len_disp',len_disp) | ||
|
|
@@ -235,6 +248,28 @@ subroutine cloudiness_from_MPAS(itimestep,configs,mesh,diag_physics,sfc_input,it | |
| enddo | ||
| enddo | ||
|
|
||
| case("cld_tempo") | ||
| call mpas_pool_get_array(state,'scalars',scalars) | ||
| call mpas_pool_get_dimension(state,'index_qal',index_qal) | ||
| call mpas_pool_get_dimension(state,'index_qai',index_qai) | ||
|
|
||
| qal => scalars(index_qal,:,:) | ||
| qai => scalars(index_qai,:,:) | ||
| do j = jts,jte | ||
| do k = kts,kte | ||
| do i = its,ite | ||
| qal_p(i,k,j) = qal(k,i) | ||
| qai_p(i,k,j) = qai(k,i) | ||
| cldfrac_p(i,k,j) = max(qal(k,i), qai(k,i)) | ||
|
|
||
| if (qirad_p(i,k,j) > 1.e-7) then | ||
|
||
| qirad_p(i,k,j) = qirad_p(i,k,j) + qsrad_p(i,k,j) | ||
| qsrad_p(i,k,j) = 0. | ||
| endif | ||
|
|
||
| enddo | ||
| enddo | ||
| enddo | ||
| case default | ||
|
|
||
| end select cld_fraction_select | ||
|
|
@@ -288,12 +323,13 @@ subroutine cloudiness_to_MPAS(diag_physics,its,ite) | |
| end subroutine cloudiness_to_MPAS | ||
|
|
||
| !================================================================================================================= | ||
| subroutine driver_cloudiness(itimestep,configs,mesh,diag_physics,sfc_input,its,ite) | ||
| subroutine driver_cloudiness(itimestep,configs,mesh,state,diag_physics,sfc_input,its,ite) | ||
| !================================================================================================================= | ||
|
|
||
| !input arguments: | ||
| type(mpas_pool_type),intent(in) :: configs | ||
| type(mpas_pool_type),intent(in) :: mesh | ||
| type(mpas_pool_type),intent(in) :: state | ||
| type(mpas_pool_type),intent(in) :: sfc_input | ||
|
|
||
| integer,intent(in):: its,ite | ||
|
|
@@ -316,7 +352,7 @@ subroutine driver_cloudiness(itimestep,configs,mesh,diag_physics,sfc_input,its,i | |
| call mpas_pool_get_config(configs,'config_convection_scheme',convection_scheme) | ||
|
|
||
| !copy MPAS arrays to local arrays: | ||
| call cloudiness_from_MPAS(itimestep,configs,mesh,diag_physics,sfc_input,its,ite) | ||
| call cloudiness_from_MPAS(itimestep,configs,mesh,state,diag_physics,sfc_input,its,ite) | ||
|
|
||
| cld_fraction_select: select case (trim(radt_cld_scheme)) | ||
| case("cld_incidence") | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Annoying comment: there are two spaces between "fraction" and "microphysics."