GNU WOCSS (gwocss)  2.2.4-pre
GNU version of Winds On Critical Streamline Surfaces (WOCSS)
wocss.f
Go to the documentation of this file.
1 C
2 C********************************************************************
3  PROGRAM wocss
4 C********************************************************************
5 C
6 C WINDS ON CRITICAL STREAMLINE SURFACES (WOCSS) PROGRAM FINDS
7 C TOPOGRAPHICALLY INDUCED WINDS BY MAKING THE ORIGINALLY ANALYZED
8 C WINDS NONDIVERGENT WITHIN FLOW SURFACES THAT ARE DEFINED USING
9 C A CONCEPT ANALAGOUS TO THE CRITICAL STREAMLINE WHEN THE
10 C ATMOSPHERE IS STABLY STRATIFIED. FLOW SURFACES CAN INTERSECT
11 C THETERRAIN RESULTING IN ZERO WINDS IN THESE 'UNDERGROUND CELLS.'
12 C ADJUSTMENT TOWARD NONDIVERGENCE IN BAL5 CAUSES FLOW AROUND THE
13 C OBSTACLES. GEOSIG READS IN WIND SOUNDINGS AND SURFACE DATA.
14 C DIRECT VECTOR ALTERATIONS ARE USED IN SUBROUTINE BAL5. WIND
15 C COMPONENTS AT SPECIFIED POINTS CAN BE HELD CONSTANT OR ADJUSTED
16 C AT A FRACTION OF THE ADJUSTMENTS IN OTHER CELLS IN BAL5.
17 C
18 C THE MODEL HAS BEEN DESCRIBED IN:
19 C LUDWIG, F. L., J. M. LIVINGSTON, AND R. M. ENDLICH,
20 C 1991: 'USE OF MASS CONSERVATION AND DIVIDING
21 C STREAMLINE CONCEPTS FOR EFFICIENT OBJECTIVE ANALYSIS
22 C OF WINDS IN COMPLEX TERRAIN,'
23 C J. APPL. METEOROL., VOL. 30, PP. 1490-1499.
24 C
25 C THIS VERSION HAS REMOVED SEVERAL OPTIONS FOUND IN SOME EARLIER
26 C VERSIONS. ONLY ONE GRID IS USED, NO NESTING. AT LEAST ONE
27 C SOUNDING IS REQUIRED; THE GEOSTROPHIC WIND PROVISION IS NO
28 C LONGER AVAILABLE. THE LOW ALTITUDE GRID POINTS TO BE USED
29 C FOR DEFINING CRITICAL STREAMLINE WINDS ARE NOW INPUT.
30 C
31 C NEW PROVISIONS INCLUDE A PARAMETER INPUT FILE SO THAT
32 C ADJUSTMENT FACTORS, FLOW SURFACE COMPRESSION AND OTHER FACTORS
33 C CAN BE CHANGED WITHOUT RECOMPILING. THE NUMBER OF LABELED
34 C COMMONS HAS ALSO BEEN SUBSTATIALLY REDUCED.
35 C
36 C JANUARY 2002
37 C F. LUDWIG
38 C ENVIRONMENTAL FLUID MECHANICS LAB
39 C DEPT. OF CIVIL ENGINEERING
40 C STANFORD UNIVERSITY
41 C STANFORD, CA 94305-4020
42 C
43 C BASED IN LARGE PART ON EARLIER WORK WITH:
44 C R. ENDLICH, A. BECKER, D. SINTON, K. NITZ,
45 C J. LIVINGSTON, B. MORLEY AND C. BHUMRALKAR
46 C
47 C*********************************************************************
48 C ADJMAX THE FRACTION OF THE USUAL ITERATIVE ADJUSTMENT
49 C TOWARD NONDIVERGENCE THAT IS MADE AT GRID POINTS
50 C NEAR OBSERVATIONS IN SUBROUTINE BAL5.
51 C AVTHK HEIGHT AGL OF TOP SURFACE OVER LOWEST TERRAIN.
52 C CMPRES MAXIMUM 'COMPRESSION' OF SURFACES -- 0 MEANS THAT
53 C LOWER SFCS MUST PARALLEL THOSE ABOVE, 1 MEANS THAT
54 C THE LOW SFC CAN TOUCH THE NEXT LEVEL -- DEFINES
55 C INFLUENCE OF UPPER STABLE LAYERS ON LESS STABLE
56 C LOWER ONES.
57 C DBUG,DBUG2 LOGICAL FLAGS TO TRIGGER PRINTING OF STATEMENTS IN
58 C PROGRAM
59 C D2MIN THE MINIMUM DIDTANCE ALLOWED IN THE INVERSE
60 C WEIGHTING DENOMINATOR.
61 C DPOTMIN THE MINIMUM ALLOWED POTENT TEMP LAPSE RATE
62 C (DEG/M) -- LIMITS INSTABILITY AND HENCE RISE OF
63 C FLOW SFCS.
64 C DS GRID SIZE IN METERS
65 C DSCRS GRID SIZE (KM)
66 C DTWT DISTANCE WEIGHT POWER --WEIGHT=1/(DISTANCE**DTWT)
67 C DZMAX(JT,JZ) MAXIMUM RISE FOR JZTH FLOW SFC AS DETERMINED FROM
68 C T-SONDE JT
69 C GRDHI HEIGHT MSL OF HIGHEST TERRAIN ON GRID.
70 C MDATE DAY OF MONTH
71 C KGRIDX X INDEX OF REFERENCE POINT
72 C KGRIDY Y INDEX OF REFERENCE POINT
73 C LOWIX(JL) X INDICES OF LOWEST PTS
74 C LOWIY(JL) Y INDICES OF LOWEST PTS
75 C NCOL NUMBER OF COLUMNS (X INDEX) IN GRID
76 C NCOLM1 NCOL-1
77 C NEND NUMBER OF HOURS TO CALCULATE BEFORE QUITTING IN A
78 C SEQUENCE OF DATA)
79 C NLVL NUMBER OF VERTICAL FLOW SURFACES
80 C NROW NUMBER OF ROWS (Y INDEX) IN GRID
81 C NROWM1 NROW-1
82 C NSITES MAXIMUM NUMBER OF SITES (INCLUDING UPPER AIR) TO
83 C BE USED.
84 C NSNDHT MAXIMUM NUMBER SOUNDING (WIND OR TEMP) LEVELS TO
85 C BE USED.
86 C NTSITE MAXIMUM NUMBER T-SONDES TO BE USED.
87 C NUMDOP NUMBER OF UPPER WIND SITES
88 C NUMNWS NUMBER OF SURFACE WIND SITES
89 C NUMTMP NUMBER OF TEMEPRATURE SOUNDING SITES
90 C NUMTOT TOTAL NUMBER OF OBSERVING WIND SITES
91 C NWSITE MAXIMUM NUMBER WIND SOUNDINGS TO BE USED.
92 C NXGRD DIMENSION FOR GRIDS IN W-E DIRECTION.
93 C NYGRD DIMENSION FOR GRIDS IN S-N DIRECTION.
94 C NZGRD DIMENSION FOR FLOW SURFACES.
95 C PWR POWER TO WHICH SEPARATION IS RAISED FOR INVERSE
96 C DISTANCE WTS.
97 C RHS(JX,JY,JZ) HEIGHT (M) ABOVE TERRAIN OF JZTH FLOW SFC ABOVE
98 C PT JX,JY
99 C RHSLO(JT,JZ) HEIGHT (M) OF JZTH FLOW SFC ABOVE THE LOWEST
100 C TERRAIN NEAR T-SONDE JT
101 C SFCHT(JX,JY) TERRAIN HEIGHT (M MSL) AT PT JX,JY
102 C SFCLOW TERRAIN HEIGHT (M MSL) OF LOWEST PT IN THE DOMAIN
103 C SIGMA(JZ) FRACTION (OVER LOWEST TERRAIN) OF THE HEIGHT OF
104 C THE TOP SURFACE FOR SFC JZ
105 C SLFAC CONTROLS THE DEGREE TO WHICH THE 1ST GUESS SURFACES
106 C FOLLOW THE TERRAIN -- 0 GIVES FLAT SFCS & 1 GIVES
107 C TERRAIN-FOLLOWING SFCS.
108 C SPDCNV CONVERSION FACTOR -- INPUT UNITS TO M/S
109 C U(JX,JY,JZ) WESTERLY COMPONENT (M/S) AT (JX,JY,JZ)
110 C UCOMP(JOB) OBSERVED WESTERLY COMPONENT (M/S) AT SITE JOB
111 C USIG(JWS,JZ) U COMPONENT AT FLOW SFC JZ ON WIND SOUNDING JWS
112 C UTMAPX UTM EASTING COORDINATE (KM) OF REFERENCE PT
113 C (KGRIDX,KGRIDY).
114 C UTMAPY UTM NORTHING COORDINATE (KM) OF REFERENCE PT
115 C (KGRIDX,KGRIDY).
116 C V(JX,JY,JZ) SOUTHERLY COMPONENT (M/S) AT (JX,JY,JZ)
117 C VCOMP(JOB) OBSERVED SOUTHERLY COMPONENT (M/S) AT SITE JOB
118 C VSIG(JWS,JZ) V COMPONENT AT FLOW SFC JZ ON WIND SOUNDING JWS
119 C W(JX,JY,JZ) UPWARD COMPONENT (M/S) AT (JX,JY,JZ)
120 C XG(JSITE) COORDINATE (GRID UNITS) OF OBSERVATION SITE JSITE.
121 C XORIG UTM EASTING COORDINATE (KM) OF THE GRID ORIGIN.
122 C YG(JSITE) COORDINATE (GRID UNITS) OF OBSERVATION SITE JSITE.
123 C YORIG UTM NORTHING COORDINATE (KM) OF THE GRID ORIGIN.
124 C (NOTE: XORIG,YORIG ARE AT 1,1)
125 C ZRISE DIFFERENCE BETWEEN SFCHI -SFCLOW.
126 C ZZERO ROUGHNESS LENGTH (M) FOR LOG PROFILE ESTIMATES.
127 C
128  include 'NGRIDS.PAR'
129 C
130  include 'ANCHOR.CMM'
131  include 'FLOWER.CMM'
132  include 'LIMITS.CMM'
133  include 'STALOC.CMM'
134 C
135  CHARACTER*1 CHGRID
136  CHARACTER*6 CHDDHR
137  CHARACTER*12 CHFNAM
138  CHARACTER*8 CHMMDDTTTT
139 C
140  INTEGER*4 NREAD,KEY
141 C
142  DATA key /16/
143 C
144  DATA rhslo /narray*0.0/
145 C
146 C!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
147 C MAKE SURE TO SET PATH DEFINITION APPROPRIATE TO YOUR JOB
148 C STRING LENGTH FOR CHPATH IS DEFINED IN INCLUDE FILE, NGRIDS.PAR'
149 C!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
150 C
151  chpath='slcin/'
152 C
153 C GRID SIZE SELECTION OPTION DISABLED BY ASSIGNING A 1 KM MESH SIZE
154 C
155  chmesh='1'
156 C
157 C SET PATH & OPEN INPUT PARAMETER FILE
158 C
159  CALL runrd (nit,kfyl1,kfyl2)
160  nread=0
161 C
162 C ****************DISABLED******************************
163 C OPEN FILES FOR KEEPING TRACK OF WHAT HAPPENED WHEN & TEST OUTPUT.
164 C
165 C OPEN(33,FILE='CHPOUT//'TEST'//CHMESH//'KM',
166 C $ FORM='FORMATTED', STATUS='UNKNOWN')
167 C ****************DISABLED******************************
168 C
169  WRITE (*,*) 'STARTING'
170 C
171 C OPEN FILE 11 (TOPOGRAPHY)
172 C ASSUMED SQUARE GRID, DEFAULT 80 x 80 FOR VTMX CASE
173 C
174  lgrd=nint(10.0*dscrs)
175  IF (lgrd.EQ.10 .OR. lgrd.EQ.20 .OR. lgrd.EQ.50) THEN
176  chgrid=char(nint(48+dscrs))
177  ELSE
178  chgrid='H'
179  END IF
180 C
181  WRITE (*,*)'OPENING '//chpath//'SLC1KM.DAT'
182 C
183  OPEN (11,file=chpath//'SLC1KM.DAT',status='OLD',
184  $ form='FORMATTED')
185 C
186 C READ TERRAIN HEIGHTS FOR ALL GRIDS USING TOPO
187 C
188  CALL topo
189  ds=dscrs*1.0e3
190  ncolm1=ncol-1
191  nrowm1=nrow-1
192 C
193  CLOSE (11)
194 C
195  OPEN(11,file=chpath//'SLCFILES',status='OLD',
196  $ form='FORMATTED')
197 C
198  nread=0
199 C
200 44 READ (11,6003,end=8586) chfnam
201  chmmddtttt=chfnam(1:8)
202 C
203  WRITE (*,*) 'OPENING '//chpath//chfnam
204 C
205  OPEN (12,file=chpath//chfnam,status='OLD',
206  $ form='FORMATTED')
207 C
208 C* READ AND ANALYZE WIND DATA USING WXANAL
209 C* MAKE INITIAL WIND ANALYSIS ON MESH
210 C
211  READ (12,6001,end=8686) ihour,imin,imo,mdate,iyear
212 C
213  nread=nread+1
214  IF (nread .GT. nend) GO TO 8586
215 C
216  khr=ihour
217  kmon=imo
218  kday=mdate
219  lastmo=imo
220  minutz=julmin(iyear,imo,mdate,ihour,imin)
221 C
222 C
223 C GEOSIG READS METEOROLOGICAL INPUTS & CALLS ROUTINES FOR
224 C INTERPOLATION AND DEFINING SURFACE SHAPES.
225 C
226  CALL geosig
227 C
228 C CALL SUBROUTINE TO MAKE WINDS NONDIVERGENT
229 C
230  CALL bal5(nit)
231 C
232 C IF NEEDED, GET PRESSURES AND TEMPERATURES OON FLOW SURFACES.
233 C
234  IF (dothet .OR. dopres .OR. dobri .OR. dobvpd) CALL betpar
235 C
236 C GET PARAMETER VALUES ON FLAT SURFACES BY INTERPOLATIO IN Z.
237 C
238  CALL tstwnd(chmmddtttt)
239 C
240 C IF REQUESTED, CALCULATE BULK RICHARDSON NUMBER AND BRUNT-VAISALA
241 C PERIOD ON PLOTTING SURFACES.
242 C
243  IF (dobri .OR. dobvpd) CALL getrich
244 C
245  chddhr=chmmddtttt(3:8)
246 C
247 C WRITE OUTPUT FILES
248 C
249  CALL putout (chddhr,chfnam,minutz,nread)
250 C
251  GO TO 44
252 C
253 8586 CONTINUE
254 C
255 8686 CONTINUE
256 C
257  IF (nread .GT. nend) GO TO 8786
258 C
259 8786 IF (nread .GT. nend) nread=nend
260  IF (dowvsz) CALL putout (chddhr,chfnam,minutz,-nread)
261  WRITE (*,*) 'FINISHED '
262 C
263 6001 FORMAT (4i2,1x,i4)
264 6003 FORMAT (a12)
265 C
266  stop
267 C
268  END
269 
subroutine geosig
Definition: geosig.f:3
subroutine betpar
Definition: betpar.f:3
subroutine tstwnd(CHMMDDTTTT)
Definition: winterp.f:71
program wocss
Definition: wocss.f:3
subroutine getrich
Definition: richardson.f:3
integer function julmin(KYEAR, IMO, MDATE, IHOUR, IMIN)
Definition: utils.f:171
subroutine runrd(NITER, KFYL1, KFYL2)
Definition: input.f:3
subroutine topo
Definition: topo.f:3
subroutine bal5(NITER)
Definition: bal5.f:3
subroutine putout(CHDDHR, CHFNAM, MINJUL, NCALL)
Definition: output.f:3