Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reinstated sea ice option in RUC LSM. #57

Closed
wants to merge 13 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions physics/GFS_debug.F90
Original file line number Diff line number Diff line change
Expand Up @@ -491,18 +491,19 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling,
end if
! CCPP/RUC only
if (Model%lsm == Model%lsm_ruc) then
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%sh2o', Sfcprop%sh2o)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%smois', Sfcprop%smois)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%tslb', Sfcprop%tslb)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%zs', Sfcprop%zs)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%clw_surf', Sfcprop%clw_surf)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%qwv_surf', Sfcprop%qwv_surf)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%cndm_surf', Sfcprop%cndm_surf)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%flag_frsoil', Sfcprop%flag_frsoil)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%rhofr', Sfcprop%rhofr)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%tsnow', Sfcprop%tsnow)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%snowfallac ', Sfcprop%snowfallac)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%acsnow ', Sfcprop%acsnow)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%sh2o', Sfcprop%sh2o)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%smois', Sfcprop%smois)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%tslb', Sfcprop%tslb)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%clw_surf_land', Sfcprop%clw_surf_land)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%clw_surf_ice', Sfcprop%clw_surf_ice)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%qwv_surf_land', Sfcprop%qwv_surf_land)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%qwv_surf_ice', Sfcprop%qwv_surf_ice)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%flag_frsoil', Sfcprop%flag_frsoil)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%rhofr', Sfcprop%rhofr)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%tsnow_land', Sfcprop%tsnow_land)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%tsnow_ice', Sfcprop%tsnow_ice)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%snowfallac_land', Sfcprop%snowfallac_land)
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%snowfallac_ice', Sfcprop%snowfallac_ice)
end if
! Radtend
call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Radtend%sfcfsw%upfxc', Radtend%sfcfsw(:)%upfxc)
Expand Down
1 change: 1 addition & 0 deletions physics/GFS_phys_time_vary.fv3.F90
Original file line number Diff line number Diff line change
Expand Up @@ -519,6 +519,7 @@ subroutine GFS_phys_time_vary_run (Data, Model, nthrds, first_time_step, errmsg,
endif
enddo
enddo
! DH* 20201104: don't forget snocvr_ice for RUC LSM (see FV3GFS_io.F90)
endif
endif
#endif
Expand Down
1 change: 1 addition & 0 deletions physics/GFS_phys_time_vary.scm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@ subroutine GFS_phys_time_vary_run (Grid, Statein, Model, Tbd, Sfcprop, Cldprop,
endif
endif
enddo
! DH* 20201104: don't forget snocvr_ice for RUC LSM (see FV3GFS_io.F90)
endif
endif
#endif
Expand Down
2 changes: 1 addition & 1 deletion physics/GFS_surface_composites.F90
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,7 @@ subroutine GFS_surface_composites_post_run (
tsfco(i) = tsfc(i)
endif
tsfcl(i) = tsfc(i)
do k=1,kice ! store tiice in stc to reduce output in the nonfrac grid case
do k=1,min(kice,km) ! store tiice in stc to reduce output in the nonfrac grid case
stc(i,k)=tiice(i,k)
end do
endif
Expand Down
123 changes: 0 additions & 123 deletions physics/lsm_ruc_sfc_sice_interstitial.F90

This file was deleted.

1 change: 1 addition & 0 deletions physics/module_mp_thompson.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1784,6 +1784,7 @@ subroutine mp_thompson (qv1d, qc1d, qi1d, qr1d, qs1d, qg1d, ni1d, &
rho(k) = 0.622*pres(k)/(R*temp(k)*(qv(k)+0.622))
nwfa(k) = MAX(11.1E6, MIN(9999.E6, nwfa1d(k)*rho(k)))
nifa(k) = MAX(naIN1*0.01, MIN(9999.E6, nifa1d(k)*rho(k)))
mvd_r(k) = D0r

if (qc1d(k) .gt. R1) then
no_micro = .false.
Expand Down
14 changes: 10 additions & 4 deletions physics/module_sf_ruclsm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -6197,7 +6197,13 @@ SUBROUTINE SOILPROP( debug_print, &
!--- Next 3 lines are for Johansen thermal conduct.
gamd=(1.-ws)*2700.
kdry=(0.135*gamd+64.7)/(2700.-0.947*gamd)
kas=kqwrtz**qwrtz*kzero**(1.-qwrtz)
!kas=kqwrtz**qwrtz*kzero**(1.-qwrtz)
!-- one more option from Christa's paper
if(qwrtz > 0.2) then
kas=kqwrtz**qwrtz*kzero**(1.-qwrtz)
else
kas=kqwrtz**qwrtz*3.**(1.-qwrtz)
endif

DO K=1,NZS1
tn=tav(k) - 273.15
Expand Down Expand Up @@ -6256,13 +6262,13 @@ SUBROUTINE SOILPROP( debug_print, &
if((ws-a).lt.0.12)then
diffu(K)=0.
else
H=max(0.,(soilmoism(K)-a)/(max(1.e-8,(dqm-a))))
H=max(0.,(soilmoism(K)+qmin-a)/(max(1.e-8,(dqm-a))))
facd=1.
if(a.ne.0.)facd=1.-a/max(1.e-8,soilmoism(K))
ame=max(1.e-8,dqm-riw*soilicem(K))
!--- DIFFU is diffusional conductivity of soil water
diffu(K)=-BCLH*KSAT*PSIS/ame* &
(dqm/ame)**3. &
(ws/ame)**3. &
*H**(BCLH+2.)*facd
endif

Expand All @@ -6288,7 +6294,7 @@ SUBROUTINE SOILPROP( debug_print, &
fach=1.
if(soilice(k).ne.0.) &
fach=1.-riw*soilice(k)/max(1.e-8,soilmois(k))
am=max(1.e-8,dqm-riw*soilice(k))
am=max(1.e-8,ws-riw*soilice(k))
!--- HYDRO is hydraulic conductivity of soil water
hydro(K)=min(KSAT,KSAT/am* &
(soiliqw(K)/am) &
Expand Down
2 changes: 2 additions & 0 deletions physics/namelist_soilveg_ruc.F90
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
!>\file namelist_soilveg_ruc.F90
!>\ingroup RUC_lsm
module namelist_soilveg_ruc
implicit none
save
Expand Down
5 changes: 3 additions & 2 deletions physics/set_soilveg_ruc.F90
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,14 @@ subroutine set_soilveg_ruc(me,isot,ivet,nlunit)
real refsmc1, wltsmc1

NAMELIST /SOIL_VEG_RUC/ SLOPE_DATA, ALBTBL, Z0TBL, LEMITBL, &
& PCTBL, SHDTBL, &
& PCTBL, SHDTBL, &
& IFORTBL, RSTBL, RGLTBL, HSTBL, SNUPTBL, LAITBL, MAXALB, &
& LPARAM, TOPT_DATA, CMCMAX_DATA, CFACTR_DATA, &
& RSMAX_DATA, BARE, NATURAL, CROP, URBAN, &
& DEFINED_VEG, DEFINED_SOIL, DEFINED_SLOPE, &
& BB, DRYSMC, HC, MAXSMC, REFSMC, SATPSI, SATDK, SATDW, &
& WLTSMC, QTZ, mosaic_soil, mosaic_lu, REFSMCnoah, WLTSMCnoah
& WLTSMC, QTZ, mosaic_soil, mosaic_lu, &
& REFSMCnoah, WLTSMCnoah, MAXSMCnoah

if(ivet.eq.2) then
! Using umd veg classification
Expand Down
Loading