Skip to content

Commit

Permalink
skip land component for first time step
Browse files Browse the repository at this point in the history
  • Loading branch information
uturuncoglu committed Nov 8, 2024
1 parent 44700d5 commit 41527dd
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 5 deletions.
6 changes: 4 additions & 2 deletions physics/SFC_Models/Land/Noahmp/noahmpdrv.F90
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,8 @@ end subroutine noahmpdrv_init
subroutine noahmpdrv_run &
!...................................
! --- inputs:
( im, km, lsnowl, itime, ps, u1, v1, t1, q1, soiltyp,soilcol,&
( im, km, lsnowl, itime, flag_init, ps, u1, v1, t1, q1, &
soiltyp,soilcol, &
vegtype, sigmaf, dlwflx, dswsfc, snet, delt, tg3, cm, ch, &
prsl1, prslk1, prslki, prsik1, zf,pblh, dry, wind, slopetyp,&
shdmin, shdmax, snoalb, sfalb, flag_iter,con_g, &
Expand Down Expand Up @@ -233,6 +234,7 @@ subroutine noahmpdrv_run &
integer , intent(in) :: km ! vertical soil layer dimension
integer , intent(in) :: lsnowl ! lower bound for snow level arrays
integer , intent(in) :: itime ! NOT USED
logical , intent(in) :: flag_init ! flag signaling first time step
real(kind=kind_phys), dimension(:) , intent(in) :: ps ! surface pressure [Pa]
real(kind=kind_phys), dimension(:) , intent(in) :: u1 ! u-component of wind [m/s]
real(kind=kind_phys), dimension(:) , intent(in) :: v1 ! u-component of wind [m/s]
Expand Down Expand Up @@ -693,7 +695,7 @@ subroutine noahmpdrv_run &
!
! --- Just return if external land component is activated for two-way interaction
!
if (cpllnd .and. cpllnd2atm) return
if (cpllnd .and. cpllnd2atm .and. (.not. flag_init)) return

do i = 1, im

Expand Down
7 changes: 7 additions & 0 deletions physics/SFC_Models/Land/Noahmp/noahmpdrv.meta
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,13 @@
dimensions = ()
type = integer
intent = in
[flag_init]
standard_name = flag_for_first_timestep
long_name = flag signaling first time step for time integration loop
units = flag
dimensions = ()
type = logical
intent = in
[ps]
standard_name = surface_air_pressure
long_name = surface pressure
Expand Down
7 changes: 4 additions & 3 deletions physics/SFC_Models/Land/sfc_land.F90
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ module sfc_land
!! \section general General Algorithm
!! \section detailed Detailed Algorithm
!! @{
subroutine sfc_land_run(im, cpllnd, cpllnd2atm, flag_iter, dry, &
sncovr1_lnd, qsurf_lnd, evap_lnd, hflx_lnd, &
subroutine sfc_land_run(im, flag_init, cpllnd, cpllnd2atm, &
flag_iter, dry, sncovr1_lnd, qsurf_lnd, evap_lnd, hflx_lnd, &
ep_lnd, t2mmp_lnd, q2mp_lnd, gflux_lnd, &
runoff_lnd, drain_lnd, cmm_lnd, chh_lnd, zvfun_lnd, &
sncovr1, qsurf, evap, hflx, ep, t2mmp, q2mp, &
Expand All @@ -40,6 +40,7 @@ subroutine sfc_land_run(im, cpllnd, cpllnd2atm, flag_iter, dry, &

! Inputs
integer , intent(in) :: im
logical , intent(in) :: flag_init
logical , intent(in) :: cpllnd
logical , intent(in) :: cpllnd2atm
logical , intent(in) :: flag_iter(:)
Expand Down Expand Up @@ -83,7 +84,7 @@ subroutine sfc_land_run(im, cpllnd, cpllnd2atm, flag_iter, dry, &
errflg = 0

! Check coupling from component land to atmosphere
if (.not. cpllnd2atm) return
if (flag_init .or. (.not. cpllnd2atm)) return

! Fill variables
do i = 1, im
Expand Down
7 changes: 7 additions & 0 deletions physics/SFC_Models/Land/sfc_land.meta
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@
dimensions = ()
type = integer
intent = in
[flag_init]
standard_name = flag_for_first_timestep
long_name = flag signaling first time step for time integration loop
units = flag
dimensions = ()
type = logical
intent = in
[cpllnd]
standard_name = flag_for_land_coupling
long_name = flag controlling cpllnd collection (default off)
Expand Down

0 comments on commit 41527dd

Please sign in to comment.