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