Skip to content

Commit

Permalink
Initial updates to global_cycle for Noah-MP land model (#774)
Browse files Browse the repository at this point in the history
Updates to recognize and process Noah-MP restart files. Currently, only the greenness fraction is updated for Noah-MP. Other required fields for Noah-MP will be added later after consultation with the land team. 

All changes are backwards compatible when processing Noah restart files.

Part of #761.
  • Loading branch information
GeorgeGayno-NOAA authored Feb 21, 2023
1 parent 90c2830 commit 86989df
Show file tree
Hide file tree
Showing 3 changed files with 439 additions and 734 deletions.
31 changes: 22 additions & 9 deletions sorc/global_cycle.fd/cycle.f90
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,8 @@ SUBROUTINE SFCDRV(LUGB, IDIM,JDIM,LSM,LENSFC,LSOIL,DELTSFC, &
INTEGER :: IDUM(IDIM,JDIM)
integer :: num_parthds, num_threads

LOGICAL :: IS_NOAHMP=.FALSE.

real(kind=kind_io8) :: min_ice(lensfc)

REAL :: SLMASK(LENSFC), OROG(LENSFC)
Expand Down Expand Up @@ -475,7 +477,8 @@ SUBROUTINE SFCDRV(LUGB, IDIM,JDIM,LSM,LENSFC,LSOIL,DELTSFC, &
! READ THE INPUT SURFACE DATA ON THE CUBED-SPHERE TILE.
!--------------------------------------------------------------------------------

CALL READ_DATA(LSOIL,LENSFC,DO_NSST,.false.,TSFFCS=TSFFCS,SMCFCS=SMCFCS, &
CALL READ_DATA(LSOIL,LENSFC,DO_NSST,.false.,IS_NOAHMP=IS_NOAHMP, &
TSFFCS=TSFFCS,SMCFCS=SMCFCS, &
SWEFCS=SWEFCS,STCFCS=STCFCS,TG3FCS=TG3FCS,ZORFCS=ZORFCS, &
CVFCS=CVFCS, CVBFCS=CVBFCS,CVTFCS=CVTFCS,ALBFCS=ALBFCS, &
VEGFCS=VEGFCS,SLIFCS=SLIFCS,CNPFCS=CNPFCS,F10M=F10M , &
Expand Down Expand Up @@ -712,14 +715,24 @@ SUBROUTINE SFCDRV(LUGB, IDIM,JDIM,LSM,LENSFC,LSOIL,DELTSFC, &
! WRITE OUT UPDATED SURFACE DATA ON THE CUBED-SPHERE TILE.
!--------------------------------------------------------------------------------

CALL WRITE_DATA(SLIFCS,TSFFCS,SWEFCS,TG3FCS,ZORFCS, &
ALBFCS,ALFFCS,VEGFCS,CNPFCS,F10M, &
T2M,Q2M,VETFCS,SOTFCS,USTAR,FMM,FHH, &
SICFCS,SIHFCS,SITFCS, &
TPRCP,SRFLAG,SNDFCS, &
VMNFCS,VMXFCS,SLPFCS,ABSFCS, &
SLCFCS,SMCFCS,STCFCS, &
IDIM,JDIM,LENSFC,LSOIL,DO_NSST,NSST)
IF (IS_NOAHMP) THEN

CALL WRITE_DATA(LENSFC,IDIM,JDIM,LSOIL,DO_NSST,NSST,VEGFCS=VEGFCS)

ELSE

CALL WRITE_DATA(LENSFC,IDIM,JDIM,LSOIL, &
DO_NSST,NSST,SLIFCS=SLIFCS,TSFFCS=TSFFCS,VEGFCS=VEGFCS, &
SWEFCS=SWEFCS,TG3FCS=TG3FCS,ZORFCS=ZORFCS, &
ALBFCS=ALBFCS,ALFFCS=ALFFCS,CNPFCS=CNPFCS, &
F10M=F10M,T2M=T2M,Q2M=Q2M,VETFCS=VETFCS, &
SOTFCS=SOTFCS,USTAR=USTAR,FMM=FMM,FHH=FHH, &
SICFCS=SICFCS,SIHFCS=SIHFCS,SITFCS=SITFCS,TPRCP=TPRCP, &
SRFLAG=SRFLAG,SWDFCS=SNDFCS,VMNFCS=VMNFCS, &
VMXFCS=VMXFCS,SLPFCS=SLPFCS,ABSFCS=ABSFCS, &
SLCFCS=SLCFCS,SMCFCS=SMCFCS,STCFCS=STCFCS)

ENDIF

IF (DO_NSST) THEN
DEALLOCATE(NSST%C_0)
Expand Down
Loading

0 comments on commit 86989df

Please sign in to comment.