480 likes | 490 Vues
Explore the impact of Earth's rotation on sea breeze circulation through an analytic model and simulation. Investigate the behavior of coastal winds at different latitudes. Understand the influence of heating and cooling functions on circulation patterns. Analyze the role of friction and diffusion in circulation timing. Discover how a linearized numerical model can provide insights into circulations at different times of the day.
E N D
The linear sea-breeze circulation and effect of Earth’s rotation(and Experiment #1) ATM 419/563 Spring 2019 Fovell Reference: Rotunno (1983, J. Atmos. Sci.) http://www.atmos.albany.edu/facstaff/rfovell/NWP/
Rotunno (1983) • Quasi-2D analyticlinear model • Written in terms of streamfunction y • Specified heating/cooling function over land • Equinox conditions • Cross-shore flow u, along-shore v • Two crucial frequencies • Heating = 2/day (period 24h) • Coriolis f = 2sin (inertial period 17h @ 45˚N) • One special latitude… where f = (30˚N)
Heating function Q Heating/cooling over land, none over sea. Rotunno’s analytic model lacks boundary layer mixing and diffusion so horizontal, vertical spreading “built into” function
Circulation C Integrate CCW as shown Take w ~ 0; utop ~ 0 Integrate from ±infinity, from sfc to top of atmosphere
Rotunno’s analytic solution Generic form Here, B = 0, A > 0, so C = (f2 – w2) controls behavior Behavior = amplitude and timing of circulation max and magnitude and timing of wind at coastline
Rotunno’s analytic solution If f >w (poleward of 30˚) equation is elliptic • sea-breeze circulation spatially confined • circulation in phase with heating • circulation, onshore flow strongest at noon • circulation amplitude decreases poleward If f <w (equatorward of 30˚) equation is hyperbolic • sea-breeze circulation is spatially unbounded • circulation, heating out of phase • f = 0 onshore flow strongest at sunset • f = 0 circulation strongest at midnight
Rotunno’s analytic solution If f =w (30˚N) equation is singular • some friction or diffusion is needed • circulation max at sunset • onshore flow strongest at noon
f >w (poleward of 30˚) at noon sea land streamfunction u w Note onshore flow strongest at coastline (x = 0); this is day’s max coast
f <w (equatorward of 30˚) y at three times sunrise (land breeze) Note circulation max at noon noon (reverse sign for midnight) sunset (sea breeze) Note coastline onshore flow max at sunset
Max |C| noon & midnight Paradox? • Why is onshore max wind at sunset but circulation max at midnight/noon? • While wind speed at coast strongest at sunset/sunrise, the wind integrated along surface larger at midnight/noon
Effect of “linear friction” Time of circulation maximum midnight sunset noon friction coefficient As friction increases, tropical circulation max becomes earlier, poleward circulation max becomes later
Solution strategy • Model starts at sunrise (6 am) with no flow • “cold start” = unrealistic • Integrate for 1 day (too short – why?) • Model is linearized • Small amount of diffusion applied (acts somewhat like friction) • Rotunno’s diurnal heating function used • Heating max at noon, zero at sunset • Cooling at night, absolute max at midnight
30˚N linear case (5 m2/s diffusion) 400 km x 3 km subdomain depicted 3 km sea land Shaded: vertical velocity; contoured: cross-shore velocity
30˚N linear case Circulation max @ sunset (as expected) Note non-zero C @ 24h… should run several days to spin-up x2000 6AM NOON 6PM MIDNIGHT 6AM
30˚N linear case sunset Onshore flow max ~ 4pm (sunset expected) Note non-calm wind @ 24h… should run several days to spin-up (m/s) 6AM NOON 6PM MIDNIGHT 6AM
Two important points • Numerical models require “spin-up” time • Numerical diffusion is nearly always unavoidable and can influence the results • Here, numerical diffusion is intentionally applied, via diffusion terms added to the equations like • In models like WRF, the scheme used to solve the equations (Runge-Kutta 3rd order) has implicit diffusion
Cross-shore flow and vertical motion at midnight(on 1st day)
Cross-shore near-surface wind at coastline (linear model, one day)
Circulation vs. time • Circ magnitude decreases w/ latitude (expected) • 30N circ max at sunset (expected) • Poleward circ max later than expected (noon) • Equator circ max earlier than expected (midnight) • Consistent w/ existence of some friction? midnight Eq 30N x2000 60N 90N sunset
Recall: linear friction effect Time of circulation maximum midnight sunset noon friction coefficient As friction increases, tropical circulation max shifts earlier, poleward circulation max becomes later
midnight t(h after sunrise) sunset noon 60˚ 30˚ x (across-coast) Hovmoller diagrams >30˚ behavior is elliptic (closed, confined) <30˚ behavior is hyperbolic (spreads unbounded) =30˚ behavior is transitional =0˚ note no land breeze forms 0˚
Something is missing in the linearized model. What is it? Next: simulate the 2D sea-breeze using a nonlinear model (WRF)
Running WRF on Snow:2D sea-breeze test caseand Experiment #1
2D WRF idealized simulation • WRF-ARW (Advanced Research WRF) v.3.7.1 (customized) • Domain 202 x 3 x 35 points (x, y, z) • Horizontal resolution 2000 m • Vertical levels are as specified in namelist.input • Simulation starts 9/21/06Z, runs 24 h • Latitude (specified in namelist.input) is 30˚N • Longitude is 0˚ • 06Z is 6 AM local (about sunrise) • Left ~1/3 of domain is sea, rest is land • Differences: sounding moisture removed, surface moisture fluxes forced to be zero, sea-surface and soil temperatures changed, diffusion altered, etc.. • (We’re using a customized version of the 2D sea-breeze test case, so you need to link to my code)
Setting up the environment $ lab $ mkdir SB2D $ cd SB2D $ cp $LAB/SB2D/SETUP.tar . $ tar –xvf SETUP.tar $ make_all_links.csh [This creates links to files WRF needs] [Links lead to a customized version of WRF, specifically for 2D idealized sea-breeze simulations] This extracts 7 files: make_all_links.csh namelist.input input_sounding control_file hov.gs, sb_plot4.gs sb_plotuw.gs
Checking on new links $ ls -al wrf.exe lrwxrwxrwx 1 atm419 atm419lab 47 Jan 18 12:39 wrf.exe -> /network/rit/lab/atm419lab/SOFTWARE/WRFV371_ATM419_SB2/main/wrf.exe* $ ls -al ideal.exe lrwxrwxrwx 1 atm419 atm419lab 49 Jan 18 12:44 ideal.exe -> /network/rit/lab/atm419lab/SOFTWARE/WRFV371_ATM419_SB2/main/ideal.exe Many of our experiments will utilize make_all_links and control_file files but these will often be customized for specific tasks and not transferrable among experiments...
Using srun $ hostname [by default run on headnode] headnode.rit.albany.edu $ srun -p snow hostname [runs on Snow cluster] snow-30.rit.albany.edu $ srun -p snow-nwp hostname [runs on Snow NWP queue] snow-16.rit.albany.edu Some information: https://www.rit.albany.edu/wiki/SLURM
namelist.input contains &sb sb_lat = 30. sb_u = 0. / sb_lat sets the latitude (in degrees) and sb_u the mean/initial cross-shore wind speed for the simulation. Leave unchanged for now. Namelist is set up to run [run_hours] for 24 h, outputting once per hour [history_interval = 60]. Leave unchanged for now. Also these will never be changed for this experiment: e_we= 202 … number of grid points in horizontal e_vert= 35 … number of levels in vertical
input_sounding contains sfc pres (mb) sfc theta (K) sfc mixing ratio (g/kg) 1000.0 302.5000 0.00000 125 300.5 0 375 300.565 0 625 301.0699 0 875 301.6293 0 1125 302.2307 0 1375 302.8666 0 1625 303.5323 0 1875 304.2242 0 2125 304.9395 0 2375 305.6764 0 2625 306.4329 0 2875 307.2076 0 [more lines] height (m) theta (K) mix ratio (g/kg) You will not need to modify this file.
Initialize and run model $ srun –p snow ideal.exe [initialize model] wrf: SUCCESS COMPLETE IDEAL INIT $ ls -al wrfinput_d01 [initialization file; see it’s there] $ srun –p snow time wrf.exe [runs model. Takes about 6 min] d01 2007-09-22_06:00:00 wrf: SUCCESS COMPLETE WRF $ ncdump –h wrfout_d01_2007-09-21_06:00:00 | more [WRF creates NetCDF files.] [this looks inside the model output file; see next slide] [USE TAB COMPLETION!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!]
netcdf wrfout_d01_2007-09-21_06\:00\:00 { dimensions: Time = UNLIMITED ; // (25 currently) DateStrLen = 19 ; west_east = 201; south_north = 2 ; bottom_top = 34 ; bottom_top_stag = 35 ; soil_layers_stag = 5 ; west_east_stag = 202 ; south_north_stag = 3 ; variables: char Times(Time, DateStrLen) ; float XLAT(Time, south_north, west_east) ; XLAT:FieldType = 104 ; XLAT:MemoryOrder = "XY " ; XLAT:description = "LATITUDE, SOUTH IS NEGATIVE" ; XLAT:units = "degree_north" ; XLAT:stagger = "" ; XLAT:coordinates = "XLONG XLAT" ; float XLONG(Time, south_north, west_east) ; XLONG:FieldType = 104 ; XLONG:MemoryOrder = "XY " ; [lots and lots and lots more…] • We specified • e_we = 202 • e_vert = 35
dx WRF uses a horizontally and vertically staggered grid < vertical grid stagger u = east-west velocity w = vertical velocity s = scalar field dz One extra W point in vertical, one extra U point in horizontal directions u(i,k), w(i,k) and s(i,k) do not represent same physical location!
Making GrADS output $ w2g control_filecalm_lat30 Gracefull STOP $ gr2 ga-> open calm_lat30 ga-> hov.gs Warning: idealized GrADS output does not preserve time… it thinks it starts 1 Jan 00Z w2g aliases to wrf_to_grads gr2 aliases to grads -l
This plots using a WRF diagnostic quantity: the wind at 10 m above surface level. More details later...
Experiment #1 (In two parts)
Part 1: 48h dry simulations • Each student will be assigned a different latitude (see class handout; also posted on class webpage) • Run ideal.exe after you modify the namelist (see following slide). • Naming format: latXX.X, where XX.X= latitude in degrees with leading zero if needed and decimal (e.g., lat30.0, lat02.5, etc..) • Copy your ctl, datfiles to /network/rit/lab/atm419lab/EXP01/ • …and email me when you are done
namelist.input contains &time_control run_days = 0, run_hours = 48, run_minutes = 0, run_seconds = 0, [more…] &sb sb_lat = 30. sb_u = 0. / Check these lines. Change sb_latto your assigned latitude. Run ideal.exe and wrf.exe, then w2g
Computing circulation ga-> reset ga-> set z 1 ga-> set x 1 ga-> set t 1 49 ga-> d sum(mag(u10,v10),x=1,x=201)*2000 This is using a WRF diagnostic quantity: the wind at 10 m above ground level.
Experiment tasks Parts 1 and 2 • Part 1 (for each latitude value assigned): • Run your case for 48 h and copy your GrADS files into the EXP01 directory. • For x = 200, plot a time series of soil temperature for your simulation at the five depths. Label the plot (i.e., put on axes and title). [See intro PPT.] • Compute circulation (see previous slide) for 5 selected cases in the EXP01 directory, and superimpose time series on a single plot. Label the plot with which latitudes you selected. • Part 2 (for each latitude value assigned): • For your assigned latitude(s), explore different initial U wind strengths (sb_u in namelist.input) to find the value that “traps” the sea breeze front at the coastline (see next slide). YOU MUST RERUN ideal.exe. Run model for 24 h only. • Plot a Hovmoller diagram of 10-m wind (U10) over that 24 h period. Save it as a PNG file. You can use hov.gs. Email it to me, along with the U wind value that traps the front. Do not copy your GrADS files to the EXP01 directory. • Summary: Undergrads are emailing me three plots and one number. Graduate students are emailing me six plots and 2 numbers.
namelist.input for Part 2 &time_control run_days = 0, run_hours = 24, run_minutes = 0, run_seconds = 0, [more…] &sb sb_lat = 30. sb_u = 0. / To “trap” the sea-breeze front at the coastline, experiment with different values of sb_u. Positive values are onshore, so you want negative ones. Start with values like -6 m/s and adjust as needed
Notes • If you make a change to namelist.input, run ideal.exe again • Rerunning ideal.exe isn’t necessary after every change, but this is the safe strategy • This code is designed to use the slab land surface scheme (sf_surface_physics = 1). Surface moisture fluxes in that scheme are forced to be zero. Other schemes will add vapor to the atmosphere. • Handling of the soil model is not optimal. The soil temperatures should be permitted spin-up time.