Download presentation
Presentation is loading. Please wait.
Published byRosamund Reynolds Modified over 10 years ago
1
Model Physics / Porting Physics to the NMMB NEMS-NMMB Tutorial 19 February 2014 Brad Ferrier, Dusan Jovic, & 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 (sl 5,7) – Gravity wave drag + mountain blocking (sl 6-7) – Land surface schemes (sl 8-9) – Convection (sl 10-11, 16) and microphysics (sl 12-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) 2/19/2014NMMB Tutorial: Physics2
3
Radiation Options “GFDL” radiation (phys/module_RA_GFDL.F90) – Lacis & Hansen shortwave (SW), Fels & Schwartzkopf (LW) – Prescribed ozone & CO 2 – 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) & CO 2, O2, and various trace gases – Bilinear interpolation from 5 o 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) 2/19/2014NMMB Tutorial: Physics3
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=nradl and set so that radiation is called at times corresponding with output (e.g. top of the hour) 2/19/2014NMMB Tutorial: Physics4
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) – 1 st 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) 2/19/2014NMMB Tutorial: Physics5
6
Gravity Wave Drag (GWD) and Mountain Blocking (+MB) GWD+MB (nmm/module_GWD.F90) – Provided from GFS (Jordan Alpert & Shrinivas Moorthi) – 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 4 th 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 2/19/2014NMMB Tutorial: Physics6
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*Z std (Z std =std dev 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 2/19/2014NMMB Tutorial: Physics7
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 2/19/2014NMMB Tutorial: Physics8
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 (sfc layer + PBL), and GWD+MB 2/19/2014NMMB Tutorial: Physics9
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 2/19/2014NMMB Tutorial: Physics10
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) 2/19/2014NMMB Tutorial: Physics11
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) 2/19/2014NMMB Tutorial: Physics12
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 > RH crit (=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 2/19/2014NMMB Tutorial: Physics13
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 2/19/2014NMMB Tutorial: Physics14
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 2/19/2014NMMB Tutorial: Physics15
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. 2/19/2014NMMB Tutorial: Physics16
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 2/19/2014NMMB Tutorial: Physics17
18
Flowcharts of Physics Codes With Respect to NMMB Solver 2/19/2014NMMB Tutorial: Physics18
19
Flowchart for Radiation & Convection nmm/module_SOLVER_GRID_COMP.F90 nmm/ module_RADIATION.F90 phys/ module_RA_GFDL.F90 phys/ module_RA_RRTM.F90 (calls *_nmmb.f) nmm/ module_CONVECTION.F90 phys/ module_CU_BMJ.F90 phys/ module_CU_SAS.F90 2/19/2014NMMB Tutorial: Physics19
20
Flowchart for Microphysics nmm/module_SOLVER_GRID_COMP.F90 nmm/module_MICROPHYSICS.F90 phys/ module_MP_ ETANEW.F90 phys/ module_MP_ FER_HIRES.F90 phys/ Module_MP_GFS.F90 phys/ module_MP_WSM6.F90 phys/ module_mp_THOMPSON.F90 module_mp_radar.F90 Other Physics 2/19/2014NMMB Tutorial: Physics20
21
Flowchart for Turbulence, etc. nmm/module_SOLVER_GRID_COMP.F90 nmm/module_TURBULENCE.F90 phys/module_LS_NOAHLSM.F90 phys/module_LS_LISS.F90phys/module_SF_JSFC.F90phys/module_BL_MYJPBL.F90phys/module_BL_GFSPBL.F90 OR GWD + MB (optional) nmm/module_GWD.F90 Surface Layer Land Surface PBL 2/19/2014NMMB Tutorial: Physics21
22
Adding a New Array e.g. 2D snow cover (SNOWC array) and MODIS albedo flag (ialbsrc)
23
List of Codes To Change /nmm directory 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)' 2/19/2014NMMB Tutorial: Physics23
24
Adding a configure file variable (1 of 2) ! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 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) module_GET_CONFIG.F90 [ ialbsrc:.true. # MODIS albedos (=true), Matthews albedos (=false) ] 2/19/2014NMMB Tutorial: Physics24
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' 2/19/2014NMMB Tutorial: Physics25 ialbsrc:.true. # MODIS albedos (=true), Matthews albedos (=false) Added to the configure file
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 2/19/2014NMMB Tutorial: Physics26
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 endif read_blocks ! cold start /restart =>Remember to new array(s) in both locations! 2/19/2014NMMB Tutorial: Physics27
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 endif 2/19/2014NMMB Tutorial: Physics28
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 endif 2/19/2014NMMB Tutorial: Physics29
30
Other Steps (as in Dusan’s presentation) module_SOLVER_INTERNAL_STATE.F90 module_SOLVER_GRID_COMP.F90 SUBROUTINE SOLVER_INITIALIZE... int_state%SNOWC(I,J) = 0.... SUBROUTINE SOLVER_RUN... CALL RADIATION (, int_state%SNOWC, )... CALL TURBL(, int_state%SNOWC, ) REAL(kind=KFPT),DIMENSION(:,:),POINTER ::, SNOWC,... CALL SET_VAR_PTR(int_state%VARS,NV,'SNOWC',int_state%SNOWC,(/ IMS,JMS /),(IME,JME /) ) 2/19/2014NMMB Tutorial: Physics30
31
Renamed Output Fields 2/19/2014NMMB Tutorial: Physics31 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 1 st domain: nmmb_hst_01_nio_0003h_00m_00.00s nmmb_hst_01_nio_0003h_00m_00.00s.ctl Most array names are the same as in solver_state.txt, except for: 1.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 2.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. a.“W” in model is part of the full vertical velocity, written as “w” to the history file and “vvel” in the restart file. b.“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).
32
RRTM & GFS Codes in /phys *.f files (compiled in –r8) calpreciptype.f ideaca.f mstadbtn2.f radiation_clouds_nmmb.f sascnv.f cnvc90.f idea_co2.f mstadbtn.f radiation_gases.f sascnvn.f co2hc.f idea_dissipation.f mstcnv.f radiation_gases_gfs.f set_soilveg.f date_def.f idea_h2o.f namelist_soilveg.f radiation_gases_nmmb.f sfc_diag.f dcyc2.f idea_ion.f ozinterp.f radiation_surface.f sfc_diff.f dcyc2.pre.rad.f idea_o2_o3.f ozne_def.f radiation_surface_gfs.f sfc_drv.f efield.f idea_phys.f ozphys.f radiation_surface_nmmb.f sfc_land.f funcphys.f idea_solar_heating.f physcons.f rad_initialize.f sfc_nst.f gbphys.f idea_tracer.f physparam.f rad_initialize_nmmb.f sfc_ocean.f get_prs.f iounitdef.f physpara_nmmb.f radlw_datatb.f sfc_sice.f gfs_phy_tracer_config.f lrgsclr.f precpd.f radlw_datatb_nmmb.f sfcsub.f gocart_tracer_config.f machine.f precpd_nmmb.f radlw_main.f sflx.f gocart_tracer_config_stub.f mersenne_twister.f progt2.f radlw_main_nmmb.f shalcnv.f grrad.f module_bfmicrophysics.f progtm_module.f radlw_param.f shalcv_1lyr.f grrad_gfs.f module_nst_model.f radiation_aerosols.f radlw_param_nmmb.f shalcv.f grrad_nmmb.f module_nst_parameters.f radiation_aerosols_gfs.f radsw_datatb.f shalcv_fixdp.f gscond.f module_nst_water_prop.f radiation_aerosols_nmmb.f radsw_datatb_nmmb.f shalcv_opr.f gsmddrive.f moninp1.f radiation_astronomy.f radsw_main.f tracer_const_h.f gwdc.f moninp.f radiation_astronomy_gfs.f radsw_main_nmmb.f tridi2t3.f gwdps.f moninq1.f radiation_astronomy_nmmb.f radsw_param.f h2oc.f moninq.f radiation_clouds.f radsw_param_nmmb.f h2ohdc.f mstadb.f radiation_clouds_gfs.f rascnvv2.f *_nmmb.f files – all but precpd_nmmb.f are related to RRTM radiation in the NMMB grrad_nmmb.f radiation_aerosols_nmmb.f radiation_gases_nmmb.f radlw_datatb_nmmb.f radsw_datatb_nmmb.f physpara_nmmb.f radiation_astronomy_nmmb.f radiation_surface_nmmb.f radlw_main_nmmb.f radsw_main_nmmb.f precpd_nmmb.f radiation_clouds_nmmb.f rad_initialize_nmmb.f radlw_param_nmmb.f radsw_param_nmmb.f 2/19/2014NMMB Tutorial: Physics32
33
Sequence of Physics Calls in 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 precip obs, 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) 2/19/2014NMMB Tutorial: Physics34
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) 2/19/2014NMMB Tutorial: Physics35
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.