GH2TV.inc

References to this file elsewhere.
1       SUBROUTINE GH2TV(GZ, TV,    PS,    TOPO, 
2      1					A, B, IMAX, JMAX, LMAX,
3      W					PK,PBETA,DPHI,ALPHA)
4 C----------------------------------------------------------------------         
5 C     INPUT   GZ  (I,J,L) : GEOPOTENTIAL HEIGHT(M)                              
6 C             PS  (I,J)   : SURFACE PRESSURE(HPA)                               
7 C             TOPO(I,J)   : SURFACE GEOPOTENTIAL(GPM)
8 C             A(L), B(L)  : A+B*PS DEFINITION OF ETA-HALF LEVEL                 
9 C     OUTPUT  TV  (I,J,L) : VIRTUAL TEMPERATURE(K)                              
10 C----------------------------------------------------------------------         
11       DIMENSION Z(IMAX*JMAX,LMAX), TV(IMAX*JMAX,LMAX), PS(IMAX*JMAX),           
12      1     A(LMAX), B(LMAX),TOPO(IMAX*JMAX),GZ(IMAX*JMAX,LMAX)
13       DIMENSION    PK(IMAX*JMAX,LMAX),PBETA(IMAX*JMAX,LMAX),                     
14      1          ALPHA(IMAX*JMAX,LMAX), DPHI(IMAX*JMAX,LMAX)                      
15 	  DIMENSION VMAX(LMAX),VMIN(LMAX)
16 	  DATA GRAV /9.80665/
17 	  DATA GASR /287.05/
18            
19 		Z=GZ*GRAV
20 C......... PK is pressure at half level
21         DO L = 1, LMAX
22         DO I = 1, IMAX*JMAX
23           PK(I,L) = A(L)+B(L)*PS(I)
24 		END DO
25 		END DO
26 C...... DPHI is DEL PHI
27 		WRITE(*,*)'MAX PHI(1)=',MAXVAL(Z(:,1)),' MAX TOPO=',MAXVAL(TOPO)
28 		DO I=1, IMAX*JMAX
29 			DPHI(I,1)=Z(I,1)-TOPO(I)
30 		END DO
31 		DO L=2,LMAX
32 		DO I=1, IMAX*JMAX
33 			DPHI(I,L)=Z(I,L)-Z(I,L-1)
34 		END DO
35 		END DO
36 C
37 C		VMAX=MAXVAL(DPHI,DIM=1)
38 C		VMIN=MINVAL(DPHI,DIM=1)
39 C		WRITE(*,*)' LEVEL    MAX         MIN   OF DPHI'
40 C		DO L=1,LMAX
41 C			WRITE(*,'(I3,2F13.4)')L,VMAX(L),VMIN(L)
42 C		END DO
43 C		WRITE(*,*)'MAX(1)=',VMAX(1)
44 C....... PBETA is ln(Pk-1/2)-ln(Pk+1/2)
45         DO L = 1, LMAX-1                                                    
46         DO I = 1, IMAX*JMAX                                                 
47 			PBETA(I,L)=LOG(PK(I,L)/PK(I,L+1))
48 		END DO
49 		END DO
50 C....... ALPHA is ALPHA(K)
51         DO L = 1, LMAX-1                                                    
52         DO I = 1, IMAX*JMAX                                                 
53 			ALPHA(I,L)=1-PK(I,L+1)*PBETA(I,L)/
54      1				  (PK(I,L)-PK(I,L+1))
55 		END DO
56 		END DO
57         DO I = 1, IMAX*JMAX                                                 
58 			ALPHA(I,LMAX)=LOG(2.0)
59 		END DO
60 C
61 C		VMAX=MAXVAL(ALPHA,DIM=1)
62 C		VMIN=MINVAL(ALPHA,DIM=1)
63 C		WRITE(*,*)' LEVEL    MAX         MIN   OF ALPHA'
64 C		DO L=1,LMAX
65 C			WRITE(*,'(I3,2F13.8)')L,VMAX(L),VMIN(L)
66 C		END DO
67 C........ CACULATE Tv
68 		DO I = 1, IMAX*JMAX
69 			TV(I,1)=DPHI(I,1)/(ALPHA(I,1)*GASR)
70 		END DO
71 		DO L = 2, LMAX
72 		DO I = 1, IMAX*JMAX
73 		  TV(I,L)=(DPHI(I,L)+GASR*TV(I,L-1)*(ALPHA(I,L-1)-PBETA(I,L-1)))/
74      1			  (ALPHA(I,L)*GASR)
75 		END DO
76 		END DO
77 C
78       RETURN                                                                    
79       END SUBROUTINE GH2TV