Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_setup_structures / da_lcl.inc
blobab91e0a37000f99d38e40b3f487c563162b753f7
1 subroutine da_lcl(p0, z0, t0, q0, plcl, zlcl, tlcl, qlcl)
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
7    implicit none
9    real, intent(in)   :: p0, z0, t0, q0
10    real, intent(out)  :: plcl, zlcl, tlcl, qlcl
12    real   :: dp, qs, eps
14    if (trace_use) call da_trace_entry("da_lcl")
16    dp=5.0
17    plcl=300.0
19    do
20       tlcl=t0*((plcl/p0)**0.286)
22       call da_qfrmrh(plcl, tlcl, 100.0, qs)
24       eps=qs-q0
26       if (eps >= 0.0) then
27          zlcl=(1004.0/gravity)*(t0-tlcl)+z0
28          qlcl=qs
29          if (trace_use) call da_trace_exit("da_lcl")
30          return
31       else
32          plcl=plcl+dp
34          if (plcl >= p0) then
35             zlcl=z0
36             qlcl=q0
37             plcl=p0
38             if (trace_use) call da_trace_exit("da_lcl")
39             return
40         end if
41       end if
42    end do
44    if (trace_use) call da_trace_exit("da_lcl")
46 end subroutine da_lcl