SUBROUTINE SCHMIDT(G,U,TLC,TLM) C INPUT: C G IN PA/K, SLOPE OF MIXING LINE, C COMPUTED OUTSIDE OF THIS SUBROUTINE FROM: C G=EI*CP*R1*P/(Q*(1.-ETA)*R0) C WITH DATA R1/461.5/,R0/287.04/,CP/1004./ C EI = EMISSION INDEX OF WATER VAPOR, E.G. 1.23 FOR KEROSENE C Q = COMBUSTION HEAT, E.G. Q = 43.2E6 FOR KEROSENE C ETA= OVERALL EFFICIENCY, E.G. 0.3 FOR A SUBSONIC JET AIRCRAFT C P = AMBIENT PRESSURE IN PA C U (NONDIMENSIONAL): C RELATIVE HUMIDITY WITH RESPECT TO LIQUID SATURATION C U BETWEEN 0 AND 1, C OUTPUT: C TLC: THRESHOLD TEMPERATURE FOR GIVEN U, IN K C TLM: THRESHOLD TEMPERATURE FOR U=1., IN K C C SATURATION PRESSURE FROM SONNTAG, TT IN K, PSAT IN PA C METEOROL. Z., 3 (1994) 51-66. C PROGRAMMED BY: C ULRICH SCHUMANN; DLR, INSTITUT FÜR PHYSIK DER ATMOSPHÄRE C OBERPFAFFENHOFEN, POSTFACH 1116, 82230 WESSLING, GERMANY C REFERENCE: U.SCHUMANN, C ON CONDITIONS FOR CONTRAIL FORMATION FROM AIRCRAFT EXHAUSTS. C METEOROL. Z., 5 (1996) 4-23. C VERSION OF FEBRUARY 7, 2000. PSAT(TT)=100.*EXP(-6096.9385/TT+16.635794-2.711193E-2*TT 1 +1.673952E-5*TT*TT+2.433502*ALOG(TT)) DPSAT(TT)=(PSAT(TT+1.)-PSAT(TT-1.))/2. DDPSAT(TT)=PSAT(TT+1.)+PSAT(TT-1.)-2.*PSAT(TT) PRINT*,'SCHMIDT:G,U=',G,U IF(U.GT.1.) THEN PRINT *,'SCHMIDT ON INPUT:U > 1, U=',U STOP END IF IF(U.LT.0.) THEN PRINT *,'SCHMIDT ON INPUT:U < 0, U=',U STOP END IF C COMPUTATION OF TLM BY APPROXIMATION ACCORDING TO SCHUMANN (1996) TLM = 273.15-46.46+9.43*ALOG(G-0.053)+0.720*(ALOG(G-0.053))**2 DO ITER =1,10 F=DPSAT(TLM)-G DF=DDPSAT(TLM) DX=F/DF TLM=TLM-DX IF(ABS(DX).LT.1.E-3) GOTO 110 END DO PRINT *,' ITER NOT LARGE ENOUGH FOR TLM, TLM,DX=',TLM,DX 110 CONTINUE C COMPUTATION OF TLC BY NEWTON ITERATION IF(U.LT.1.E-6) THEN TLC=TLM-PSAT(TLM)/G ELSE TLC=TLM IF(U.LT.0.99999) THEN EM=PSAT(TLM) T0=TLM-EM/G E0=PSAT(T0) C=1.-SQRT(1.+4.*U*E0/((1.-U)*EM)) TLC=TLM+(1.-U)*(EM*(TLM-T0)/(2.*U*E0))*C DO ITER = 1,10 DELT=TLM-TLC F=PSAT(TLM)-G*DELT-U*PSAT(TLC) DF=G-U*DPSAT(TLC) DX=F/DF C PRINT*,'DX',DX TLC=TLC-DX IF(ABS(DX).LT.1.E-3) GOTO 210 END DO PRINT *,' ITER NOT LARGE ENOUGH FOR TLC, TLC,DX=',TLC,DX STOP 210 CONTINUE END IF END IF RETURN END