1 / 35

Model Physics / Porting Physics to the NMMB

Model Physics / Porting Physics to the NMMB. NEMS-NMMB Tutorial 19 February 2014 Brad Ferrier, Dusan Jovic , & Ratko Vasic. Outline. Physics options and parameter settings (slides 3-17) Shortwave (SW) and longwave (LW) radiation ( sl 3-4)

dotty
Download Presentation

Model Physics / Porting Physics to the NMMB

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. Model Physics / Porting Physics to the NMMB NEMS-NMMB Tutorial 19 February 2014 Brad Ferrier, DusanJovic, & Ratko Vasic

  2. Outline • Physics options and parameter settings (slides 3-17) • Shortwave (SW) and longwave (LW) radiation (sl 3-4) • Planetary boundary layer (PBL) and surface layer (sl5,7) • Gravity wave drag + mountain blocking (sl 6-7) • Land surface schemes (sl8-9) • Convection (sl 10-11, 16) and microphysics (sl12-16) • Full GFS physics suite (sl 17) • Source codes and porting physics (slides 18-35) • Flowcharts of codes relating various physics (sl 18-21) • Adding a new physics array, + output fields (sl 22-31) • RRTM & GFS codes in /phys directory (sl 32) • Physics calls in model solver (sl 33-35) NMMB Tutorial: Physics

  3. Radiation Options • “GFDL” radiation (phys/module_RA_GFDL.F90) • Lacis & Hansen shortwave (SW) , Fels & Schwartzkopf (LW) • Prescribed ozone & CO2 • No aerosols, incoming TOA SW fluxes reduced by 3% • Simple clouds, fixed absorption coefficients for cloud water and ice • RRTM radiation (phys/module_RA_RRTM.F90) • Similar to RRTMG in WRF • Version 2 (currently running in GFS), soon to be upgraded to version 3 • Ported from AER and optimized for EMC by Yu-Tai Hou, coupled to the NMMB by Hsin-Mu Lin • Prescribed ozone (predicted in GFS) & CO2, O2, and various trace gases • Bilinear interpolation from 5o climatological aerosols • Much more sophisticated treatment of clouds than GFDL • LW: Hu & Stamnes (1993) for water, Ebert & Curry (1992) for ice (+ other options) • SW: Hu & Stamnes (1993) for water, Fu (1996) for ice (+ other options) NMMB Tutorial: Physics

  4. Configure File Settings - Radiation shortwave: # Shortwave radiation schemes, either gfdl or rrtm longwave: # Longwave radiation schemes, either gfdl or rrtm … co2tf: 1 # Read (0) or generate internally (1) the GFDL CO2 transmission functions … nrads: # Number of dynamics timesteps between calls to shortwave nradl: # Number of dynamics timesteps between calls to longwave … nhrs_udef: true # Accumulator arrays are reset to 0 by user-defined options (next). nhrs_rdlw: # Frequency in hours between times when LW radiation fluxes are reset to 0 nhrs_rdsw: # Frequency in hours between times when SW radiation fluxes are reset to 0 • Use the same option for shortwave & longwave (i.e., use “gfdl” for both or “rrtm” for both) • Recommend nrads=nradland set so that radiation is called at times corresponding with output (e.g. top of the hour) NMMB Tutorial: Physics

  5. Surface Layer and PBL • Mellor-Yamada-Janjic (MYJ) surface layer (phys/module_SF_JSFC.F90) • MYJ PBL (phys/module_BL_MYJPBL.F90) • Nonsingular Mellor-Yamada level 2.5, a local scheme • Predicts turbulent kinetic energy (TKE), represented as 3D array Q2 (=2*TKE) in code • TKE > background value in areas of turbulence away from the PBL (e.g., jet streaks) • GFS PBL (phys/module_BL_GFSPBL.F90) • 1st order non-local Pan-Mahrt scheme • Differs from what’s in the GFS because it uses the MYJ surface layer (added by Weiguo Wang in 2010) NMMB Tutorial: Physics

  6. Gravity Wave Drag (GWD)and Mountain Blocking (+MB) • GWD+MB (nmm/module_GWD.F90) • Provided from GFS (Jordan Alpert & ShrinivasMoorthi) • Tendencies applied only to horizontal winds • Calculates the level of the “dividing streamline” (DS) • Lott & Miller mountain blocking below DS, air is slowed as it flows around the barrier • Kim & Arakawa gravity wave drag above DS, air goes over the barrier and is subject to possible wave breaking • Requires 14 different fields related to the terrain • Maximum height above the mean height in the grid box, slope, anisotropy/aspect ratio, angle of the mountain range w/r/t East, normalized 4th moment of the orographic convexity, orographic asymmetry & length scale along 4 vertical planes (W-E, N-S, SW-NE, NW-SE) • Currently calculated from 30-sec terrain data NMMB Tutorial: Physics

  7. Configure File Settings sfc_layer: # Surface layer schemes, myj only … turbulence: # Turbulence schemes, myj or gfs … gwdflg: true # True--> GWD on ; False--> GWD off cdmb: 0.1* # adjusts mountain blocking cleffamp: 2.24 *# adjusts the gravity wave drag (GWD) sigfac: 3.00 * # dividing streamline is searched above the highest elevation by sigfac*Zstd (Zstd=stddev of terrain) factop: 0.50 # limit deacceleration (momentum deposition) aloft rlolev: 50.00 # adjusts GWD when p > rlolev (centibars) in a complex way dpmin: 0.00 # minimum thickness of the reference layer * Values for cdmb, cleffamp, sigfac based on optimal settings for 12-km runs NMMB Tutorial: Physics

  8. Land Surface Schemes • Noah (phys/module_LS_NOAHLSM.F90) • 4 soil layers (10, 30, 60, & 100 cm thick) + snow layer • 19 soil types (STASGO) • Land use & vegetation types • 24 from older USGS • 20 from newer IGBP (MODIS-derived, used in NAM) • Urban canopy model (phys/module_SF_URBAN.F90) • Little (if any?) testing in EMC meso group • LISS (phys/module_LS_LISS.F90) • Land ice sea model (Vukovic et al., 2010, ) introduced into NMMB by Zavisa • 4 soil layers + snow layer NMMB Tutorial: Physics

  9. Configure File Settings land_surface: # land surface schemes, noah or liss … ucmcall: # Use (=1) or do not use (=0) urban canopy model ivegsrc: # Use (=1) or do not use (=0) IGBP vegetation & land use types … nhrs_srfc: # Frequency in hours between times when surface energy and moisture fluxes are reset to 0 Settings shared by surface layer, PBL, GWD+MB, and land surface: nphs: # Number of dynamics time steps between calls to land surface, turbulence (sfclayer + PBL), and GWD+MB NMMB Tutorial: Physics

  10. Convection • Betts-Miller-Janjic(phys/module_CU_BMJ.F90) • BMJ scheme changes T & Q only • Simplified Arakawa Schubert (phys/module_CU_BMJ.F90) • SAS is a mass flux scheme (added by Weiguo Wang in 2010) • ncloud=1, detrains liquid & ice (partitioned into various pre-existing species, may differ from HWRF) • Both schemes account for deep (precipitating) and shallow (nonprecipitating) modes of convection NMMB Tutorial: Physics

  11. Configure File Settings convection: # Convective scheme, either bmj or sas … nprecip: # Number of dynamics timesteps between calls to convection and microphysics Settings that control the BMJ scheme fres: 0.75 # resolution factor for dsp's (default) fr: 1.0 # land factor for dsp's (dafault) fsl: 0.75 # reduction factor for "slow" dsp's over land (dafault) fss: 0.75 # reduction factor for "slow" dsp's over water (dafault) Settings that control BMJ deep & shallow convection switches (true/false) entrain: .false. # includes entrainment in parcel ascent newall: .false. # new treatment for shallow clouds newswap: .false. # new shallow clouds at swap points* (commented out) newupup: .false. # new shallow clouds with upward heat &moisture transport nodeep: .false. # all deep convection diverted to shallow convection * Swap points are when shallow convection is considered after deep convection test fails (entropy decreases) NMMB Tutorial: Physics

  12. Microphysics (1 of 3) • Old NAM/HWRF (phys/module_MP_ETANEW.F90) • ‘fer’ - similar to “old Eta” in WRF (etampold, mp_physics=95) • Uses smaller look up tables for rain • Predicts cloud water, rain, and ice (internal algorithm separates cloud ice from snow/graupel) mixing ratios, and density of ice (“rime factor”) within the microphysics • New NAM (phys/module_MP_FER_HIRES.F90) • ‘fer_hires’ - similar to “new Eta” in WRF (etampnew, mp_physics=5) • Uses larger look up tables for rain • Soon to be updated by “Ferrier-Aligo” version • Being tested in real-time parallels & HWRF retrospectives, changes made to represent deep convection better (esp radar reflectivities) NMMB Tutorial: Physics

  13. Microphysics (2 of 3) • GFS (phys/module_MP_GFS.F90) • Similar to what’s in GFS (added by Weiguo Wang in 2010) • Sundqvist condensation, partial cloudiness allows clouds to form at RH > RHcrit (=95% in NMMB) • Predicts cloud water & cloud ice; rain and snow fall out and do not remain in atmosphere • WSM6 (phys/module_MP_WSM6.F90) • Developed by Hong et al. (added by Weiguo in 2010) • Predicts cloud water, cloud ice, rain, snow, & graupel • Added based on feedback from SPC, used in 4-km NSSL ARW NMMB Tutorial: Physics

  14. Microphysics (3 of 3) • Thompson (phys/module_mp_thompson.F90 & phys/module_mp_radar.F90) • Recently added by Greg and Dusan • Predicts mixing ratios of cloud water, cloud ice, rain, snow, & graupel, as well as number concentrations of rain and cloud ice • Extra care dedicated to the treatment of snow using the work of Paul Field • Greg is finishing the coupling with the RRTM radiation NMMB Tutorial: Physics

  15. Configure File Settings (1 of 2) microphysics: # Microphysics scheme, either fer, fer_hires, gfs, wsm6, or thompson. … spec_adv: # Separately advect hydrometeor species (=true) or advect only total condensate (=false). Recommend spec_adv=true for thompson. (Added with help from Weiguo Wang) lmprate: # Write microphysics processes of 4D array MPRATES to history files (=true), otherwise write a single 3D array with zero values (=false). Currently available for fer, fer_hires, & wsm6 microphysics (added by Eric Aligo). … nprecip: # Number of dynamics timesteps between calls to convection and microphysics NMMB Tutorial: Physics

  16. Configure File Settings (2 of 2) NOTE: User must set nhrs_udef to .TRUE. and set the emptying frequencies (nhrs_*) to the desired values or else all accumulations will automatically be emptied at the frequency of history output. nhrs_udef: true # User defined (=true) or frequency of history output (=false) nhrs_prec: 3 # Frequency in hours between times when precip arrays are emptied nhrs_heat: 3 # Frequency in hours between times when heating arrays are emptied nhrs_clod: 3 # Frequency in hours between times when cloud arrays are emptied* Above example has the precipitation “buckets”, diabatic heating rates for convection & microphysics, and cloud fractions from radiation* being set to 3-h accumulations. * Cloud fractions are calculated in the radiation and not in the microphysics. NMMB Tutorial: Physics

  17. Full GFS Physics (‘gbphys’) gfs: false # Select entire GFS physics (=true) or individual options (=false)(added by Ratko Vasic, used in global NMMB development) Midway in module_SOLVER_GRID_COMP.F90: gfs_phys_test: IF(.NOT.int_state%GFS)THEN • Run the various physics discussed earlier • CALL UPDATE_WATER*, Radiation, RDTEMP*, Turbulence, CLTEND*, Convection, Microphysics, and CLTEND* (twice) ELSE gfs_phys_test !<-- Use GFS physics package • Lots of preparation, initialize arrays, etc. • CALL GRRAD (GFS radiation), GBPHYS (other GFS physics) • Update 2D arrays (all involve >2000 lines of code) ENDIF gfs_phys_test NMMB Tutorial: Physics

  18. Flowcharts of Physics Codes With Respect to NMMB Solver NMMB Tutorial: Physics

  19. Flowchart for Radiation & Convection NMMB Tutorial: Physics

  20. Flowchart for Microphysics NMMB Tutorial: Physics

  21. Flowchart for Turbulence, etc. nmm/module_SOLVER_GRID_COMP.F90 phys/module_SF_JSFC.F90 phys/module_LS_NOAHLSM.F90 nmm/module_TURBULENCE.F90 Surface Layer phys/module_LS_LISS.F90 phys/module_BL_MYJPBL.F90 phys/module_BL_GFSPBL.F90 OR Land Surface PBL OR GWD + MB (optional)nmm/module_GWD.F90 NMMB Tutorial: Physics

  22. Adding a New Array e.g. 2D snow cover (SNOWC array)andMODIS albedo flag (ialbsrc)

  23. List of Codes To Change /nmmdirectory module_GET_CONFIG.F90 - Add a configure file variable module_INIT_READ_BIN.F90 - Read from binary file module_INIT_READ_NEMSIO.F90 - Read from NEMSIO file (NPS input & restart files) module_SOLVER_INTERNAL_STATE.F90 - Loads into ‘generic’ int_state%VARS module_SOLVER_GRID_COMP.F90 - Main solver: initializes, then passes to physics module_RADIATION.F90 - Used by radiation, adjust sfc albedos over snow module_TURBULENCE.F90 - Updated by land surface module_WRITE_ROUTINES.F90 - Rename variables in NEMSIO GrADS control files job/regression_tests/solver_state.txt #------------------------------------------------------------ # Name History Owned eXport Description # Name Restart Import Time_ser #------------------------------------------------------------ ... ### 2D real ... 'SNOWC' H R O - - T 'Snow Cover (fraction: 0--1)' NMMB Tutorial: Physics

  24. Adding a configure file variable (1 of 2) module_GET_CONFIG.F90 [ ialbsrc: .true. # MODIS albedos (=true), Matthews albedos (=false) ] ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ MESSAGE_CHECK="GET_CONFIG: Extract IALBSRC from Config File" IF(int_state%PRINT_ESMF .OR. int_state%PRINT_ALL) & CALL ESMF_LogWrite(MESSAGE_CHECK,ESMF_LOGMSG_INFO,rc=RC) ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ! CALL ESMF_ConfigGetAttribute(config=CF & !<-- The configure file object ,value =int_state%IALBSRC & !<-- Put extracted quantity here ,label ='ialbsrc:' & !<-- The quantity's label in the configure file ,rc =RC) ! ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ CALL ERR_MSG(RC,MESSAGE_CHECK,RC_CONF) NMMB Tutorial: Physics

  25. Adding a configure file variable (2 of 2) jobs/regression_test/solver_state.txt #------------------------------------------------------------ # Name History Owned eXport Description # Name Restart Import Time_ser #------------------------------------------------------------ ### 0D integer (scalar) 'IALBSRC' H - O - - - 'Albedo source identifier, 0--> Matthews albedos, 1--> MODIS albedos' Added to the configure file ialbsrc: .true. # MODIS albedos (=true), Matthews albedos (=false) NMMB Tutorial: Physics

  26. Reading from a Binary File Subroutine read_binary in module_INIT_READ_BIN.F90 !----------------------------------------------------------------------- !*** SNO and SNOWC !----------------------------------------------------------------------- IF(MYPE==0)THEN READ(NFCST)TEMP1 ENDIF CALL DSTRB(TEMP1,int_state%SNO,1,1,1,1,1,MYPE,MPI_COMM_COMP) DO J=JMS,JME DO I=IMS,IME if(int_state%SNO(I,J).gt.0.) then int_state%SNOWC(I,J)=0.98 else int_state%SNOWC(I,J)=0.0 endif ENDDO ENDDO NMMB Tutorial: Physics

  27. Reading from a NEMSIO File (1 of 3) Subroutine read_nemsio in module_INIT_READ_NEMSIO.F90 read_blocks: if(.not.int_state%RESTART) then! cold start! (1) Stuff on next slide for reading from an NPS-generated NEMSIO “input” file else read_blocks ! Restart (2) Stuff 2 slides later for reading from a model NEMSIO restart file endifread_blocks ! cold start /restart => Remember to new array(s) in both locations! NMMB Tutorial: Physics

  28. Reading from a NEMSIO File (2 of 3) Subroutine read_nemsio in module_INIT_READ_NEMSIO.F90 (reads from an NPS-generated NEMSIO file) !------------------------------------------------------------------ !*** SNO and SNOWC !------------------------------------------------------------------- ! call getrecn(recname,reclevtyp,reclev,nrec,'sno','sfc',1,recn) if(recn>0) then fldst=(recn-1)*fldsize do j=jts,jte js=(j-jts)*(ite-its+1) do i=its,ite int_state%SNO(i,j)=tmp(i-its+1+js+fldst) if(int_state%SNO(i,j).gt.0.) then int_state%SNOWC(i,j) = 0.98 else int_state%SNOWC(i,j) = 0.0 endif enddo enddo endif NMMB Tutorial: Physics

  29. Reading from a NEMSIO File (3 of 3) Subroutine read_nemsio in module_INIT_READ_NEMSIO.F90 (reads from a model NEMSIO restart file) !-------------------------------------------------------------------- !*** SNOWC !-------------------------------------------------------------------- ! call getrecn(recname,reclevtyp,reclev,nrec,'snowc','sfc',1,recn) if(recn>0) then fldst=(recn-1)*fldsize do j=jts,jte js=(j-jts)*(ite-its+1) do i=its,ite int_state%SNOWC(i,j)=tmp(i-its+1+js+fldst) enddo enddo endif NMMB Tutorial: Physics

  30. Other Steps (as in Dusan’s presentation) module_SOLVER_INTERNAL_STATE.F90 REAL(kind=KFPT),DIMENSION(:,:),POINTER :: <other arrays>, SNOWC, <more arrays> . . . CALL SET_VAR_PTR(int_state%VARS,NV,'SNOWC' ,int_state%SNOWC,(/ IMS,JMS /),(IME,JME /) ) module_SOLVER_GRID_COMP.F90 SUBROUTINE SOLVER_INITIALIZE . . . int_state%SNOWC(I,J) = 0. . . . SUBROUTINE SOLVER_RUN . . . CALL RADIATION (<args>, int_state%SNOWC,<args>) . . . CALL TURBL(<args>,int_state%SNOWC,<args>) NMMB Tutorial: Physics

  31. Renamed Output Fields Configure file option: write_nemsioctl:.TRUE. # True--> Yes write ctl for nemsio run history files Sample output from run directory, 3-h history file & GrADS control (ctl) file from the 1st domain: • nmmb_hst_01_nio_0003h_00m_00.00snmmb_hst_01_nio_0003h_00m_00.00s.ctl • Most array names are the same as in solver_state.txt , except for: • History files. Arrays are renamed in subroutine WRITE_NEMSIO_RUNHISTORY_OPEN in module_WRITE_ROUTINES.F90 at “IF (RECNAME(NREC)==“ lines. Examples: Array names in model: W_TOT, CW, U, V, T, Q, O3 Renamed fields in NEMSIO files: vvel, clwmr, ugrd, vgrd, tmp, spfh, o3mr • Restart files. Arrays are renamed in subroutine WRITE_NEMSIO_RUNRESTART_OPEN at similar lines. They are usually the same as in the history files, except for vertical velocity. • “W” in model is part of the full vertical velocity, written as “w” to the history file and “vvel” in the restart file. • “W_TOT” in model is the full vertical velocity, written as “vvel” only to the history file (based on the current solver_state.txt file in the SVN trunk). NMMB Tutorial: Physics

  32. RRTM & GFS Codes in /phys *.f files (compiled in –r8) calpreciptype.fideaca.f mstadbtn2.f radiation_clouds_nmmb.fsascnv.f cnvc90.f idea_co2.f mstadbtn.fradiation_gases.fsascnvn.f co2hc.f idea_dissipation.fmstcnv.fradiation_gases_gfs.fset_soilveg.f date_def.f idea_h2o.f namelist_soilveg.fradiation_gases_nmmb.fsfc_diag.f dcyc2.f idea_ion.fozinterp.fradiation_surface.fsfc_diff.f dcyc2.pre.rad.f idea_o2_o3.f ozne_def.fradiation_surface_gfs.fsfc_drv.f efield.fidea_phys.fozphys.fradiation_surface_nmmb.fsfc_land.f funcphys.fidea_solar_heating.fphyscons.frad_initialize.fsfc_nst.f gbphys.fidea_tracer.fphysparam.frad_initialize_nmmb.fsfc_ocean.f get_prs.fiounitdef.fphyspara_nmmb.fradlw_datatb.fsfc_sice.f gfs_phy_tracer_config.flrgsclr.fprecpd.fradlw_datatb_nmmb.fsfcsub.f gocart_tracer_config.fmachine.fprecpd_nmmb.fradlw_main.fsflx.f gocart_tracer_config_stub.fmersenne_twister.f progt2.f radlw_main_nmmb.fshalcnv.f grrad.fmodule_bfmicrophysics.fprogtm_module.fradlw_param.f shalcv_1lyr.f grrad_gfs.fmodule_nst_model.fradiation_aerosols.fradlw_param_nmmb.fshalcv.f grrad_nmmb.fmodule_nst_parameters.fradiation_aerosols_gfs.fradsw_datatb.fshalcv_fixdp.f gscond.fmodule_nst_water_prop.fradiation_aerosols_nmmb.fradsw_datatb_nmmb.fshalcv_opr.f gsmddrive.f moninp1.f radiation_astronomy.fradsw_main.ftracer_const_h.f gwdc.fmoninp.fradiation_astronomy_gfs.fradsw_main_nmmb.f tridi2t3.f gwdps.f moninq1.f radiation_astronomy_nmmb.fradsw_param.f h2oc.f moninq.fradiation_clouds.fradsw_param_nmmb.f h2ohdc.f mstadb.fradiation_clouds_gfs.f rascnvv2.f *_nmmb.f files – all but precpd_nmmb.f are related to RRTM radiation in the NMMB grrad_nmmb.fradiation_aerosols_nmmb.fradiation_gases_nmmb.fradlw_datatb_nmmb.fradsw_datatb_nmmb.f physpara_nmmb.fradiation_astronomy_nmmb.fradiation_surface_nmmb.fradlw_main_nmmb.fradsw_main_nmmb.f precpd_nmmb.fradiation_clouds_nmmb.frad_initialize_nmmb.fradlw_param_nmmb.fradsw_param_nmmb.f NMMB Tutorial: Physics

  33. Sequence of Physics Callsin Model Solver nmm/module_SOLVER_GRID_COMP.F90

  34. Physics Calls in Solver_Run(1 of 2) SUBROUTINE SOLVER_RUN in module_SOLVER_GRID_COMP.F90 • MAX_FIELDS (_HR, _W6) – maximum hourly severe WX fields • UPDATE_WATER – couple/synchronize WATER(:,:,:,P_Qx) [ => TRACERS(:,:,:,P_Qx) ] arrays with 3D CWM, F_ice, F_rain, F_RimeF (“ferrier”) arrays • CALL READPCP – Read input precipobs, NDAS precipitation assimilation • CALL TIME_MEASURE – time fields for GFDL radiation (NTIMESTEP_RAD=NTIMESTEP+1) • RADIATION + various ESMF calls for time fields (controlled by nrads=nradl) • RDTEMP – update T from radiative temperature tendencies (RSWTT, RLWTT) • SWAPHN, POLEHN – exchange across E-W boundary & poles (global NMMB) => Reset to 0 radiation & land sfc accumulators (“buckets”), controlled by nhrs_xxx • Turbulence branch (controlled by nphs): • TURBL – sfc layer, land surface, PBL, GWD+MB) • HALO_EXCH – halo exchanges for DUDT, DVDT • H_TO_V_TEND – interpolate from H (mass) to V (velocity) points, update U,V winds • SWAPHN, POLEHN, SWAPWN, POLEWN – exchange across boundaries (global NMMB) NMMB Tutorial: Physics

  35. Physics Calls in Solver_Run (2 of 2) (cont.) => Reset to 0 heating, precipitation, & microphysical process accumulators (nhrs_xxx) • Moist processes branch (controlled by nprecip) • CLTEND (ICTEND=-1) – defines TOLD 3D array • CUCNVC – convection • HALO_EXCH, H_TO_V_TEND • SWAPHN, POLEHN, SWAPWN, POLEWN – exchange across boundaries (global NMMB) • GSMDRIVE – microphysics • CLTEND (ICTEND=0) – Calculates cloud (Cu+micro) temperature tendencies (Tadj) • CHKSNOW, ADJPPT – NDAS precipitation assimilation • SWAPHN, POLEHN – Q, CW … include WATER(:,:,:,P_Qx) for other schemes? • HALO_EXCH – halo exchanges for Q, CW • CLTEND (ICLTEND=1) – update T from cloud temperature tendencies (Tadj) • SWAPHN, POLEHN – exchange T across boundaries (global) • HALO_EXCH – halo exchanges for T, WATER(:,:,:,P_Qx) NMMB Tutorial: Physics

More Related