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

          Line data    Source code
       1             : !-----------------------------------------------------------------------
       2             : ! $Id$
       3             : !===============================================================================
       4             : 
       5             : module stats_rad_zt_module
       6             : 
       7             :   implicit none
       8             : 
       9             :   private ! Default Scope
      10             : 
      11             :   public :: stats_init_rad_zt
      12             : 
      13             :   ! Constant parameters
      14             :   integer, parameter, public :: nvarmax_rad_zt = 250 ! Maximum variables allowed
      15             : 
      16             :   contains
      17             : 
      18             : !-----------------------------------------------------------------------
      19           0 :   subroutine stats_init_rad_zt( vars_rad_zt,                    & ! intent(in)
      20             :                                 l_error,                        & ! intent(inout)
      21             :                                 stats_metadata, stats_rad_zt )    ! intent(inout)
      22             : 
      23             : ! Description:
      24             : !   Initializes array indices for stats_zt
      25             : !
      26             : ! References:
      27             : !   None
      28             : !-----------------------------------------------------------------------
      29             : 
      30             :     use constants_clubb, only:  &
      31             :         fstderr ! Constant(s)
      32             : 
      33             :     use stats_type_utilities, only: & 
      34             :         stat_assign ! Procedure
      35             : 
      36             :     use stats_type, only: &
      37             :         stats ! Type
      38             : 
      39             :     use stats_variables, only: &
      40             :         stats_metadata_type
      41             : 
      42             :     implicit none
      43             : 
      44             :     !--------------------- Input Variable ---------------------
      45             :     character(len= * ), dimension(nvarmax_rad_zt), intent(in) :: &
      46             :       vars_rad_zt
      47             : 
      48             :     !--------------------- InOut Variables ---------------------      
      49             :     type (stats_metadata_type), intent(inout) :: &
      50             :       stats_metadata
      51             : 
      52             :     type (stats), target, intent(inout) :: &
      53             :       stats_rad_zt
      54             : 
      55             :     logical, intent(inout) :: l_error
      56             : 
      57             :     !--------------------- Local Varables ---------------------
      58             :     integer :: i, k
      59             : 
      60             :     !--------------------- Begin Code ---------------------
      61             : 
      62             :     ! Default initialization for array indices for stats_rad_zt
      63             : 
      64           0 :     stats_metadata%iT_in_K_rad             = 0
      65           0 :     stats_metadata%ircil_rad               = 0
      66           0 :     stats_metadata%io3l_rad                = 0
      67           0 :     stats_metadata%irsm_rad                = 0
      68           0 :     stats_metadata%ircm_in_cloud_rad       = 0
      69           0 :     stats_metadata%icloud_frac_rad         = 0
      70           0 :     stats_metadata%iice_supersat_frac_rad  = 0
      71           0 :     stats_metadata%iradht_rad              = 0
      72           0 :     stats_metadata%iradht_LW_rad           = 0
      73           0 :     stats_metadata%iradht_SW_rad           = 0
      74           0 :     stats_metadata%ip_in_mb_rad            = 0
      75           0 :     stats_metadata%isp_humidity_rad        = 0
      76             : 
      77             : 
      78             :     ! Assign pointers for statistics variables stats_rad_zt
      79             : 
      80           0 :     k = 1
      81           0 :     do i=1,stats_rad_zt%num_output_fields
      82             : 
      83           0 :       select case ( trim(vars_rad_zt(i)) )
      84             : 
      85             :       case ('T_in_K_rad')
      86           0 :         stats_metadata%iT_in_K_rad = k
      87             : 
      88             :         call stat_assign( var_index=stats_metadata%iT_in_K_rad, var_name="T_in_K_rad", & ! intent(in)
      89             :              var_description="Temperature [K]", var_units="K", l_silhs=.false., & ! intent(in)
      90           0 :                 grid_kind=stats_rad_zt )! intent(inout)
      91           0 :         k = k + 1
      92             : 
      93             :       case ('rcil_rad')
      94           0 :         stats_metadata%ircil_rad = k
      95             : 
      96             :         call stat_assign( var_index=stats_metadata%ircil_rad, var_name="rcil_rad", & ! intent(in)
      97             :              var_description="Ice mixing ratio [kg/kg]", var_units="kg/kg", & ! intent(in)
      98             :              l_silhs=.false., & ! intent(in)
      99           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     100           0 :         k = k + 1
     101             : 
     102             :       case ('o3l_rad')
     103           0 :         stats_metadata%io3l_rad = k
     104             : 
     105             :         call stat_assign( var_index=stats_metadata%io3l_rad, var_name="o3l_rad", & ! intent(in)
     106             :              var_description="Ozone mixing ratio [kg/kg]", var_units="kg/kg", & ! intent(in)
     107             :              l_silhs=.false., & ! intent(in)
     108           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     109           0 :         k = k + 1
     110             : 
     111             :       case ('rsm_rad')
     112           0 :         stats_metadata%irsm_rad = k
     113             : 
     114             :         call stat_assign( var_index=stats_metadata%irsm_rad, var_name="rsm_rad", & ! intent(in)
     115             :              var_description="Snow water mixing ratio [kg/kg]", var_units="kg/kg", & ! intent(in)
     116             :              l_silhs=.false., & ! intent(in)
     117           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     118           0 :         k = k + 1
     119             : 
     120             :       case ('rcm_in_cloud_rad')
     121           0 :         stats_metadata%ircm_in_cloud_rad = k
     122             : 
     123             :         call stat_assign( var_index=stats_metadata%ircm_in_cloud_rad, var_name="rcm_in_cloud_rad", & ! intent(in)
     124             :              var_description="rcm in cloud layer [kg/kg]", var_units="kg/kg", & ! intent(in)
     125             :              l_silhs=.false., & ! intent(in)
     126           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     127           0 :         k = k + 1
     128             : 
     129             :       case ('cloud_frac_rad')
     130           0 :         stats_metadata%icloud_frac_rad = k
     131             : 
     132             :         call stat_assign( var_index=stats_metadata%icloud_frac_rad, var_name="cloud_frac_rad", & ! intent(in)
     133             :              var_description="Cloud fraction (between 0 and 1) [-]", & ! intent(in)
     134             :              var_units="count", & ! intent(in)
     135             :              l_silhs=.false., & ! intent(in)
     136           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     137           0 :         k = k + 1
     138             :       
     139             :       case ('ice_supersat_frac_rad')
     140           0 :         stats_metadata%iice_supersat_frac_rad = k
     141             : 
     142             :         call stat_assign( var_index=stats_metadata%iice_supersat_frac_rad, var_name="ice_supersat_frac_rad", & !In
     143             :              var_description="Ice cloud fraction (between 0 and 1) [-]", var_units="count", & ! In
     144             :              l_silhs=.false., & ! intent(in)
     145           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     146           0 :         k = k + 1
     147             : 
     148             :       case ('radht_rad')
     149           0 :         stats_metadata%iradht_rad = k
     150             : 
     151             :         call stat_assign( var_index=stats_metadata%iradht_rad, var_name="radht_rad", & ! intent(in)
     152             :              var_description="Total radiative heating rate [K/s]", var_units="K/s", & ! intent(in)
     153             :              l_silhs=.false., & ! intent(in)
     154           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     155           0 :         k = k + 1
     156             : 
     157             :       case ('radht_LW_rad')
     158           0 :         stats_metadata%iradht_LW_rad = k
     159             : 
     160             :         call stat_assign( var_index=stats_metadata%iradht_LW_rad, var_name="radht_LW_rad", & ! intent(in)
     161             :              var_description="Long-wave radiative heating rate [K/s]", var_units="K/s", & ! In
     162             :              l_silhs=.false., & ! intent(in)
     163           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     164           0 :         k = k + 1
     165             : 
     166             :       case ('radht_SW_rad')
     167           0 :         stats_metadata%iradht_SW_rad = k
     168             : 
     169             :         call stat_assign( var_index=stats_metadata%iradht_SW_rad, var_name="radht_SW_rad", & ! intent(in)
     170             :              var_description="Short-wave radiative heating rate [K/s]", var_units="K/s", & ! In
     171             :              l_silhs=.false., & ! intent(in)
     172           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     173           0 :         k = k + 1
     174             : 
     175             :       case ('p_in_mb_rad')
     176           0 :         stats_metadata%ip_in_mb_rad = k
     177             : 
     178             :         call stat_assign( var_index=stats_metadata%ip_in_mb_rad, var_name="p_in_mb_rad", & ! intent(in)
     179             :              var_description="Pressure [hPa]", var_units="hPa", & ! intent(in)
     180             :              l_silhs=.false., & ! intent(in)
     181           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     182           0 :         k = k + 1
     183             : 
     184             :       case ('sp_humidity_rad')
     185           0 :         stats_metadata%isp_humidity_rad = k
     186             : 
     187             :         call stat_assign( var_index=stats_metadata%isp_humidity_rad, var_name="sp_humidity_rad", & ! intent(in)
     188             :              var_description="Specific humidity [kg/kg]", var_units="kg/kg", & ! intent(in)
     189             :              l_silhs=.false., & ! intent(in)
     190           0 :              grid_kind=stats_rad_zt ) ! intent(inout)
     191           0 :         k = k + 1
     192             : 
     193             :       case default
     194             : 
     195           0 :         write(fstderr,*) 'Error:  unrecognized variable in vars_rad_zt:  ', trim( vars_rad_zt(i) )
     196             : 
     197           0 :         l_error = .true.  ! This will stop the run.
     198             : 
     199             : 
     200             :       end select
     201             : 
     202             :     end do
     203             : 
     204           0 :     return
     205             :   end subroutine stats_init_rad_zt
     206             : 
     207             : end module stats_rad_zt_module

Generated by: LCOV version 1.14