!STARTOFREGISTRYGENERATEDINCLUDE 'inc/allocs_3.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_3( 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(okay_to_alloc.AND.in_use_for_config(id,'acgrdflx'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'acgrdflx: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%acgrdflx(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acgrdflx(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%acgrdflx=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 = 'acgrdflx' grid%tail_statevars%DataName = 'ACGRDFLX' grid%tail_statevars%Description = 'ACCUMULATED GROUND HEAT FLUX' grid%tail_statevars%Units = 'J m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%acgrdflx grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%acgrdflx(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acgrdflx(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfcexc').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfcexc: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfcexc(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfcexc(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfcexc=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 = 'sfcexc' grid%tail_statevars%DataName = 'SFCEXC ' grid%tail_statevars%Description = 'SURFACE EXCHANGE COEFFICIENT' grid%tail_statevars%Units = 'm s-1' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%sfcexc grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%sfcexc(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfcexc(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'acsnow'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'acsnow: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%acsnow(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acsnow(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%acsnow=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 = 'acsnow' grid%tail_statevars%DataName = 'ACSNOW' grid%tail_statevars%Description = 'ACCUMULATED SNOW' grid%tail_statevars%Units = 'kg m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%acsnow grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%acsnow(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acsnow(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'acrunoff'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'acrunoff: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%acrunoff(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acrunoff(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%acrunoff=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 = 'acrunoff' grid%tail_statevars%DataName = 'ACRUNOFF' grid%tail_statevars%Description = 'ACCUMULATED RUNOFF' grid%tail_statevars%Units = 'kg m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%acrunoff 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 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%acrunoff(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acrunoff(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'acsnom'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'acsnom: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%acsnom(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acsnom(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%acsnom=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 = 'acsnom' grid%tail_statevars%DataName = 'ACSNOM' grid%tail_statevars%Description = 'ACCUMULATED MELTED SNOW' grid%tail_statevars%Units = 'kg m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%acsnom grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%acsnom(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%acsnom(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'snow'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'snow: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%snow(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%snow(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%snow=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 = 'snow' grid%tail_statevars%DataName = 'SNOW' grid%tail_statevars%Description = 'SNOW WATER EQUIVALENT' grid%tail_statevars%Units = 'kg m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%snow grid%tail_statevars%streams(1) = 234881025 ! 0e000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%snow(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%snow(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'snowh'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'snowh: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%snowh(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%snowh(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%snowh=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 = 'snowh' grid%tail_statevars%DataName = 'SNOWH' grid%tail_statevars%Description = 'PHYSICAL SNOW DEPTH' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%snowh grid%tail_statevars%streams(1) = 234881025 ! 0e000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%snowh(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%snowh(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'canwat'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'canwat: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%canwat(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%canwat(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%canwat=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 = 'canwat' grid%tail_statevars%DataName = 'CANWAT' grid%tail_statevars%Description = 'CANOPY WATER' grid%tail_statevars%Units = 'kg m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%canwat grid%tail_statevars%streams(1) = 234881025 ! 0e000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%canwat(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%canwat(1,1). ') endif ENDIF 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'ifndsnowh' grid%tail_statevars%DataName = 'FNDSNOWH' grid%tail_statevars%Description = 'SNOWH_LOGICAL' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'i' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%ifield_0d => grid%ifndsnowh grid%tail_statevars%streams(1) = 33554432 ! 02000000 grid%tail_statevars%streams(2) = 0 ! 00000000 ENDIF IF ( setinitval .EQ. 3 ) grid%ifndsnowh=0 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'ifndsoilw' grid%tail_statevars%DataName = 'FNDSOILW' grid%tail_statevars%Description = 'SOILW_LOGICAL' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'i' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%ifield_0d => grid%ifndsoilw grid%tail_statevars%streams(1) = 33554432 ! 02000000 grid%tail_statevars%streams(2) = 0 ! 00000000 ENDIF IF ( setinitval .EQ. 3 ) grid%ifndsoilw=0 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'ifndalbsi' grid%tail_statevars%DataName = 'FNDALBSI' grid%tail_statevars%Description = 'ALBSI_LOGICAL' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'i' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%ifield_0d => grid%ifndalbsi grid%tail_statevars%streams(1) = 33554432 ! 02000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 ENDIF IF ( setinitval .EQ. 3 ) grid%ifndalbsi=0 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'ifndsnowsi' grid%tail_statevars%DataName = 'FNDSNOWSI' grid%tail_statevars%Description = 'SNOWSI_LOGICAL' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'i' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%ifield_0d => grid%ifndsnowsi grid%tail_statevars%streams(1) = 33554432 ! 02000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 ENDIF IF ( setinitval .EQ. 3 ) grid%ifndsnowsi=0 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'ifndicedepth' grid%tail_statevars%DataName = 'FNDICEDEPTH' grid%tail_statevars%Description = 'ICEDEPTH_LOGICAL' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'i' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%ifield_0d => grid%ifndicedepth grid%tail_statevars%streams(1) = 33554432 ! 02000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 ENDIF IF ( setinitval .EQ. 3 ) grid%ifndicedepth=0 IF(okay_to_alloc.AND.in_use_for_config(id,'xlaidyn').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'xlaidyn: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%xlaidyn(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xlaidyn(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%xlaidyn=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 = 'xlaidyn' grid%tail_statevars%DataName = 'XLAIDYN' grid%tail_statevars%Description = 'Noah Dynamic LEAF AREA INDEX' grid%tail_statevars%Units = 'm-2/m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%xlaidyn grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 0 ! 00000000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%xlaidyn(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xlaidyn(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sstsk'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sstsk: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sstsk(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sstsk(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sstsk=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 = 'sstsk' grid%tail_statevars%DataName = 'SSTSK' grid%tail_statevars%Description = 'SKIN SEA SURFACE TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%sstsk grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%sstsk(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sstsk(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lake_depth'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lake_depth: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lake_depth(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lake_depth(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lake_depth=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 = 'lake_depth' grid%tail_statevars%DataName = 'LAKE_DEPTH' grid%tail_statevars%Description = 'lake depth' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%lake_depth grid%tail_statevars%streams(1) = 234881024 ! 0e000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%lake_depth(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lake_depth(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'water_depth'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'water_depth: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%water_depth(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%water_depth(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%water_depth=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 = 'water_depth' grid%tail_statevars%DataName = 'WATER_DEPTH' grid%tail_statevars%Description = 'global water depth' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%water_depth 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 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%water_depth(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%water_depth(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dtw').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dtw: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dtw(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dtw(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dtw=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 = 'dtw' grid%tail_statevars%DataName = 'DTW' grid%tail_statevars%Description = 'WARM LAYER TEMP DIFF' grid%tail_statevars%Units = 'C' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%dtw grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%dtw(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dtw(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'uoce'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'uoce: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%uoce(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%uoce(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%uoce=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 = 'uoce' grid%tail_statevars%DataName = 'UOCE' grid%tail_statevars%Description = 'SEA SURFACE ZONAL CURRENTS' grid%tail_statevars%Units = 'm s-1' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%uoce grid%tail_statevars%streams(1) = 771751936 ! 2e000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%uoce(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%uoce(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'voce'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'voce: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%voce(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%voce(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%voce=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 = 'voce' grid%tail_statevars%DataName = 'VOCE' grid%tail_statevars%Description = 'SEA SURFACE MERIDIONAL CURRENTS' grid%tail_statevars%Units = 'm s-1' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%voce grid%tail_statevars%streams(1) = 771751936 ! 2e000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%voce(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%voce(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'hcoeff').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((model_config_rec%dfi_time_dim)-(1)+1))) * RWORDSIZE nba = & ((((model_config_rec%dfi_time_dim)-(1)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'hcoeff: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%hcoeff(1:model_config_rec%dfi_time_dim),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%hcoeff(1:model_config_rec%dfi_time_dim). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%hcoeff=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 = 'hcoeff' grid%tail_statevars%DataName = 'HCOEFF' grid%tail_statevars%Description = 'initialization weights' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'C' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 1 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_1d => grid%hcoeff grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 0 ! 00000000 grid%tail_statevars%sd1 = 1 grid%tail_statevars%ed1 = config_flags%dfi_time_dim grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = 1 grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = 1 grid%tail_statevars%em1 = config_flags%dfi_time_dim grid%tail_statevars%sm2 = 1 grid%tail_statevars%em2 = 1 grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = 1 grid%tail_statevars%ep1 = config_flags%dfi_time_dim grid%tail_statevars%sp2 = 1 grid%tail_statevars%ep2 = 1 grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%dimname1 = '' grid%tail_statevars%dimname2 = '' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%hcoeff(1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%hcoeff(1). ') endif ENDIF 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'hcoeff_tot' grid%tail_statevars%DataName = 'HCOEFF_TOT' grid%tail_statevars%Description = 'initialization weights' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'r' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_0d => grid%hcoeff_tot grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 0 ! 00000000 ENDIF IF ( setinitval .EQ. 3 ) grid%hcoeff_tot=initial_data_value IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_p').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_p: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_p(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_p(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_p=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 = 'dfi_p' grid%tail_statevars%DataName = 'P_DFI' grid%tail_statevars%Description = 'perturbation pressure' grid%tail_statevars%Units = 'Pa' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_p grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_p(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_p(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_al').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_al: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_al(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_al(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_al=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 = 'dfi_al' grid%tail_statevars%DataName = 'AL_DFI' grid%tail_statevars%Description = 'inverse perturbation density' grid%tail_statevars%Units = 'm3 kg-1' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_al grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_al(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_al(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_mu').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_mu: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_mu(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_mu(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_mu=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 = 'dfi_mu' grid%tail_statevars%DataName = 'MU_DFI' grid%tail_statevars%Description = 'perturbation dry air mass in column' grid%tail_statevars%Units = 'Pa' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%dfi_mu grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%dfi_mu(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_mu(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_phb').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_phb: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_phb(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_phb(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_phb=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 = 'dfi_phb' grid%tail_statevars%DataName = 'PHB_DFI' grid%tail_statevars%Description = 'base-state geopotential' grid%tail_statevars%Units = 'm2 s-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_phb grid%tail_statevars%streams(1) = 0 ! 00000000 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 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, 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_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_phb(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_phb(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_ph0').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_ph0: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_ph0(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_ph0(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_ph0=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 = 'dfi_ph0' grid%tail_statevars%DataName = 'PH0_DFI' grid%tail_statevars%Description = 'initial geopotential' grid%tail_statevars%Units = 'm2 s-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_ph0 grid%tail_statevars%streams(1) = 0 ! 00000000 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 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, 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_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_ph0(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_ph0(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_php').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_php: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_php(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_php(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_php=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 = 'dfi_php' grid%tail_statevars%DataName = 'PHP_DFI' grid%tail_statevars%Description = 'geopotential' grid%tail_statevars%Units = 'm2 s-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_php grid%tail_statevars%streams(1) = 0 ! 00000000 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 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, 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_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_php(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_php(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_u').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_u: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_u(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_u(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_u=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 = 'dfi_u' grid%tail_statevars%DataName = 'U_DFI' grid%tail_statevars%Description = 'u accumulation array' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_u grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_u(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_u(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_v').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_v: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_v(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_v(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_v=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 = 'dfi_v' grid%tail_statevars%DataName = 'V_DFI' grid%tail_statevars%Description = 'v accumulation array' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_v grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_v(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_v(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_w').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_w: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_w(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_w(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_w=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 = 'dfi_w' grid%tail_statevars%DataName = 'W_DFI' grid%tail_statevars%Description = 'w accumulation array' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_w grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_w(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_w(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_ww').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_ww: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_ww(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_ww(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_ww=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 = 'dfi_ww' grid%tail_statevars%DataName = 'WW_DFI' grid%tail_statevars%Description = 'mu-coupled eta-dot' grid%tail_statevars%Units = 'Pa s-1' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_ww grid%tail_statevars%streams(1) = 0 ! 00000000 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 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, 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_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_ww(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_ww(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_t').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_t: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_t(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_t(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_t=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 = 'dfi_t' grid%tail_statevars%DataName = 'TT_DFI' grid%tail_statevars%Description = 't accumulation array' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_t grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_t(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_t(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_rh').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_rh: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_rh(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_rh(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_rh=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 = 'dfi_rh' grid%tail_statevars%DataName = 'RH_DFI' grid%tail_statevars%Description = 'initial relative humidity' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_rh grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_rh(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_rh(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_ph').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_ph: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_ph(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_ph(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_ph=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 = 'dfi_ph' grid%tail_statevars%DataName = 'PH_DFI' grid%tail_statevars%Description = 'p accumulation array' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_ph grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_ph(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_ph(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_pb').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_pb: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_pb(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_pb(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_pb=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 = 'dfi_pb' grid%tail_statevars%DataName = 'PB_DFI' grid%tail_statevars%Description = 'pb accumulation array' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_pb grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_pb(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_pb(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_alt').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_alt: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_alt(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_alt(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_alt=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 = 'dfi_alt' grid%tail_statevars%DataName = 'ALT_DFI' grid%tail_statevars%Description = '1/rho accumulation array' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_alt grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_alt(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_alt(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_tke').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_tke: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_tke(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_tke(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_tke=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 = 'dfi_tke' grid%tail_statevars%DataName = 'TKE_DFI' grid%tail_statevars%Description = 'TURBULENCE KINETIC ENERGY' grid%tail_statevars%Units = 'm2 s-2' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_tke grid%tail_statevars%streams(1) = 0 ! 00000000 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%dfi_tke(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_tke(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_tten_rad').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_tten_rad: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_tten_rad(sm31:em31,sm32:em32,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_tten_rad(sm31:em31,sm32:em32,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_tten_rad=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 = 'dfi_tten_rad' grid%tail_statevars%DataName = 'RAD_TTEN_DFI' grid%tail_statevars%Description = 'RADAR POT. TEMP. TENDENCY' grid%tail_statevars%Units = 'K s-1' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_tten_rad grid%tail_statevars%streams(1) = 33554432 ! 02000000 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%dfi_tten_rad(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_tten_rad(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_tslb').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_tslb: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_tslb(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_tslb(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_tslb=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 = 'dfi_tslb' grid%tail_statevars%DataName = 'TSLB_DFI' grid%tail_statevars%Description = 'SOIL TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_tslb grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_tslb(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_tslb(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_smois').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_smois: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_smois(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_smois(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_smois=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 = 'dfi_smois' grid%tail_statevars%DataName = 'SMOIS_DFI' grid%tail_statevars%Description = 'SOIL MOISTURE' grid%tail_statevars%Units = 'm3 m-3' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_smois grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_smois(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_smois(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_snow').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_snow: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_snow(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_snow(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_snow=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 = 'dfi_snow' grid%tail_statevars%DataName = 'SNOW_DFI' grid%tail_statevars%Description = 'SNOW WATER EQUIVALENT' grid%tail_statevars%Units = 'kg m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%dfi_snow grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%dfi_snow(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_snow(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_snowh').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_snowh: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_snowh(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_snowh(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_snowh=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 = 'dfi_snowh' grid%tail_statevars%DataName = 'SNOWH_DFI' grid%tail_statevars%Description = 'PHYSICAL SNOW DEPTH' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%dfi_snowh grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%dfi_snowh(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_snowh(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_canwat').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_canwat: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_canwat(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_canwat(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_canwat=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 = 'dfi_canwat' grid%tail_statevars%DataName = 'CANWAT_DFI' grid%tail_statevars%Description = 'CANOPY WATER' grid%tail_statevars%Units = 'kg m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%dfi_canwat grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%dfi_canwat(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_canwat(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_smfr3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_smfr3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_smfr3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_smfr3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_smfr3d=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 = 'dfi_smfr3d' grid%tail_statevars%DataName = 'SMFR3D_DFI' grid%tail_statevars%Description = 'SOIL ICE' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_smfr3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_smfr3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_smfr3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dfi_keepfr3dflag').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dfi_keepfr3dflag: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dfi_keepfr3dflag(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_keepfr3dflag(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dfi_keepfr3dflag=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 = 'dfi_keepfr3dflag' grid%tail_statevars%DataName = 'KEEPFR3DFLAG_DFI' grid%tail_statevars%Description = 'FLAG - 1. FROZEN SOIL YES, 0 - NO' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dfi_keepfr3dflag grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dfi_keepfr3dflag(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dfi_keepfr3dflag(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tsk_rural'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tsk_rural: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tsk_rural(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tsk_rural(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tsk_rural=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 = 'tsk_rural' grid%tail_statevars%DataName = 'TSK_RURAL' grid%tail_statevars%Description = 'TSK for rural fraction' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%tsk_rural grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%tsk_rural(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tsk_rural(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tr_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tr_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tr_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tr_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tr_urb2d=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 = 'tr_urb2d' grid%tail_statevars%DataName = 'TR_URB' grid%tail_statevars%Description = 'URBAN ROOF SKIN TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%tr_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%tr_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tr_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tgr_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tgr_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tgr_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgr_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tgr_urb2d=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 = 'tgr_urb2d' grid%tail_statevars%DataName = 'TGR_URB' grid%tail_statevars%Description = 'URBAN GREEN ROOF SKIN TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%tgr_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%tgr_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgr_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tb_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tb_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tb_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tb_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tb_urb2d=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 = 'tb_urb2d' grid%tail_statevars%DataName = 'TB_URB' grid%tail_statevars%Description = 'URBAN WALL SKIN TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%tb_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%tb_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tb_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tg_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tg_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tg_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tg_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tg_urb2d=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 = 'tg_urb2d' grid%tail_statevars%DataName = 'TG_URB' grid%tail_statevars%Description = 'URBAN ROAD SKIN TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%tg_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%tg_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tg_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tc_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tc_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tc_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tc_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tc_urb2d=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 = 'tc_urb2d' grid%tail_statevars%DataName = 'TC_URB' grid%tail_statevars%Description = 'URBAN CANOPY TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%tc_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%tc_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tc_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'qc_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'qc_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%qc_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qc_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%qc_urb2d=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 = 'qc_urb2d' grid%tail_statevars%DataName = 'QC_URB' grid%tail_statevars%Description = 'URBAN CANOPY HUMIDITY' grid%tail_statevars%Units = 'kg kg{-1}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%qc_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%qc_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qc_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'uc_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'uc_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%uc_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%uc_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%uc_urb2d=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 = 'uc_urb2d' grid%tail_statevars%DataName = 'UC_URB' grid%tail_statevars%Description = 'URBAN CANOPY WIND' grid%tail_statevars%Units = 'm s{-1}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%uc_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%uc_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%uc_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'xxxr_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'xxxr_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%xxxr_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxr_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%xxxr_urb2d=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 = 'xxxr_urb2d' grid%tail_statevars%DataName = 'XXXR_URB' grid%tail_statevars%Description = 'M-O LENGTH ABOVE URBAN ROOF' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%xxxr_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%xxxr_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxr_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'xxxb_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'xxxb_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%xxxb_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxb_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%xxxb_urb2d=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 = 'xxxb_urb2d' grid%tail_statevars%DataName = 'XXXB_URB' grid%tail_statevars%Description = 'M-O LENGTH ABOVE URBAN WALL' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%xxxb_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%xxxb_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxb_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'xxxg_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'xxxg_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%xxxg_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxg_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%xxxg_urb2d=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 = 'xxxg_urb2d' grid%tail_statevars%DataName = 'XXXG_URB' grid%tail_statevars%Description = 'M-O LENGTH ABOVE URBAN ROAD' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%xxxg_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%xxxg_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxg_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'xxxc_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'xxxc_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%xxxc_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxc_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%xxxc_urb2d=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 = 'xxxc_urb2d' grid%tail_statevars%DataName = 'XXXC_URB' grid%tail_statevars%Description = 'M-O LENGTH ABOVE URBAN CANOPY' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%xxxc_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%xxxc_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%xxxc_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'cmcr_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'cmcr_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%cmcr_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmcr_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%cmcr_urb2d=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 = 'cmcr_urb2d' grid%tail_statevars%DataName = 'CMCR_URB' grid%tail_statevars%Description = 'GREEN ROOF CANOPY INTERCAPTED WATER' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%cmcr_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%cmcr_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmcr_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'drelr_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'drelr_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%drelr_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drelr_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%drelr_urb2d=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 = 'drelr_urb2d' grid%tail_statevars%DataName = 'DRELR_URB' grid%tail_statevars%Description = 'WATER HOLDING DEPTH ON ROOF IMPERVIOUS SURFACE' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%drelr_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%drelr_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drelr_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'drelb_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'drelb_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%drelb_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drelb_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%drelb_urb2d=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 = 'drelb_urb2d' grid%tail_statevars%DataName = 'DRELB_URB' grid%tail_statevars%Description = 'WATER HOLDING DEPTH ON WALL IMPERVIOUS SURFACE' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%drelb_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%drelb_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drelb_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'drelg_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'drelg_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%drelg_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drelg_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%drelg_urb2d=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 = 'drelg_urb2d' grid%tail_statevars%DataName = 'DRELG_URB' grid%tail_statevars%Description = 'WATER HOLDING DEPTH ON ROAD IMPERVIOUS SURFACE' grid%tail_statevars%Units = 'm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%drelg_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%drelg_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drelg_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'flxhumr_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'flxhumr_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%flxhumr_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%flxhumr_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%flxhumr_urb2d=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 = 'flxhumr_urb2d' grid%tail_statevars%DataName = 'FLXHUMR_URB' grid%tail_statevars%Description = 'WATER FLUX ON ROOF IMPERVIOUS SURFACE' grid%tail_statevars%Units = 'm/s' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%flxhumr_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%flxhumr_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%flxhumr_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'flxhumb_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'flxhumb_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%flxhumb_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%flxhumb_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%flxhumb_urb2d=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 = 'flxhumb_urb2d' grid%tail_statevars%DataName = 'FLXHUMB_URB' grid%tail_statevars%Description = 'WATER FLUX ON WALL IMPERVIOUS SURFACE' grid%tail_statevars%Units = 'm/s' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%flxhumb_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%flxhumb_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%flxhumb_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'flxhumg_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'flxhumg_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%flxhumg_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%flxhumg_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%flxhumg_urb2d=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 = 'flxhumg_urb2d' grid%tail_statevars%DataName = 'FLXHUMG_URB' grid%tail_statevars%Description = 'WATER FLUX ON ROAD IMPERVIOUS SURFACE' grid%tail_statevars%Units = 'm/s' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%flxhumg_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%flxhumg_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%flxhumg_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tgrl_urb3d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tgrl_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tgrl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgrl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tgrl_urb3d=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 = 'tgrl_urb3d' grid%tail_statevars%DataName = 'TGRL_URB' grid%tail_statevars%Description = 'GREEN ROOF LAYER TEMPERATURE' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tgrl_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tgrl_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgrl_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'smr_urb3d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'smr_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%smr_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%smr_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%smr_urb3d=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 = 'smr_urb3d' grid%tail_statevars%DataName = 'SMR_URB' grid%tail_statevars%Description = 'GREEN ROOF LAYER SOIL MOISTURE' grid%tail_statevars%Units = '-' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%smr_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%smr_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%smr_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'trl_urb3d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'trl_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%trl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%trl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%trl_urb3d=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 = 'trl_urb3d' grid%tail_statevars%DataName = 'TRL_URB' grid%tail_statevars%Description = 'ROOF LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%trl_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%trl_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%trl_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tbl_urb3d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tbl_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tbl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tbl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tbl_urb3d=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 = 'tbl_urb3d' grid%tail_statevars%DataName = 'TBL_URB' grid%tail_statevars%Description = 'WALL LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tbl_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tbl_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tbl_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tgl_urb3d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tgl_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tgl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgl_urb3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tgl_urb3d=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 = 'tgl_urb3d' grid%tail_statevars%DataName = 'TGL_URB' grid%tail_statevars%Description = 'ROAD LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tgl_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tgl_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgl_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sh_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sh_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sh_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sh_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sh_urb2d=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 = 'sh_urb2d' grid%tail_statevars%DataName = 'SH_URB' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%sh_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%sh_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sh_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lh_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lh_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lh_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lh_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lh_urb2d=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 = 'lh_urb2d' grid%tail_statevars%DataName = 'LH_URB' grid%tail_statevars%Description = 'LATENT HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%lh_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%lh_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lh_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'g_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'g_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%g_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%g_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%g_urb2d=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 = 'g_urb2d' grid%tail_statevars%DataName = 'G_URB' grid%tail_statevars%Description = 'GROUND HEAT FLUX INTO URBAN' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%g_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%g_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%g_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'rn_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'rn_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%rn_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%rn_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%rn_urb2d=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 = 'rn_urb2d' grid%tail_statevars%DataName = 'RN_URB' grid%tail_statevars%Description = 'NET RADIATION ON URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%rn_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%rn_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%rn_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'ts_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'ts_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%ts_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ts_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%ts_urb2d=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 = 'ts_urb2d' grid%tail_statevars%DataName = 'TS_URB' grid%tail_statevars%Description = 'SKIN TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%ts_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%ts_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ts_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'frc_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'frc_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%frc_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%frc_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%frc_urb2d=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 = 'frc_urb2d' grid%tail_statevars%DataName = 'FRC_URB2D' grid%tail_statevars%Description = 'URBAN FRACTION' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%frc_urb2d grid%tail_statevars%streams(1) = 234881024 ! 0e000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%frc_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%frc_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'utype_urb2d'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * IWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * IWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'utype_urb2d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%utype_urb2d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%utype_urb2d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%utype_urb2d=0 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 = 'utype_urb2d' grid%tail_statevars%DataName = 'UTYPE_URB' grid%tail_statevars%Description = 'URBAN TYPE' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'i' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%ifield_2d => grid%utype_urb2d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%utype_urb2d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%utype_urb2d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'trb_urb4d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zrd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zrd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'trb_urb4d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%trb_urb4d(sm31:em31,1:model_config_rec%urban_map_zrd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%trb_urb4d(sm31:em31,1:model_config_rec%urban_map_zrd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%trb_urb4d=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 = 'trb_urb4d' grid%tail_statevars%DataName = 'TRB_URB4D' grid%tail_statevars%Description = 'ROOF LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%trb_urb4d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zrd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zrd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zrd 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 = 'urban_map_zrd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%trb_urb4d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%trb_urb4d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tw1_urb4d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zwd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zwd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tw1_urb4d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tw1_urb4d(sm31:em31,1:model_config_rec%urban_map_zwd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw1_urb4d(sm31:em31,1:model_config_rec%urban_map_zwd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tw1_urb4d=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 = 'tw1_urb4d' grid%tail_statevars%DataName = 'TW1_URB4D' grid%tail_statevars%Description = 'WALL LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tw1_urb4d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zwd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zwd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zwd 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 = 'urban_map_zwd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tw1_urb4d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw1_urb4d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tw2_urb4d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zwd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zwd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tw2_urb4d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tw2_urb4d(sm31:em31,1:model_config_rec%urban_map_zwd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw2_urb4d(sm31:em31,1:model_config_rec%urban_map_zwd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tw2_urb4d=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 = 'tw2_urb4d' grid%tail_statevars%DataName = 'TW2_URB4D' grid%tail_statevars%Description = 'WALL LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tw2_urb4d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zwd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zwd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zwd 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 = 'urban_map_zwd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tw2_urb4d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw2_urb4d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tgb_urb4d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_gd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_gd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tgb_urb4d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tgb_urb4d(sm31:em31,1:model_config_rec%urban_map_gd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgb_urb4d(sm31:em31,1:model_config_rec%urban_map_gd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tgb_urb4d=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 = 'tgb_urb4d' grid%tail_statevars%DataName = 'TGB_URB4D' grid%tail_statevars%Description = 'ROAD LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tgb_urb4d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_gd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_gd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_gd 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 = 'urban_map_gd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tgb_urb4d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgb_urb4d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tlev_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_bd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_bd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tlev_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tlev_urb3d(sm31:em31,1:model_config_rec%urban_map_bd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tlev_urb3d(sm31:em31,1:model_config_rec%urban_map_bd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tlev_urb3d=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 = 'tlev_urb3d' grid%tail_statevars%DataName = 'TLEV_URB3D' grid%tail_statevars%Description = 'INDOOR TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tlev_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_bd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_bd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_bd 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 = 'urban_map_bd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tlev_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tlev_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'qlev_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_bd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_bd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'qlev_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%qlev_urb3d(sm31:em31,1:model_config_rec%urban_map_bd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qlev_urb3d(sm31:em31,1:model_config_rec%urban_map_bd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%qlev_urb3d=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 = 'qlev_urb3d' grid%tail_statevars%DataName = 'QLEV_URB3D' grid%tail_statevars%Description = 'SPECIFIC HUMIDITY' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%qlev_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_bd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_bd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_bd 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 = 'urban_map_bd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%qlev_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qlev_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tw1lev_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tw1lev_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tw1lev_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw1lev_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tw1lev_urb3d=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 = 'tw1lev_urb3d' grid%tail_statevars%DataName = 'TW1LEV_URB3D' grid%tail_statevars%Description = 'WINDOW TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tw1lev_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_wd 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 = 'urban_map_wd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tw1lev_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw1lev_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tw2lev_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tw2lev_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tw2lev_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw2lev_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tw2lev_urb3d=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 = 'tw2lev_urb3d' grid%tail_statevars%DataName = 'TW2LEV_URB3D' grid%tail_statevars%Description = 'WINDOW TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tw2lev_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_wd 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 = 'urban_map_wd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tw2lev_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tw2lev_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tglev_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_gbd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_gbd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tglev_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tglev_urb3d(sm31:em31,1:model_config_rec%urban_map_gbd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tglev_urb3d(sm31:em31,1:model_config_rec%urban_map_gbd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tglev_urb3d=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 = 'tglev_urb3d' grid%tail_statevars%DataName = 'TGLEV_URB3D' grid%tail_statevars%Description = 'GROUND TEMPERATURE BELOW A BUILDING' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tglev_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_gbd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_gbd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_gbd 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 = 'urban_map_gbd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tglev_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tglev_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tflev_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_fbd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_fbd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tflev_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tflev_urb3d(sm31:em31,1:model_config_rec%urban_map_fbd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tflev_urb3d(sm31:em31,1:model_config_rec%urban_map_fbd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tflev_urb3d=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 = 'tflev_urb3d' grid%tail_statevars%DataName = 'TFLEV_URB3D' grid%tail_statevars%Description = 'FLOOR TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%tflev_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_fbd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_fbd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_fbd 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 = 'urban_map_fbd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%tflev_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tflev_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sf_ac_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sf_ac_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sf_ac_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sf_ac_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sf_ac_urb3d=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 = 'sf_ac_urb3d' grid%tail_statevars%DataName = 'SF_AC_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM THE AIR COND.' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%sf_ac_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%sf_ac_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sf_ac_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lf_ac_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lf_ac_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lf_ac_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lf_ac_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lf_ac_urb3d=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 = 'lf_ac_urb3d' grid%tail_statevars%DataName = 'LF_AC_URB3D' grid%tail_statevars%Description = 'LATENT HEAT FLUX FROM THE AIR COND.' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%lf_ac_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%lf_ac_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lf_ac_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'cm_ac_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'cm_ac_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%cm_ac_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cm_ac_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%cm_ac_urb3d=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 = 'cm_ac_urb3d' grid%tail_statevars%DataName = 'CM_AC_URB3D' grid%tail_statevars%Description = 'CONSUMPTION OF THE AIR COND.' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%cm_ac_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%cm_ac_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cm_ac_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfvent_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfvent_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfvent_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfvent_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfvent_urb3d=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 = 'sfvent_urb3d' grid%tail_statevars%DataName = 'SFVENT_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN VENTILATION' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%sfvent_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%sfvent_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfvent_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lfvent_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lfvent_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lfvent_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfvent_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lfvent_urb3d=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 = 'lfvent_urb3d' grid%tail_statevars%DataName = 'LFVENT_URB3D' grid%tail_statevars%Description = 'LATENT HEAT FLUX FROM URBAN VENTILATION' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%lfvent_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%lfvent_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfvent_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfwin1_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfwin1_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfwin1_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfwin1_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfwin1_urb3d=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 = 'sfwin1_urb3d' grid%tail_statevars%DataName = 'SFWIN1_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN SFC WINDOW' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%sfwin1_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_wd 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 = 'urban_map_wd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%sfwin1_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfwin1_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfwin2_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_wd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfwin2_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfwin2_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfwin2_urb3d(sm31:em31,1:model_config_rec%urban_map_wd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfwin2_urb3d=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 = 'sfwin2_urb3d' grid%tail_statevars%DataName = 'SFWIN2_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN SFC WINDOW' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%sfwin2_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_wd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_wd 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 = 'urban_map_wd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%sfwin2_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfwin2_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfw1_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfw1_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfw1_urb3d(sm31:em31,1:model_config_rec%urban_map_zd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfw1_urb3d(sm31:em31,1:model_config_rec%urban_map_zd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfw1_urb3d=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 = 'sfw1_urb3d' grid%tail_statevars%DataName = 'SFW1_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%sfw1_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zd 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 = 'urban_map_zd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%sfw1_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfw1_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfw2_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfw2_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfw2_urb3d(sm31:em31,1:model_config_rec%urban_map_zd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfw2_urb3d(sm31:em31,1:model_config_rec%urban_map_zd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfw2_urb3d=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 = 'sfw2_urb3d' grid%tail_statevars%DataName = 'SFW2_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%sfw2_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zd 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 = 'urban_map_zd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%sfw2_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfw2_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfr_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfr_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfr_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfr_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfr_urb3d=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 = 'sfr_urb3d' grid%tail_statevars%DataName = 'SFR_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%sfr_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zdf 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 = 'urban_map_zdf_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%sfr_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfr_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfg_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_urban_ndm)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_urban_ndm)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfg_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfg_urb3d(sm31:em31,1:model_config_rec%num_urban_ndm,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfg_urb3d(sm31:em31,1:model_config_rec%num_urban_ndm,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfg_urb3d=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 = 'sfg_urb3d' grid%tail_statevars%DataName = 'SFG_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%sfg_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_urban_ndm 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 = 1 grid%tail_statevars%em2 = config_flags%num_urban_ndm 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 = 1 grid%tail_statevars%ep2 = config_flags%num_urban_ndm 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 = 'num_urban_ndm_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%sfg_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfg_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'ep_pv_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'ep_pv_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%ep_pv_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ep_pv_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%ep_pv_urb3d=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 = 'ep_pv_urb3d' grid%tail_statevars%DataName = 'EP_PV_URB3D' grid%tail_statevars%Description = 'ELEC. PRODUCTION OF ROOFTOP PV PANELS' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%ep_pv_urb3d grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%ep_pv_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ep_pv_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'t_pv_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 't_pv_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%t_pv_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%t_pv_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%t_pv_urb3d=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 = 't_pv_urb3d' grid%tail_statevars%DataName = 'T_PV_URB3D' grid%tail_statevars%Description = 'PHOTOVOLTAIC PANELS TEMPERATURE ' grid%tail_statevars%Units = 'K' 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 = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%t_pv_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zdf 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 = 'urban_map_zdf' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%t_pv_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%t_pv_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'trv_urb4d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zgrd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zgrd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'trv_urb4d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%trv_urb4d(sm31:em31,1:model_config_rec%urban_map_zgrd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%trv_urb4d(sm31:em31,1:model_config_rec%urban_map_zgrd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%trv_urb4d=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 = 'trv_urb4d' grid%tail_statevars%DataName = 'TRV_URB4D' grid%tail_statevars%Description = 'GREEN ROOF LAYER TEMPERATURE' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%trv_urb4d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zgrd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zgrd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zgrd 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 = 'urban_map_zgrd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%trv_urb4d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%trv_urb4d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'qr_urb4d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zgrd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zgrd)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'qr_urb4d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%qr_urb4d(sm31:em31,1:model_config_rec%urban_map_zgrd,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qr_urb4d(sm31:em31,1:model_config_rec%urban_map_zgrd,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%qr_urb4d=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 = 'qr_urb4d' grid%tail_statevars%DataName = 'QR_URB4D' grid%tail_statevars%Description = 'GREEN ROOF LAYER MOISTURE' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%qr_urb4d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zgrd 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zgrd 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zgrd 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 = 'urban_map_zgrd_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%qr_urb4d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qr_urb4d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'qgr_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'qgr_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%qgr_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qgr_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%qgr_urb3d=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 = 'qgr_urb3d' grid%tail_statevars%DataName = 'QGR_URB4D' grid%tail_statevars%Description = 'GREEN ROOF LAYER MOISTURE OUTPUT' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%qgr_urb3d grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%qgr_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%qgr_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tgr_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'tgr_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%tgr_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgr_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tgr_urb3d=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 = 'tgr_urb3d' grid%tail_statevars%DataName = 'TGR_URB4D' grid%tail_statevars%Description = 'GREEN ROOF LAYER TEMPERATURE OUTPUT' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%tgr_urb3d grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%tgr_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%tgr_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'drain_urb4d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'drain_urb4d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%drain_urb4d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drain_urb4d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%drain_urb4d=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 = 'drain_urb4d' grid%tail_statevars%DataName = 'DRAIN_URB4D' grid%tail_statevars%Description = 'GREEN ROOF DRAINAGE' grid%tail_statevars%Units = 'mm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%drain_urb4d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zdf 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 = 'urban_map_zdf_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%drain_urb4d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%drain_urb4d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'draingr_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'draingr_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%draingr_urb3d(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%draingr_urb3d(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%draingr_urb3d=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 = 'draingr_urb3d' grid%tail_statevars%DataName = 'DRAINGR_URB3D' grid%tail_statevars%Description = 'ACCUMULATED GREEN ROOF DRAINAGE' grid%tail_statevars%Units = 'mm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%draingr_urb3d grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%draingr_urb3d(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%draingr_urb3d(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'sfrv_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'sfrv_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%sfrv_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfrv_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%sfrv_urb3d=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 = 'sfrv_urb3d' grid%tail_statevars%DataName = 'SFRV_URB3D' grid%tail_statevars%Description = 'SENSIBLE HEAT FLUX FROM GREEN ROOF' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%sfrv_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zdf 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 = 'urban_map_zdf_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%sfrv_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%sfrv_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lfrv_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lfrv_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lfrv_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfrv_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lfrv_urb3d=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 = 'lfrv_urb3d' grid%tail_statevars%DataName = 'LFRV_URB3D' grid%tail_statevars%Description = 'LATENT HEAT FLUX FROM GREEN ROOF' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%lfrv_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zdf 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 = 'urban_map_zdf_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%lfrv_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfrv_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dgr_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dgr_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dgr_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dgr_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dgr_urb3d=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 = 'dgr_urb3d' grid%tail_statevars%DataName = 'DGR_URB3D' grid%tail_statevars%Description = 'ROOF LAYER DEPTH WATER RETENTION' grid%tail_statevars%Units = 'mm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dgr_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zdf 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 = 'urban_map_zdf_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dgr_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dgr_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'dg_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_urban_ndm)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_urban_ndm)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'dg_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%dg_urb3d(sm31:em31,1:model_config_rec%num_urban_ndm,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dg_urb3d(sm31:em31,1:model_config_rec%num_urban_ndm,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%dg_urb3d=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 = 'dg_urb3d' grid%tail_statevars%DataName = 'DG_URB4D' grid%tail_statevars%Description = 'ROOF LAYER DEPTH WATER RETENTION' grid%tail_statevars%Units = 'mm' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%dg_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_urban_ndm 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 = 1 grid%tail_statevars%em2 = config_flags%num_urban_ndm 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 = 1 grid%tail_statevars%ep2 = config_flags%num_urban_ndm 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 = 'num_urban_ndm_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%dg_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%dg_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lfr_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%urban_map_zdf)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lfr_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lfr_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfr_urb3d(sm31:em31,1:model_config_rec%urban_map_zdf,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lfr_urb3d=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 = 'lfr_urb3d' grid%tail_statevars%DataName = 'LFR_URB3D' grid%tail_statevars%Description = 'LATENT HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%lfr_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%em2 = config_flags%urban_map_zdf 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 = 1 grid%tail_statevars%ep2 = config_flags%urban_map_zdf 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 = 'urban_map_zdf_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%lfr_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfr_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lfg_urb3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_urban_ndm)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_urban_ndm)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lfg_urb3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lfg_urb3d(sm31:em31,1:model_config_rec%num_urban_ndm,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfg_urb3d(sm31:em31,1:model_config_rec%num_urban_ndm,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lfg_urb3d=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 = 'lfg_urb3d' grid%tail_statevars%DataName = 'LFG_URB3D' grid%tail_statevars%Description = 'LATENT HEAT FLUX FROM URBAN SFC' grid%tail_statevars%Units = 'W m{-2}' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%lfg_urb3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_urban_ndm 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 = 1 grid%tail_statevars%em2 = config_flags%num_urban_ndm 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 = 1 grid%tail_statevars%ep2 = config_flags%num_urban_ndm 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 = 'num_urban_ndm_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%lfg_urb3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lfg_urb3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'cmr_sfcdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'cmr_sfcdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%cmr_sfcdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmr_sfcdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%cmr_sfcdif=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 = 'cmr_sfcdif' grid%tail_statevars%DataName = 'CMR_SFCDIF' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%cmr_sfcdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%cmr_sfcdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmr_sfcdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'chr_sfcdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'chr_sfcdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%chr_sfcdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%chr_sfcdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%chr_sfcdif=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 = 'chr_sfcdif' grid%tail_statevars%DataName = 'CHR_SFCDIF' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%chr_sfcdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%chr_sfcdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%chr_sfcdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'cmc_sfcdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'cmc_sfcdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%cmc_sfcdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmc_sfcdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%cmc_sfcdif=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 = 'cmc_sfcdif' grid%tail_statevars%DataName = 'CMC_SFCDIF' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%cmc_sfcdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%cmc_sfcdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmc_sfcdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'chc_sfcdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'chc_sfcdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%chc_sfcdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%chc_sfcdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%chc_sfcdif=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 = 'chc_sfcdif' grid%tail_statevars%DataName = 'CHC_SFCDIF' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%chc_sfcdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%chc_sfcdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%chc_sfcdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'cmgr_sfcdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'cmgr_sfcdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%cmgr_sfcdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmgr_sfcdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%cmgr_sfcdif=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 = 'cmgr_sfcdif' grid%tail_statevars%DataName = 'CMGR_SFCDIF' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%cmgr_sfcdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%cmgr_sfcdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%cmgr_sfcdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'chgr_sfcdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'chgr_sfcdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%chgr_sfcdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%chgr_sfcdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%chgr_sfcdif=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 = 'chgr_sfcdif' grid%tail_statevars%DataName = 'CHGR_SFCDIF' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%chgr_sfcdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%chgr_sfcdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%chgr_sfcdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'ecmask').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * IWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * IWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'ecmask: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%ecmask(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ecmask(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%ecmask=0 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 = 'ecmask' grid%tail_statevars%DataName = 'ECMASK' grid%tail_statevars%Description = 'ECLIPSE MASK' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'i' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%ifield_2d => grid%ecmask grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%ecmask(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ecmask(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'ecobsc').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'ecobsc: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%ecobsc(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ecobsc(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%ecobsc=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 = 'ecobsc' grid%tail_statevars%DataName = 'ECOBSC' grid%tail_statevars%Description = 'ECLIPSE OBSCURITY' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%ecobsc grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%ecobsc(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ecobsc(1,1). ') endif ENDIF 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'elon_track' grid%tail_statevars%DataName = 'ELON_TRACK' grid%tail_statevars%Description = 'ECLIPSE LON' grid%tail_statevars%Units = 'degrees' grid%tail_statevars%Type = 'r' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_0d => grid%elon_track grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 ENDIF IF ( setinitval .EQ. 3 ) grid%elon_track=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%ProcOrient = ' ' grid%tail_statevars%VarName = 'elat_track' grid%tail_statevars%DataName = 'ELAT_TRACK' grid%tail_statevars%Description = 'ECLIPSE LAT' grid%tail_statevars%Units = 'degrees' grid%tail_statevars%Type = 'r' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_0d => grid%elat_track grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 ENDIF IF ( setinitval .EQ. 3 ) grid%elat_track=initial_data_value IF(okay_to_alloc.AND.in_use_for_config(id,'coszen').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'coszen: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%coszen(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%coszen(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%coszen=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 = 'coszen' grid%tail_statevars%DataName = 'COSZEN' grid%tail_statevars%Description = 'COS of SOLAR ZENITH ANGLE' grid%tail_statevars%Units = 'dimensionless' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%coszen grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%coszen(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%coszen(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'hrang').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'hrang: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%hrang(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%hrang(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%hrang=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 = 'hrang' grid%tail_statevars%DataName = 'HRANG' grid%tail_statevars%Description = 'SOLAR HOUR ANGLE' grid%tail_statevars%Units = 'radians' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%hrang grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%hrang(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%hrang(1,1). ') endif ENDIF 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%ProcOrient = ' ' grid%tail_statevars%VarName = 'declin' grid%tail_statevars%DataName = 'DECLIN' grid%tail_statevars%Description = 'SOLAR DECLINATION' grid%tail_statevars%Units = 'radians' grid%tail_statevars%Type = 'r' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_0d => grid%declin grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 ENDIF IF ( setinitval .EQ. 3 ) grid%declin=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%ProcOrient = ' ' grid%tail_statevars%VarName = 'solcon' grid%tail_statevars%DataName = 'SOLCON' grid%tail_statevars%Description = 'SOLAR CONSTANT' grid%tail_statevars%Units = 'W m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_0d => grid%solcon grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 ENDIF IF ( setinitval .EQ. 3 ) grid%solcon=initial_data_value IF(okay_to_alloc.AND.in_use_for_config(id,'rhosnf').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'rhosnf: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%rhosnf(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%rhosnf(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%rhosnf=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 = 'rhosnf' grid%tail_statevars%DataName = 'RHOSNF' grid%tail_statevars%Description = 'DENSITY OF FROZEN PRECIP' grid%tail_statevars%Units = 'kg/m^3' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%rhosnf 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 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%rhosnf(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%rhosnf(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'snowfallac').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'snowfallac: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%snowfallac(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%snowfallac(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%snowfallac=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 = 'snowfallac' grid%tail_statevars%DataName = 'SNOWFALLAC' grid%tail_statevars%Description = 'RUN-TOTAL ACCUMULATED SNOWFALL [mm]' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%snowfallac 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 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%snowfallac(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%snowfallac(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'precipfr').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'precipfr: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%precipfr(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%precipfr(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%precipfr=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 = 'precipfr' grid%tail_statevars%DataName = 'PRECIPFR' grid%tail_statevars%Description = 'TIME-STEP FROZEN PRECIP [mm]' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%precipfr grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 0 ! 00000000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%precipfr(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%precipfr(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'smfr3d').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'smfr3d: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%smfr3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%smfr3d(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%smfr3d=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 = 'smfr3d' grid%tail_statevars%DataName = 'SMFR3D' grid%tail_statevars%Description = 'SOIL ICE' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%smfr3d grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%smfr3d(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%smfr3d(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'keepfr3dflag').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'keepfr3dflag: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%keepfr3dflag(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%keepfr3dflag(sm31:em31,1:model_config_rec%num_soil_layers,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%keepfr3dflag=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 = 'keepfr3dflag' grid%tail_statevars%DataName = 'KEEPFR3DFLAG' grid%tail_statevars%Description = 'FLAG - 1. FROZEN SOIL YES, 0 - NO' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XZY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 3 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_3d => grid%keepfr3dflag grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%em2 = config_flags%num_soil_layers 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 = 1 grid%tail_statevars%ep2 = config_flags%num_soil_layers 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 = 'soil_layers_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%keepfr3dflag(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%keepfr3dflag(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'swvisdir').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'swvisdir: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%swvisdir(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swvisdir(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%swvisdir=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 = 'swvisdir' grid%tail_statevars%DataName = 'SWVISDIR' grid%tail_statevars%Description = 'SWR VIS DIR component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%swvisdir grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%swvisdir(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swvisdir(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'swvisdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'swvisdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%swvisdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swvisdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%swvisdif=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 = 'swvisdif' grid%tail_statevars%DataName = 'SWVISDIF' grid%tail_statevars%Description = 'SWR VIS DIF component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%swvisdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%swvisdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swvisdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'swnirdir').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'swnirdir: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%swnirdir(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swnirdir(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%swnirdir=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 = 'swnirdir' grid%tail_statevars%DataName = 'SWNIRDIR' grid%tail_statevars%Description = 'SWR NIR DIR component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%swnirdir grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%swnirdir(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swnirdir(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'swnirdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'swnirdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%swnirdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swnirdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%swnirdif=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 = 'swnirdif' grid%tail_statevars%DataName = 'SWNIRDIF' grid%tail_statevars%Description = 'SWR NIR DIF component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%swnirdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%swnirdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%swnirdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'alswvisdir').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'alswvisdir: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%alswvisdir(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswvisdir(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%alswvisdir=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 = 'alswvisdir' grid%tail_statevars%DataName = 'ALSWVISDIR' grid%tail_statevars%Description = 'ALB VIS DIR component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%alswvisdir grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%alswvisdir(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswvisdir(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'alswvisdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'alswvisdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%alswvisdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswvisdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%alswvisdif=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 = 'alswvisdif' grid%tail_statevars%DataName = 'ALSWVISDIF' grid%tail_statevars%Description = 'ALB VIS DIF component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%alswvisdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%alswvisdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswvisdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'alswnirdir').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'alswnirdir: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%alswnirdir(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswnirdir(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%alswnirdir=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 = 'alswnirdir' grid%tail_statevars%DataName = 'ALSWNIRDIR' grid%tail_statevars%Description = 'ALB NIR DIR component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%alswnirdir grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%alswnirdir(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswnirdir(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'alswnirdif').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'alswnirdif: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%alswnirdif(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswnirdif(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%alswnirdif=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 = 'alswnirdif' grid%tail_statevars%DataName = 'ALSWNIRDIF' grid%tail_statevars%Description = 'ALB NIR DIF component' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = 'Z' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%alswnirdif grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%alswnirdif(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%alswnirdif(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'ra').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'ra: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%ra(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ra(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%ra=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 = 'ra' grid%tail_statevars%DataName = 'RA' grid%tail_statevars%Description = 'AERODYNAMIC RESISTANCE' grid%tail_statevars%Units = 's m-1' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%ra grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%ra(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%ra(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'rs').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'rs: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%rs(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%rs(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%rs=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 = 'rs' grid%tail_statevars%DataName = 'RS' grid%tail_statevars%Description = 'SURFACE RESISTANCE' grid%tail_statevars%Units = 's m-1' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%rs grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%rs(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%rs(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lai').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lai: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lai(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lai(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lai=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 = 'lai' grid%tail_statevars%DataName = 'LAI' grid%tail_statevars%Description = 'LEAF AREA INDEX' grid%tail_statevars%Units = 'm-2/m-2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%lai grid%tail_statevars%streams(1) = 771751937 ! 2e000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%lai(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lai(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'vegf_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'vegf_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%vegf_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%vegf_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%vegf_px=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 = 'vegf_px' grid%tail_statevars%DataName = 'VEGF_PX' grid%tail_statevars%Description = 'Vegetation Fraction for PX LSM' grid%tail_statevars%Units = 'area/area' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%vegf_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%vegf_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%vegf_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'t2obs').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 't2obs: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%t2obs(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%t2obs(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%t2obs=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 = 't2obs' grid%tail_statevars%DataName = 'T2OBS' grid%tail_statevars%Description = '2-m temperature from analysis ' grid%tail_statevars%Units = 'K' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%t2obs grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%t2obs(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%t2obs(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'q2obs').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'q2obs: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%q2obs(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%q2obs(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%q2obs=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 = 'q2obs' grid%tail_statevars%DataName = 'Q2OBS' grid%tail_statevars%Description = '2-m mixing ratio from analysis ' grid%tail_statevars%Units = 'kg/kg' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%q2obs grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%q2obs(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%q2obs(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'imperv'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'imperv: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%imperv(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%imperv(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%imperv=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 = 'imperv' grid%tail_statevars%DataName = 'IMPERV' grid%tail_statevars%Description = 'Impervious surface fraction NLCD' grid%tail_statevars%Units = 'percent' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%imperv grid%tail_statevars%streams(1) = 234881025 ! 0e000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%imperv(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%imperv(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'canfra'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'canfra: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%canfra(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%canfra(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%canfra=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 = 'canfra' grid%tail_statevars%DataName = 'CANFRA' grid%tail_statevars%Description = 'Satellite canopy fraction' grid%tail_statevars%Units = 'percent' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%canfra grid%tail_statevars%streams(1) = 234881025 ! 0e000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%canfra(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%canfra(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'lai_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'lai_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%lai_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lai_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lai_px=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 = 'lai_px' grid%tail_statevars%DataName = 'LAI_PX' grid%tail_statevars%Description = 'LAI used for PX LSM' grid%tail_statevars%Units = 'm2/m2' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%lai_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%lai_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%lai_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'wwlt_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'wwlt_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%wwlt_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%wwlt_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%wwlt_px=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 = 'wwlt_px' grid%tail_statevars%DataName = 'WWLT_PX' grid%tail_statevars%Description = 'Soil wilting point for PX LSM' grid%tail_statevars%Units = 'm3/m3' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%wwlt_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%wwlt_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%wwlt_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'wfc_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'wfc_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%wfc_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%wfc_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%wfc_px=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 = 'wfc_px' grid%tail_statevars%DataName = 'WFC_PX' grid%tail_statevars%Description = 'Soil field capacity for PX LSM' grid%tail_statevars%Units = 'm3/m3' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%wfc_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%wfc_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%wfc_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'wsat_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'wsat_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%wsat_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%wsat_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%wsat_px=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 = 'wsat_px' grid%tail_statevars%DataName = 'WSAT_PX' grid%tail_statevars%Description = 'Soil saturation for PX LSM' grid%tail_statevars%Units = 'm3/m3' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%wsat_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%wsat_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%wsat_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'clay_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'clay_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%clay_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%clay_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%clay_px=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 = 'clay_px' grid%tail_statevars%DataName = 'CLAY_PX' grid%tail_statevars%Description = 'Clay perent for PX LSM' grid%tail_statevars%Units = 'fraction' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%clay_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%clay_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%clay_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'csand_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'csand_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%csand_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%csand_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%csand_px=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 = 'csand_px' grid%tail_statevars%DataName = 'CSAND_PX' grid%tail_statevars%Description = 'Coarse sand perent for PX LSM' grid%tail_statevars%Units = 'fraction' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%csand_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%csand_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%csand_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'fmsand_px').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'fmsand_px: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%fmsand_px(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%fmsand_px(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%fmsand_px=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 = 'fmsand_px' grid%tail_statevars%DataName = 'FMSAND_PX' grid%tail_statevars%Description = 'Fine-medium sand perent for PX LSM' grid%tail_statevars%Units = 'fraction' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%fmsand_px grid%tail_statevars%streams(1) = 1 ! 00000001 grid%tail_statevars%streams(2) = 2097152 ! 00200000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%fmsand_px(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%fmsand_px(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'fm').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE nba = & ((((em31)-(sm31)+1))*(((em33)-(sm33)+1))) * RWORDSIZE #if ( SHOW_ALL_VARS_USED == 1 ) WRITE(message_string,fmt='(a,i12)') 'fm: bytes = ',nba CALL wrf_message(message_string) #endif ALLOCATE(grid%fm(sm31:em31,sm33:em33),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%fm(sm31:em31,sm33:em33). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%fm=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 = 'fm' grid%tail_statevars%DataName = 'FM' grid%tail_statevars%Description = 'INTEGRATED FUNCTION FOR MOMENTUM' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'r' grid%tail_statevars%ProcOrient = ' ' grid%tail_statevars%MemoryOrder = 'XY' grid%tail_statevars%Stagger = '' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Ndim = 2 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%fm grid%tail_statevars%streams(1) = 0 ! 00000000 grid%tail_statevars%streams(2) = 0 ! 00000000 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = jds grid%tail_statevars%ed2 = (jde-1) grid%tail_statevars%sd3 = 1 grid%tail_statevars%ed3 = 1 grid%tail_statevars%sm1 = ims grid%tail_statevars%em1 = ime grid%tail_statevars%sm2 = jms grid%tail_statevars%em2 = jme grid%tail_statevars%sm3 = 1 grid%tail_statevars%em3 = 1 grid%tail_statevars%sp1 = ips grid%tail_statevars%ep1 = MIN( (ide-1), ipe ) grid%tail_statevars%sp2 = jps grid%tail_statevars%ep2 = MIN( (jde-1), jpe ) grid%tail_statevars%sp3 = 1 grid%tail_statevars%ep3 = 1 grid%tail_statevars%subgrid_x = .FALSE. grid%tail_statevars%subgrid_y = .FALSE. grid%tail_statevars%dimname1 = 'west_east' grid%tail_statevars%dimname2 = 'south_north' grid%tail_statevars%dimname3 = '' ENDIF ELSE ALLOCATE(grid%fm(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal ( & 'frame/module_domain.f: Failed to allocate grid%fm(1,1). ') endif ENDIF END SUBROUTINE allocs_3