35 subroutine create(self,conf)
39 class(fv3jedi_lm_physics_type),
target,
intent(inout) :: self
40 type(fv3jedi_lm_conf),
intent(in) :: conf
42 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%create(
conf)
43 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%create(
conf)
49 subroutine init_nl(self,conf,pert,traj)
53 class(fv3jedi_lm_physics_type),
intent(inout) :: self
54 type(fv3jedi_lm_conf),
intent(in) :: conf
55 type(fv3jedi_lm_pert),
intent(inout) :: pert
56 type(fv3jedi_lm_traj),
intent(in) :: traj
58 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%init_nl(pert,traj)
59 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%init_nl(pert,traj)
65 subroutine init_tl(self,conf,pert,traj)
69 class(fv3jedi_lm_physics_type),
intent(inout) :: self
70 type(fv3jedi_lm_conf),
intent(in) :: conf
71 type(fv3jedi_lm_pert),
intent(inout) :: pert
72 type(fv3jedi_lm_traj),
intent(in) :: traj
74 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%init_tl(pert,traj)
75 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%init_tl(pert,traj)
81 subroutine init_ad(self,conf,pert,traj)
85 class(fv3jedi_lm_physics_type),
intent(inout) :: self
86 type(fv3jedi_lm_conf),
intent(in) :: conf
87 type(fv3jedi_lm_pert),
intent(inout) :: pert
88 type(fv3jedi_lm_traj),
intent(in) :: traj
90 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%init_ad(pert,traj)
91 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%init_ad(pert,traj)
97 subroutine step_nl(self,conf,traj)
101 class(fv3jedi_lm_physics_type),
intent(inout),
target :: self
102 type(fv3jedi_lm_traj),
intent(inout) :: traj
103 type(fv3jedi_lm_conf),
intent(in) :: conf
105 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%step_nl(
conf,traj)
106 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%step_nl(
conf,traj)
112 subroutine step_tl(self,conf,traj,pert)
116 class(fv3jedi_lm_physics_type),
target,
intent(inout) :: self
117 type(fv3jedi_lm_conf),
intent(in) :: conf
118 type(fv3jedi_lm_traj),
intent(in) :: traj
119 type(fv3jedi_lm_pert),
intent(inout) :: pert
121 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%step_tl(
conf,traj,pert)
122 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%step_tl(
conf,traj,pert)
128 subroutine step_ad(self,conf,traj,pert)
132 class(fv3jedi_lm_physics_type),
target,
intent(inout) :: self
133 type(fv3jedi_lm_conf),
intent(in) :: conf
134 type(fv3jedi_lm_traj),
intent(in) :: traj
135 type(fv3jedi_lm_pert),
intent(inout) :: pert
137 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%step_ad(
conf,traj,pert)
138 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%step_ad(
conf,traj,pert)
144 subroutine delete(self,conf)
147 class(fv3jedi_lm_physics_type),
intent(inout) :: self
148 type(fv3jedi_lm_conf),
intent(in) :: conf
150 if (
conf%do_phy_mst.ne.0)
call self%fv3jedi_lm_moist%delete(
conf)
151 if (
conf%do_phy_trb.ne.0)
call self%fv3jedi_lm_turbulence%delete(
conf)
subroutine init_tl(self, conf, pert, traj)
subroutine init_ad(self, conf, pert, traj)
subroutine step_tl(self, conf, traj, pert)
subroutine init_nl(self, conf, pert, traj)
subroutine, public delete(self)
Physics driver for fv3-jedi linearized model Just calls its children in turn if turned on...
subroutine step_nl(self, conf, traj)
subroutine step_ad(self, conf, traj, pert)
subroutine, public create(self, geom, vars)
Constants for the FV3 model.