81 type(model_state_type),
target,
intent(inout) :: current_state
86 integer :: current_y_index, current_x_index, target_x_index, target_y_index
88 if (current_state%halo_column)
return
90 current_y_index=current_state%column_local_y
91 current_x_index=current_state%column_local_x
92 target_y_index=current_y_index-current_state%local_grid%halo_size(y_index)
93 target_x_index=current_x_index-current_state%local_grid%halo_size(x_index)
95 if (current_state%th%active)
then
96 theta(:,target_y_index, target_x_index) = &
97 (current_state%th%data(:,current_y_index,current_x_index) &
98 + current_state%global_grid%configuration%vertical%thref(:))
99 liquid_ice_theta(:,target_y_index, target_x_index) = &
100 (current_state%th%data(:,current_y_index,current_x_index) &
101 + current_state%global_grid%configuration%vertical%thref(:))
103 if (.not. current_state%passive_q .and. &
104 current_state%number_q_fields .gt. 0)
then
105 total_condensate(:) = &
106 current_state%q(iql)%data(:,current_y_index,current_x_index) + &
107 current_state%q(iqr)%data(:,current_y_index,current_x_index)
108 liquid_ice_theta(:,target_y_index, target_x_index) = &
109 liquid_ice_theta(:,target_y_index, target_x_index) - &
110 ( total_condensate(:) * (rlvap_over_cp) )
112 tdegk(:,target_y_index, target_x_index) = &
113 (current_state%th%data(:,current_y_index,current_x_index) &
114 + current_state%global_grid%configuration%vertical%thref(:) &
115 * current_state%global_grid%configuration%vertical%rprefrcp(:))