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