include file: shift_halo_x.inc 1
IF ( SIZE(grid%lu_index,1)*SIZE(grid%lu_index,2) .GT. 1 ) THEN
grid%lu_index (ips:min(ide-1,ipe),jms:jme) = grid%lu_index (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lu_mask,1)*SIZE(grid%lu_mask,2) .GT. 1 ) THEN
grid%lu_mask (ips:min(ide-1,ipe),jms:jme) = grid%lu_mask (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%u_gc,1)*SIZE(grid%u_gc,3) .GT. 1 ) THEN
grid%u_gc (ips:min(ide,ipe),:,jms:jme) = grid%u_gc (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%v_gc,1)*SIZE(grid%v_gc,3) .GT. 1 ) THEN
grid%v_gc (ips:min(ide-1,ipe),:,jms:jme) = grid%v_gc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%t_gc,1)*SIZE(grid%t_gc,3) .GT. 1 ) THEN
grid%t_gc (ips:min(ide-1,ipe),:,jms:jme) = grid%t_gc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rh_gc,1)*SIZE(grid%rh_gc,3) .GT. 1 ) THEN
grid%rh_gc (ips:min(ide-1,ipe),:,jms:jme) = grid%rh_gc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ght_gc,1)*SIZE(grid%ght_gc,3) .GT. 1 ) THEN
grid%ght_gc (ips:min(ide-1,ipe),:,jms:jme) = grid%ght_gc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%p_gc,1)*SIZE(grid%p_gc,3) .GT. 1 ) THEN
grid%p_gc (ips:min(ide-1,ipe),:,jms:jme) = grid%p_gc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%xlat_gc,1)*SIZE(grid%xlat_gc,2) .GT. 1 ) THEN
grid%xlat_gc (ips:min(ide-1,ipe),jms:jme) = grid%xlat_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xlong_gc,1)*SIZE(grid%xlong_gc,2) .GT. 1 ) THEN
grid%xlong_gc (ips:min(ide-1,ipe),jms:jme) = grid%xlong_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ht_gc,1)*SIZE(grid%ht_gc,2) .GT. 1 ) THEN
grid%ht_gc (ips:min(ide-1,ipe),jms:jme) = grid%ht_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tsk_gc,1)*SIZE(grid%tsk_gc,2) .GT. 1 ) THEN
grid%tsk_gc (ips:min(ide-1,ipe),jms:jme) = grid%tsk_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tavgsfc,1)*SIZE(grid%tavgsfc,2) .GT. 1 ) THEN
grid%tavgsfc (ips:min(ide-1,ipe),jms:jme) = grid%tavgsfc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tmn_gc,1)*SIZE(grid%tmn_gc,2) .GT. 1 ) THEN
grid%tmn_gc (ips:min(ide-1,ipe),jms:jme) = grid%tmn_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%pslv_gc,1)*SIZE(grid%pslv_gc,2) .GT. 1 ) THEN
grid%pslv_gc (ips:min(ide-1,ipe),jms:jme) = grid%pslv_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%greenfrac,1)*SIZE(grid%greenfrac,3) .GT. 1 ) THEN
grid%greenfrac (ips:min(ide-1,ipe),:,jms:jme) = grid%greenfrac (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%albedo12m,1)*SIZE(grid%albedo12m,3) .GT. 1 ) THEN
grid%albedo12m (ips:min(ide-1,ipe),:,jms:jme) = grid%albedo12m (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%pd_gc,1)*SIZE(grid%pd_gc,3) .GT. 1 ) THEN
grid%pd_gc (ips:min(ide-1,ipe),:,jms:jme) = grid%pd_gc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%psfc_gc,1)*SIZE(grid%psfc_gc,2) .GT. 1 ) THEN
grid%psfc_gc (ips:min(ide-1,ipe),jms:jme) = grid%psfc_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%intq_gc,1)*SIZE(grid%intq_gc,2) .GT. 1 ) THEN
grid%intq_gc (ips:min(ide-1,ipe),jms:jme) = grid%intq_gc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%pdhs,1)*SIZE(grid%pdhs,2) .GT. 1 ) THEN
grid%pdhs (ips:min(ide-1,ipe),jms:jme) = grid%pdhs (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qv_gc,1)*SIZE(grid%qv_gc,3) .GT. 1 ) THEN
grid%qv_gc (ips:min(ide-1,ipe),:,jms:jme) = grid%qv_gc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%u_1,1)*SIZE(grid%u_1,3) .GT. 1 ) THEN
grid%u_1 (ips:min(ide,ipe),:,jms:jme) = grid%u_1 (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%u_2,1)*SIZE(grid%u_2,3) .GT. 1 ) THEN
grid%u_2 (ips:min(ide,ipe),:,jms:jme) = grid%u_2 (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ru,1)*SIZE(grid%ru,3) .GT. 1 ) THEN
grid%ru (ips:min(ide,ipe),:,jms:jme) = grid%ru (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ru_m,1)*SIZE(grid%ru_m,3) .GT. 1 ) THEN
grid%ru_m (ips:min(ide,ipe),:,jms:jme) = grid%ru_m (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ru_tend,1)*SIZE(grid%ru_tend,3) .GT. 1 ) THEN
grid%ru_tend (ips:min(ide,ipe),:,jms:jme) = grid%ru_tend (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%u_save,1)*SIZE(grid%u_save,3) .GT. 1 ) THEN
grid%u_save (ips:min(ide,ipe),:,jms:jme) = grid%u_save (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%v_1,1)*SIZE(grid%v_1,3) .GT. 1 ) THEN
grid%v_1 (ips:min(ide-1,ipe),:,jms:jme) = grid%v_1 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%v_2,1)*SIZE(grid%v_2,3) .GT. 1 ) THEN
grid%v_2 (ips:min(ide-1,ipe),:,jms:jme) = grid%v_2 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rv,1)*SIZE(grid%rv,3) .GT. 1 ) THEN
grid%rv (ips:min(ide-1,ipe),:,jms:jme) = grid%rv (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rv_m,1)*SIZE(grid%rv_m,3) .GT. 1 ) THEN
grid%rv_m (ips:min(ide-1,ipe),:,jms:jme) = grid%rv_m (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rv_tend,1)*SIZE(grid%rv_tend,3) .GT. 1 ) THEN
grid%rv_tend (ips:min(ide-1,ipe),:,jms:jme) = grid%rv_tend (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%v_save,1)*SIZE(grid%v_save,3) .GT. 1 ) THEN
grid%v_save (ips:min(ide-1,ipe),:,jms:jme) = grid%v_save (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%w_1,1)*SIZE(grid%w_1,3) .GT. 1 ) THEN
grid%w_1 (ips:min(ide-1,ipe),:,jms:jme) = grid%w_1 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%w_2,1)*SIZE(grid%w_2,3) .GT. 1 ) THEN
grid%w_2 (ips:min(ide-1,ipe),:,jms:jme) = grid%w_2 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ww,1)*SIZE(grid%ww,3) .GT. 1 ) THEN
grid%ww (ips:min(ide-1,ipe),:,jms:jme) = grid%ww (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rw,1)*SIZE(grid%rw,3) .GT. 1 ) THEN
grid%rw (ips:min(ide-1,ipe),:,jms:jme) = grid%rw (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ww_m,1)*SIZE(grid%ww_m,3) .GT. 1 ) THEN
grid%ww_m (ips:min(ide-1,ipe),:,jms:jme) = grid%ww_m (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ph_1,1)*SIZE(grid%ph_1,3) .GT. 1 ) THEN
grid%ph_1 (ips:min(ide-1,ipe),:,jms:jme) = grid%ph_1 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ph_2,1)*SIZE(grid%ph_2,3) .GT. 1 ) THEN
grid%ph_2 (ips:min(ide-1,ipe),:,jms:jme) = grid%ph_2 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%phb,1)*SIZE(grid%phb,3) .GT. 1 ) THEN
grid%phb (ips:min(ide-1,ipe),:,jms:jme) = grid%phb (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%phb_fine,1)*SIZE(grid%phb_fine,3) .GT. 1 ) THEN
grid%phb_fine (ips:min(ide-1,ipe),:,jms:jme) = grid%phb_fine (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ph0,1)*SIZE(grid%ph0,3) .GT. 1 ) THEN
grid%ph0 (ips:min(ide-1,ipe),:,jms:jme) = grid%ph0 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%php,1)*SIZE(grid%php,3) .GT. 1 ) THEN
grid%php (ips:min(ide-1,ipe),:,jms:jme) = grid%php (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%t_1,1)*SIZE(grid%t_1,3) .GT. 1 ) THEN
grid%t_1 (ips:min(ide-1,ipe),:,jms:jme) = grid%t_1 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%t_2,1)*SIZE(grid%t_2,3) .GT. 1 ) THEN
grid%t_2 (ips:min(ide-1,ipe),:,jms:jme) = grid%t_2 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%t_init,1)*SIZE(grid%t_init,3) .GT. 1 ) THEN
grid%t_init (ips:min(ide-1,ipe),:,jms:jme) = grid%t_init (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tp_1,1)*SIZE(grid%tp_1,3) .GT. 1 ) THEN
grid%tp_1 (ips:min(ide-1,ipe),:,jms:jme) = grid%tp_1 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tp_2,1)*SIZE(grid%tp_2,3) .GT. 1 ) THEN
grid%tp_2 (ips:min(ide-1,ipe),:,jms:jme) = grid%tp_2 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%t_save,1)*SIZE(grid%t_save,3) .GT. 1 ) THEN
grid%t_save (ips:min(ide-1,ipe),:,jms:jme) = grid%t_save (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%mu_1,1)*SIZE(grid%mu_1,2) .GT. 1 ) THEN
grid%mu_1 (ips:min(ide-1,ipe),jms:jme) = grid%mu_1 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mu_2,1)*SIZE(grid%mu_2,2) .GT. 1 ) THEN
grid%mu_2 (ips:min(ide-1,ipe),jms:jme) = grid%mu_2 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mub,1)*SIZE(grid%mub,2) .GT. 1 ) THEN
grid%mub (ips:min(ide-1,ipe),jms:jme) = grid%mub (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mub_fine,1)*SIZE(grid%mub_fine,2) .GT. 1 ) THEN
grid%mub_fine (ips:min(ide-1,ipe),jms:jme) = grid%mub_fine (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mub_save,1)*SIZE(grid%mub_save,2) .GT. 1 ) THEN
grid%mub_save (ips:min(ide-1,ipe),jms:jme) = grid%mub_save (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mu0,1)*SIZE(grid%mu0,2) .GT. 1 ) THEN
grid%mu0 (ips:min(ide-1,ipe),jms:jme) = grid%mu0 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mudf,1)*SIZE(grid%mudf,2) .GT. 1 ) THEN
grid%mudf (ips:min(ide-1,ipe),jms:jme) = grid%mudf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%muu,1)*SIZE(grid%muu,2) .GT. 1 ) THEN
grid%muu (ips:min(ide-1,ipe),jms:jme) = grid%muu (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%muv,1)*SIZE(grid%muv,2) .GT. 1 ) THEN
grid%muv (ips:min(ide-1,ipe),jms:jme) = grid%muv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mut,1)*SIZE(grid%mut,2) .GT. 1 ) THEN
grid%mut (ips:min(ide-1,ipe),jms:jme) = grid%mut (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%muts,1)*SIZE(grid%muts,2) .GT. 1 ) THEN
grid%muts (ips:min(ide-1,ipe),jms:jme) = grid%muts (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%nest_pos,1)*SIZE(grid%nest_pos,2) .GT. 1 ) THEN
grid%nest_pos (ips:min(ide-1,ipe),jms:jme) = grid%nest_pos (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%nest_mask,1)*SIZE(grid%nest_mask,2) .GT. 1 ) THEN
grid%nest_mask (ips:min(ide-1,ipe),jms:jme) = grid%nest_mask (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ht_coarse,1)*SIZE(grid%ht_coarse,2) .GT. 1 ) THEN
grid%ht_coarse (ips:min(ide-1,ipe),jms:jme) = grid%ht_coarse (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tke_1,1)*SIZE(grid%tke_1,3) .GT. 1 ) THEN
grid%tke_1 (ips:min(ide-1,ipe),:,jms:jme) = grid%tke_1 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tke_2,1)*SIZE(grid%tke_2,3) .GT. 1 ) THEN
grid%tke_2 (ips:min(ide-1,ipe),:,jms:jme) = grid%tke_2 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%p,1)*SIZE(grid%p,3) .GT. 1 ) THEN
grid%p (ips:min(ide-1,ipe),:,jms:jme) = grid%p (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%al,1)*SIZE(grid%al,3) .GT. 1 ) THEN
grid%al (ips:min(ide-1,ipe),:,jms:jme) = grid%al (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%alt,1)*SIZE(grid%alt,3) .GT. 1 ) THEN
grid%alt (ips:min(ide-1,ipe),:,jms:jme) = grid%alt (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%alb,1)*SIZE(grid%alb,3) .GT. 1 ) THEN
grid%alb (ips:min(ide-1,ipe),:,jms:jme) = grid%alb (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%zx,1)*SIZE(grid%zx,3) .GT. 1 ) THEN
grid%zx (ips:min(ide,ipe),:,jms:jme) = grid%zx (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%zy,1)*SIZE(grid%zy,3) .GT. 1 ) THEN
grid%zy (ips:min(ide-1,ipe),:,jms:jme) = grid%zy (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rdz,1)*SIZE(grid%rdz,3) .GT. 1 ) THEN
grid%rdz (ips:min(ide-1,ipe),:,jms:jme) = grid%rdz (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rdzw,1)*SIZE(grid%rdzw,3) .GT. 1 ) THEN
grid%rdzw (ips:min(ide-1,ipe),:,jms:jme) = grid%rdzw (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%pb,1)*SIZE(grid%pb,3) .GT. 1 ) THEN
grid%pb (ips:min(ide-1,ipe),:,jms:jme) = grid%pb (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sr,1)*SIZE(grid%sr,2) .GT. 1 ) THEN
grid%sr (ips:min(ide-1,ipe),jms:jme) = grid%sr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%potevp,1)*SIZE(grid%potevp,2) .GT. 1 ) THEN
grid%potevp (ips:min(ide-1,ipe),jms:jme) = grid%potevp (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snopcx,1)*SIZE(grid%snopcx,2) .GT. 1 ) THEN
grid%snopcx (ips:min(ide-1,ipe),jms:jme) = grid%snopcx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soiltb,1)*SIZE(grid%soiltb,2) .GT. 1 ) THEN
grid%soiltb (ips:min(ide-1,ipe),jms:jme) = grid%soiltb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%z,1)*SIZE(grid%z,3) .GT. 1 ) THEN
grid%z (ips:min(ide-1,ipe),:,jms:jme) = grid%z (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%z_at_w,1)*SIZE(grid%z_at_w,3) .GT. 1 ) THEN
grid%z_at_w (ips:min(ide-1,ipe),:,jms:jme) = grid%z_at_w (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%q2,1)*SIZE(grid%q2,2) .GT. 1 ) THEN
grid%q2 (ips:min(ide-1,ipe),jms:jme) = grid%q2 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%t2,1)*SIZE(grid%t2,2) .GT. 1 ) THEN
grid%t2 (ips:min(ide-1,ipe),jms:jme) = grid%t2 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%th2,1)*SIZE(grid%th2,2) .GT. 1 ) THEN
grid%th2 (ips:min(ide-1,ipe),jms:jme) = grid%th2 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%psfc,1)*SIZE(grid%psfc,2) .GT. 1 ) THEN
grid%psfc (ips:min(ide-1,ipe),jms:jme) = grid%psfc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%u10,1)*SIZE(grid%u10,2) .GT. 1 ) THEN
grid%u10 (ips:min(ide-1,ipe),jms:jme) = grid%u10 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%v10,1)*SIZE(grid%v10,2) .GT. 1 ) THEN
grid%v10 (ips:min(ide-1,ipe),jms:jme) = grid%v10 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%uratx,1)*SIZE(grid%uratx,2) .GT. 1 ) THEN
grid%uratx (ips:min(ide-1,ipe),jms:jme) = grid%uratx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%vratx,1)*SIZE(grid%vratx,2) .GT. 1 ) THEN
grid%vratx (ips:min(ide-1,ipe),jms:jme) = grid%vratx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tratx,1)*SIZE(grid%tratx,2) .GT. 1 ) THEN
grid%tratx (ips:min(ide-1,ipe),jms:jme) = grid%tratx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%imask_nostag,1)*SIZE(grid%imask_nostag,2) .GT. 1 ) THEN
grid%imask_nostag (ips:min(ide-1,ipe),jms:jme) = grid%imask_nostag (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%imask_xstag,1)*SIZE(grid%imask_xstag,2) .GT. 1 ) THEN
grid%imask_xstag (ips:min(ide,ipe),jms:jme) = grid%imask_xstag (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%imask_ystag,1)*SIZE(grid%imask_ystag,2) .GT. 1 ) THEN
grid%imask_ystag (ips:min(ide-1,ipe),jms:jme) = grid%imask_ystag (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%imask_xystag,1)*SIZE(grid%imask_xystag,2) .GT. 1 ) THEN
grid%imask_xystag (ips:min(ide,ipe),jms:jme) = grid%imask_xystag (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
  DO itrace = PARAM_FIRST_SCALAR, num_moist
IF ( SIZE(grid%moist,1)*SIZE(grid%moist,3) .GT. 1 ) THEN
grid%moist (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%moist (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
  DO itrace = PARAM_FIRST_SCALAR, num_dfi_moist
IF ( SIZE(grid%dfi_moist,1)*SIZE(grid%dfi_moist,3) .GT. 1 ) THEN
grid%dfi_moist (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%dfi_moist (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
  DO itrace = PARAM_FIRST_SCALAR, num_chem
IF ( SIZE(grid%chem,1)*SIZE(grid%chem,3) .GT. 1 ) THEN
grid%chem (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%chem (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
  DO itrace = PARAM_FIRST_SCALAR, num_scalar
IF ( SIZE(grid%scalar,1)*SIZE(grid%scalar,3) .GT. 1 ) THEN
grid%scalar (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%scalar (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
  DO itrace = PARAM_FIRST_SCALAR, num_dfi_scalar
IF ( SIZE(grid%dfi_scalar,1)*SIZE(grid%dfi_scalar,3) .GT. 1 ) THEN
grid%dfi_scalar (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%dfi_scalar (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
IF ( SIZE(grid%soil_layers,1)*SIZE(grid%soil_layers,3) .GT. 1 ) THEN
grid%soil_layers (ips:min(ide-1,ipe),:,jms:jme) = grid%soil_layers (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%soil_levels,1)*SIZE(grid%soil_levels,3) .GT. 1 ) THEN
grid%soil_levels (ips:min(ide-1,ipe),:,jms:jme) = grid%soil_levels (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%st,1)*SIZE(grid%st,3) .GT. 1 ) THEN
grid%st (ips:min(ide-1,ipe),:,jms:jme) = grid%st (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sm,1)*SIZE(grid%sm,3) .GT. 1 ) THEN
grid%sm (ips:min(ide-1,ipe),:,jms:jme) = grid%sm (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sw,1)*SIZE(grid%sw,3) .GT. 1 ) THEN
grid%sw (ips:min(ide-1,ipe),:,jms:jme) = grid%sw (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sm000007,1)*SIZE(grid%sm000007,2) .GT. 1 ) THEN
grid%sm000007 (ips:min(ide-1,ipe),jms:jme) = grid%sm000007 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm007028,1)*SIZE(grid%sm007028,2) .GT. 1 ) THEN
grid%sm007028 (ips:min(ide-1,ipe),jms:jme) = grid%sm007028 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm028100,1)*SIZE(grid%sm028100,2) .GT. 1 ) THEN
grid%sm028100 (ips:min(ide-1,ipe),jms:jme) = grid%sm028100 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm100255,1)*SIZE(grid%sm100255,2) .GT. 1 ) THEN
grid%sm100255 (ips:min(ide-1,ipe),jms:jme) = grid%sm100255 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st000007,1)*SIZE(grid%st000007,2) .GT. 1 ) THEN
grid%st000007 (ips:min(ide-1,ipe),jms:jme) = grid%st000007 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st007028,1)*SIZE(grid%st007028,2) .GT. 1 ) THEN
grid%st007028 (ips:min(ide-1,ipe),jms:jme) = grid%st007028 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st028100,1)*SIZE(grid%st028100,2) .GT. 1 ) THEN
grid%st028100 (ips:min(ide-1,ipe),jms:jme) = grid%st028100 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st100255,1)*SIZE(grid%st100255,2) .GT. 1 ) THEN
grid%st100255 (ips:min(ide-1,ipe),jms:jme) = grid%st100255 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm000010,1)*SIZE(grid%sm000010,2) .GT. 1 ) THEN
grid%sm000010 (ips:min(ide-1,ipe),jms:jme) = grid%sm000010 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm010040,1)*SIZE(grid%sm010040,2) .GT. 1 ) THEN
grid%sm010040 (ips:min(ide-1,ipe),jms:jme) = grid%sm010040 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm040100,1)*SIZE(grid%sm040100,2) .GT. 1 ) THEN
grid%sm040100 (ips:min(ide-1,ipe),jms:jme) = grid%sm040100 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm100200,1)*SIZE(grid%sm100200,2) .GT. 1 ) THEN
grid%sm100200 (ips:min(ide-1,ipe),jms:jme) = grid%sm100200 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sm010200,1)*SIZE(grid%sm010200,2) .GT. 1 ) THEN
grid%sm010200 (ips:min(ide-1,ipe),jms:jme) = grid%sm010200 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilm000,1)*SIZE(grid%soilm000,2) .GT. 1 ) THEN
grid%soilm000 (ips:min(ide-1,ipe),jms:jme) = grid%soilm000 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilm005,1)*SIZE(grid%soilm005,2) .GT. 1 ) THEN
grid%soilm005 (ips:min(ide-1,ipe),jms:jme) = grid%soilm005 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilm020,1)*SIZE(grid%soilm020,2) .GT. 1 ) THEN
grid%soilm020 (ips:min(ide-1,ipe),jms:jme) = grid%soilm020 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilm040,1)*SIZE(grid%soilm040,2) .GT. 1 ) THEN
grid%soilm040 (ips:min(ide-1,ipe),jms:jme) = grid%soilm040 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilm160,1)*SIZE(grid%soilm160,2) .GT. 1 ) THEN
grid%soilm160 (ips:min(ide-1,ipe),jms:jme) = grid%soilm160 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilm300,1)*SIZE(grid%soilm300,2) .GT. 1 ) THEN
grid%soilm300 (ips:min(ide-1,ipe),jms:jme) = grid%soilm300 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sw000010,1)*SIZE(grid%sw000010,2) .GT. 1 ) THEN
grid%sw000010 (ips:min(ide-1,ipe),jms:jme) = grid%sw000010 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sw010040,1)*SIZE(grid%sw010040,2) .GT. 1 ) THEN
grid%sw010040 (ips:min(ide-1,ipe),jms:jme) = grid%sw010040 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sw040100,1)*SIZE(grid%sw040100,2) .GT. 1 ) THEN
grid%sw040100 (ips:min(ide-1,ipe),jms:jme) = grid%sw040100 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sw100200,1)*SIZE(grid%sw100200,2) .GT. 1 ) THEN
grid%sw100200 (ips:min(ide-1,ipe),jms:jme) = grid%sw100200 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sw010200,1)*SIZE(grid%sw010200,2) .GT. 1 ) THEN
grid%sw010200 (ips:min(ide-1,ipe),jms:jme) = grid%sw010200 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilw000,1)*SIZE(grid%soilw000,2) .GT. 1 ) THEN
grid%soilw000 (ips:min(ide-1,ipe),jms:jme) = grid%soilw000 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilw005,1)*SIZE(grid%soilw005,2) .GT. 1 ) THEN
grid%soilw005 (ips:min(ide-1,ipe),jms:jme) = grid%soilw005 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilw020,1)*SIZE(grid%soilw020,2) .GT. 1 ) THEN
grid%soilw020 (ips:min(ide-1,ipe),jms:jme) = grid%soilw020 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilw040,1)*SIZE(grid%soilw040,2) .GT. 1 ) THEN
grid%soilw040 (ips:min(ide-1,ipe),jms:jme) = grid%soilw040 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilw160,1)*SIZE(grid%soilw160,2) .GT. 1 ) THEN
grid%soilw160 (ips:min(ide-1,ipe),jms:jme) = grid%soilw160 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilw300,1)*SIZE(grid%soilw300,2) .GT. 1 ) THEN
grid%soilw300 (ips:min(ide-1,ipe),jms:jme) = grid%soilw300 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st000010,1)*SIZE(grid%st000010,2) .GT. 1 ) THEN
grid%st000010 (ips:min(ide-1,ipe),jms:jme) = grid%st000010 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st010040,1)*SIZE(grid%st010040,2) .GT. 1 ) THEN
grid%st010040 (ips:min(ide-1,ipe),jms:jme) = grid%st010040 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st040100,1)*SIZE(grid%st040100,2) .GT. 1 ) THEN
grid%st040100 (ips:min(ide-1,ipe),jms:jme) = grid%st040100 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st100200,1)*SIZE(grid%st100200,2) .GT. 1 ) THEN
grid%st100200 (ips:min(ide-1,ipe),jms:jme) = grid%st100200 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%st010200,1)*SIZE(grid%st010200,2) .GT. 1 ) THEN
grid%st010200 (ips:min(ide-1,ipe),jms:jme) = grid%st010200 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilt000,1)*SIZE(grid%soilt000,2) .GT. 1 ) THEN
grid%soilt000 (ips:min(ide-1,ipe),jms:jme) = grid%soilt000 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilt005,1)*SIZE(grid%soilt005,2) .GT. 1 ) THEN
grid%soilt005 (ips:min(ide-1,ipe),jms:jme) = grid%soilt005 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilt020,1)*SIZE(grid%soilt020,2) .GT. 1 ) THEN
grid%soilt020 (ips:min(ide-1,ipe),jms:jme) = grid%soilt020 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilt040,1)*SIZE(grid%soilt040,2) .GT. 1 ) THEN
grid%soilt040 (ips:min(ide-1,ipe),jms:jme) = grid%soilt040 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilt160,1)*SIZE(grid%soilt160,2) .GT. 1 ) THEN
grid%soilt160 (ips:min(ide-1,ipe),jms:jme) = grid%soilt160 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilt300,1)*SIZE(grid%soilt300,2) .GT. 1 ) THEN
grid%soilt300 (ips:min(ide-1,ipe),jms:jme) = grid%soilt300 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%landmask,1)*SIZE(grid%landmask,2) .GT. 1 ) THEN
grid%landmask (ips:min(ide-1,ipe),jms:jme) = grid%landmask (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%topostdv,1)*SIZE(grid%topostdv,2) .GT. 1 ) THEN
grid%topostdv (ips:min(ide-1,ipe),jms:jme) = grid%topostdv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%toposlpx,1)*SIZE(grid%toposlpx,2) .GT. 1 ) THEN
grid%toposlpx (ips:min(ide-1,ipe),jms:jme) = grid%toposlpx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%toposlpy,1)*SIZE(grid%toposlpy,2) .GT. 1 ) THEN
grid%toposlpy (ips:min(ide-1,ipe),jms:jme) = grid%toposlpy (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%shdmax,1)*SIZE(grid%shdmax,2) .GT. 1 ) THEN
grid%shdmax (ips:min(ide-1,ipe),jms:jme) = grid%shdmax (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%shdmin,1)*SIZE(grid%shdmin,2) .GT. 1 ) THEN
grid%shdmin (ips:min(ide-1,ipe),jms:jme) = grid%shdmin (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snoalb,1)*SIZE(grid%snoalb,2) .GT. 1 ) THEN
grid%snoalb (ips:min(ide-1,ipe),jms:jme) = grid%snoalb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%slopecat,1)*SIZE(grid%slopecat,2) .GT. 1 ) THEN
grid%slopecat (ips:min(ide-1,ipe),jms:jme) = grid%slopecat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%toposoil,1)*SIZE(grid%toposoil,2) .GT. 1 ) THEN
grid%toposoil (ips:min(ide-1,ipe),jms:jme) = grid%toposoil (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%landusef,1)*SIZE(grid%landusef,3) .GT. 1 ) THEN
grid%landusef (ips:min(ide-1,ipe),:,jms:jme) = grid%landusef (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%soilctop,1)*SIZE(grid%soilctop,3) .GT. 1 ) THEN
grid%soilctop (ips:min(ide-1,ipe),:,jms:jme) = grid%soilctop (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%soilcbot,1)*SIZE(grid%soilcbot,3) .GT. 1 ) THEN
grid%soilcbot (ips:min(ide-1,ipe),:,jms:jme) = grid%soilcbot (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%soilcat,1)*SIZE(grid%soilcat,2) .GT. 1 ) THEN
grid%soilcat (ips:min(ide-1,ipe),jms:jme) = grid%soilcat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%vegcat,1)*SIZE(grid%vegcat,2) .GT. 1 ) THEN
grid%vegcat (ips:min(ide-1,ipe),jms:jme) = grid%vegcat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tslb,1)*SIZE(grid%tslb,3) .GT. 1 ) THEN
grid%tslb (ips:min(ide-1,ipe),:,jms:jme) = grid%tslb (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%smois,1)*SIZE(grid%smois,3) .GT. 1 ) THEN
grid%smois (ips:min(ide-1,ipe),:,jms:jme) = grid%smois (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sh2o,1)*SIZE(grid%sh2o,3) .GT. 1 ) THEN
grid%sh2o (ips:min(ide-1,ipe),:,jms:jme) = grid%sh2o (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%xice,1)*SIZE(grid%xice,2) .GT. 1 ) THEN
grid%xice (ips:min(ide-1,ipe),jms:jme) = grid%xice (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xicem,1)*SIZE(grid%xicem,2) .GT. 1 ) THEN
grid%xicem (ips:min(ide-1,ipe),jms:jme) = grid%xicem (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%smstav,1)*SIZE(grid%smstav,2) .GT. 1 ) THEN
grid%smstav (ips:min(ide-1,ipe),jms:jme) = grid%smstav (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%smstot,1)*SIZE(grid%smstot,2) .GT. 1 ) THEN
grid%smstot (ips:min(ide-1,ipe),jms:jme) = grid%smstot (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sfcrunoff,1)*SIZE(grid%sfcrunoff,2) .GT. 1 ) THEN
grid%sfcrunoff (ips:min(ide-1,ipe),jms:jme) = grid%sfcrunoff (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%udrunoff,1)*SIZE(grid%udrunoff,2) .GT. 1 ) THEN
grid%udrunoff (ips:min(ide-1,ipe),jms:jme) = grid%udrunoff (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ivgtyp,1)*SIZE(grid%ivgtyp,2) .GT. 1 ) THEN
grid%ivgtyp (ips:min(ide-1,ipe),jms:jme) = grid%ivgtyp (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%isltyp,1)*SIZE(grid%isltyp,2) .GT. 1 ) THEN
grid%isltyp (ips:min(ide-1,ipe),jms:jme) = grid%isltyp (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%vegfra,1)*SIZE(grid%vegfra,2) .GT. 1 ) THEN
grid%vegfra (ips:min(ide-1,ipe),jms:jme) = grid%vegfra (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sfcevp,1)*SIZE(grid%sfcevp,2) .GT. 1 ) THEN
grid%sfcevp (ips:min(ide-1,ipe),jms:jme) = grid%sfcevp (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%grdflx,1)*SIZE(grid%grdflx,2) .GT. 1 ) THEN
grid%grdflx (ips:min(ide-1,ipe),jms:jme) = grid%grdflx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acgrdflx,1)*SIZE(grid%acgrdflx,2) .GT. 1 ) THEN
grid%acgrdflx (ips:min(ide-1,ipe),jms:jme) = grid%acgrdflx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sfcexc,1)*SIZE(grid%sfcexc,2) .GT. 1 ) THEN
grid%sfcexc (ips:min(ide-1,ipe),jms:jme) = grid%sfcexc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acsnow,1)*SIZE(grid%acsnow,2) .GT. 1 ) THEN
grid%acsnow (ips:min(ide-1,ipe),jms:jme) = grid%acsnow (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acsnom,1)*SIZE(grid%acsnom,2) .GT. 1 ) THEN
grid%acsnom (ips:min(ide-1,ipe),jms:jme) = grid%acsnom (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snow,1)*SIZE(grid%snow,2) .GT. 1 ) THEN
grid%snow (ips:min(ide-1,ipe),jms:jme) = grid%snow (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snowh,1)*SIZE(grid%snowh,2) .GT. 1 ) THEN
grid%snowh (ips:min(ide-1,ipe),jms:jme) = grid%snowh (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rhosn,1)*SIZE(grid%rhosn,2) .GT. 1 ) THEN
grid%rhosn (ips:min(ide-1,ipe),jms:jme) = grid%rhosn (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%canwat,1)*SIZE(grid%canwat,2) .GT. 1 ) THEN
grid%canwat (ips:min(ide-1,ipe),jms:jme) = grid%canwat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sst,1)*SIZE(grid%sst,2) .GT. 1 ) THEN
grid%sst (ips:min(ide-1,ipe),jms:jme) = grid%sst (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sstsk,1)*SIZE(grid%sstsk,2) .GT. 1 ) THEN
grid%sstsk (ips:min(ide-1,ipe),jms:jme) = grid%sstsk (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dtw,1)*SIZE(grid%dtw,2) .GT. 1 ) THEN
grid%dtw (ips:min(ide-1,ipe),jms:jme) = grid%dtw (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_p,1)*SIZE(grid%dfi_p,3) .GT. 1 ) THEN
grid%dfi_p (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_p (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_al,1)*SIZE(grid%dfi_al,3) .GT. 1 ) THEN
grid%dfi_al (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_al (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_mu,1)*SIZE(grid%dfi_mu,2) .GT. 1 ) THEN
grid%dfi_mu (ips:min(ide-1,ipe),jms:jme) = grid%dfi_mu (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_phb,1)*SIZE(grid%dfi_phb,3) .GT. 1 ) THEN
grid%dfi_phb (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_phb (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_ph0,1)*SIZE(grid%dfi_ph0,3) .GT. 1 ) THEN
grid%dfi_ph0 (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_ph0 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_php,1)*SIZE(grid%dfi_php,3) .GT. 1 ) THEN
grid%dfi_php (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_php (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_u,1)*SIZE(grid%dfi_u,3) .GT. 1 ) THEN
grid%dfi_u (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_u (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_v,1)*SIZE(grid%dfi_v,3) .GT. 1 ) THEN
grid%dfi_v (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_v (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_w,1)*SIZE(grid%dfi_w,3) .GT. 1 ) THEN
grid%dfi_w (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_w (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_ww,1)*SIZE(grid%dfi_ww,3) .GT. 1 ) THEN
grid%dfi_ww (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_ww (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_t,1)*SIZE(grid%dfi_t,3) .GT. 1 ) THEN
grid%dfi_t (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_t (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_ph,1)*SIZE(grid%dfi_ph,3) .GT. 1 ) THEN
grid%dfi_ph (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_ph (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_pb,1)*SIZE(grid%dfi_pb,3) .GT. 1 ) THEN
grid%dfi_pb (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_pb (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_alt,1)*SIZE(grid%dfi_alt,3) .GT. 1 ) THEN
grid%dfi_alt (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_alt (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_tke,1)*SIZE(grid%dfi_tke,3) .GT. 1 ) THEN
grid%dfi_tke (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_tke (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_tslb,1)*SIZE(grid%dfi_tslb,3) .GT. 1 ) THEN
grid%dfi_tslb (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_tslb (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_smois,1)*SIZE(grid%dfi_smois,3) .GT. 1 ) THEN
grid%dfi_smois (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_smois (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_snow,1)*SIZE(grid%dfi_snow,2) .GT. 1 ) THEN
grid%dfi_snow (ips:min(ide-1,ipe),jms:jme) = grid%dfi_snow (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_snowh,1)*SIZE(grid%dfi_snowh,2) .GT. 1 ) THEN
grid%dfi_snowh (ips:min(ide-1,ipe),jms:jme) = grid%dfi_snowh (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_canwat,1)*SIZE(grid%dfi_canwat,2) .GT. 1 ) THEN
grid%dfi_canwat (ips:min(ide-1,ipe),jms:jme) = grid%dfi_canwat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_smfr3d,1)*SIZE(grid%dfi_smfr3d,3) .GT. 1 ) THEN
grid%dfi_smfr3d (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_smfr3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_keepfr3dflag,1)*SIZE(grid%dfi_keepfr3dflag,3) .GT. 1 ) THEN
grid%dfi_keepfr3dflag (ips:min(ide-1,ipe),:,jms:jme) = grid%dfi_keepfr3dflag (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tr_urb2d,1)*SIZE(grid%tr_urb2d,2) .GT. 1 ) THEN
grid%tr_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%tr_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tb_urb2d,1)*SIZE(grid%tb_urb2d,2) .GT. 1 ) THEN
grid%tb_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%tb_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tg_urb2d,1)*SIZE(grid%tg_urb2d,2) .GT. 1 ) THEN
grid%tg_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%tg_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tc_urb2d,1)*SIZE(grid%tc_urb2d,2) .GT. 1 ) THEN
grid%tc_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%tc_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qc_urb2d,1)*SIZE(grid%qc_urb2d,2) .GT. 1 ) THEN
grid%qc_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%qc_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%uc_urb2d,1)*SIZE(grid%uc_urb2d,2) .GT. 1 ) THEN
grid%uc_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%uc_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xxxr_urb2d,1)*SIZE(grid%xxxr_urb2d,2) .GT. 1 ) THEN
grid%xxxr_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%xxxr_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xxxb_urb2d,1)*SIZE(grid%xxxb_urb2d,2) .GT. 1 ) THEN
grid%xxxb_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%xxxb_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xxxg_urb2d,1)*SIZE(grid%xxxg_urb2d,2) .GT. 1 ) THEN
grid%xxxg_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%xxxg_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xxxc_urb2d,1)*SIZE(grid%xxxc_urb2d,2) .GT. 1 ) THEN
grid%xxxc_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%xxxc_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%trl_urb3d,1)*SIZE(grid%trl_urb3d,3) .GT. 1 ) THEN
grid%trl_urb3d (ips:min(ide-1,ipe),:,jms:jme) = grid%trl_urb3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tbl_urb3d,1)*SIZE(grid%tbl_urb3d,3) .GT. 1 ) THEN
grid%tbl_urb3d (ips:min(ide-1,ipe),:,jms:jme) = grid%tbl_urb3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tgl_urb3d,1)*SIZE(grid%tgl_urb3d,3) .GT. 1 ) THEN
grid%tgl_urb3d (ips:min(ide-1,ipe),:,jms:jme) = grid%tgl_urb3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sh_urb2d,1)*SIZE(grid%sh_urb2d,2) .GT. 1 ) THEN
grid%sh_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%sh_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lh_urb2d,1)*SIZE(grid%lh_urb2d,2) .GT. 1 ) THEN
grid%lh_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%lh_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%g_urb2d,1)*SIZE(grid%g_urb2d,2) .GT. 1 ) THEN
grid%g_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%g_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rn_urb2d,1)*SIZE(grid%rn_urb2d,2) .GT. 1 ) THEN
grid%rn_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%rn_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ts_urb2d,1)*SIZE(grid%ts_urb2d,2) .GT. 1 ) THEN
grid%ts_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%ts_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%frc_urb2d,1)*SIZE(grid%frc_urb2d,2) .GT. 1 ) THEN
grid%frc_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%frc_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%utype_urb2d,1)*SIZE(grid%utype_urb2d,2) .GT. 1 ) THEN
grid%utype_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%utype_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%trb_urb4d,1)*SIZE(grid%trb_urb4d,3) .GT. 1 ) THEN
grid%trb_urb4d (ips:min(ide-1,ipe),:,jms:jme) = grid%trb_urb4d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tw1_urb4d,1)*SIZE(grid%tw1_urb4d,3) .GT. 1 ) THEN
grid%tw1_urb4d (ips:min(ide-1,ipe),:,jms:jme) = grid%tw1_urb4d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tw2_urb4d,1)*SIZE(grid%tw2_urb4d,3) .GT. 1 ) THEN
grid%tw2_urb4d (ips:min(ide-1,ipe),:,jms:jme) = grid%tw2_urb4d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tgb_urb4d,1)*SIZE(grid%tgb_urb4d,3) .GT. 1 ) THEN
grid%tgb_urb4d (ips:min(ide-1,ipe),:,jms:jme) = grid%tgb_urb4d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sfw1_urb3d,1)*SIZE(grid%sfw1_urb3d,3) .GT. 1 ) THEN
grid%sfw1_urb3d (ips:min(ide-1,ipe),:,jms:jme) = grid%sfw1_urb3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sfw2_urb3d,1)*SIZE(grid%sfw2_urb3d,3) .GT. 1 ) THEN
grid%sfw2_urb3d (ips:min(ide-1,ipe),:,jms:jme) = grid%sfw2_urb3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sfr_urb3d,1)*SIZE(grid%sfr_urb3d,3) .GT. 1 ) THEN
grid%sfr_urb3d (ips:min(ide-1,ipe),:,jms:jme) = grid%sfr_urb3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sfg_urb3d,1)*SIZE(grid%sfg_urb3d,3) .GT. 1 ) THEN
grid%sfg_urb3d (ips:min(ide-1,ipe),:,jms:jme) = grid%sfg_urb3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%cosz_urb2d,1)*SIZE(grid%cosz_urb2d,2) .GT. 1 ) THEN
grid%cosz_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%cosz_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%omg_urb2d,1)*SIZE(grid%omg_urb2d,2) .GT. 1 ) THEN
grid%omg_urb2d (ips:min(ide-1,ipe),jms:jme) = grid%omg_urb2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%smfr3d,1)*SIZE(grid%smfr3d,3) .GT. 1 ) THEN
grid%smfr3d (ips:min(ide-1,ipe),:,jms:jme) = grid%smfr3d (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%keepfr3dflag,1)*SIZE(grid%keepfr3dflag,3) .GT. 1 ) THEN
grid%keepfr3dflag (ips:min(ide-1,ipe),:,jms:jme) = grid%keepfr3dflag (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ra,1)*SIZE(grid%ra,2) .GT. 1 ) THEN
grid%ra (ips:min(ide-1,ipe),jms:jme) = grid%ra (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rs,1)*SIZE(grid%rs,2) .GT. 1 ) THEN
grid%rs (ips:min(ide-1,ipe),jms:jme) = grid%rs (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lai,1)*SIZE(grid%lai,2) .GT. 1 ) THEN
grid%lai (ips:min(ide-1,ipe),jms:jme) = grid%lai (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%vegf_px,1)*SIZE(grid%vegf_px,2) .GT. 1 ) THEN
grid%vegf_px (ips:min(ide-1,ipe),jms:jme) = grid%vegf_px (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%t2obs,1)*SIZE(grid%t2obs,2) .GT. 1 ) THEN
grid%t2obs (ips:min(ide-1,ipe),jms:jme) = grid%t2obs (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%q2obs,1)*SIZE(grid%q2obs,2) .GT. 1 ) THEN
grid%q2obs (ips:min(ide-1,ipe),jms:jme) = grid%q2obs (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tke_myj,1)*SIZE(grid%tke_myj,3) .GT. 1 ) THEN
grid%tke_myj (ips:min(ide-1,ipe),:,jms:jme) = grid%tke_myj (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%el_myj,1)*SIZE(grid%el_myj,3) .GT. 1 ) THEN
grid%el_myj (ips:min(ide-1,ipe),:,jms:jme) = grid%el_myj (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%exch_h,1)*SIZE(grid%exch_h,3) .GT. 1 ) THEN
grid%exch_h (ips:min(ide-1,ipe),:,jms:jme) = grid%exch_h (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%exch_m,1)*SIZE(grid%exch_m,3) .GT. 1 ) THEN
grid%exch_m (ips:min(ide-1,ipe),:,jms:jme) = grid%exch_m (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ct,1)*SIZE(grid%ct,2) .GT. 1 ) THEN
grid%ct (ips:min(ide-1,ipe),jms:jme) = grid%ct (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%thz0,1)*SIZE(grid%thz0,2) .GT. 1 ) THEN
grid%thz0 (ips:min(ide-1,ipe),jms:jme) = grid%thz0 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%z0,1)*SIZE(grid%z0,2) .GT. 1 ) THEN
grid%z0 (ips:min(ide-1,ipe),jms:jme) = grid%z0 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qz0,1)*SIZE(grid%qz0,2) .GT. 1 ) THEN
grid%qz0 (ips:min(ide-1,ipe),jms:jme) = grid%qz0 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%uz0,1)*SIZE(grid%uz0,2) .GT. 1 ) THEN
grid%uz0 (ips:min(ide-1,ipe),jms:jme) = grid%uz0 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%vz0,1)*SIZE(grid%vz0,2) .GT. 1 ) THEN
grid%vz0 (ips:min(ide-1,ipe),jms:jme) = grid%vz0 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qsfc,1)*SIZE(grid%qsfc,2) .GT. 1 ) THEN
grid%qsfc (ips:min(ide-1,ipe),jms:jme) = grid%qsfc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%akhs,1)*SIZE(grid%akhs,2) .GT. 1 ) THEN
grid%akhs (ips:min(ide-1,ipe),jms:jme) = grid%akhs (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%akms,1)*SIZE(grid%akms,2) .GT. 1 ) THEN
grid%akms (ips:min(ide-1,ipe),jms:jme) = grid%akms (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%kpbl,1)*SIZE(grid%kpbl,2) .GT. 1 ) THEN
grid%kpbl (ips:min(ide-1,ipe),jms:jme) = grid%kpbl (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tshltr,1)*SIZE(grid%tshltr,2) .GT. 1 ) THEN
grid%tshltr (ips:min(ide-1,ipe),jms:jme) = grid%tshltr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qshltr,1)*SIZE(grid%qshltr,2) .GT. 1 ) THEN
grid%qshltr (ips:min(ide-1,ipe),jms:jme) = grid%qshltr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%pshltr,1)*SIZE(grid%pshltr,2) .GT. 1 ) THEN
grid%pshltr (ips:min(ide-1,ipe),jms:jme) = grid%pshltr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%th10,1)*SIZE(grid%th10,2) .GT. 1 ) THEN
grid%th10 (ips:min(ide-1,ipe),jms:jme) = grid%th10 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%q10,1)*SIZE(grid%q10,2) .GT. 1 ) THEN
grid%q10 (ips:min(ide-1,ipe),jms:jme) = grid%q10 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qke,1)*SIZE(grid%qke,3) .GT. 1 ) THEN
grid%qke (ips:min(ide-1,ipe),:,jms:jme) = grid%qke (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tsq,1)*SIZE(grid%tsq,3) .GT. 1 ) THEN
grid%tsq (ips:min(ide-1,ipe),:,jms:jme) = grid%tsq (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%qsq,1)*SIZE(grid%qsq,3) .GT. 1 ) THEN
grid%qsq (ips:min(ide-1,ipe),:,jms:jme) = grid%qsq (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%cov,1)*SIZE(grid%cov,3) .GT. 1 ) THEN
grid%cov (ips:min(ide-1,ipe),:,jms:jme) = grid%cov (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%ch,1)*SIZE(grid%ch,2) .GT. 1 ) THEN
grid%ch (ips:min(ide-1,ipe),jms:jme) = grid%ch (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dusfcg,1)*SIZE(grid%dusfcg,2) .GT. 1 ) THEN
grid%dusfcg (ips:min(ide-1,ipe),jms:jme) = grid%dusfcg (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dvsfcg,1)*SIZE(grid%dvsfcg,2) .GT. 1 ) THEN
grid%dvsfcg (ips:min(ide-1,ipe),jms:jme) = grid%dvsfcg (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%var2d,1)*SIZE(grid%var2d,2) .GT. 1 ) THEN
grid%var2d (ips:min(ide-1,ipe),jms:jme) = grid%var2d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%oc12d,1)*SIZE(grid%oc12d,2) .GT. 1 ) THEN
grid%oc12d (ips:min(ide-1,ipe),jms:jme) = grid%oc12d (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%oa1,1)*SIZE(grid%oa1,2) .GT. 1 ) THEN
grid%oa1 (ips:min(ide-1,ipe),jms:jme) = grid%oa1 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%oa2,1)*SIZE(grid%oa2,2) .GT. 1 ) THEN
grid%oa2 (ips:min(ide-1,ipe),jms:jme) = grid%oa2 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%oa3,1)*SIZE(grid%oa3,2) .GT. 1 ) THEN
grid%oa3 (ips:min(ide-1,ipe),jms:jme) = grid%oa3 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%oa4,1)*SIZE(grid%oa4,2) .GT. 1 ) THEN
grid%oa4 (ips:min(ide-1,ipe),jms:jme) = grid%oa4 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ol1,1)*SIZE(grid%ol1,2) .GT. 1 ) THEN
grid%ol1 (ips:min(ide-1,ipe),jms:jme) = grid%ol1 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ol2,1)*SIZE(grid%ol2,2) .GT. 1 ) THEN
grid%ol2 (ips:min(ide-1,ipe),jms:jme) = grid%ol2 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ol3,1)*SIZE(grid%ol3,2) .GT. 1 ) THEN
grid%ol3 (ips:min(ide-1,ipe),jms:jme) = grid%ol3 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ol4,1)*SIZE(grid%ol4,2) .GT. 1 ) THEN
grid%ol4 (ips:min(ide-1,ipe),jms:jme) = grid%ol4 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%a_u_bep,1)*SIZE(grid%a_u_bep,3) .GT. 1 ) THEN
grid%a_u_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%a_u_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%a_v_bep,1)*SIZE(grid%a_v_bep,3) .GT. 1 ) THEN
grid%a_v_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%a_v_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%a_t_bep,1)*SIZE(grid%a_t_bep,3) .GT. 1 ) THEN
grid%a_t_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%a_t_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%a_q_bep,1)*SIZE(grid%a_q_bep,3) .GT. 1 ) THEN
grid%a_q_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%a_q_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%a_e_bep,1)*SIZE(grid%a_e_bep,3) .GT. 1 ) THEN
grid%a_e_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%a_e_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%b_u_bep,1)*SIZE(grid%b_u_bep,3) .GT. 1 ) THEN
grid%b_u_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%b_u_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%b_v_bep,1)*SIZE(grid%b_v_bep,3) .GT. 1 ) THEN
grid%b_v_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%b_v_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%b_t_bep,1)*SIZE(grid%b_t_bep,3) .GT. 1 ) THEN
grid%b_t_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%b_t_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%b_q_bep,1)*SIZE(grid%b_q_bep,3) .GT. 1 ) THEN
grid%b_q_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%b_q_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%b_e_bep,1)*SIZE(grid%b_e_bep,3) .GT. 1 ) THEN
grid%b_e_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%b_e_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dlg_bep,1)*SIZE(grid%dlg_bep,3) .GT. 1 ) THEN
grid%dlg_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%dlg_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%dl_u_bep,1)*SIZE(grid%dl_u_bep,3) .GT. 1 ) THEN
grid%dl_u_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%dl_u_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%sf_bep,1)*SIZE(grid%sf_bep,3) .GT. 1 ) THEN
grid%sf_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%sf_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%vl_bep,1)*SIZE(grid%vl_bep,3) .GT. 1 ) THEN
grid%vl_bep (ips:min(ide-1,ipe),:,jms:jme) = grid%vl_bep (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tke_pbl,1)*SIZE(grid%tke_pbl,3) .GT. 1 ) THEN
grid%tke_pbl (ips:min(ide-1,ipe),:,jms:jme) = grid%tke_pbl (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%el_pbl,1)*SIZE(grid%el_pbl,3) .GT. 1 ) THEN
grid%el_pbl (ips:min(ide-1,ipe),:,jms:jme) = grid%el_pbl (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%wu_tur,1)*SIZE(grid%wu_tur,3) .GT. 1 ) THEN
grid%wu_tur (ips:min(ide-1,ipe),:,jms:jme) = grid%wu_tur (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%wv_tur,1)*SIZE(grid%wv_tur,3) .GT. 1 ) THEN
grid%wv_tur (ips:min(ide-1,ipe),:,jms:jme) = grid%wv_tur (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%wt_tur,1)*SIZE(grid%wt_tur,3) .GT. 1 ) THEN
grid%wt_tur (ips:min(ide-1,ipe),:,jms:jme) = grid%wt_tur (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%wq_tur,1)*SIZE(grid%wq_tur,3) .GT. 1 ) THEN
grid%wq_tur (ips:min(ide-1,ipe),:,jms:jme) = grid%wq_tur (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%htop,1)*SIZE(grid%htop,2) .GT. 1 ) THEN
grid%htop (ips:min(ide-1,ipe),jms:jme) = grid%htop (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%hbot,1)*SIZE(grid%hbot,2) .GT. 1 ) THEN
grid%hbot (ips:min(ide-1,ipe),jms:jme) = grid%hbot (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%htopr,1)*SIZE(grid%htopr,2) .GT. 1 ) THEN
grid%htopr (ips:min(ide-1,ipe),jms:jme) = grid%htopr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%hbotr,1)*SIZE(grid%hbotr,2) .GT. 1 ) THEN
grid%hbotr (ips:min(ide-1,ipe),jms:jme) = grid%hbotr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cutop,1)*SIZE(grid%cutop,2) .GT. 1 ) THEN
grid%cutop (ips:min(ide-1,ipe),jms:jme) = grid%cutop (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cubot,1)*SIZE(grid%cubot,2) .GT. 1 ) THEN
grid%cubot (ips:min(ide-1,ipe),jms:jme) = grid%cubot (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cuppt,1)*SIZE(grid%cuppt,2) .GT. 1 ) THEN
grid%cuppt (ips:min(ide-1,ipe),jms:jme) = grid%cuppt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rswtoa,1)*SIZE(grid%rswtoa,2) .GT. 1 ) THEN
grid%rswtoa (ips:min(ide-1,ipe),jms:jme) = grid%rswtoa (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rlwtoa,1)*SIZE(grid%rlwtoa,2) .GT. 1 ) THEN
grid%rlwtoa (ips:min(ide-1,ipe),jms:jme) = grid%rlwtoa (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%czmean,1)*SIZE(grid%czmean,2) .GT. 1 ) THEN
grid%czmean (ips:min(ide-1,ipe),jms:jme) = grid%czmean (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cfracl,1)*SIZE(grid%cfracl,2) .GT. 1 ) THEN
grid%cfracl (ips:min(ide-1,ipe),jms:jme) = grid%cfracl (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cfracm,1)*SIZE(grid%cfracm,2) .GT. 1 ) THEN
grid%cfracm (ips:min(ide-1,ipe),jms:jme) = grid%cfracm (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cfrach,1)*SIZE(grid%cfrach,2) .GT. 1 ) THEN
grid%cfrach (ips:min(ide-1,ipe),jms:jme) = grid%cfrach (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acfrst,1)*SIZE(grid%acfrst,2) .GT. 1 ) THEN
grid%acfrst (ips:min(ide-1,ipe),jms:jme) = grid%acfrst (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ncfrst,1)*SIZE(grid%ncfrst,2) .GT. 1 ) THEN
grid%ncfrst (ips:min(ide-1,ipe),jms:jme) = grid%ncfrst (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acfrcv,1)*SIZE(grid%acfrcv,2) .GT. 1 ) THEN
grid%acfrcv (ips:min(ide-1,ipe),jms:jme) = grid%acfrcv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ncfrcv,1)*SIZE(grid%ncfrcv,2) .GT. 1 ) THEN
grid%ncfrcv (ips:min(ide-1,ipe),jms:jme) = grid%ncfrcv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
  DO itrace = PARAM_FIRST_SCALAR, num_ozmixm
