[docs]defderive_primitives(myd,varnames):""" derive desired primitive variables from conserved state """# get the variables we needh=myd.get_var("height")xmom=myd.get_var("x-momentum")ymom=myd.get_var("y-momentum")derived_vars=[]u=xmom/hv=ymom/hg=myd.get_aux("g")ifisinstance(varnames,str):wanted=[varnames]else:wanted=list(varnames)forvarinwanted:ifvar=="velocity":derived_vars.append(u)derived_vars.append(v)elifvar=="primitive":derived_vars.append(h)derived_vars.append(u)derived_vars.append(v)elifvar=="soundspeed":derived_vars.append(np.sqrt(g*h))iflen(derived_vars)>1:returnderived_varsreturnderived_vars[0]