testWRFRead.F90
References to this file elsewhere.
1 program testread_john
2 use wrf_data
3 implicit none
4 #include "wrf_status_codes.h"
5 #include <netcdf.inc>
6 character (80) FileName
7 integer Comm
8 character (80) SysDepInfo
9 integer :: DataHandle
10 integer Status
11 integer NCID
12 real data(200)
13 integer idata(200)
14 real*8 ddata(200)
15 logical ldata(200)
16 character (80) cdata
17 integer OutCount
18 integer i,j,k
19
20 integer, parameter :: pad = 3
21 integer, parameter :: jds=1 , jde=6 , &
22 ids=1 , ide=9 , &
23 kds=1 , kde=5
24 integer, parameter :: jms=jds-pad , jme=jde+pad , &
25 ims=ids-pad , ime=ide+pad , &
26 kms=kds , kme=kde
27 integer, parameter :: jps=jds , jpe=jde , &
28 ips=ids , ipe=ide , &
29 kps=kds , kpe=kde
30
31 real u( ims:ime , kms:kme , jms:jme )
32 real v( ims:ime , kms:kme , jms:jme )
33 real rho( ims:ime , kms:kme , jms:jme )
34 real u2( ims:ime , jms:jme )
35 real u1( ims:ime )
36
37 integer int( ims:ime , kms:kme , jms:jme )
38 real*8 r8 ( ims:ime , kms:kme , jms:jme )
39
40 integer Dom
41 character*3 MemOrd
42 integer , Dimension(3) :: DomS,DomE,MemS,MemE,PatS,PatE
43 integer , Dimension(2) :: Dom2S,Dom2E,Mem2S,Mem2E,Pat2S,Pat2E
44 integer Dom1S,Dom1E,Mem1S,Mem1E,Pat1S,Pat1E
45 character (19) Time, DateStr
46 character (31) VarName
47 character (19) Date
48
49 print *, 'Testing wrf read'
50 Date = '2000-09-18_16:42:01'
51 call ext_init(Status)
52 print *,'After call ext_init, Status =',Status
53 FileName = 'foo.nc'
54 Comm = 1
55 SysDepInfo = 'sys info'
56 call ext_open_for_read( FileName, Comm, SysDepInfo, DataHandle, Status)
57 print *, 'Status = ',Status,DataHandle
58
59 MemOrd = "XZY"
60
61 DomS(1) = ids
62 DomE(1) = ide
63 DomS(2) = kds
64 DomE(2) = kde
65 DomS(3) = jds
66 DomE(3) = jde
67
68 PatS(1) = ips
69 PatE(1) = ipe
70 PatS(2) = kps
71 PatE(2) = kpe
72 PatS(3) = jps
73 PatE(3) = jpe
74
75 MemS(1) = ims
76 MemE(1) = ime
77 MemS(2) = kms
78 MemE(2) = kme
79 MemS(3) = jms
80 MemE(3) = jme
81
82 Dom2S(1) = ids
83 Dom2S(2) = jds
84 Dom2E(1) = ide
85 Dom2E(2) = jde
86 Mem2S(1) = ims
87 Mem2S(2) = jms
88 Mem2E(1) = ime
89 Mem2E(2) = jme
90 Pat2S(1) = ips
91 Pat2S(2) = jps
92 Pat2E(1) = ipe
93 Pat2E(2) = jpe
94
95 Dom1S = ids
96 Dom1E = ide
97 Mem1S = ims
98 Mem1E = ime
99 Pat1S = ips
100 Pat1E = ipe
101
102 call ext_get_next_time(DataHandle, Time, Status)
103 print *, Time, Status
104
105 call ext_read_field(DataHandle,Time,'u',u,WRF_REAL,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
106 print *,'ext_read_field Status = ',Status, ' u(2,3,4) ', u(2,3,4)
107 call ext_read_field(DataHandle,Time,'v',v,WRF_REAL,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
108 print *,'ext_read_field Status = ',Status, ' v(4,3,2) ', v(4,3,2)
109 call ext_read_field(DataHandle,Time,'rho',rho,WRF_REAL,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
110 print *,'ext_read_field Status = ',Status, ' rho(3,4,5) ' , rho(3,4,5)
111 call ext_read_field(DataHandle,Date,'u2',u2,WRF_REAL,Comm,Dom,'XY',Dom2S,Dom2E,Mem2S,Mem2E,Pat2S,Pat2E,Status)
112 print *,'ext_read_field Status = ',Status, ' u2(6,5) ', u2(6,5)
113 call ext_read_field(DataHandle,Date,'ud2',u,WRF_REAL,Comm,Dom,"XzY",DomS,DomE,MemS,MemE,PatS,PatE,Status)
114 print *,'ext_read_field Status = ',Status, ' u(2,3,4) ', u(2,3,4)
115 call ext_read_field(DataHandle,Date,'u1',u1,WRF_REAL,Comm,Dom,'Z',Dom1S,Dom1E,Mem1S,Mem1E,Pat1S,Pat1E,Status)
116 print *,'ext_read_field Status = ',Status, ' u1(9) ', u1(9)
117
118 call ext_read_field(DataHandle,Time,'int',int,WRF_INTEGER,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
119 print *,'ext_read_field Status = ',Status, ' int(8,5,6) ', int(8,5,6)
120 call ext_read_field(DataHandle,Time,'double',r8,WRF_DOUBLE,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
121 print *,'ext_read_field Status = ',Status, ' r8(7,4,5) ', r8(7,4,5)
122
123 call ext_get_next_time(DataHandle, Time, Status)
124 print *, Time, Status
125
126 call ext_read_field(DataHandle,Time,'u',u,WRF_REAL,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
127 print *,'> ext_read_field Status = ',Status, ' u(3,3,3) ' ,u(3,3,3)
128 call ext_read_field(DataHandle,Time,'v',v,WRF_REAL,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
129 print *,'> ext_read_field Status = ',Status, ' v(4,4,4) ' ,v(4,4,4)
130 call ext_read_field(DataHandle,Time,'rho',rho,WRF_REAL,Comm,Dom,MemOrd,DomS,DomE,MemS,MemE,PatS,PatE,Status)
131 print *,'> ext_read_field Status = ',Status, ' rho(3,4,5) ' ,rho(3,4,5)
132
133 call ext_close( DataHandle, Status)
134 print *, 'After ext_close, Status = ',Status
135 call ext_exit(Status)
136 print *,'End of test program',Status
137 stop
138 end program testread_john