!STARTOFREGISTRYGENERATEDINCLUDE 'inc/allocs_23.F' ! ! WARNING This file is generated automatically by use_registry ! using the data base in the file named Registry. ! Do not edit. Your changes to this file will be lost. ! SUBROUTINE allocs_23( grid, id, setinitval_in , tl_in , inter_domain_in , okay_to_alloc_in, num_bytes_allocated , & sd31, ed31, sd32, ed32, sd33, ed33, & sm31 , em31 , sm32 , em32 , sm33 , em33 , & sp31 , ep31 , sp32 , ep32 , sp33 , ep33 , & sp31x, ep31x, sp32x, ep32x, sp33x, ep33x, & sp31y, ep31y, sp32y, ep32y, sp33y, ep33y, & sm31x, em31x, sm32x, em32x, sm33x, em33x, & sm31y, em31y, sm32y, em32y, sm33y, em33y ) USE module_domain_type USE module_configure, ONLY : model_config_rec, grid_config_rec_type, in_use_for_config, model_to_grid_config_rec USE module_scalar_tables ! this includes module_state_description too IMPLICIT NONE ! Input data. TYPE(domain) , POINTER :: grid INTEGER , INTENT(IN) :: id INTEGER , INTENT(IN) :: setinitval_in ! 3 = everything, 1 = arrays only, 0 = none INTEGER , INTENT(IN) :: sd31, ed31, sd32, ed32, sd33, ed33 INTEGER , INTENT(IN) :: sm31, em31, sm32, em32, sm33, em33 INTEGER , INTENT(IN) :: sp31, ep31, sp32, ep32, sp33, ep33 INTEGER , INTENT(IN) :: sp31x, ep31x, sp32x, ep32x, sp33x, ep33x INTEGER , INTENT(IN) :: sp31y, ep31y, sp32y, ep32y, sp33y, ep33y INTEGER , INTENT(IN) :: sm31x, em31x, sm32x, em32x, sm33x, em33x INTEGER , INTENT(IN) :: sm31y, em31y, sm32y, em32y, sm33y, em33y ! this argument is a bitmask. First bit is time level 1, second is time level 2, and so on. ! e.g. to set both 1st and second time level, use 3 ! to set only 1st use 1 ! to set only 2st use 2 INTEGER , INTENT(IN) :: tl_in ! true if the allocation is for an intermediate domain (for nesting); only certain fields allocated ! false otherwise (all allocated, modulo tl above) LOGICAL , INTENT(IN) :: inter_domain_in, okay_to_alloc_in INTEGER(KIND=8) , INTENT(INOUT) :: num_bytes_allocated ! Local data. INTEGER idum1, idum2, spec_bdy_width REAL initial_data_value CHARACTER (LEN=256) message INTEGER tl LOGICAL inter_domain, okay_to_alloc INTEGER setinitval INTEGER sr_x, sr_y !declare ierr variable for error checking ALLOCATE calls INTEGER ierr INTEGER :: loop INTEGER(KIND=8) :: nba ! number of bytes allocated per variable CHARACTER(LEN=256) :: message_string ! Local data TYPE ( grid_config_rec_type ) :: config_flags INTEGER :: k_start , k_end, its, ite, jts, jte INTEGER :: ids , ide , jds , jde , kds , kde , & ims , ime , jms , jme , kms , kme , & ips , ipe , jps , jpe , kps , kpe INTEGER :: sids , side , sjds , sjde , skds , skde , & sims , sime , sjms , sjme , skms , skme , & sips , sipe , sjps , sjpe , skps , skpe INTEGER :: imsx, imex, jmsx, jmex, kmsx, kmex, & ipsx, ipex, jpsx, jpex, kpsx, kpex, & imsy, imey, jmsy, jmey, kmsy, kmey, & ipsy, ipey, jpsy, jpey, kpsy, kpey data_ordering : SELECT CASE ( model_data_order ) CASE ( DATA_ORDER_XYZ ) ids = sd31 ; ide = ed31 ; jds = sd32 ; jde = ed32 ; kds = sd33 ; kde = ed33 ; ims = sm31 ; ime = em31 ; jms = sm32 ; jme = em32 ; kms = sm33 ; kme = em33 ; ips = sp31 ; ipe = ep31 ; jps = sp32 ; jpe = ep32 ; kps = sp33 ; kpe = ep33 ; imsx = sm31x ; imex = em31x ; jmsx = sm32x ; jmex = em32x ; kmsx = sm33x ; kmex = em33x ; ipsx = sp31x ; ipex = ep31x ; jpsx = sp32x ; jpex = ep32x ; kpsx = sp33x ; kpex = ep33x ; imsy = sm31y ; imey = em31y ; jmsy = sm32y ; jmey = em32y ; kmsy = sm33y ; kmey = em33y ; ipsy = sp31y ; ipey = ep31y ; jpsy = sp32y ; jpey = ep32y ; kpsy = sp33y ; kpey = ep33y ; CASE ( DATA_ORDER_YXZ ) ids = sd32 ; ide = ed32 ; jds = sd31 ; jde = ed31 ; kds = sd33 ; kde = ed33 ; ims = sm32 ; ime = em32 ; jms = sm31 ; jme = em31 ; kms = sm33 ; kme = em33 ; ips = sp32 ; ipe = ep32 ; jps = sp31 ; jpe = ep31 ; kps = sp33 ; kpe = ep33 ; imsx = sm32x ; imex = em32x ; jmsx = sm31x ; jmex = em31x ; kmsx = sm33x ; kmex = em33x ; ipsx = sp32x ; ipex = ep32x ; jpsx = sp31x ; jpex = ep31x ; kpsx = sp33x ; kpex = ep33x ; imsy = sm32y ; imey = em32y ; jmsy = sm31y ; jmey = em31y ; kmsy = sm33y ; kmey = em33y ; ipsy = sp32y ; ipey = ep32y ; jpsy = sp31y ; jpey = ep31y ; kpsy = sp33y ; kpey = ep33y ; CASE ( DATA_ORDER_ZXY ) ids = sd32 ; ide = ed32 ; jds = sd33 ; jde = ed33 ; kds = sd31 ; kde = ed31 ; ims = sm32 ; ime = em32 ; jms = sm33 ; jme = em33 ; kms = sm31 ; kme = em31 ; ips = sp32 ; ipe = ep32 ; jps = sp33 ; jpe = ep33 ; kps = sp31 ; kpe = ep31 ; imsx = sm32x ; imex = em32x ; jmsx = sm33x ; jmex = em33x ; kmsx = sm31x ; kmex = em31x ; ipsx = sp32x ; ipex = ep32x ; jpsx = sp33x ; jpex = ep33x ; kpsx = sp31x ; kpex = ep31x ; imsy = sm32y ; imey = em32y ; jmsy = sm33y ; jmey = em33y ; kmsy = sm31y ; kmey = em31y ; ipsy = sp32y ; ipey = ep32y ; jpsy = sp33y ; jpey = ep33y ; kpsy = sp31y ; kpey = ep31y ; CASE ( DATA_ORDER_ZYX ) ids = sd33 ; ide = ed33 ; jds = sd32 ; jde = ed32 ; kds = sd31 ; kde = ed31 ; ims = sm33 ; ime = em33 ; jms = sm32 ; jme = em32 ; kms = sm31 ; kme = em31 ; ips = sp33 ; ipe = ep33 ; jps = sp32 ; jpe = ep32 ; kps = sp31 ; kpe = ep31 ; imsx = sm33x ; imex = em33x ; jmsx = sm32x ; jmex = em32x ; kmsx = sm31x ; kmex = em31x ; ipsx = sp33x ; ipex = ep33x ; jpsx = sp32x ; jpex = ep32x ; kpsx = sp31x ; kpex = ep31x ; imsy = sm33y ; imey = em33y ; jmsy = sm32y ; jmey = em32y ; kmsy = sm31y ; kmey = em31y ; ipsy = sp33y ; ipey = ep33y ; jpsy = sp32y ; jpey = ep32y ; kpsy = sp31y ; kpey = ep31y ; CASE ( DATA_ORDER_XZY ) ids = sd31 ; ide = ed31 ; jds = sd33 ; jde = ed33 ; kds = sd32 ; kde = ed32 ; ims = sm31 ; ime = em31 ; jms = sm33 ; jme = em33 ; kms = sm32 ; kme = em32 ; ips = sp31 ; ipe = ep31 ; jps = sp33 ; jpe = ep33 ; kps = sp32 ; kpe = ep32 ; imsx = sm31x ; imex = em31x ; jmsx = sm33x ; jmex = em33x ; kmsx = sm32x ; kmex = em32x ; ipsx = sp31x ; ipex = ep31x ; jpsx = sp33x ; jpex = ep33x ; kpsx = sp32x ; kpex = ep32x ; imsy = sm31y ; imey = em31y ; jmsy = sm33y ; jmey = em33y ; kmsy = sm32y ; kmey = em32y ; ipsy = sp31y ; ipey = ep31y ; jpsy = sp33y ; jpey = ep33y ; kpsy = sp32y ; kpey = ep32y ; CASE ( DATA_ORDER_YZX ) ids = sd33 ; ide = ed33 ; jds = sd31 ; jde = ed31 ; kds = sd32 ; kde = ed32 ; ims = sm33 ; ime = em33 ; jms = sm31 ; jme = em31 ; kms = sm32 ; kme = em32 ; ips = sp33 ; ipe = ep33 ; jps = sp31 ; jpe = ep31 ; kps = sp32 ; kpe = ep32 ; imsx = sm33x ; imex = em33x ; jmsx = sm31x ; jmex = em31x ; kmsx = sm32x ; kmex = em32x ; ipsx = sp33x ; ipex = ep33x ; jpsx = sp31x ; jpex = ep31x ; kpsx = sp32x ; kpex = ep32x ; imsy = sm33y ; imey = em33y ; jmsy = sm31y ; jmey = em31y ; kmsy = sm32y ; kmey = em32y ; ipsy = sp33y ; ipey = ep33y ; jpsy = sp31y ; jpey = ep31y ; kpsy = sp32y ; kpey = ep32y ; END SELECT data_ordering CALL model_to_grid_config_rec ( id , model_config_rec , config_flags ) CALL nl_get_sr_x( id , sr_x ) CALL nl_get_sr_y( id , sr_y ) tl = tl_in inter_domain = inter_domain_in okay_to_alloc = okay_to_alloc_in #ifdef DOUBLE_PRECISION initial_data_value = 0. #else CALL get_initial_data_value ( initial_data_value ) #endif #ifdef NO_INITIAL_DATA_VALUE setinitval = 0 #else setinitval = setinitval_in #endif CALL nl_get_spec_bdy_width( 1, spec_bdy_width ) IF ( setinitval .EQ. 3 ) grid%fire_boundary_guard=0 IF ( setinitval .EQ. 3 ) grid%fire_num_ignitions=0 IF ( setinitval .EQ. 3 ) grid%fire_ignition_ros1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lon1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lat1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lon1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lat1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_radius1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_time1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_time1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_ros2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lon2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lat2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lon2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lat2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_radius2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_time2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_time2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_ros3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lon3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lat3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lon3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lat3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_radius3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_time3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_time3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_ros4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lon4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lat4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lon4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lat4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_radius4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_time4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_time4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_ros5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lon5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_lat5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lon5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_lat5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_radius5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_time5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_time5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_x1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_y1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_x1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_y1=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_x2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_y2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_x2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_y2=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_x3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_y3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_x3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_y3=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_x4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_y4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_x4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_y4=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_x5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_start_y5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_x5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ignition_end_y5=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_lat_init=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_lon_init=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ign_time=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_shape=0 IF ( setinitval .EQ. 3 ) grid%fire_sprd_mdl=0 IF ( setinitval .EQ. 3 ) grid%fire_crwn_hgt=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ext_grnd=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_ext_crwn=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_sfc_flx=0 IF ( setinitval .EQ. 3 ) grid%fire_heat_peak=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_tg_ub=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_smk_scheme=0 IF ( setinitval .EQ. 3 ) grid%fire_smk_peak=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_smk_ext=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_wind_height=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_fuel_read=0 IF ( setinitval .EQ. 3 ) grid%fire_fuel_cat=0 IF ( setinitval .EQ. 3 ) grid%fire_fmc_read=0 IF ( setinitval .EQ. 3 ) grid%fire_print_msg=0 IF ( setinitval .EQ. 3 ) grid%fire_print_file=0 IF ( setinitval .EQ. 3 ) grid%fire_fuel_left_method=0 IF ( setinitval .EQ. 3 ) grid%fire_fuel_left_irl=0 IF ( setinitval .EQ. 3 ) grid%fire_fuel_left_jrl=0 IF ( setinitval .EQ. 3 ) grid%fire_grows_only=0 IF ( setinitval .EQ. 3 ) grid%fire_upwinding=0 IF ( setinitval .EQ. 3 ) grid%fire_upwind_split=0 IF ( setinitval .EQ. 3 ) grid%fire_viscosity=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_lfn_ext_up=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_topo_from_atm=0 IF ( setinitval .EQ. 3 ) grid%fire_advection=0 IF ( setinitval .EQ. 3 ) grid%fire_test_steps=0 IF ( setinitval .EQ. 3 ) grid%fire_const_time=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_const_grnhfx=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_const_grnqfx=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_atm_feedback=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_mountain_type=0 IF ( setinitval .EQ. 3 ) grid%fire_mountain_height=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_mountain_start_x=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_mountain_start_y=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_mountain_end_x=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_mountain_end_y=initial_data_value IF ( setinitval .EQ. 3 ) grid%delt_perturbation=initial_data_value IF ( setinitval .EQ. 3 ) grid%xrad_perturbation=initial_data_value IF ( setinitval .EQ. 3 ) grid%yrad_perturbation=initial_data_value IF ( setinitval .EQ. 3 ) grid%zrad_perturbation=initial_data_value IF ( setinitval .EQ. 3 ) grid%hght_perturbation=initial_data_value IF ( setinitval .EQ. 3 ) grid%stretch_grd=.FALSE. IF ( setinitval .EQ. 3 ) grid%stretch_hyp=.FALSE. IF ( setinitval .EQ. 3 ) grid%z_grd_scale=initial_data_value IF ( setinitval .EQ. 3 ) grid%sfc_full_init=.FALSE. IF ( setinitval .EQ. 3 ) grid%sfc_lu_index=0 IF ( setinitval .EQ. 3 ) grid%sfc_tsk=initial_data_value IF ( setinitval .EQ. 3 ) grid%sfc_tmn=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_read_lu=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_read_tsk=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_read_tmn=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_read_atm_ht=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_read_fire_ht=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_read_atm_grad=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_read_fire_grad=.FALSE. IF ( setinitval .EQ. 3 ) grid%sfc_vegfra=initial_data_value IF ( setinitval .EQ. 3 ) grid%sfc_canwat=initial_data_value IF ( setinitval .EQ. 3 ) grid%sfc_ivgtyp=0 IF ( setinitval .EQ. 3 ) grid%sfc_isltyp=0 IF ( setinitval .EQ. 3 ) grid%fire_lsm_reinit=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_lsm_reinit_iter=0 IF ( setinitval .EQ. 3 ) grid%fire_upwinding_reinit=0 IF ( setinitval .EQ. 3 ) grid%fire_is_real_perim=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_lsm_band_ngp=0 IF ( setinitval .EQ. 3 ) grid%fire_lsm_zcoupling=.FALSE. IF ( setinitval .EQ. 3 ) grid%fire_lsm_zcoupling_ref=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_tracer_smoke=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_viscosity_bg=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_viscosity_band=initial_data_value IF ( setinitval .EQ. 3 ) grid%fire_viscosity_ngp=0 IF ( setinitval .EQ. 3 ) grid%fire_slope_factor=initial_data_value IF(okay_to_alloc.AND.in_use_for_config(id,'tracer'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1)*num_tracer)) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1)*num_tracer)) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tracer: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tracer(sm31:em31,sm32:em32,sm33:em33,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer(sm31:em31,sm32:em32,sm33:em33,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer=initial_data_value IF (.NOT.grid%is_intermediate) THEN ALLOCATE( grid%tail_statevars%next ) grid%tail_statevars => grid%tail_statevars%next NULLIFY( grid%tail_statevars%next ) grid%tail_statevars%VarName = 'tracer' grid%tail_statevars%DataName = 'TRACER' grid%tail_statevars%Description = '-' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 4 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .TRUE. grid%tail_statevars%rfield_4d => grid%tracer grid%tail_statevars%num_table => tracer_num_table grid%tail_statevars%index_table => tracer_index_table grid%tail_statevars%boundary_table => tracer_boundary_table grid%tail_statevars%dname_table => tracer_dname_table grid%tail_statevars%desc_table => tracer_desc_table grid%tail_statevars%units_table => tracer_units_table grid%tail_statevars%streams_table => tracer_streams_table grid%tail_statevars%streams(1) = 33554433 ! 02000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = kds grid%tail_statevars%ed2 = (kde-1) grid%tail_statevars%sd3 = jds grid%tail_statevars%ed3 = (jde-1) grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = kms grid%tail_statevars%em2 = kme grid%tail_statevars%sm3 = jms grid%tail_statevars%em3 = jme grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = kps grid%tail_statevars%ep2 = MIN( (kde-1), kpe ) grid%tail_statevars%sp3 = jps grid%tail_statevars%ep3 = MIN( (jde-1), jpe ) grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'bottom_top' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tracer(1,1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer(1,1,1,1). ') endif ENDIF IF(.TRUE..AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & (((em33-sm33+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_bxs(sm33:em33,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bxs(sm33:em33,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_bxs=initial_data_value num_bytes_allocated = num_bytes_allocated + & (((em33-sm33+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_bxe(sm33:em33,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bxe(sm33:em33,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_bxe=initial_data_value num_bytes_allocated = num_bytes_allocated + & (((em31-sm31+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_bys(sm31:em31,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bys(sm31:em31,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_bys=initial_data_value num_bytes_allocated = num_bytes_allocated + & (((em31-sm31+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_bye(sm31:em31,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bye(sm31:em31,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_bye=initial_data_value ELSE ALLOCATE(grid%tracer_bxs(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bxs(1,1,1,num_tracer). ') endif ALLOCATE(grid%tracer_bxe(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bxe(1,1,1,num_tracer). ') endif ALLOCATE(grid%tracer_bys(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bys(1,1,1,num_tracer). ') endif ALLOCATE(grid%tracer_bye(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_bye(1,1,1,num_tracer). ') endif ENDIF IF(.TRUE..AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & (((em33-sm33+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_btxs(sm33:em33,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btxs(sm33:em33,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_btxs=initial_data_value num_bytes_allocated = num_bytes_allocated + & (((em33-sm33+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_btxe(sm33:em33,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btxe(sm33:em33,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_btxe=initial_data_value num_bytes_allocated = num_bytes_allocated + & (((em31-sm31+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_btys(sm31:em31,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btys(sm31:em31,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_btys=initial_data_value num_bytes_allocated = num_bytes_allocated + & (((em31-sm31+1)*(em32-sm32+1)*(spec_bdy_width)*num_tracer)) * RWORDSIZE ALLOCATE(grid%tracer_btye(sm31:em31,sm32:em32,spec_bdy_width,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btye(sm31:em31,sm32:em32,spec_bdy_width,num_tracer). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tracer_btye=initial_data_value ELSE ALLOCATE(grid%tracer_btxs(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btxs(1,1,1,num_tracer). ') endif ALLOCATE(grid%tracer_btxe(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btxe(1,1,1,num_tracer). ') endif ALLOCATE(grid%tracer_btys(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btys(1,1,1,num_tracer). ') endif ALLOCATE(grid%tracer_btye(1,1,1,num_tracer),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tracer_btye(1,1,1,num_tracer). ') endif ENDIF IF ( setinitval .EQ. 3 ) grid%fs_array_maxsize=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_lim=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_dt=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_levels=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_maxhgt=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_levrand=.FALSE. IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_levrand_seed=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_mom3d_dt=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_prop_diam=initial_data_value IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_prop_effd=initial_data_value IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_prop_temp=initial_data_value IF ( setinitval .EQ. 3 ) grid%fs_firebrand_gen_prop_tvel=initial_data_value IF ( setinitval .EQ. 3 ) grid%fs_firebrand_dens=initial_data_value IF ( setinitval .EQ. 3 ) grid%fs_firebrand_dens_char=initial_data_value IF ( setinitval .EQ. 3 ) grid%fs_firebrand_max_life_dt=0 IF ( setinitval .EQ. 3 ) grid%fs_firebrand_land_hgt=initial_data_value END SUBROUTINE allocs_23