Skip to content
Open
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
37 changes: 37 additions & 0 deletions lis/configs/lis.config.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1254,6 +1254,7 @@ Acceptable values are:
|"`SNODAS`" | SNODAS snow depth
|"`GLASS LAI`" | GLASS Leaf Area Index (LAI)
|"`GLASS Albedo`" | GLASS Albedo (black-sky and white-sky)
|"`SWOT water level`" | SWOT water surface elevation
|====

.Example _lis.config_ entry
Expand Down Expand Up @@ -3389,6 +3390,22 @@ SNODAS data.
SNODAS snow depth data directory: ./FORCING/SNODAS
....

[[sssec_swotwlda,SWOT water level assimilation]]
==== SWOT water level assimilation

`SWOT water level data directory:` specifies the SWOT water level data directory.

`SWOT water level map:` specifies the assimilation map file and its associated sequential ID.

`Data assimilation frequency::` specifies the DA frequency: minimum 15mn and maximum 1da.

.Example _lis.config_ entry
....
SWOT water level data directory: ./input/SWOT_obs
SWOT water level map: ./SWOT_lis_id.nc
Data assimilation frequency "15mn"
....

[[ssec_rtms,Radiative Transfer/Forward Models]]
=== Radiative Transfer/Forward Models

Expand Down Expand Up @@ -10940,6 +10957,21 @@ active restart file.
`HYMAP2 2-way coupling flooded fraction threshold:` specifies the flooded fraction
threshold used in the 2-way coupling mode.

`HYMAP2 use localization update in DA:` specifies whether to enable the localization
scheme for DA.

Acceptable values are:

|====
|Value | Description
|0 | Do not use localization
|1 | Use localization for DA
|====

`HYMAP2 localization update window size:` specifies localization update window size.

`HYMAP2 localization weight map:` specifies the file location of the localization weight map.

.Example _lis.config_ entry
....
HYMAP2 routing model time step: "30mn"
Expand All @@ -10961,8 +10993,13 @@ HYMAP2 routing model dwi flag: 0
HYMAP2 routing model start mode: "coldstart"
HYMAP2 routing model restart interval: "1mo"
HYMAP2 routing model restart file: "./OL/ROUTING/197901/LIS_RST_HYMAP2_router_197901030000.d01.nc

HYMAP2 enable 2-way coupling: 0
HYMAP2 2-way coupling flooded fraction threshold: 0.1

HYMAP2 use localization update in DA: 0
HYMAP2 localization update window size: 10
HYMAP2 localization weight map: ./input/localization_map/distance_map_full_ohio_010.nc
....


Expand Down
45 changes: 21 additions & 24 deletions lis/core/LIS_coreMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ module LIS_coreMod
type(griddec), allocatable :: grid(:)
integer, allocatable :: ntiles_pergrid(:)
end type routing_type_dec

type(routing_type_dec), allocatable :: LIS_routing(:)

!EOP
Expand Down Expand Up @@ -393,7 +393,7 @@ subroutine lisconfig_generic(cmd_args, vm, clock, nx, ny, comm)
allocate(LIS_rc%minLon(LIS_rc%nnest))
allocate(LIS_rc%maxLat(LIS_rc%nnest))
allocate(LIS_rc%maxLon(LIS_rc%nnest))

LIS_rc%gridDesc = 0
LIS_rc%use_twelve = .false.
LIS_rc%reset_flag = .false.
Expand Down Expand Up @@ -429,7 +429,7 @@ subroutine LIS_core_init
! endif
call LIS_update_clock(LIS_rc%ts)
call LIS_finishDekadalAlarms(LIS_rc)

call LIS_updateAlarmSetups()

write(LIS_logunit,*) '[INFO]: LIS timestep ',LIS_rc%ts
Expand Down Expand Up @@ -469,7 +469,7 @@ function LIS_endofrun(override_end_time) result(finish)
! !ARGUMENTS:
logical, optional, intent(in) :: override_end_time
logical :: finish

