xigrug / stochWRF

Stochastic edits to WRF 3.8.1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

stochWRF

Stochastic edits to WRF 3.8.1. Repo contains (a) Python scripts that are used before running WRF, and (b) .F files (i.e., source code) and the Registry from WRF source code.

Code developed by John R. Lawson at CIMMS/NSSL and overseen by Nusrat Yussouf and Jack Kain. Successfully compiled on Cray at NSSL, March 4 2017.

METHODOLOGY and SCIENCE

Coming soon to a paper near you.

TO DO

  • In-line documentation to supplement this README
  • Brief outline of each stochastic edit
  • Include Python scripts that
    • imposes a fractal perturbation on the soil moisture ICs

LIST OF CHANGES

Search for “JRL” to find locations that have been edited from WRF 3.8.1 source code. Line numbers refer to WRF 3.8.1 code, but may not line up exactly to source code due to commenting, edits afterwards, etc. Use the following numbering to refer to any issues or changes.

  1. dyn_em/module_first_rk_step_part1.F

  2. Line 834 in CALL surface_driver (adding morph values from namelist for SMSM)

  3. Line 1006 in CALL pbl_driver (adding asymptotic mixing length for PSP)

  4. dyn_em/module_first_rk_step_part2.F

  5. Line 205 to turn off RAND_PERT_UPDATE (we've hacked SPPT for other uses).

  6. Line 670 in CALL perturb_physics_tend (changing SPPT-scheme arguments for PSP. If SPPT scheme is to be kept, need to create duplicate of this scheme)

  7. Line 679 in CALL perturb_physics_tend (ditto)

  8. dyn_em/module_stoch.F

  9. Line 716 in SUBROUTINE perturb_physics_tend (SPPT arguments for PSP in stochastic forcing)

  10. Line 723 “” “”

  11. Line 745 “” (adding types for new arguments)

  12. Line 751 “” “”

  13. Line 775 “” (Long block of commenting out old SPPT and modifying it for use with PSP)

  14. phys/module_physics_init

  15. Line 198: Adding three extra SPP parameters

  16. Line 748: Defining

  17. Line 1283: Adding these parameters to MP_INIT call

  18. Line 3575: Adding these parameters to MP_INIT arguments

  19. Line 3641: Defining

  20. Line 3683: Adding to the nssl_params list to pass later

  21. dyn_em/module_bc_em.F

  22. Line 1273: turning off smooth decay values (for DA purpose)

  23. dyn_em/start_em.F

  24. Line 1169 in CALL phy_init (NSSL variables for SPP)

  25. Line 1420 (mod for data assimilation)

  26. phys/module_bl_myjpbl.F

  27. Line 141 in SUBROUTINE MYJPBL (Adding arguments for PSP in MYJ)

  28. Line 251 (Adding types)

  29. List 267 Initialise in tile dimensions

  30. Line 417 in CALL MIXLEN (Adding L_INF to arguments)

  31. Line 447 in CALL DIFCOF (Adding ESHK, ESMK to arguments)

  32. Line 463 (Assigning ESHK ESMK to the larger array for later use)

  33. Line 786 (Compute TSQ and QSQ)

  34. Line 818 in SUBROUTINE MIXLEN (Adding EL0 to arguments)

  35. Line 850: Change intent of EL0 and remove from previous type assignment

  36. Line 1224: in SUBROUTINE DIFCOF (Adding ESH, ESM to arguments)

  37. Line 1251: Making ESH, ESM an array

  38. Line 1305: similar edits

  39. Line 1319: similar edits

  40. phys/module_bl_mynn.F

(Already contains variances needed to perturb tendencies)

  1. phys/module_bl_shinhong.F

  2. Line 28: Passing tsq,qsq into script

  3. Line 207: Creating temporary variables for later comp, and defining tsq, qsq; initialising

  4. Line 271: Adding xkzhl to 2D call (this is the K_H values we need for variances)

  5. Line 283: Computing variances

  6. Line 319: Adding xkzhl

  7. Line 538: Added definition

  8. Line 540: Removed old definition

  9. Line 1525: Force TKE to be computed

  10. phys/module_mp_nssl_2mom.F

  11. Line 794: Added three new SPP parameters to overwrite old (fixed) values

  12. phys/module_pbl_driver.F

  13. Line 127: Added L_INF to call

  14. Line 506: Added L_INF as definition

  15. Line 1245: Passes tsq, qsq to ShinHong

  16. Line 1442: Pass tsq, qsq,l_inf

  17. phys/module_sf_noahmpdrv.F

  18. Line 49: Adding morphing parameters to arguments

  19. Line 418: Defined parameters

  20. Line 750: Added the parameters to call to noahmp_sflx

  21. phys/module_sf_noahmplsm.F

  22. Line 369: Added morphing parameters to arguments

  23. Line 425: Define them

  24. Line 730: Adding morphing parameters to CALL ENERGY

  25. Line 1471: Adding morphing parameters to ENERGY arguments

  26. Line 1730: Defining morphing params; new temporary variables for weighting in ENERGY

  27. Line 1843: Adding morphing parameters to RADIATION call

  28. Line 1874: Weighting equations

  29. Line 1988: Adding morphing params to VEGE_FLUX call

  30. Line 2090: Adding morph params to TSNOSOT call

  31. Line 2412: Morphing params in RADIATION

  32. Line 2491: Defining params in RADIATION

  33. Line 2509: Morphing params in ALBEDO call

  34. Line 2548: Morphing params in ALBEDO arguments

  35. Line 2608: Defining params in ALBEDO

  36. Line 2699: Adding morphing params to TWOSTREAM call #1

  37. Line 2709: Adding morphing params to TWOSTREAM call #2

  38. Line 3090: Adding morphing params to TWOSTREAM arguments

  39. Line 3177: Defining params

  40. Line 3220: Computing weighting in TWOSTREAM

  41. Line 3391: Adding weighting params to VEGE_FLUX arguments

  42. Line 3604: Defining params; temporary variables for weighting

  43. Line 3761: Computing weighting in VEGE_FLUX

  44. Line 5038: Adding morphing params to TSNOBOI arguments

  45. Line 5090: Definiting params; temporary variables for weighting

  46. Line 5119: Adding weighting params to HRT call

  47. Line 5136: Computing weighting in TSNOBOI

  48. Line 5181: Adding weighting params to HRT

  49. Line 5229: Defining params

  50. Line 5262: Computing weighting in HRT

  51. phys/module_surface_driver

  52. Line 274: Adding morphing parameters to SURFACE_DRIVER

  53. Line 1324: Defining those params

  54. Line 2940: Adding morphing parameters to NOAHMPLSM call

  55. Registry/Registry.EM_COMMON

(Search for the following)

  1. L_INF (added)

  2. Tsq (editing to output to history)

  3. QSQ (edited to output to history)

  4. RTHBLTEN (“)

  5. RQVBLTEN (“)

  6. NSSL_ALPHAR (added)

  7. NSSL_EHW0 (added)

  8. NSSL_EHLW0 (added)

  9. MORPHR_CRS (added)

  10. MORPHR_TBOT (added)

  11. MORPHR_BTR (added)

  12. MORPHR_RAD (added)

  13. MORPHTH_CRS (added)

  14. MORPHTH_TBOT (added)

  15. MORPHTH_BTR (added)

  16. MORPHTH_RAD (added)

  17. MYJ package declaration needs "L_INF","TSQ", "QSQ"

  18. Shinhong package declaration needs "TSQ", "QSQ"

  19. moist_tend (adding output to history)

  20. t_tendf (adding output to history)

  21. rw_tendf (adding output to history) (Note the following are for DA only)

  22. refl_10cm (adding output to history for DA)

  23. vt_dbz_wt (adding variable for DA)

  24. radar_refl (package declaration of vt_dbz_wt)

  25. h_diabatic (adding output to history for DA)

  26. qv_diabatic (adding output to history for DA)

  27. qc_diabatic (adding output to history for DA)

  28. Registry/registry.stoch

(Search for the following)

  1. AML (added)
  2. ASHC (added)

About

Stochastic edits to WRF 3.8.1


Languages

Language:Fortran 97.7%Language:Roff 1.9%Language:Pascal 0.3%Language:Python 0.0%Language:EmberScript 0.0%Language:Forth 0.0%