diff --git a/src/enkf/controlvec.f90 b/src/enkf/controlvec.f90 index 096154963..2195b3bd0 100644 --- a/src/enkf/controlvec.f90 +++ b/src/enkf/controlvec.f90 @@ -261,6 +261,8 @@ subroutine write_control(no_inflate_flag) real(r_single), allocatable, dimension(:,:) :: grdin_mean_tmp real(r_single), allocatable, dimension(:,:,:,:) :: grdin_mean +character(len=max_varname_length), dimension(nc3d) :: no_vars3d + if (nproc <= ntasks_io-1) then ! scale q by ensemble qsat, prior to averaging @@ -335,6 +337,9 @@ subroutine write_control(no_inflate_flag) else call writegriddata(0,0,cvars3d,cvars2d,nc3d,nc2d,clevels,ncdim,grdin_mean,no_inflate_flag) end if + elseif (nc2d>0) then ! always write sfc mean increment for land analysis + no_vars3d='' + call writeincrement(0,0,no_vars3d,cvars2d,nc3d,nc2d,clevels,ncdim,grdin_mean,no_inflate_flag) endif deallocate(grdin_mean) t2 = mpi_wtime() @@ -358,6 +363,9 @@ subroutine write_control(no_inflate_flag) else call writegriddata(0,0,cvars3d,cvars2d,nc3d,nc2d,clevels,ncdim,grdin_mean,no_inflate_flag) end if + elseif (nc2d>0) then ! always write sfc mean increment + no_vars3d='' + call writeincrement(0,0,no_vars3d,cvars2d,nc3d,nc2d,clevels,ncdim,grdin_mean,no_inflate_flag) endif deallocate(grdin_mean) t2 = mpi_wtime() diff --git a/src/enkf/gridio_gfs.f90 b/src/enkf/gridio_gfs.f90 index 6e68f1a34..e2ce16e77 100644 --- a/src/enkf/gridio_gfs.f90 +++ b/src/enkf/gridio_gfs.f90 @@ -4114,7 +4114,7 @@ subroutine writeincrement(nanal1,nanal2,vars3d,vars2d,n3d,n2d,levels,ndim,grdin, write(charnanal,'(i3.3)') nanal sfcbackgroundloop: do nb=1,nbackgrounds - if (nanal == 0 .and. write_ensmean) then + if (nanal == 0 ) then filenamein = trim(adjustl(datapath))//trim(adjustl(fgsfcfileprefixes(nb)))//"ensmean" filenameout = trim(adjustl(datapath))//trim(adjustl(incsfcfileprefixes(nb)))//"ensmean" else