1 / 16

RAMS Customization

RAMS Customization. Example customizations. Higher-resolution topography Topography steepness Vegetation parameters SST modifications (lakes, bays, rivers) Idealized runs initial perturbation external tendency over time period. RAMS Custom Topography. Create your own dataset

curry
Download Presentation

RAMS Customization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RAMS Customization

  2. Example customizations • Higher-resolution topography • Topography steepness • Vegetation parameters • SST modifications (lakes, bays, rivers) • Idealized runs • initial perturbation • external tendency over time period

  3. RAMS Custom Topography • Create your own dataset • Use new program mk_blocks (on our web site soon, contact me if needed)… • …or older program mktopo.f (on our web site) • Need to convert data to regular latitude-longitude grid

  4. RAMS Custom Topography • Sometimes topography is too “steep” • really, dependent on ratio ztopo/z • If this occurs, model can “blow up” or very cold temperatures can be found. • Helps most of the time to make topography smoother or to increase z. • Smoothing for an entire grid can be done in namelist: TOPTWVL and ITOPSFLG • Sometimes, only smoothing for a portion of the domain is needed. For example, a simulation for Colombia, but the Andes mountains are in the southern part of the domain.

  5. RAMS Custom Topography ruser.f90: subroutine toptinit_user(n2,n3,ifm,topt) include 'rcommons.h' dimension topt(n2,n3) ! This subroutine is the intended location for a user to customize TOPT, ! the surface topography array. It is called after all other types of ! initialization of this field, so this subroutine has the last word. ! By default the subroutine makes no change to the field. The commented ! lines below serve as a template for user-designed changes; the example ! shown is the Witch of Agnesi mountain, a common test case. Note that ! this routine is called for each grid separately, so attention to the ! current value of ngrid in this routine may be required by the user. ! if(ifm.eq.1)then call toptsmth( …,…,…,…,…) elseif(ifm.eq.2)then endif return end

  6. RAMS Vegetation Parameters – v4.4 • If you are using the default USGS land use files, make sure the land use type is correct. • This can be viewed with REVU. • If it is not correct: • Modify incorrect grid points in ruser.f90 (best if only a small area is incorrect) • Modify the input dataset block (best if most of a block is incorrect) • Create your own dataset (best if entire country could be better, or if you have higher resolution)

  7. RAMS Vegetation Parameters – v4.4 • Modify incorrect grid points in ruser.f90 • best if only a small area is incorrect ruser.f90: subroutine sfcinit_user(n1,n2,n3,n4,n5,ifm,theta,pi0,pp,rv & ,tgp,wgp,schar,gsf,rvs,prss,pis,vt2da,vt2db,vnam,ivtime) ! The SCHAR array contains the following information according to the ! value of its 3rd index and patch number (the 4th index): ! For Soil Regions (ipatch > 1): ! 1: fractional coverage of patch (land percentage) ! 2: soil roughness length ! 3: vegetation type ! 4: vegetation fractional coverage ! 5: vegetation leaf area index ! 6: net roughness length (resultant for soil/snow plus veg) ! 7: vegetation roughness length ! 8: vegetation displacement height ! 9: patch wetness index ! 10: k index of top snow layer ! 11: datq vegetation class

  8. RAMS Vegetation Parameters – v4.4 • Modify incorrect grid points in ruser.f90 elseif (vnam .eq. 'FILEDATA') then ! if (ifm .eq. 1) then ! do j = 1,n3 ! do i = 1,n2 ! schar(i,j,1,1) = ! schar(i,j,1,2) = ! do ipatch = 3,n5 ! schar(i,j,1,ipatch) = ! enddo ! ! do ipatch = 2,n5 ! do k = 1,nzg ! gsf(i,j,k,ipatch) = ! enddo ! schar(i,j,3,ipatch) = ! schar(i,j,11,ipatch) = ! enddo ! ! enddo ! enddo ! elseif (ifm .eq. 2) then ! endif schar dimensioned by: nx – number of x points ny – number of y points nv – parameter number np – patch number

  9. RAMS Vegetation Parameters – v4.4 • Modify the input dataset block • best if most of a block is incorrect • Small program available to: • Read a block • Modify values • Write out new block • Code will need to be modified manually • Contact me if this is needed

  10. RAMS Vegetation Parameters – v4.4 • Create your own dataset • Best if entire country could be better • If you have higher resolution data • Use new program mk_blocks. • Need to convert data to regular latitude-longitude grid

  11. RAMS Vegetation Parameters – v4.4 ! LEAF-2 BIOPHYSICAL PARAMETERS BY LANDUSE CLASS NUMBER data bioparms/ & !----------------------------------------------------------------------------- !albedo lai vfrac zo rootdep LEAF-2 CLASS # ! emiss dlai dvfrac zdisp AND DESCRIPTION !----------------------------------------------------------------------------- ! BATS LSPs .14, .99, 0.0, 0.0, .00, .00, .00, 0.1, .0 & ! 0 Ocean ,.14, .99, 0.0, 0.0, .00, .00, .00, 0.1, .0 & ! 1 Lakes,rivers,streams (inland water) ,.40, .82, 0.0, 0.0, .00, .00, .01, 0.1, .0 & ! 2 Ice cap/glacier ,.10, .97, 6.0, 1.0, .80, .10, 1.00, 15.0, 1.5 & ! 3 Evergreen needleleaf tree ,.10, .95, 6.0, 5.0, .80, .30, 1.00, 20.0, 1.5 & ! 4 Deciduous needleleaf tree ,.20, .95, 6.0, 5.0, .80, .30, .80, 15.0, 2.0 & ! 5 Deciduous broadleaf tree ,.15, .95, 6.0, 1.0, .90, .50, 2.00, 20.0, 1.5 & ! 6 Evergreen broadleaf tree ,.26, .96, 2.0, 1.5, .80, .10, .02, .2, 1.0 & ! 7 Short grass ,.16, .96, 6.0, 5.5, .80, .30, .10, 1.0, 1.0 & ! 8 Tall grass ,.30, .86, 0.0, 0.0, .00, .00, .05, .1, 1.0 & ! 9 Desert ,.25, .96, 6.0, 5.5, .10, .10, .10, .5, 1.0 & ! 10 Semi-desert ,.20, .95, 6.0, 5.5, .60, .20, .04, .1, 1.0 & ! 11 Tundra ,.10, .97, 6.0, 1.0, .80, .20, .10, 1.0, 1.0 & ! 12 Evergreen shrub ,.20, .97, 6.0, 5.0, .80, .30, .10, 1.0, 1.0 & ! 13 Deciduous shrub ,.15, .96, 6.0, 3.0, .80, .20, .80, 20.0, 2.0 & ! 14 Mixed woodland ,.20, .95, 6.0, 5.5, .85, .60, .06, .7, 1.0 & ! 15 Crop/mixed farming ,.18, .95, 6.0, 5.5, .80, .60, .06, .7, 1.0 & ! 16 Irrigated crop ,.12, .98, 6.0, 5.5, .80, .40, .03, 1.0, 1.0 & ! 17 Bog or marsh

  12. RAMS SST Modifications • Distributed dataset is 1-degree (111 km) resolution, 1955-1985 monthly average. • Some near-real time, some higher resolution datasets exist • Create your own dataset • Use new program mk_blocks • Need to convert data to regular latitude-longitude grid

  13. RAMS SST Modifications • However, most SST datasets are only applicable to ocean regions. • Values over continents are interpolations between oceans, even for larger bays, seas, lakes, etc. • Temperatures are not correct. • So, if there is significant inland water regions in your domain, you may want to consider customizing: • Create a new dataset at higher resolution • Modify existing blocks • Or… ruser.f90 again!

  14. RAMS SST Modifications ruser.f90: subroutine sfcinit_user(n1,n2,n3,n4,n5,ifm,theta,pi0,pp,rv & ,tgp,wgp,schar,gsf,rvs,prss,pis,vt2da,vt2db,vnam,ivtime) ! The TGP array contains the following information according to the ! value of its 3rd index and patch number (the 4th index): ! For Water Regions (ipatch = 1): ! nzg: temperature of ocean, lake, or river surface ! nzg+1: past ocean, lake, or river temperature (for time updating) ! nzg+2: future ocean, lake, or river temperature (for time updating) if (vnam .eq. 'SSTDATA') then ! if (ifm .eq. 1) then ! ! do j = 1,n3 ! do i = 1,n2 ! tgp(i,j,nzg+1,1) = ! tgp(i,j,nzg+2,1) = ! enddo ! enddo ! ! elseif (ifm .eq. 2) then ! endif

  15. Idealized Runs – Initial Perturbation • Some idealized runs, initialized from a single sounding, may need an initial perturbation to generate a circulation. • Example: flat terrain or ocean, generate a convective cell • To initialize the perturbation, a custom subroutine is required, since all perturbations will most likely be different. • An example subroutine is in ruser.f90 (subroutine bubble). subroutine bubble(m1,m2,m3,thp,rtp) dimension thp(m1,m2,m3),rtp(m1,m2,m3) ! do j = 1,1 do i = 17,26 do k = 2,7 !e thp(k,i,j) = thp(k,i,j) + 5. !e rtp(k,i,j) = rtp(k,i,j) * 1.2 enddo enddo enddo return end • Adds 5 deg to potential temperature and increases total water mixing ratio by 20% over specified grid points • The call to this routine then needs to be inserted into subroutine INITLZ (rdint.f90, about line 202).

  16. Idealized Runs – Perturbation tendency • It may be better in some idealized runs to introduce a perturbation over a period of time (e.g., with a tendency) • To specify the tendency, a custom subroutine is required, since all perturbations will most likely be different. • An example subroutine is in ruser.f90 (subroutine trtend). • Adds 10 deg to potential temperature and increases total water mixing ratio by 10 g/kg over specified grid points over 1 hour • The call to this routine then needs to be inserted into subroutine TIMESTEP (rtimh.f90, about line 107). SUBROUTINE TRTEND(M1,M2,M3,K1,K2,I1,I2,J1,J2,RTT,THT) DIMENSION RTT(M1,M2,M3),THT(M1,M2,M3) DO J=J1,J2 DO I=I1,I2 DO K=K1,K2 RTT(K,I,J)=RTT(K,I,J)+0.010/3600. THT(K,I,J)=THT(K,I,J)+10./3600. ENDDO ENDDO ENDDO

More Related