LCOV - code coverage report
Current view: top level - physics/clubb/src/CLUBB_core - hydromet_pdf_parameter_module.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 29 0.0 %
Date: 2024-12-17 17:57:11 Functions: 0 5 0.0 %

          Line data    Source code
       1             : !---------------------------------------------------------------------------
       2             : ! $Id$
       3             : !===============================================================================
       4             : module hydromet_pdf_parameter_module
       5             : 
       6             :   ! Description:
       7             :   ! This module defines the derived type hydromet_pdf_parameter.
       8             : 
       9             :   ! References:
      10             :   !   None
      11             :   !-------------------------------------------------------------------------
      12             : 
      13             :   use clubb_precision, only: &
      14             :       core_rknd  ! Variable(s)
      15             : 
      16             :   implicit none
      17             : 
      18             :   private ! Default scope
      19             : 
      20             :   public :: hydromet_pdf_parameter,   & ! Variable type
      21             :             precipitation_fractions, &
      22             :             init_hydromet_pdf_params, & ! Procedure
      23             :             init_precip_fracs
      24             : 
      25             :   integer, parameter, private :: &
      26             :     max_hydromet_dim = 8
      27             : 
      28             :   type hydromet_pdf_parameter
      29             : 
      30             :     real( kind = core_rknd ), dimension(max_hydromet_dim) :: &
      31             :       hm_1,          & ! Mean of hydrometeor, hm (1st PDF component)   [un vary]
      32             :       hm_2,          & ! Mean of hydrometeor, hm (2nd PDF component)   [un vary]
      33             :       mu_hm_1,       & ! Mean of hm (1st PDF component) in-precip (ip) [un vary]
      34             :       mu_hm_2,       & ! Mean of hm (2nd PDF component) ip             [un vary]
      35             :       sigma_hm_1,    & ! Standard deviation of hm (1st PDF comp.) ip   [un vary]
      36             :       sigma_hm_2,    & ! Standard deviation of hm (2nd PDF comp.) ip   [un vary]
      37             :       corr_w_hm_1,   & ! Correlation of w and hm (1st PDF component) ip      [-]
      38             :       corr_w_hm_2,   & ! Correlation of w and hm (2nd PDF component) ip      [-]
      39             :       corr_chi_hm_1, & ! Correlation of chi and hm (1st PDF component) ip    [-]
      40             :       corr_chi_hm_2, & ! Correlation of chi and hm (2nd PDF component) ip    [-]
      41             :       corr_eta_hm_1, & ! Correlation of eta and hm (1st PDF component) ip    [-]
      42             :       corr_eta_hm_2    ! Correlation of eta and hm (2nd PDF component) ip    [-]
      43             : 
      44             :     real( kind = core_rknd ), dimension(max_hydromet_dim,max_hydromet_dim) :: &
      45             :       corr_hmx_hmy_1, & ! Correlation of hmx and hmy (1st PDF component) ip  [-]
      46             :       corr_hmx_hmy_2    ! Correlation of hmx and hmy (2nd PDF component) ip  [-]
      47             : 
      48             :     real( kind = core_rknd ) :: &
      49             :       mu_Ncn_1,    & ! Mean of Ncn (1st PDF component)                  [num/kg]
      50             :       mu_Ncn_2,    & ! Mean of Ncn (2nd PDF component)                  [num/kg]
      51             :       sigma_Ncn_1, & ! Standard deviation of Ncn (1st PDF component)    [num/kg]
      52             :       sigma_Ncn_2    ! Standard deviation of Ncn (2nd PDF component)    [num/kg]
      53             : 
      54             :   end type hydromet_pdf_parameter
      55             :   
      56             :   type precipitation_fractions
      57             :     
      58             :     real( kind = core_rknd ), dimension(:,:), allocatable :: &
      59             :       precip_frac,   & ! Precipitation fraction (overall)           [-]
      60             :       precip_frac_1, & ! Precipitation fraction (1st PDF component) [-]
      61             :       precip_frac_2    ! Precipitation fraction (2nd PDF component) [-]
      62             :       
      63             :   end type 
      64             :     
      65             : 
      66             : contains
      67             : 
      68             :   !=============================================================================
      69           0 :   subroutine init_hydromet_pdf_params( hydromet_pdf_params )
      70             : 
      71             :     ! Description:
      72             :     ! Initialize the elements of hydromet_pdf_params.
      73             : 
      74             :     ! References:
      75             :     !-----------------------------------------------------------------------
      76             : 
      77             :     use constants_clubb, only: &
      78             :         zero  ! Constant(s)
      79             : 
      80             :     implicit none
      81             : 
      82             :     ! Output Variable
      83             :     type(hydromet_pdf_parameter), intent(out) :: &
      84             :       hydromet_pdf_params    ! Hydrometeor PDF parameters      [units vary]
      85             : 
      86             :     ! Initialize hydromet_pdf_params.
      87           0 :     hydromet_pdf_params%hm_1 = zero
      88           0 :     hydromet_pdf_params%hm_2 = zero
      89           0 :     hydromet_pdf_params%mu_hm_1 = zero
      90           0 :     hydromet_pdf_params%mu_hm_2 = zero
      91           0 :     hydromet_pdf_params%sigma_hm_1 = zero
      92           0 :     hydromet_pdf_params%sigma_hm_2 = zero
      93           0 :     hydromet_pdf_params%corr_w_hm_1 = zero
      94           0 :     hydromet_pdf_params%corr_w_hm_2 = zero
      95           0 :     hydromet_pdf_params%corr_chi_hm_1 = zero
      96           0 :     hydromet_pdf_params%corr_chi_hm_2 = zero
      97           0 :     hydromet_pdf_params%corr_eta_hm_1 = zero
      98           0 :     hydromet_pdf_params%corr_eta_hm_2 = zero
      99             : 
     100           0 :     hydromet_pdf_params%corr_hmx_hmy_1 = zero
     101           0 :     hydromet_pdf_params%corr_hmx_hmy_2 = zero
     102             : 
     103           0 :     hydromet_pdf_params%mu_Ncn_1 = zero
     104           0 :     hydromet_pdf_params%mu_Ncn_2 = zero
     105           0 :     hydromet_pdf_params%sigma_Ncn_1 = zero
     106           0 :     hydromet_pdf_params%sigma_Ncn_2 = zero
     107             : 
     108           0 :     return
     109             : 
     110             :   end subroutine init_hydromet_pdf_params
     111             :   
     112             :   !=============================================================================
     113           0 :   subroutine init_precip_fracs( nz, ngrdcol, &
     114             :                                 precip_fracs )
     115             : 
     116             :     ! Description:
     117             :     ! Initialize the elements of precip_fracs.
     118             : 
     119             :     ! References:
     120             :     !-----------------------------------------------------------------------
     121             : 
     122             :     use constants_clubb, only: &
     123             :         zero  ! Constant(s)
     124             : 
     125             :     implicit none
     126             :     
     127             :     ! Input Variable(s)
     128             :     integer, intent(in) :: &
     129             :       nz,     & ! Number of vertical grid levels    [-]
     130             :       ngrdcol   ! Number of grid columns            [-]
     131             : 
     132             :     ! Output Variable
     133             :     type(precipitation_fractions), intent(out) :: &
     134             :       precip_fracs    ! Hydrometeor PDF parameters      [units vary]
     135             : 
     136             :     ! Allocate precip frac arrays
     137           0 :     allocate( precip_fracs%precip_frac(ngrdcol,nz), &
     138           0 :               precip_fracs%precip_frac_1(ngrdcol,nz), &
     139           0 :               precip_fracs%precip_frac_2(ngrdcol,nz)  )
     140             : 
     141             :     ! Initialize precip_fracs.
     142           0 :     precip_fracs%precip_frac   = zero
     143           0 :     precip_fracs%precip_frac_1 = zero
     144           0 :     precip_fracs%precip_frac_2 = zero
     145             : 
     146           0 :     return
     147             : 
     148             :   end subroutine init_precip_fracs
     149             : 
     150             : !===============================================================================
     151             : 
     152           0 : end module hydromet_pdf_parameter_module

Generated by: LCOV version 1.14