Presentation is loading. Please wait.

Presentation is loading. Please wait.

Model Integration with SWAT A publish-subscribe type system June 24, 2013 André Dozier and Olaf David.

Similar presentations


Presentation on theme: "Model Integration with SWAT A publish-subscribe type system June 24, 2013 André Dozier and Olaf David."— Presentation transcript:

1 Model Integration with SWAT A publish-subscribe type system June 24, 2013 André Dozier and Olaf David

2 Detailed Assessment Model – daily and 1-5km resolution SWAT Read Inputs MODFLOW Solver MODFLOW Read Inputs MODFLOW Close RT3D Read Inputs RT3D Solver RT3D Close SWAT HRU calcs SWAT Routing SWAT Output SWAT Close Daily Loop Optimization – yearly (or 2-5 year) and 30-50km resolution WALL Solver WALL Solver Minimize Vulnerability and Cost CGE Solver SWAT Solver IUWM BMPs Few Iterations Ensure Economic Demand = Cons. Use Supply to WALL Demand to SWAT Manually add model detail Pareto optimal curve of management solutions DayCent

3 Linkages Need to add two linking components SWAT Model Other Model

4 Linkages Need to add two linking components SWAT Model OMS Simulation Other Model

5 My OMS Component My Wrapper Linkages Need to add two linking components SWAT Model OMS Simulation Other Model

6 My OMS Component My Wrapper Linkages Need to add two linking components SWAT Model event publish OMS Simulation subscribe SWAT run direction Other Model run component finished inform SWAT

7 My OMS Component My Wrapper Special OMS Component -Event names -Event inputs -Event outputs -Communication via MPI (use blocking sends) Linkages Need to add two linking components OMS Simulation Other Model

8 My OMS Component Normal (or special if desired) OMS component -Inputs -Outputs -Execution subroutine My Wrapper Special OMS Component -Event names -Event inputs -Event outputs -Communication via MPI (use blocking sends) Linkages Need to add two linking components OMS Simulation

9 My OMS Component Normal (or special if desired) OMS component -Inputs -Outputs -Execution subroutine My Wrapper Special OMS Component -Event names -Event inputs -Event outputs -Communication via MPI (use blocking sends) Linkages Need to add two linking components Simulation specifications -location(s) or NULL -Native or managed?

10 “Events” in SWAT SWAT Start Read Inputs Year Loop Month Loop Daily Loop End

11 “Events” in SWAT SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End

12 “Events” in SWAT SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End Array of function pointers

13 “Events” in SWAT SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End mysub othersub Array of function pointers To “subscribe” subroutine mysub() print *,“my sub” end subroutine subroutine othersub() print *,“other sub” end subroutine

14 “Events” in SWAT SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End mysub othersub Array of function pointers To “subscribe” subroutine mysub() print *,“my sub” end subroutine subroutine othersub() print *,“other sub” end subroutine program subscriber() use parm implicit none integer :: event_i interface subroutine mysub() end subroutine end interface interface subroutine othersub() end subroutine end interface event_i = TopOfDailyLoop%subscribe(mysub) event_i = TopOfDailyLoop%subscribe(othersub) call swat_main() end program program subscriber() use parm implicit none integer :: event_i interface subroutine mysub() end subroutine end interface interface subroutine othersub() end subroutine end interface event_i = TopOfDailyLoop%subscribe(mysub) event_i = TopOfDailyLoop%subscribe(othersub) call swat_main() end program

15 “Events” in SWAT SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End mysub othersub Array of function pointers subroutine mysub() print *,“my sub” end subroutine subroutine othersub() print *,“other sub” end subroutine

16 Special OMS-SWAT Component SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End call EndOfYear%fire() End mpi_input mpi_output subroutine mpi_input() use parm ! Variable initialization ! MPI inputs call MPI_RECEIVE(buf, …) ! Variable dereferencing end subroutine subroutine mpi_output() use parm ! Variable initialization ! MPI outputs call MPI_SEND(buf, …) ! MPI wait until finished call MPI_RECEIVE(buf, …) ! Variable dereferencing end subroutine

17 Special OMS-SWAT Component SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End call EndOfYear%fire() End mpi_input mpi_output Waits until inputs are available from another OMS component Sends output from SWAT to OMS with the option of waiting until the component has finished running

18 My OMS Component My Wrapper Linkages Need to add two linking components SWAT Model event publish OMS Simulation subscribe SWAT run direction Other Model run component finished inform SWAT

19 One Possible Orientation SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End call EndOfYear%fire() End mpi_input mpi_output OMS Simulation OMS Component(s)

20 Another Possible Orientation SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End call EndOfYear%fire() End mpi_output mpi_input OMS Simulation OMS Component(s) Allows parallel implementation

21 Yet Another Possible Orientation SWAT Start Read Inputs Year Loop Month Loop Daily Loop call TopOfDailyLoop%fire() End call EndOfYear%fire() End mpi_output mpi_input OMS Simulation OMS Component(s) mpi_input mpi_output

22 Detailed Assessment Model – daily and 1-5km resolution SWAT Read Inputs MODFLOW Solver MODFLOW Read Inputs MODFLOW Close RT3D Read Inputs RT3D Solver RT3D Close SWAT HRU calcs SWAT Routing SWAT Output SWAT Close Daily Loop Optimization – yearly (or 2-5 year) and 30-50km resolution WALL Solver WALL Solver Minimize Vulnerability and Cost CGE Solver SWAT Solver IUWM BMPs Few Iterations Ensure Economic Demand = Cons. Use Supply to WALL Demand to SWAT Manually add model detail Pareto optimal curve of management solutions DayCent

23 First test case


Download ppt "Model Integration with SWAT A publish-subscribe type system June 24, 2013 André Dozier and Olaf David."

Similar presentations


Ads by Google