diff --git a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 index d7b66f1f..d52ccdac 100644 --- a/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 +++ b/ESMF/GOCART2G_GridComp/DU2G_GridComp/DU2G_GridCompMod.F90 @@ -797,14 +797,12 @@ subroutine Run1 (GC, import, export, clock, RC) if (associated(DU_EROD)) DU_EROD = f_erod_ case ('fengsha') - allocate(R_, mold=U10M, __STAT__) - allocate(H_w_, mold=U10M, __STAT__) + call DustEmissionFENGSHA (frlake, frsnow, lwi, slc, du_clay, du_sand, du_silt, & du_ssm, du_rdrag, airdens(:,:,self%km), ustar, du_uthres, & self%alpha, self%gamma, self%kvhmax, MAPL_GRAV, & - self%rhop, self%sdist, self%f_sdl, emissions_surface, H_w_, __RC__) - if (associated(DU_DPC)) DU_DPC = du_rdrag - if (associated(DU_SMC)) DU_SMC = H_w_ + self%rhop, self%sdist, self%f_sdl, self%f_swc, emissions_surface, __RC__) + case ('ginoux') call DustEmissionGOCART2G(self%radius*1.e-6, frlake, wet1, lwi, u10m, v10m, & diff --git a/Process_Library/GOCART2G_Process.F90 b/Process_Library/GOCART2G_Process.F90 index 1ae45024..cc0b5999 100644 --- a/Process_Library/GOCART2G_Process.F90 +++ b/Process_Library/GOCART2G_Process.F90 @@ -302,7 +302,7 @@ end function DustFluxV2HRatioMB95 ! !INTERFACE: subroutine DustEmissionFENGSHA(fraclake, fracsnow, oro, slc, clay, sand, silt, & ssm, rdrag, airdens, ustar, uthrs, alpha, gamma, & - kvhmax, grav, rhop, distribution, drylimit_factor, emissions, h, rc) + kvhmax, grav, rhop, distribution, drylimit_factor, moist_correct, emissions, rc) ! !USES: implicit NONE @@ -327,9 +327,9 @@ subroutine DustEmissionFENGSHA(fraclake, fracsnow, oro, slc, clay, sand, silt, real, dimension(:), intent(in) :: rhop ! soil class density [kg/m^3] real, dimension(:), intent(in) :: distribution ! normalized dust binned distribution [1] real, intent(in) :: drylimit_factor ! drylimit tuning factor from zender2003 + real, intent(in) :: moist_correct ! moisture correction factor ! !OUTPUT PARAMETERS: real, intent(out) :: emissions(:,:,:) ! binned surface emissions [kg/(m^2 sec)] - real, intent(out) :: h(:,:) integer, intent(out) :: rc ! Error return code: __SUCCESS__ or __FAIL__ ! !DESCRIPTION: Compute dust emissions using NOAA/ARL FENGSHA model @@ -346,11 +346,13 @@ subroutine DustEmissionFENGSHA(fraclake, fracsnow, oro, slc, clay, sand, silt, integer, dimension(2) :: ilb, iub real :: alpha_grav real :: fracland + real :: h real :: kvh real :: q real :: rustar real :: total_emissions real :: u_sum, u_thresh + real :: smois ! !CONSTANTS: real, parameter :: ssm_thresh = 1.e-02 ! emit above this erodibility threshold [1] @@ -407,11 +409,12 @@ subroutine DustEmissionFENGSHA(fraclake, fracsnow, oro, slc, clay, sand, silt, ! Fecan moisture correction ! ------------------------- - h(i,j) = moistureCorrectionFecan(slc(i,j), sand(i,j), clay(i,j), drylimit_factor) + smois = slc(i,j) * moist_correct + h = moistureCorrectionFecan(smois, sand(i,j), clay(i,j), drylimit_factor) ! Adjust threshold ! ---------------- - u_thresh = uthrs(i,j) * h(i,j) + u_thresh = uthrs(i,j) * h u_sum = rustar + u_thresh