! !DESCRIPTION:
! This function checks to see if the runtime clock has reached the
! specified stop time of the simulation.
Expand Down Expand Up @@ -545,8 +545,8 @@ function LIS_endofTimeWindow() result(finish)
finish = .true.
endif
! Assuming that all nests are in sync
! if(LIS_rc%endtime.eq.1.and.LIS_rc%DAincrMode(1).eq.1) then
! finish = .true.
! if(LIS_rc%endtime.eq.1.and.LIS_rc%DAincrMode(1).eq.1) then
! finish = .true.
! endif

endif
Expand Down Expand Up @@ -670,6 +670,7 @@ subroutine spmd_init_generic(lisvm, init_esmf, liscomm)
!
!EOP
implicit none

type(ESMF_VM) :: lisvm
logical :: init_esmf
integer, optional :: liscomm
Expand Down Expand Up @@ -953,7 +954,7 @@ function LIS_isatAfinerResolution(n,datares) result(finish)
else
finish = .false.
endif

else
write(LIS_logunit,*) '[WARN] : LIS_isatAfinerResolution check ' // &
'[WARN] is NOT supported'
Expand Down Expand Up @@ -1006,7 +1007,7 @@ function LIS_howtoTransform(n,datares) result(finish)
!EOP
character(len=16) :: finish
real :: targetres, dom

if ( LIS_rc%gridDesc(n,1) .eq. 0 ) then
! Compare the larger of dlon and dlat against datares.
if ( LIS_rc%gridDesc(n,9) > LIS_rc%gridDesc(n,10) ) then
Expand All @@ -1017,7 +1018,7 @@ function LIS_howtoTransform(n,datares) result(finish)

dom = max(targetres, datares)

if ( ( abs(targetres - datares) / dom ) <= 0.2 ) then
if ( ( abs(targetres - datares) / dom ) <= 0.2 ) then
finish = 'neighbor'
else
if ( targetres <= datares ) then
Expand All @@ -1036,7 +1037,6 @@ function LIS_howtoTransform(n,datares) result(finish)
endif
end function LIS_howtoTransform


!BOP
!
! !ROUTINE: LIS_getDomainResolutions
Expand Down Expand Up @@ -1079,28 +1079,25 @@ subroutine LIS_getDomainResolutions(n,dx,dy)
dx = LIS_rc%gridDesc(n,8)/100.0
dy = LIS_rc%gridDesc(n,9)/100.0
else

write(LIS_logunit,*) '[ERR] LIS_getDomainResolutions routine ' // &
'[ERR] is NOT supported'
write(LIS_logunit,*) '[ERR] for this map projection.'
call LIS_endrun()

endif
end subroutine LIS_getDomainResolutions


!BOP
!
!
! !ROUTINE: LIS_updateAlarmSetups
! \label{LIS_updateAlarmSetups}
!
! !INTERFACE:
!
! !INTERFACE:
subroutine LIS_updateAlarmSetups()
!
! !DESCRIPTION:
! This subroutine registers alarms after
! !DESCRIPTION:
! This subroutine registers alarms after
! the updated LIS clock timestep has been determined
!
!
!EOP

integer :: i
Expand All @@ -1113,14 +1110,14 @@ subroutine LIS_updateAlarmSetups()
call LIS_registerAlarm("LIS DA output "//trim(fda),&
LIS_rc%ts,&
LIS_rc%daOutInterval(i))

enddo

if(LIS_rc%nperts.gt.0) then
call LIS_registerAlarm("LIS pert restart alarm",&
LIS_rc%ts ,&
if (LIS_rc%nperts.gt.0) then
call LIS_registerAlarm("LIS pert restart alarm", &
LIS_rc%ts, &
LIS_rc%pertrestartInterval)
endif

end subroutine LIS_updateAlarmSetups
end module LIS_coreMod
Loading