IF ( SIZE(grid%ozmixm,1)*SIZE(grid%ozmixm,3) .GT. 1 ) THEN
grid%ozmixm (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%ozmixm (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
IF ( SIZE(grid%m_ps_1,1)*SIZE(grid%m_ps_1,2) .GT. 1 ) THEN
grid%m_ps_1 (ips:min(ide-1,ipe),jms:jme) = grid%m_ps_1 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%m_ps_2,1)*SIZE(grid%m_ps_2,2) .GT. 1 ) THEN
grid%m_ps_2 (ips:min(ide-1,ipe),jms:jme) = grid%m_ps_2 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
  DO itrace = PARAM_FIRST_SCALAR, num_aerosolc
IF ( SIZE(grid%aerosolc_1,1)*SIZE(grid%aerosolc_1,3) .GT. 1 ) THEN
grid%aerosolc_1 (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%aerosolc_1 (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
  DO itrace = PARAM_FIRST_SCALAR, num_aerosolc
IF ( SIZE(grid%aerosolc_2,1)*SIZE(grid%aerosolc_2,3) .GT. 1 ) THEN
grid%aerosolc_2 (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%aerosolc_2 (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
IF ( SIZE(grid%f_ice_phy,1)*SIZE(grid%f_ice_phy,3) .GT. 1 ) THEN
grid%f_ice_phy (ips:min(ide-1,ipe),:,jms:jme) = grid%f_ice_phy (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%f_rain_phy,1)*SIZE(grid%f_rain_phy,3) .GT. 1 ) THEN
grid%f_rain_phy (ips:min(ide-1,ipe),:,jms:jme) = grid%f_rain_phy (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%f_rimef_phy,1)*SIZE(grid%f_rimef_phy,3) .GT. 1 ) THEN
grid%f_rimef_phy (ips:min(ide-1,ipe),:,jms:jme) = grid%f_rimef_phy (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%qndropsource,1)*SIZE(grid%qndropsource,3) .GT. 1 ) THEN
grid%qndropsource (ips:min(ide-1,ipe),:,jms:jme) = grid%qndropsource (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%h_diabatic,1)*SIZE(grid%h_diabatic,3) .GT. 1 ) THEN
grid%h_diabatic (ips:min(ide-1,ipe),:,jms:jme) = grid%h_diabatic (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%msft,1)*SIZE(grid%msft,2) .GT. 1 ) THEN
grid%msft (ips:min(ide-1,ipe),jms:jme) = grid%msft (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfu,1)*SIZE(grid%msfu,2) .GT. 1 ) THEN
grid%msfu (ips:min(ide,ipe),jms:jme) = grid%msfu (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfv,1)*SIZE(grid%msfv,2) .GT. 1 ) THEN
grid%msfv (ips:min(ide-1,ipe),jms:jme) = grid%msfv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msftx,1)*SIZE(grid%msftx,2) .GT. 1 ) THEN
grid%msftx (ips:min(ide-1,ipe),jms:jme) = grid%msftx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfty,1)*SIZE(grid%msfty,2) .GT. 1 ) THEN
grid%msfty (ips:min(ide-1,ipe),jms:jme) = grid%msfty (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfux,1)*SIZE(grid%msfux,2) .GT. 1 ) THEN
grid%msfux (ips:min(ide,ipe),jms:jme) = grid%msfux (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfuy,1)*SIZE(grid%msfuy,2) .GT. 1 ) THEN
grid%msfuy (ips:min(ide,ipe),jms:jme) = grid%msfuy (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfvx,1)*SIZE(grid%msfvx,2) .GT. 1 ) THEN
grid%msfvx (ips:min(ide-1,ipe),jms:jme) = grid%msfvx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfvx_inv,1)*SIZE(grid%msfvx_inv,2) .GT. 1 ) THEN
grid%msfvx_inv (ips:min(ide-1,ipe),jms:jme) = grid%msfvx_inv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%msfvy,1)*SIZE(grid%msfvy,2) .GT. 1 ) THEN
grid%msfvy (ips:min(ide-1,ipe),jms:jme) = grid%msfvy (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%f,1)*SIZE(grid%f,2) .GT. 1 ) THEN
grid%f (ips:min(ide-1,ipe),jms:jme) = grid%f (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%e,1)*SIZE(grid%e,2) .GT. 1 ) THEN
grid%e (ips:min(ide-1,ipe),jms:jme) = grid%e (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sina,1)*SIZE(grid%sina,2) .GT. 1 ) THEN
grid%sina (ips:min(ide-1,ipe),jms:jme) = grid%sina (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cosa,1)*SIZE(grid%cosa,2) .GT. 1 ) THEN
grid%cosa (ips:min(ide-1,ipe),jms:jme) = grid%cosa (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ht,1)*SIZE(grid%ht,2) .GT. 1 ) THEN
grid%ht (ips:min(ide-1,ipe),jms:jme) = grid%ht (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ht_fine,1)*SIZE(grid%ht_fine,2) .GT. 1 ) THEN
grid%ht_fine (ips:min(ide-1,ipe),jms:jme) = grid%ht_fine (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ht_int,1)*SIZE(grid%ht_int,2) .GT. 1 ) THEN
grid%ht_int (ips:min(ide-1,ipe),jms:jme) = grid%ht_int (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ht_input,1)*SIZE(grid%ht_input,2) .GT. 1 ) THEN
grid%ht_input (ips:min(ide-1,ipe),jms:jme) = grid%ht_input (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ht_shad,1)*SIZE(grid%ht_shad,2) .GT. 1 ) THEN
grid%ht_shad (ips:min(ide-1,ipe),jms:jme) = grid%ht_shad (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tsk,1)*SIZE(grid%tsk,2) .GT. 1 ) THEN
grid%tsk (ips:min(ide-1,ipe),jms:jme) = grid%tsk (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_tsk,1)*SIZE(grid%dfi_tsk,2) .GT. 1 ) THEN
grid%dfi_tsk (ips:min(ide-1,ipe),jms:jme) = grid%dfi_tsk (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tsk_save,1)*SIZE(grid%tsk_save,2) .GT. 1 ) THEN
grid%tsk_save (ips:min(ide-1,ipe),jms:jme) = grid%tsk_save (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rthcuten,1)*SIZE(grid%rthcuten,3) .GT. 1 ) THEN
grid%rthcuten (ips:min(ide-1,ipe),:,jms:jme) = grid%rthcuten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqvcuten,1)*SIZE(grid%rqvcuten,3) .GT. 1 ) THEN
grid%rqvcuten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqvcuten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqrcuten,1)*SIZE(grid%rqrcuten,3) .GT. 1 ) THEN
grid%rqrcuten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqrcuten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqccuten,1)*SIZE(grid%rqccuten,3) .GT. 1 ) THEN
grid%rqccuten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqccuten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqscuten,1)*SIZE(grid%rqscuten,3) .GT. 1 ) THEN
grid%rqscuten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqscuten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqicuten,1)*SIZE(grid%rqicuten,3) .GT. 1 ) THEN
grid%rqicuten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqicuten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%w0avg,1)*SIZE(grid%w0avg,3) .GT. 1 ) THEN
grid%w0avg (ips:min(ide-1,ipe),:,jms:jme) = grid%w0avg (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rainc,1)*SIZE(grid%rainc,2) .GT. 1 ) THEN
grid%rainc (ips:min(ide-1,ipe),jms:jme) = grid%rainc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rainnc,1)*SIZE(grid%rainnc,2) .GT. 1 ) THEN
grid%rainnc (ips:min(ide-1,ipe),jms:jme) = grid%rainnc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_rainc,1)*SIZE(grid%i_rainc,2) .GT. 1 ) THEN
grid%i_rainc (ips:min(ide-1,ipe),jms:jme) = grid%i_rainc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_rainnc,1)*SIZE(grid%i_rainnc,2) .GT. 1 ) THEN
grid%i_rainnc (ips:min(ide-1,ipe),jms:jme) = grid%i_rainnc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%pratec,1)*SIZE(grid%pratec,2) .GT. 1 ) THEN
grid%pratec (ips:min(ide-1,ipe),jms:jme) = grid%pratec (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%raincv,1)*SIZE(grid%raincv,2) .GT. 1 ) THEN
grid%raincv (ips:min(ide-1,ipe),jms:jme) = grid%raincv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rainncv,1)*SIZE(grid%rainncv,2) .GT. 1 ) THEN
grid%rainncv (ips:min(ide-1,ipe),jms:jme) = grid%rainncv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rainbl,1)*SIZE(grid%rainbl,2) .GT. 1 ) THEN
grid%rainbl (ips:min(ide-1,ipe),jms:jme) = grid%rainbl (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snownc,1)*SIZE(grid%snownc,2) .GT. 1 ) THEN
grid%snownc (ips:min(ide-1,ipe),jms:jme) = grid%snownc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%graupelnc,1)*SIZE(grid%graupelnc,2) .GT. 1 ) THEN
grid%graupelnc (ips:min(ide-1,ipe),jms:jme) = grid%graupelnc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snowncv,1)*SIZE(grid%snowncv,2) .GT. 1 ) THEN
grid%snowncv (ips:min(ide-1,ipe),jms:jme) = grid%snowncv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%graupelncv,1)*SIZE(grid%graupelncv,2) .GT. 1 ) THEN
grid%graupelncv (ips:min(ide-1,ipe),jms:jme) = grid%graupelncv (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%nca,1)*SIZE(grid%nca,2) .GT. 1 ) THEN
grid%nca (ips:min(ide-1,ipe),jms:jme) = grid%nca (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lowlyr,1)*SIZE(grid%lowlyr,2) .GT. 1 ) THEN
grid%lowlyr (ips:min(ide-1,ipe),jms:jme) = grid%lowlyr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mass_flux,1)*SIZE(grid%mass_flux,2) .GT. 1 ) THEN
grid%mass_flux (ips:min(ide-1,ipe),jms:jme) = grid%mass_flux (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_gr,1)*SIZE(grid%apr_gr,2) .GT. 1 ) THEN
grid%apr_gr (ips:min(ide-1,ipe),jms:jme) = grid%apr_gr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_w,1)*SIZE(grid%apr_w,2) .GT. 1 ) THEN
grid%apr_w (ips:min(ide-1,ipe),jms:jme) = grid%apr_w (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_mc,1)*SIZE(grid%apr_mc,2) .GT. 1 ) THEN
grid%apr_mc (ips:min(ide-1,ipe),jms:jme) = grid%apr_mc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_st,1)*SIZE(grid%apr_st,2) .GT. 1 ) THEN
grid%apr_st (ips:min(ide-1,ipe),jms:jme) = grid%apr_st (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_as,1)*SIZE(grid%apr_as,2) .GT. 1 ) THEN
grid%apr_as (ips:min(ide-1,ipe),jms:jme) = grid%apr_as (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_capma,1)*SIZE(grid%apr_capma,2) .GT. 1 ) THEN
grid%apr_capma (ips:min(ide-1,ipe),jms:jme) = grid%apr_capma (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_capme,1)*SIZE(grid%apr_capme,2) .GT. 1 ) THEN
grid%apr_capme (ips:min(ide-1,ipe),jms:jme) = grid%apr_capme (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%apr_capmi,1)*SIZE(grid%apr_capmi,2) .GT. 1 ) THEN
grid%apr_capmi (ips:min(ide-1,ipe),jms:jme) = grid%apr_capmi (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%edt_out,1)*SIZE(grid%edt_out,2) .GT. 1 ) THEN
grid%edt_out (ips:min(ide-1,ipe),jms:jme) = grid%edt_out (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cugd_tten,1)*SIZE(grid%cugd_tten,3) .GT. 1 ) THEN
grid%cugd_tten (ips:min(ide-1,ipe),:,jms:jme) = grid%cugd_tten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%cugd_qvten,1)*SIZE(grid%cugd_qvten,3) .GT. 1 ) THEN
grid%cugd_qvten (ips:min(ide-1,ipe),:,jms:jme) = grid%cugd_qvten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%cugd_ttens,1)*SIZE(grid%cugd_ttens,3) .GT. 1 ) THEN
grid%cugd_ttens (ips:min(ide-1,ipe),:,jms:jme) = grid%cugd_ttens (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%cugd_qvtens,1)*SIZE(grid%cugd_qvtens,3) .GT. 1 ) THEN
grid%cugd_qvtens (ips:min(ide-1,ipe),:,jms:jme) = grid%cugd_qvtens (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%cugd_qcten,1)*SIZE(grid%cugd_qcten,3) .GT. 1 ) THEN
grid%cugd_qcten (ips:min(ide-1,ipe),:,jms:jme) = grid%cugd_qcten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rthften,1)*SIZE(grid%rthften,3) .GT. 1 ) THEN
grid%rthften (ips:min(ide-1,ipe),:,jms:jme) = grid%rthften (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqvften,1)*SIZE(grid%rqvften,3) .GT. 1 ) THEN
grid%rqvften (ips:min(ide-1,ipe),:,jms:jme) = grid%rqvften (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rthraten,1)*SIZE(grid%rthraten,3) .GT. 1 ) THEN
grid%rthraten (ips:min(ide-1,ipe),:,jms:jme) = grid%rthraten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rthratenlw,1)*SIZE(grid%rthratenlw,3) .GT. 1 ) THEN
grid%rthratenlw (ips:min(ide-1,ipe),:,jms:jme) = grid%rthratenlw (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rthratensw,1)*SIZE(grid%rthratensw,3) .GT. 1 ) THEN
grid%rthratensw (ips:min(ide-1,ipe),:,jms:jme) = grid%rthratensw (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%cldfra,1)*SIZE(grid%cldfra,3) .GT. 1 ) THEN
grid%cldfra (ips:min(ide-1,ipe),:,jms:jme) = grid%cldfra (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%swdown,1)*SIZE(grid%swdown,2) .GT. 1 ) THEN
grid%swdown (ips:min(ide-1,ipe),jms:jme) = grid%swdown (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swdownc,1)*SIZE(grid%swdownc,2) .GT. 1 ) THEN
grid%swdownc (ips:min(ide-1,ipe),jms:jme) = grid%swdownc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%gsw,1)*SIZE(grid%gsw,2) .GT. 1 ) THEN
grid%gsw (ips:min(ide-1,ipe),jms:jme) = grid%gsw (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%glw,1)*SIZE(grid%glw,2) .GT. 1 ) THEN
grid%glw (ips:min(ide-1,ipe),jms:jme) = grid%glw (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswupt,1)*SIZE(grid%acswupt,2) .GT. 1 ) THEN
grid%acswupt (ips:min(ide-1,ipe),jms:jme) = grid%acswupt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswuptc,1)*SIZE(grid%acswuptc,2) .GT. 1 ) THEN
grid%acswuptc (ips:min(ide-1,ipe),jms:jme) = grid%acswuptc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswdnt,1)*SIZE(grid%acswdnt,2) .GT. 1 ) THEN
grid%acswdnt (ips:min(ide-1,ipe),jms:jme) = grid%acswdnt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswdntc,1)*SIZE(grid%acswdntc,2) .GT. 1 ) THEN
grid%acswdntc (ips:min(ide-1,ipe),jms:jme) = grid%acswdntc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswupb,1)*SIZE(grid%acswupb,2) .GT. 1 ) THEN
grid%acswupb (ips:min(ide-1,ipe),jms:jme) = grid%acswupb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswupbc,1)*SIZE(grid%acswupbc,2) .GT. 1 ) THEN
grid%acswupbc (ips:min(ide-1,ipe),jms:jme) = grid%acswupbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswdnb,1)*SIZE(grid%acswdnb,2) .GT. 1 ) THEN
grid%acswdnb (ips:min(ide-1,ipe),jms:jme) = grid%acswdnb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%acswdnbc,1)*SIZE(grid%acswdnbc,2) .GT. 1 ) THEN
grid%acswdnbc (ips:min(ide-1,ipe),jms:jme) = grid%acswdnbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwupt,1)*SIZE(grid%aclwupt,2) .GT. 1 ) THEN
grid%aclwupt (ips:min(ide-1,ipe),jms:jme) = grid%aclwupt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwuptc,1)*SIZE(grid%aclwuptc,2) .GT. 1 ) THEN
grid%aclwuptc (ips:min(ide-1,ipe),jms:jme) = grid%aclwuptc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwdnt,1)*SIZE(grid%aclwdnt,2) .GT. 1 ) THEN
grid%aclwdnt (ips:min(ide-1,ipe),jms:jme) = grid%aclwdnt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwdntc,1)*SIZE(grid%aclwdntc,2) .GT. 1 ) THEN
grid%aclwdntc (ips:min(ide-1,ipe),jms:jme) = grid%aclwdntc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwupb,1)*SIZE(grid%aclwupb,2) .GT. 1 ) THEN
grid%aclwupb (ips:min(ide-1,ipe),jms:jme) = grid%aclwupb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwupbc,1)*SIZE(grid%aclwupbc,2) .GT. 1 ) THEN
grid%aclwupbc (ips:min(ide-1,ipe),jms:jme) = grid%aclwupbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwdnb,1)*SIZE(grid%aclwdnb,2) .GT. 1 ) THEN
grid%aclwdnb (ips:min(ide-1,ipe),jms:jme) = grid%aclwdnb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclwdnbc,1)*SIZE(grid%aclwdnbc,2) .GT. 1 ) THEN
grid%aclwdnbc (ips:min(ide-1,ipe),jms:jme) = grid%aclwdnbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswupt,1)*SIZE(grid%i_acswupt,2) .GT. 1 ) THEN
grid%i_acswupt (ips:min(ide-1,ipe),jms:jme) = grid%i_acswupt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswuptc,1)*SIZE(grid%i_acswuptc,2) .GT. 1 ) THEN
grid%i_acswuptc (ips:min(ide-1,ipe),jms:jme) = grid%i_acswuptc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswdnt,1)*SIZE(grid%i_acswdnt,2) .GT. 1 ) THEN
grid%i_acswdnt (ips:min(ide-1,ipe),jms:jme) = grid%i_acswdnt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswdntc,1)*SIZE(grid%i_acswdntc,2) .GT. 1 ) THEN
grid%i_acswdntc (ips:min(ide-1,ipe),jms:jme) = grid%i_acswdntc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswupb,1)*SIZE(grid%i_acswupb,2) .GT. 1 ) THEN
grid%i_acswupb (ips:min(ide-1,ipe),jms:jme) = grid%i_acswupb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswupbc,1)*SIZE(grid%i_acswupbc,2) .GT. 1 ) THEN
grid%i_acswupbc (ips:min(ide-1,ipe),jms:jme) = grid%i_acswupbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswdnb,1)*SIZE(grid%i_acswdnb,2) .GT. 1 ) THEN
grid%i_acswdnb (ips:min(ide-1,ipe),jms:jme) = grid%i_acswdnb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_acswdnbc,1)*SIZE(grid%i_acswdnbc,2) .GT. 1 ) THEN
grid%i_acswdnbc (ips:min(ide-1,ipe),jms:jme) = grid%i_acswdnbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwupt,1)*SIZE(grid%i_aclwupt,2) .GT. 1 ) THEN
grid%i_aclwupt (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwupt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwuptc,1)*SIZE(grid%i_aclwuptc,2) .GT. 1 ) THEN
grid%i_aclwuptc (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwuptc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwdnt,1)*SIZE(grid%i_aclwdnt,2) .GT. 1 ) THEN
grid%i_aclwdnt (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwdnt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwdntc,1)*SIZE(grid%i_aclwdntc,2) .GT. 1 ) THEN
grid%i_aclwdntc (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwdntc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwupb,1)*SIZE(grid%i_aclwupb,2) .GT. 1 ) THEN
grid%i_aclwupb (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwupb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwupbc,1)*SIZE(grid%i_aclwupbc,2) .GT. 1 ) THEN
grid%i_aclwupbc (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwupbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwdnb,1)*SIZE(grid%i_aclwdnb,2) .GT. 1 ) THEN
grid%i_aclwdnb (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwdnb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%i_aclwdnbc,1)*SIZE(grid%i_aclwdnbc,2) .GT. 1 ) THEN
grid%i_aclwdnbc (ips:min(ide-1,ipe),jms:jme) = grid%i_aclwdnbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swupt,1)*SIZE(grid%swupt,2) .GT. 1 ) THEN
grid%swupt (ips:min(ide-1,ipe),jms:jme) = grid%swupt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swuptc,1)*SIZE(grid%swuptc,2) .GT. 1 ) THEN
grid%swuptc (ips:min(ide-1,ipe),jms:jme) = grid%swuptc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swdnt,1)*SIZE(grid%swdnt,2) .GT. 1 ) THEN
grid%swdnt (ips:min(ide-1,ipe),jms:jme) = grid%swdnt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swdntc,1)*SIZE(grid%swdntc,2) .GT. 1 ) THEN
grid%swdntc (ips:min(ide-1,ipe),jms:jme) = grid%swdntc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swupb,1)*SIZE(grid%swupb,2) .GT. 1 ) THEN
grid%swupb (ips:min(ide-1,ipe),jms:jme) = grid%swupb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swupbc,1)*SIZE(grid%swupbc,2) .GT. 1 ) THEN
grid%swupbc (ips:min(ide-1,ipe),jms:jme) = grid%swupbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swdnb,1)*SIZE(grid%swdnb,2) .GT. 1 ) THEN
grid%swdnb (ips:min(ide-1,ipe),jms:jme) = grid%swdnb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swdnbc,1)*SIZE(grid%swdnbc,2) .GT. 1 ) THEN
grid%swdnbc (ips:min(ide-1,ipe),jms:jme) = grid%swdnbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwupt,1)*SIZE(grid%lwupt,2) .GT. 1 ) THEN
grid%lwupt (ips:min(ide-1,ipe),jms:jme) = grid%lwupt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwuptc,1)*SIZE(grid%lwuptc,2) .GT. 1 ) THEN
grid%lwuptc (ips:min(ide-1,ipe),jms:jme) = grid%lwuptc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwdnt,1)*SIZE(grid%lwdnt,2) .GT. 1 ) THEN
grid%lwdnt (ips:min(ide-1,ipe),jms:jme) = grid%lwdnt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwdntc,1)*SIZE(grid%lwdntc,2) .GT. 1 ) THEN
grid%lwdntc (ips:min(ide-1,ipe),jms:jme) = grid%lwdntc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwupb,1)*SIZE(grid%lwupb,2) .GT. 1 ) THEN
grid%lwupb (ips:min(ide-1,ipe),jms:jme) = grid%lwupb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwupbc,1)*SIZE(grid%lwupbc,2) .GT. 1 ) THEN
grid%lwupbc (ips:min(ide-1,ipe),jms:jme) = grid%lwupbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwdnb,1)*SIZE(grid%lwdnb,2) .GT. 1 ) THEN
grid%lwdnb (ips:min(ide-1,ipe),jms:jme) = grid%lwdnb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwdnbc,1)*SIZE(grid%lwdnbc,2) .GT. 1 ) THEN
grid%lwdnbc (ips:min(ide-1,ipe),jms:jme) = grid%lwdnbc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%swcf,1)*SIZE(grid%swcf,2) .GT. 1 ) THEN
grid%swcf (ips:min(ide-1,ipe),jms:jme) = grid%swcf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lwcf,1)*SIZE(grid%lwcf,2) .GT. 1 ) THEN
grid%lwcf (ips:min(ide-1,ipe),jms:jme) = grid%lwcf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%olr,1)*SIZE(grid%olr,2) .GT. 1 ) THEN
grid%olr (ips:min(ide-1,ipe),jms:jme) = grid%olr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xlat,1)*SIZE(grid%xlat,2) .GT. 1 ) THEN
grid%xlat (ips:min(ide-1,ipe),jms:jme) = grid%xlat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xlong,1)*SIZE(grid%xlong,2) .GT. 1 ) THEN
grid%xlong (ips:min(ide-1,ipe),jms:jme) = grid%xlong (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xlat_u,1)*SIZE(grid%xlat_u,2) .GT. 1 ) THEN
grid%xlat_u (ips:min(ide,ipe),jms:jme) = grid%xlat_u (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xlong_u,1)*SIZE(grid%xlong_u,2) .GT. 1 ) THEN
grid%xlong_u (ips:min(ide,ipe),jms:jme) = grid%xlong_u (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xlat_v,1)*SIZE(grid%xlat_v,2) .GT. 1 ) THEN
grid%xlat_v (ips:min(ide-1,ipe),jms:jme) = grid%xlat_v (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%xlong_v,1)*SIZE(grid%xlong_v,2) .GT. 1 ) THEN
grid%xlong_v (ips:min(ide-1,ipe),jms:jme) = grid%xlong_v (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%albedo,1)*SIZE(grid%albedo,2) .GT. 1 ) THEN
grid%albedo (ips:min(ide-1,ipe),jms:jme) = grid%albedo (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%clat,1)*SIZE(grid%clat,2) .GT. 1 ) THEN
grid%clat (ips:min(ide-1,ipe),jms:jme) = grid%clat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%clong,1)*SIZE(grid%clong,2) .GT. 1 ) THEN
grid%clong (ips:min(ide-1,ipe),jms:jme) = grid%clong (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%albbck,1)*SIZE(grid%albbck,2) .GT. 1 ) THEN
grid%albbck (ips:min(ide-1,ipe),jms:jme) = grid%albbck (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%embck,1)*SIZE(grid%embck,2) .GT. 1 ) THEN
grid%embck (ips:min(ide-1,ipe),jms:jme) = grid%embck (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%emiss,1)*SIZE(grid%emiss,2) .GT. 1 ) THEN
grid%emiss (ips:min(ide-1,ipe),jms:jme) = grid%emiss (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snotime,1)*SIZE(grid%snotime,2) .GT. 1 ) THEN
grid%snotime (ips:min(ide-1,ipe),jms:jme) = grid%snotime (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%noahres,1)*SIZE(grid%noahres,2) .GT. 1 ) THEN
grid%noahres (ips:min(ide-1,ipe),jms:jme) = grid%noahres (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cldefi,1)*SIZE(grid%cldefi,2) .GT. 1 ) THEN
grid%cldefi (ips:min(ide-1,ipe),jms:jme) = grid%cldefi (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rublten,1)*SIZE(grid%rublten,3) .GT. 1 ) THEN
grid%rublten (ips:min(ide-1,ipe),:,jms:jme) = grid%rublten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rvblten,1)*SIZE(grid%rvblten,3) .GT. 1 ) THEN
grid%rvblten (ips:min(ide-1,ipe),:,jms:jme) = grid%rvblten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rthblten,1)*SIZE(grid%rthblten,3) .GT. 1 ) THEN
grid%rthblten (ips:min(ide-1,ipe),:,jms:jme) = grid%rthblten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqvblten,1)*SIZE(grid%rqvblten,3) .GT. 1 ) THEN
grid%rqvblten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqvblten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqcblten,1)*SIZE(grid%rqcblten,3) .GT. 1 ) THEN
grid%rqcblten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqcblten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqiblten,1)*SIZE(grid%rqiblten,3) .GT. 1 ) THEN
grid%rqiblten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqiblten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%tmn,1)*SIZE(grid%tmn,2) .GT. 1 ) THEN
grid%tmn (ips:min(ide-1,ipe),jms:jme) = grid%tmn (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tyr,1)*SIZE(grid%tyr,2) .GT. 1 ) THEN
grid%tyr (ips:min(ide-1,ipe),jms:jme) = grid%tyr (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tyra,1)*SIZE(grid%tyra,2) .GT. 1 ) THEN
grid%tyra (ips:min(ide-1,ipe),jms:jme) = grid%tyra (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tdly,1)*SIZE(grid%tdly,2) .GT. 1 ) THEN
grid%tdly (ips:min(ide-1,ipe),jms:jme) = grid%tdly (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tlag,1)*SIZE(grid%tlag,3) .GT. 1 ) THEN
grid%tlag (ips:min(ide-1,ipe),:,jms:jme) = grid%tlag (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%xland,1)*SIZE(grid%xland,2) .GT. 1 ) THEN
grid%xland (ips:min(ide-1,ipe),jms:jme) = grid%xland (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%znt,1)*SIZE(grid%znt,2) .GT. 1 ) THEN
grid%znt (ips:min(ide-1,ipe),jms:jme) = grid%znt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ck,1)*SIZE(grid%ck,2) .GT. 1 ) THEN
grid%ck (ips:min(ide-1,ipe),jms:jme) = grid%ck (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cka,1)*SIZE(grid%cka,2) .GT. 1 ) THEN
grid%cka (ips:min(ide-1,ipe),jms:jme) = grid%cka (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cd,1)*SIZE(grid%cd,2) .GT. 1 ) THEN
grid%cd (ips:min(ide-1,ipe),jms:jme) = grid%cd (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%cda,1)*SIZE(grid%cda,2) .GT. 1 ) THEN
grid%cda (ips:min(ide-1,ipe),jms:jme) = grid%cda (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ust,1)*SIZE(grid%ust,2) .GT. 1 ) THEN
grid%ust (ips:min(ide-1,ipe),jms:jme) = grid%ust (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ustm,1)*SIZE(grid%ustm,2) .GT. 1 ) THEN
grid%ustm (ips:min(ide-1,ipe),jms:jme) = grid%ustm (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rmol,1)*SIZE(grid%rmol,2) .GT. 1 ) THEN
grid%rmol (ips:min(ide-1,ipe),jms:jme) = grid%rmol (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mol,1)*SIZE(grid%mol,2) .GT. 1 ) THEN
grid%mol (ips:min(ide-1,ipe),jms:jme) = grid%mol (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%pblh,1)*SIZE(grid%pblh,2) .GT. 1 ) THEN
grid%pblh (ips:min(ide-1,ipe),jms:jme) = grid%pblh (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%capg,1)*SIZE(grid%capg,2) .GT. 1 ) THEN
grid%capg (ips:min(ide-1,ipe),jms:jme) = grid%capg (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%thc,1)*SIZE(grid%thc,2) .GT. 1 ) THEN
grid%thc (ips:min(ide-1,ipe),jms:jme) = grid%thc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%hfx,1)*SIZE(grid%hfx,2) .GT. 1 ) THEN
grid%hfx (ips:min(ide-1,ipe),jms:jme) = grid%hfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qfx,1)*SIZE(grid%qfx,2) .GT. 1 ) THEN
grid%qfx (ips:min(ide-1,ipe),jms:jme) = grid%qfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lh,1)*SIZE(grid%lh,2) .GT. 1 ) THEN
grid%lh (ips:min(ide-1,ipe),jms:jme) = grid%lh (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%achfx,1)*SIZE(grid%achfx,2) .GT. 1 ) THEN
grid%achfx (ips:min(ide-1,ipe),jms:jme) = grid%achfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%aclhf,1)*SIZE(grid%aclhf,2) .GT. 1 ) THEN
grid%aclhf (ips:min(ide-1,ipe),jms:jme) = grid%aclhf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%flhc,1)*SIZE(grid%flhc,2) .GT. 1 ) THEN
grid%flhc (ips:min(ide-1,ipe),jms:jme) = grid%flhc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%flqc,1)*SIZE(grid%flqc,2) .GT. 1 ) THEN
grid%flqc (ips:min(ide-1,ipe),jms:jme) = grid%flqc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qsg,1)*SIZE(grid%qsg,2) .GT. 1 ) THEN
grid%qsg (ips:min(ide-1,ipe),jms:jme) = grid%qsg (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qvg,1)*SIZE(grid%qvg,2) .GT. 1 ) THEN
grid%qvg (ips:min(ide-1,ipe),jms:jme) = grid%qvg (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_qvg,1)*SIZE(grid%dfi_qvg,2) .GT. 1 ) THEN
grid%dfi_qvg (ips:min(ide-1,ipe),jms:jme) = grid%dfi_qvg (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%qcg,1)*SIZE(grid%qcg,2) .GT. 1 ) THEN
grid%qcg (ips:min(ide-1,ipe),jms:jme) = grid%qcg (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%soilt1,1)*SIZE(grid%soilt1,2) .GT. 1 ) THEN
grid%soilt1 (ips:min(ide-1,ipe),jms:jme) = grid%soilt1 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_soilt1,1)*SIZE(grid%dfi_soilt1,2) .GT. 1 ) THEN
grid%dfi_soilt1 (ips:min(ide-1,ipe),jms:jme) = grid%dfi_soilt1 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tsnav,1)*SIZE(grid%tsnav,2) .GT. 1 ) THEN
grid%tsnav (ips:min(ide-1,ipe),jms:jme) = grid%tsnav (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_tsnav,1)*SIZE(grid%dfi_tsnav,2) .GT. 1 ) THEN
grid%dfi_tsnav (ips:min(ide-1,ipe),jms:jme) = grid%dfi_tsnav (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%regime,1)*SIZE(grid%regime,2) .GT. 1 ) THEN
grid%regime (ips:min(ide-1,ipe),jms:jme) = grid%regime (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%snowc,1)*SIZE(grid%snowc,2) .GT. 1 ) THEN
grid%snowc (ips:min(ide-1,ipe),jms:jme) = grid%snowc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dfi_snowc,1)*SIZE(grid%dfi_snowc,2) .GT. 1 ) THEN
grid%dfi_snowc (ips:min(ide-1,ipe),jms:jme) = grid%dfi_snowc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mavail,1)*SIZE(grid%mavail,2) .GT. 1 ) THEN
grid%mavail (ips:min(ide-1,ipe),jms:jme) = grid%mavail (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tkesfcf,1)*SIZE(grid%tkesfcf,2) .GT. 1 ) THEN
grid%tkesfcf (ips:min(ide-1,ipe),jms:jme) = grid%tkesfcf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%taucldi,1)*SIZE(grid%taucldi,3) .GT. 1 ) THEN
grid%taucldi (ips:min(ide-1,ipe),:,jms:jme) = grid%taucldi (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%taucldc,1)*SIZE(grid%taucldc,3) .GT. 1 ) THEN
grid%taucldc (ips:min(ide-1,ipe),:,jms:jme) = grid%taucldc (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%defor11,1)*SIZE(grid%defor11,3) .GT. 1 ) THEN
grid%defor11 (ips:min(ide-1,ipe),:,jms:jme) = grid%defor11 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%defor22,1)*SIZE(grid%defor22,3) .GT. 1 ) THEN
grid%defor22 (ips:min(ide-1,ipe),:,jms:jme) = grid%defor22 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%defor12,1)*SIZE(grid%defor12,3) .GT. 1 ) THEN
grid%defor12 (ips:min(ide-1,ipe),:,jms:jme) = grid%defor12 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%defor33,1)*SIZE(grid%defor33,3) .GT. 1 ) THEN
grid%defor33 (ips:min(ide-1,ipe),:,jms:jme) = grid%defor33 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%defor13,1)*SIZE(grid%defor13,3) .GT. 1 ) THEN
grid%defor13 (ips:min(ide-1,ipe),:,jms:jme) = grid%defor13 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%defor23,1)*SIZE(grid%defor23,3) .GT. 1 ) THEN
grid%defor23 (ips:min(ide-1,ipe),:,jms:jme) = grid%defor23 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%xkmv,1)*SIZE(grid%xkmv,3) .GT. 1 ) THEN
grid%xkmv (ips:min(ide-1,ipe),:,jms:jme) = grid%xkmv (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%xkmh,1)*SIZE(grid%xkmh,3) .GT. 1 ) THEN
grid%xkmh (ips:min(ide-1,ipe),:,jms:jme) = grid%xkmh (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%xkhv,1)*SIZE(grid%xkhv,3) .GT. 1 ) THEN
grid%xkhv (ips:min(ide-1,ipe),:,jms:jme) = grid%xkhv (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%xkhh,1)*SIZE(grid%xkhh,3) .GT. 1 ) THEN
grid%xkhh (ips:min(ide-1,ipe),:,jms:jme) = grid%xkhh (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%div,1)*SIZE(grid%div,3) .GT. 1 ) THEN
grid%div (ips:min(ide-1,ipe),:,jms:jme) = grid%div (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%bn2,1)*SIZE(grid%bn2,3) .GT. 1 ) THEN
grid%bn2 (ips:min(ide-1,ipe),:,jms:jme) = grid%bn2 (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rundgdten,1)*SIZE(grid%rundgdten,3) .GT. 1 ) THEN
grid%rundgdten (ips:min(ide,ipe),:,jms:jme) = grid%rundgdten (ips+px:min(ide,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rvndgdten,1)*SIZE(grid%rvndgdten,3) .GT. 1 ) THEN
grid%rvndgdten (ips:min(ide-1,ipe),:,jms:jme) = grid%rvndgdten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rthndgdten,1)*SIZE(grid%rthndgdten,3) .GT. 1 ) THEN
grid%rthndgdten (ips:min(ide-1,ipe),:,jms:jme) = grid%rthndgdten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rphndgdten,1)*SIZE(grid%rphndgdten,3) .GT. 1 ) THEN
grid%rphndgdten (ips:min(ide-1,ipe),:,jms:jme) = grid%rphndgdten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqvndgdten,1)*SIZE(grid%rqvndgdten,3) .GT. 1 ) THEN
grid%rqvndgdten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqvndgdten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rmundgdten,1)*SIZE(grid%rmundgdten,2) .GT. 1 ) THEN
grid%rmundgdten (ips:min(ide-1,ipe),jms:jme) = grid%rmundgdten (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
  DO itrace = PARAM_FIRST_SCALAR, num_fdda3d
IF ( SIZE(grid%fdda3d,1)*SIZE(grid%fdda3d,3) .GT. 1 ) THEN
grid%fdda3d (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%fdda3d (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
  DO itrace = PARAM_FIRST_SCALAR, num_fdda2d
IF ( SIZE(grid%fdda2d,1)*SIZE(grid%fdda2d,3) .GT. 1 ) THEN
grid%fdda2d (ips:min(ide-1,ipe),:,jms:jme,itrace) = grid%fdda2d (ips+px:min(ide-1,ipe)+px,:,jms:jme,itrace)
ENDIF
  ENDDO
IF ( SIZE(grid%u10_ndg_old,1)*SIZE(grid%u10_ndg_old,2) .GT. 1 ) THEN
grid%u10_ndg_old (ips:min(ide,ipe),jms:jme) = grid%u10_ndg_old (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%u10_ndg_new,1)*SIZE(grid%u10_ndg_new,2) .GT. 1 ) THEN
grid%u10_ndg_new (ips:min(ide,ipe),jms:jme) = grid%u10_ndg_new (ips+px:min(ide,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%v10_ndg_old,1)*SIZE(grid%v10_ndg_old,2) .GT. 1 ) THEN
grid%v10_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%v10_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%v10_ndg_new,1)*SIZE(grid%v10_ndg_new,2) .GT. 1 ) THEN
grid%v10_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%v10_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%t2_ndg_old,1)*SIZE(grid%t2_ndg_old,2) .GT. 1 ) THEN
grid%t2_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%t2_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%t2_ndg_new,1)*SIZE(grid%t2_ndg_new,2) .GT. 1 ) THEN
grid%t2_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%t2_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%th2_ndg_old,1)*SIZE(grid%th2_ndg_old,2) .GT. 1 ) THEN
grid%th2_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%th2_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%th2_ndg_new,1)*SIZE(grid%th2_ndg_new,2) .GT. 1 ) THEN
grid%th2_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%th2_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%q2_ndg_old,1)*SIZE(grid%q2_ndg_old,2) .GT. 1 ) THEN
grid%q2_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%q2_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%q2_ndg_new,1)*SIZE(grid%q2_ndg_new,2) .GT. 1 ) THEN
grid%q2_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%q2_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rh_ndg_old,1)*SIZE(grid%rh_ndg_old,2) .GT. 1 ) THEN
grid%rh_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%rh_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rh_ndg_new,1)*SIZE(grid%rh_ndg_new,2) .GT. 1 ) THEN
grid%rh_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%rh_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%psl_ndg_old,1)*SIZE(grid%psl_ndg_old,2) .GT. 1 ) THEN
grid%psl_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%psl_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%psl_ndg_new,1)*SIZE(grid%psl_ndg_new,2) .GT. 1 ) THEN
grid%psl_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%psl_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ps_ndg_old,1)*SIZE(grid%ps_ndg_old,2) .GT. 1 ) THEN
grid%ps_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%ps_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ps_ndg_new,1)*SIZE(grid%ps_ndg_new,2) .GT. 1 ) THEN
grid%ps_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%ps_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tob_ndg_old,1)*SIZE(grid%tob_ndg_old,2) .GT. 1 ) THEN
grid%tob_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%tob_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%odis_ndg_old,1)*SIZE(grid%odis_ndg_old,2) .GT. 1 ) THEN
grid%odis_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%odis_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tob_ndg_new,1)*SIZE(grid%tob_ndg_new,2) .GT. 1 ) THEN
grid%tob_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%tob_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%odis_ndg_new,1)*SIZE(grid%odis_ndg_new,2) .GT. 1 ) THEN
grid%odis_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%odis_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sn_ndg_new,1)*SIZE(grid%sn_ndg_new,2) .GT. 1 ) THEN
grid%sn_ndg_new (ips:min(ide-1,ipe),jms:jme) = grid%sn_ndg_new (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%sn_ndg_old,1)*SIZE(grid%sn_ndg_old,2) .GT. 1 ) THEN
grid%sn_ndg_old (ips:min(ide-1,ipe),jms:jme) = grid%sn_ndg_old (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dpsdt,1)*SIZE(grid%dpsdt,2) .GT. 1 ) THEN
grid%dpsdt (ips:min(ide-1,ipe),jms:jme) = grid%dpsdt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dmudt,1)*SIZE(grid%dmudt,2) .GT. 1 ) THEN
grid%dmudt (ips:min(ide-1,ipe),jms:jme) = grid%dmudt (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%pk1m,1)*SIZE(grid%pk1m,2) .GT. 1 ) THEN
grid%pk1m (ips:min(ide-1,ipe),jms:jme) = grid%pk1m (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%mu_2m,1)*SIZE(grid%mu_2m,2) .GT. 1 ) THEN
grid%mu_2m (ips:min(ide-1,ipe),jms:jme) = grid%mu_2m (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tml,1)*SIZE(grid%tml,2) .GT. 1 ) THEN
grid%tml (ips:min(ide-1,ipe),jms:jme) = grid%tml (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%t0ml,1)*SIZE(grid%t0ml,2) .GT. 1 ) THEN
grid%t0ml (ips:min(ide-1,ipe),jms:jme) = grid%t0ml (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%hml,1)*SIZE(grid%hml,2) .GT. 1 ) THEN
grid%hml (ips:min(ide-1,ipe),jms:jme) = grid%hml (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%h0ml,1)*SIZE(grid%h0ml,2) .GT. 1 ) THEN
grid%h0ml (ips:min(ide-1,ipe),jms:jme) = grid%h0ml (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%huml,1)*SIZE(grid%huml,2) .GT. 1 ) THEN
grid%huml (ips:min(ide-1,ipe),jms:jme) = grid%huml (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%hvml,1)*SIZE(grid%hvml,2) .GT. 1 ) THEN
grid%hvml (ips:min(ide-1,ipe),jms:jme) = grid%hvml (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%dif_analysis,1)*SIZE(grid%dif_analysis,3) .GT. 1 ) THEN
grid%dif_analysis (ips:min(ide-1,ipe),:,jms:jme) = grid%dif_analysis (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%nfuel_cat,1)*SIZE(grid%nfuel_cat,2) .GT. 1 ) THEN
grid%nfuel_cat (ips:min(ide-1,ipe),jms:jme) = grid%nfuel_cat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%zsf,1)*SIZE(grid%zsf,2) .GT. 1 ) THEN
grid%zsf (ips:min(ide-1,ipe),jms:jme) = grid%zsf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%tign_g,1)*SIZE(grid%tign_g,2) .GT. 1 ) THEN
grid%tign_g (ips:min(ide-1,ipe),jms:jme) = grid%tign_g (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%rthfrten,1)*SIZE(grid%rthfrten,3) .GT. 1 ) THEN
grid%rthfrten (ips:min(ide-1,ipe),:,jms:jme) = grid%rthfrten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%rqvfrten,1)*SIZE(grid%rqvfrten,3) .GT. 1 ) THEN
grid%rqvfrten (ips:min(ide-1,ipe),:,jms:jme) = grid%rqvfrten (ips+px:min(ide-1,ipe)+px,:,jms:jme)
ENDIF
IF ( SIZE(grid%grnhfx,1)*SIZE(grid%grnhfx,2) .GT. 1 ) THEN
grid%grnhfx (ips:min(ide-1,ipe),jms:jme) = grid%grnhfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%grnqfx,1)*SIZE(grid%grnqfx,2) .GT. 1 ) THEN
grid%grnqfx (ips:min(ide-1,ipe),jms:jme) = grid%grnqfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%canhfx,1)*SIZE(grid%canhfx,2) .GT. 1 ) THEN
grid%canhfx (ips:min(ide-1,ipe),jms:jme) = grid%canhfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%canqfx,1)*SIZE(grid%canqfx,2) .GT. 1 ) THEN
grid%canqfx (ips:min(ide-1,ipe),jms:jme) = grid%canqfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%lfn,1)*SIZE(grid%lfn,2) .GT. 1 ) THEN
grid%lfn (ips:min(ide-1,ipe),jms:jme) = grid%lfn (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fuel_frac,1)*SIZE(grid%fuel_frac,2) .GT. 1 ) THEN
grid%fuel_frac (ips:min(ide-1,ipe),jms:jme) = grid%fuel_frac (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fire_area,1)*SIZE(grid%fire_area,2) .GT. 1 ) THEN
grid%fire_area (ips:min(ide-1,ipe),jms:jme) = grid%fire_area (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%uf,1)*SIZE(grid%uf,2) .GT. 1 ) THEN
grid%uf (ips:min(ide-1,ipe),jms:jme) = grid%uf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%vf,1)*SIZE(grid%vf,2) .GT. 1 ) THEN
grid%vf (ips:min(ide-1,ipe),jms:jme) = grid%vf (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fgrnhfx,1)*SIZE(grid%fgrnhfx,2) .GT. 1 ) THEN
grid%fgrnhfx (ips:min(ide-1,ipe),jms:jme) = grid%fgrnhfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fgrnqfx,1)*SIZE(grid%fgrnqfx,2) .GT. 1 ) THEN
grid%fgrnqfx (ips:min(ide-1,ipe),jms:jme) = grid%fgrnqfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fcanhfx,1)*SIZE(grid%fcanhfx,2) .GT. 1 ) THEN
grid%fcanhfx (ips:min(ide-1,ipe),jms:jme) = grid%fcanhfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fcanqfx,1)*SIZE(grid%fcanqfx,2) .GT. 1 ) THEN
grid%fcanqfx (ips:min(ide-1,ipe),jms:jme) = grid%fcanqfx (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fxlong,1)*SIZE(grid%fxlong,2) .GT. 1 ) THEN
grid%fxlong (ips:min(ide-1,ipe),jms:jme) = grid%fxlong (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fxlat,1)*SIZE(grid%fxlat,2) .GT. 1 ) THEN
grid%fxlat (ips:min(ide-1,ipe),jms:jme) = grid%fxlat (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fuel_time,1)*SIZE(grid%fuel_time,2) .GT. 1 ) THEN
grid%fuel_time (ips:min(ide-1,ipe),jms:jme) = grid%fuel_time (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%bbb,1)*SIZE(grid%bbb,2) .GT. 1 ) THEN
grid%bbb (ips:min(ide-1,ipe),jms:jme) = grid%bbb (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%betafl,1)*SIZE(grid%betafl,2) .GT. 1 ) THEN
grid%betafl (ips:min(ide-1,ipe),jms:jme) = grid%betafl (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%phiwc,1)*SIZE(grid%phiwc,2) .GT. 1 ) THEN
grid%phiwc (ips:min(ide-1,ipe),jms:jme) = grid%phiwc (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%r_0,1)*SIZE(grid%r_0,2) .GT. 1 ) THEN
grid%r_0 (ips:min(ide-1,ipe),jms:jme) = grid%r_0 (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%fgip,1)*SIZE(grid%fgip,2) .GT. 1 ) THEN
grid%fgip (ips:min(ide-1,ipe),jms:jme) = grid%fgip (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
IF ( SIZE(grid%ischap,1)*SIZE(grid%ischap,2) .GT. 1 ) THEN
grid%ischap (ips:min(ide-1,ipe),jms:jme) = grid%ischap (ips+px:min(ide-1,ipe)+px,jms:jme)
ENDIF
!ENDOFREGISTRYGENERATEDINCLUDE