SUBROUTINE CALLCL(P1D,T1D,Q1D,PLCL,ZLCL) !$$$ SUBPROGRAM DOCUMENTATION BLOCK ! . . . ! SUBPROGRAM: CALLCL COMPUTES LCL HEIGHTS AND PRESSURE ! PRGRMMR: TREADON ORG: W/NP2 DATE: 93-03-15 ! ! ABSTRACT: ! THIS ROUTINE COMPUTES THE LIFTING CONDENSATION LEVEL ! PRESSURE AND HEIGHT IN EACH COLUMN AT MASS POINTS. ! THE HEIGHT IS ABOVE GROUND LEVEL. THE EQUATION USED ! TO FIND THE LCL PRESSURE IS FROM BOLTAN (1980,MWR) ! AND IS THE SAME AS THAT USED IN SUBROUTINE CALCAPE. ! ! THIS ROUTINE IS A TEST VERSION. STILL TO BE RESOLVED ! IS THE "BEST" PARCEL TO LIFT. ! . ! ! PROGRAM HISTORY LOG: ! 93-03-15 RUSS TREADON ! 98-06-16 T BLACK - CONVERSION FROM 1-D TO 2-D ! 00-01-04 JIM TUCCILLO - MPI VERSION ! 02-04-24 MIKE BALDWIN - WRF VERSION ! ! USAGE: CALL CALLCL(P1D,T1D,Q1D,PLCL,ZLCL) ! INPUT ARGUMENT LIST: ! P1D - ARRAY OF PARCEL PRESSURES (PA) ! T1D - ARRAY OF PARCEL TEMPERATURES (K) ! Q1D - ARRAY OF PARCEL SPECIFIC HUMIDITIES (KG/KG) ! ! OUTPUT ARGUMENT LIST: ! PLCL - PARCEL PRESSURE AT LCL (PA) ! ZLCL - PARCEL AGL HEIGHT AT LCL (M) ! ! OUTPUT FILES: ! NONE ! ! SUBPROGRAMS CALLED: ! UTILITIES: ! NONE ! LIBRARY: ! COMMON - LOOPS ! OPTIONS ! ! ATTRIBUTES: ! LANGUAGE: FORTRAN 90 ! MACHINE : CRAY C-90 !$$$ ! ! use vrbls3d, only: alpint, zint use vrbls2d, only: fis use masks, only: lmh use params_mod, only: eps, oneps, d01, h1m12, gi, d00 use ctlblk_mod, only: jsta, jend, spval, jsta_m, jend_m, im !- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - implicit none ! real,PARAMETER :: D35=3.5, D4805=4.805, H2840=2840. real,PARAMETER :: H55=55., D2845=0.2845, D28=0.28 ! ! DECLARE VARIABLES. ! REAL,dimension(IM,jsta:jend), intent(in) :: P1D,T1D,Q1D REAL,dimension(IM,jsta:jend), intent(inout) :: PLCL,ZLCL REAL TLCL(IM,jsta:jend) integer I,J,L,LLMH real DLPLCL,ZSFC,DZ,DALP,ALPLCL,RMX,EVP,ARG,RKAPA ! !********************************************************************** ! START CALLCL HERE. ! ! LOAD OUTPUT ARRAYS WITH SPECIAL VALUE. ! !$omp parallel do private(i,j) DO J=JSTA,JEND DO I=1,IM PLCL(I,J) = SPVAL TLCL(I,J) = SPVAL ZLCL(I,J) = SPVAL ENDDO ENDDO ! ! COMPUTE PRESSURE, TEMPERATURE AND AGL HEIGHT AT LCL. ! DO 30 J=JSTA_M,JEND_M DO 30 I=2,IM-1 ! DO 30 I=1,IM EVP = P1D(I,J)*Q1D(I,J)/(EPS+ONEPS*Q1D(I,J)) RMX = EPS*EVP/(P1D(I,J)-EVP) RKAPA = 1.0 / (D2845*(1.0-D28*RMX)) ARG = MAX(H1M12,EVP*D01) TLCL(I,J) = H55 + H2840 / (D35*LOG(T1D(I,J))-LOG(ARG)-D4805) PLCL(I,J) = P1D(I,J)*(TLCL(I,J)/T1D(I,J))**RKAPA ALPLCL = LOG(PLCL(I,J)) LLMH = NINT(LMH(I,J)) ZSFC = FIS(I,J)*GI ! DO 20 L=LLMH,1,-1 IF(ALPINT(I,J,L) < ALPLCL)THEN DLPLCL = ALPLCL - ALPINT(I,J,L+1) DALP = ALPINT(I,J,L) - ALPINT(I,J,L+1) DZ = ZINT(I,J,L) - ZINT(I,J,L+1) ZLCL(I,J) = max(D00, ZINT(I,J,L+1) + DZ*DLPLCL/DALP - ZSFC) GOTO 30 ENDIF 20 CONTINUE 30 CONTINUE ! ! END OF ROUTINE. ! RETURN END