40 USE rad_pcf, 
ONLY: ip_cloud_mix_max, ip_cloud_mix_random,               &
 
   41   ip_cloud_triple, ip_cloud_part_corr, ip_cloud_part_corr_cnv,          &
 
   42   ip_cloud_mcica, ip_cloud_clear,                                       &
 
   43   ip_solver_homogen_direct, ip_solver_mix_direct_hogan,                 &
 
   44   ip_solver_triple_hogan,                                               &
 
   45   ip_cloud_homogen, ip_cloud_ice_water, ip_cloud_conv_strat,            &
 
   47   ip_scaling, ip_mcica,                                                 &
 
   48   ip_max_rand, ip_exponential_rand, ip_rand
 
   49 USE ereport_mod, 
ONLY: ereport
 
   57 type(model_state_type), 
target, 
intent(inout) :: current_state
 
   60 INTEGER :: namelist_unit
 
   62 REAL(KIND=
jprb)               :: zhook_handle
 
   64 CHARACTER(LEN=*) :: RoutineName
 
   65 parameter(   routinename=
'sw_rad_input_mod')
 
   66 CHARACTER(LEN=errormessagelength) :: CMessage 
 
   68 IF (
lhook) 
CALL dr_hook(
'SW_INPUT',zhook_in,zhook_handle)
 
   88 IF (
sw_control%i_cloud_representation == ip_cloud_homogen) 
THEN 
   98       ELSE IF (
sw_control%i_overlap == ip_exponential_rand) 
THEN 
  100       ELSE IF (
sw_control%i_overlap == ip_rand) 
THEN 
  104          cmessage = 
'The selected cloud overlap is not available' 
  105          CALL ereport(routinename, errorstatus, cmessage)
 
  109 ELSE IF (
sw_control%i_cloud_representation == ip_cloud_ice_water) 
THEN 
  117       sw_control%i_solver=ip_solver_mix_direct_hogan
 
  120       ELSE IF (
sw_control%i_overlap == ip_exponential_rand) 
THEN 
  122       ELSE IF (
sw_control%i_overlap == ip_rand) 
THEN 
  126          cmessage = 
'The selected cloud overlap is not available' 
  127          CALL ereport(routinename, errorstatus, cmessage)
 
  131 ELSE IF ((
sw_control%i_cloud_representation == ip_cloud_conv_strat) .OR.  &
 
  132      (
sw_control%i_cloud_representation == ip_cloud_csiw)) 
THEN 
  136       cmessage = 
'McICA is not compatible with the selected'//                 &
 
  137            ' cloud representation' 
  138       CALL ereport(routinename, errorstatus, cmessage)
 
  143       ELSE IF (
sw_control%i_overlap == ip_exponential_rand) 
THEN 
  145       ELSE IF (
sw_control%i_overlap == ip_rand) 
THEN 
  149          cmessage = 
'The selected cloud overlap is not available' 
  150          CALL ereport(routinename, errorstatus, cmessage)
 
  159    sw_control%i_solver       = ip_solver_homogen_direct
 
  164 IF (
lhook) 
CALL dr_hook(
'SW_INPUT',zhook_out,zhook_handle)