combination_graph<-function(graph_fcst, graph_hcst, graph_obs, append.parentnodename){

F<-!is.null(graph_fcst)
H<-!is.null(graph_hcst)
O<-!is.null(graph_obs)

if(F & H & O) {
    graph<-my_union_graph(graph_fcst$graph,graph_hcst$graph,graph_obs$graph)
    parentnodename<-list(graph_fcst$parentnodename,graph_hcst$parentnodename,graph_obs$parentnodename)
    
}else if(F & H){
    graph<-my_union_graph(graph_fcst$graph, graph_hcst$graph)
    parentnodename<-list(graph_fcst$parentnodename,graph_hcst$parentnodename)
}else if(F & O){
    graph<-my_union_graph(graph_fcst$graph, graph_obs$graph)
    parentnodename<-list(graph_fcst$parentnodename,graph_obs$parentnodename)
}else if(H & O){
    graph<-my_union_graph(graph_hcst$graph, graph_obs$graph)
    parentnodename<-list(graph_hcst$parentnodename,graph_obs$parentnodename)
}else if (F){
    graph<-graph_fcst$graph
    parentnodename<-list(graph_fcst$parentnodename)
}else if(H){
    graph<-graph_fcst$graph
    parentnodename<-list(graph_hcst$parentnodename)
}else if(O){
    graph<-graph_obs$graph
    parentnodename<-list(graph_obs$parentnodename)
}

append<- parentnodename
append[[length(append)+length(append.parentnodename)]]<-append.parentnodename


graph <- metaclip.graph.Command(graph, "Loading", "2.0.0", "/modules/Loading/Loading.R", arg.list=list("Recipe"=recipe_path),
append)


return(list("graph"=graph, "parentnodename"=parentnodename))

}