MODULE module_alloc_space_3 CONTAINS SUBROUTINE alloc_space_field_core_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 IMPLICIT NONE TYPE(domain) , POINTER :: grid INTEGER , INTENT(IN) :: id INTEGER , INTENT(IN) :: setinitval_in 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 INTEGER , INTENT(IN) :: tl_in LOGICAL , INTENT(IN) :: inter_domain_in, okay_to_alloc_in INTEGER(KIND=8) , INTENT(INOUT) :: num_bytes_allocated 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 INTEGER ierr INTEGER :: loop 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 CALL get_initial_data_value ( initial_data_value ) setinitval = setinitval_in CALL nl_get_spec_bdy_width( 1, spec_bdy_width ) IF(okay_to_alloc.AND.in_use_for_config(id,'chstarxy'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%chstarxy(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",165,& 'frame/module_domain.f: Failed to allocate grid%chstarxy(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%chstarxy=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 = 'chstarxy' grid%tail_statevars%DataName = 'CHSTAR' grid%tail_statevars%Description = 'dummy exchange coefficient' 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%chstarxy grid%tail_statevars%streams(1) = 167772161 grid%tail_statevars%streams(2) = 2097152 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%chstarxy(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",215,& 'frame/module_domain.f: Failed to allocate grid%chstarxy(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'smoiseq').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((model_config_rec%num_soil_layers)-(1)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%smoiseq(sm31:em31,1:model_config_rec%num_soil_layers,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",224,& 'frame/module_domain.f: Failed to allocate grid%smoiseq(sm31:em31,1:model_config_rec%num_soil_layers,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%smoiseq=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 = 'smoiseq' grid%tail_statevars%DataName = 'SMOISEQ' grid%tail_statevars%Description = 'EQ. 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%smoiseq grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 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%smoiseq(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",274,& 'frame/module_domain.f: Failed to allocate grid%smoiseq(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'smcwtdxy').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%smcwtdxy(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",283,& 'frame/module_domain.f: Failed to allocate grid%smcwtdxy(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%smcwtdxy=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 = 'smcwtdxy' grid%tail_statevars%DataName = 'SMCWTD' grid%tail_statevars%Description = 'deep soil moisture ' grid%tail_statevars%Units = 'm3 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%smcwtdxy grid%tail_statevars%streams(1) = 1 grid%tail_statevars%streams(2) = 2097152 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%smcwtdxy(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",333,& 'frame/module_domain.f: Failed to allocate grid%smcwtdxy(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'rechxy').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%rechxy(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",342,& 'frame/module_domain.f: Failed to allocate grid%rechxy(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%rechxy=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 = 'rechxy' grid%tail_statevars%DataName = 'RECH' grid%tail_statevars%Description = 'water table recharge' 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 = .FALSE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_2d => grid%rechxy grid%tail_statevars%streams(1) = 1 grid%tail_statevars%streams(2) = 0 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%rechxy(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",392,& 'frame/module_domain.f: Failed to allocate grid%rechxy(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'deeprechxy').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%deeprechxy(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",401,& 'frame/module_domain.f: Failed to allocate grid%deeprechxy(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%deeprechxy=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 = 'deeprechxy' grid%tail_statevars%DataName = 'DEEPRECH' grid%tail_statevars%Description = 'deep water table recharge' 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%deeprechxy grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 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%deeprechxy(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",451,& 'frame/module_domain.f: Failed to allocate grid%deeprechxy(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'grainxy'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%grainxy(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",460,& 'frame/module_domain.f: Failed to allocate grid%grainxy(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%grainxy=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 = 'grainxy' grid%tail_statevars%DataName = 'GRAIN' grid%tail_statevars%Description = 'mass of grain' grid%tail_statevars%Units = 'g/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%grainxy grid%tail_statevars%streams(1) = 167772161 grid%tail_statevars%streams(2) = 2097152 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%grainxy(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",510,& 'frame/module_domain.f: Failed to allocate grid%grainxy(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'gddxy'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%gddxy(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",519,& 'frame/module_domain.f: Failed to allocate grid%gddxy(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%gddxy=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 = 'gddxy' grid%tail_statevars%DataName = 'GDD' grid%tail_statevars%Description = 'growing degree days' 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%gddxy grid%tail_statevars%streams(1) = 167772161 grid%tail_statevars%streams(2) = 2097152 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%gddxy(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",569,& 'frame/module_domain.f: Failed to allocate grid%gddxy(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'croptype'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((5)-(1)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%croptype(sm31:em31,1:5,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",578,& 'frame/module_domain.f: Failed to allocate grid%croptype(sm31:em31,1:5,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%croptype=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 = 'croptype' grid%tail_statevars%DataName = 'CROPTYPE' grid%tail_statevars%Description = 'crop type' grid%tail_statevars%Units = 'fraction' 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%croptype grid%tail_statevars%streams(1) = 167772161 grid%tail_statevars%streams(2) = 2097152 grid%tail_statevars%sd1 = ids grid%tail_statevars%ed1 = (ide-1) grid%tail_statevars%sd2 = 1 grid%tail_statevars%ed2 = 5 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 = 5 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 = 5 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 = 'crop_types_stag' grid%tail_statevars%dimname3 = 'south_north' ENDIF ELSE ALLOCATE(grid%croptype(1,1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",628,& 'frame/module_domain.f: Failed to allocate grid%croptype(1,1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'planting'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%planting(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",637,& 'frame/module_domain.f: Failed to allocate grid%planting(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%planting=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 = 'planting' grid%tail_statevars%DataName = 'PLANTING' grid%tail_statevars%Description = 'planting date' grid%tail_statevars%Units = 'julian day' 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%planting grid%tail_statevars%streams(1) = 167772161 grid%tail_statevars%streams(2) = 2097152 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%planting(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",687,& 'frame/module_domain.f: Failed to allocate grid%planting(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'harvest'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%harvest(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",696,& 'frame/module_domain.f: Failed to allocate grid%harvest(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%harvest=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 = 'harvest' grid%tail_statevars%DataName = 'HARVEST' grid%tail_statevars%Description = 'harvest date' grid%tail_statevars%Units = 'julian day' 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%harvest grid%tail_statevars%streams(1) = 167772161 grid%tail_statevars%streams(2) = 2097152 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%harvest(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",746,& 'frame/module_domain.f: Failed to allocate grid%harvest(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'season_gdd'))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%season_gdd(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",755,& 'frame/module_domain.f: Failed to allocate grid%season_gdd(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%season_gdd=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 = 'season_gdd' grid%tail_statevars%DataName = 'SEASON_GDD' grid%tail_statevars%Description = 'growing season GDD' 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%season_gdd grid%tail_statevars%streams(1) = 167772161 grid%tail_statevars%streams(2) = 2097152 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%season_gdd(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",805,& 'frame/module_domain.f: Failed to allocate grid%season_gdd(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'cropcat').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%cropcat(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",814,& 'frame/module_domain.f: Failed to allocate grid%cropcat(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%cropcat=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 = 'cropcat' grid%tail_statevars%DataName = 'CROPCAT' grid%tail_statevars%Description = 'dominant crop category' grid%tail_statevars%Units = 'category' 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%cropcat grid%tail_statevars%streams(1) = 1 grid%tail_statevars%streams(2) = 2097152 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%cropcat(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",864,& 'frame/module_domain.f: Failed to allocate grid%cropcat(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'pgsxy').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%pgsxy(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",873,& 'frame/module_domain.f: Failed to allocate grid%pgsxy(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%pgsxy=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 = 'pgsxy' grid%tail_statevars%DataName = 'PGS' grid%tail_statevars%Description = 'pgs' grid%tail_statevars%Units = '' 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%pgsxy grid%tail_statevars%streams(1) = 1 grid%tail_statevars%streams(2) = 2097152 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%pgsxy(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",923,& 'frame/module_domain.f: Failed to allocate grid%pgsxy(1,1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'mp_restart_state').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((7501)-(1)+1))) * 4 ALLOCATE(grid%mp_restart_state(1:7501),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",932,& 'frame/module_domain.f: Failed to allocate grid%mp_restart_state(1:7501). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%mp_restart_state=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 = 'mp_restart_state' grid%tail_statevars%DataName = 'MP_RESTART_STATE' grid%tail_statevars%Description = 'STATE VECTOR FOR MICROPHYSICS RESTARTS' 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 = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_1d => grid%mp_restart_state grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 grid%tail_statevars%sd1 = 1 grid%tail_statevars%ed1 = 7501 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 = 7501 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 = 7501 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%mp_restart_state(1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",980,& 'frame/module_domain.f: Failed to allocate grid%mp_restart_state(1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tbpvs_state').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((7501)-(1)+1))) * 4 ALLOCATE(grid%tbpvs_state(1:7501),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",989,& 'frame/module_domain.f: Failed to allocate grid%tbpvs_state(1:7501). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tbpvs_state=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 = 'tbpvs_state' grid%tail_statevars%DataName = 'TBPVS_STATE' grid%tail_statevars%Description = 'STATE FOR ETAMPNEW MICROPHYSICS' 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 = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_1d => grid%tbpvs_state grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 grid%tail_statevars%sd1 = 1 grid%tail_statevars%ed1 = 7501 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 = 7501 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 = 7501 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%tbpvs_state(1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",1037,& 'frame/module_domain.f: Failed to allocate grid%tbpvs_state(1). ') endif ENDIF IF(okay_to_alloc.AND.in_use_for_config(id,'tbpvs0_state').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((7501)-(1)+1))) * 4 ALLOCATE(grid%tbpvs0_state(1:7501),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",1046,& 'frame/module_domain.f: Failed to allocate grid%tbpvs0_state(1:7501). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%tbpvs0_state=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 = 'tbpvs0_state' grid%tail_statevars%DataName = 'TBPVS0_STATE' grid%tail_statevars%Description = 'STATE FOR ETAMPNEW MICROPHYSICS' 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 = .TRUE. grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%rfield_1d => grid%tbpvs0_state grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 grid%tail_statevars%sd1 = 1 grid%tail_statevars%ed1 = 7501 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 = 7501 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 = 7501 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%tbpvs0_state(1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",1094,& 'frame/module_domain.f: Failed to allocate grid%tbpvs0_state(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 = 'landuse_isice' grid%tail_statevars%DataName = 'LANDUSE_ISICE' grid%tail_statevars%Description = '-' 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%landuse_isice grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%landuse_isice=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 = 'landuse_lucats' grid%tail_statevars%DataName = 'LANDUSE_LUCATS' grid%tail_statevars%Description = '-' 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%landuse_lucats grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%landuse_lucats=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 = 'landuse_luseas' grid%tail_statevars%DataName = 'LANDUSE_LUSEAS' grid%tail_statevars%Description = '-' 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%landuse_luseas grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%landuse_luseas=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 = 'landuse_isn' grid%tail_statevars%DataName = 'LANDUSE_ISN' grid%tail_statevars%Description = '-' 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%landuse_isn grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%landuse_isn=0 IF(okay_to_alloc.AND.in_use_for_config(id,'lu_state').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((7501)-(1)+1))) * 4 ALLOCATE(grid%lu_state(1:7501),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",1179,& 'frame/module_domain.f: Failed to allocate grid%lu_state(1:7501). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%lu_state=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 = 'lu_state' grid%tail_statevars%DataName = 'LU_STATE' grid%tail_statevars%Description = '-' 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%lu_state grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 grid%tail_statevars%sd1 = 1 grid%tail_statevars%ed1 = 7501 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 = 7501 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 = 7501 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%lu_state(1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",1227,& 'frame/module_domain.f: Failed to allocate grid%lu_state(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 = 'number_at_same_level' grid%tail_statevars%DataName = 'NUMBER_AT_SAME_LEVEL' grid%tail_statevars%Description = '' 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%number_at_same_level grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%number_at_same_level=0 IF(okay_to_alloc.AND.in_use_for_config(id,'power').AND.(.NOT.grid%is_intermediate))THEN num_bytes_allocated = num_bytes_allocated + & ((((em31)-(sm31)+1))*(((em32)-(sm32)+1))) * 4 ALLOCATE(grid%power(sm31:em31,sm32:em32),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",1255,& 'frame/module_domain.f: Failed to allocate grid%power(sm31:em31,sm32:em32). ') endif IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%power=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 = 'power' grid%tail_statevars%DataName = 'POWER' grid%tail_statevars%Description = 'Power production' grid%tail_statevars%Units = 'W' 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%power grid%tail_statevars%streams(1) = 33554433 grid%tail_statevars%streams(2) = 2097152 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%power(1,1),STAT=ierr) if (ierr.ne.0) then CALL wrf_error_fatal3("<stdin>",1305,& 'frame/module_domain.f: Failed to allocate grid%power(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 = 'itimestep' grid%tail_statevars%DataName = 'ITIMESTEP' grid%tail_statevars%Description = '' 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%itimestep grid%tail_statevars%streams(1) = 1 grid%tail_statevars%streams(2) = 2097152 ENDIF IF ( setinitval .EQ. 3 ) grid%itimestep=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 = 'xtime' grid%tail_statevars%DataName = 'XTIME' grid%tail_statevars%Description = 'minutes since simulation start' 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%xtime grid%tail_statevars%streams(1) = 15 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%xtime=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 = 'julian' grid%tail_statevars%DataName = 'JULIAN' grid%tail_statevars%Description = 'day of year, 0.0 at 0Z on 1 Jan.' grid%tail_statevars%Units = 'days' 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%julian grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%julian=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 = 'lbc_fid' grid%tail_statevars%DataName = 'LBC_FID' grid%tail_statevars%Description = '' 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%lbc_fid grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%lbc_fid=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 = 'tiled' grid%tail_statevars%DataName = 'TILED' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'l' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%lfield_0d => grid%tiled grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%tiled=.FALSE. 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 = 'patched' grid%tail_statevars%DataName = 'PATCHED' grid%tail_statevars%Description = '' grid%tail_statevars%Units = '' grid%tail_statevars%Type = 'l' grid%tail_statevars%Ntl = 0 grid%tail_statevars%Restart = .FALSE. grid%tail_statevars%Ndim = 0 grid%tail_statevars%scalar_array = .FALSE. grid%tail_statevars%lfield_0d => grid%patched grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 0 ENDIF IF ( setinitval .EQ. 3 ) grid%patched=.FALSE. 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 = 'xi' grid%tail_statevars%DataName = 'XI' grid%tail_statevars%Description = '-' grid%tail_statevars%Units = '-' 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%xi grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 ENDIF IF ( setinitval .EQ. 3 ) grid%xi=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 = 'xj' grid%tail_statevars%DataName = 'XJ' grid%tail_statevars%Description = '-' grid%tail_statevars%Units = '-' 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%xj grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 ENDIF IF ( setinitval .EQ. 3 ) grid%xj=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 = 'vc_i' grid%tail_statevars%DataName = 'VC_I' grid%tail_statevars%Description = '-' grid%tail_statevars%Units = '-' 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%vc_i grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 ENDIF IF ( setinitval .EQ. 3 ) grid%vc_i=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 = 'vc_j' grid%tail_statevars%DataName = 'VC_J' grid%tail_statevars%Description = '-' grid%tail_statevars%Units = '-' 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%vc_j grid%tail_statevars%streams(1) = 0 grid%tail_statevars%streams(2) = 2097152 ENDIF IF ( setinitval .EQ. 3 ) grid%vc_j=initial_data_value IF ( setinitval .EQ. 3 ) grid%run_days=0 IF ( setinitval .EQ. 3 ) grid%run_hours=0 IF ( setinitval .EQ. 3 ) grid%run_minutes=0 IF ( setinitval .EQ. 3 ) grid%run_seconds=0 IF ( setinitval .EQ. 3 ) grid%start_year=0 IF ( setinitval .EQ. 3 ) grid%start_month=0 IF ( setinitval .EQ. 3 ) grid%start_day=0 IF ( setinitval .EQ. 3 ) grid%start_hour=0 IF ( setinitval .EQ. 3 ) grid%start_minute=0 IF ( setinitval .EQ. 3 ) grid%start_second=0 IF ( setinitval .EQ. 3 ) grid%end_year=0 IF ( setinitval .EQ. 3 ) grid%end_month=0 IF ( setinitval .EQ. 3 ) grid%end_day=0 IF ( setinitval .EQ. 3 ) grid%end_hour=0 IF ( setinitval .EQ. 3 ) grid%end_minute=0 IF ( setinitval .EQ. 3 ) grid%end_second=0 IF ( setinitval .EQ. 3 ) grid%interval_seconds=0 IF ( setinitval .EQ. 3 ) grid%input_from_file=.FALSE. IF ( setinitval .EQ. 3 ) grid%fine_input_stream=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxinput1=0 IF ( setinitval .EQ. 3 ) grid%override_restart_timers=.FALSE. IF ( setinitval .EQ. 3 ) grid%auxhist1_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist1_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist1=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist1=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist2_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist2=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist2=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist3_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist3=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist3=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist4_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist4=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist4=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist5_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist5=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist5=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist6_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist6=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist6=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist7_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist7=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist7=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist8_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist8=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist8=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist9_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist9=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist9=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist10_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist10=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist10=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_interval_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_interval_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_interval_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_interval_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_interval=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_begin_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_begin_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_begin_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_begin_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_begin_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_begin=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_end_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_end_d=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_end_h=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_end_m=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_end_s=0 IF ( setinitval .EQ. 3 ) grid%auxhist11_end=0 IF ( setinitval .EQ. 3 ) grid%io_form_auxhist11=0 IF ( setinitval .EQ. 3 ) grid%frames_per_auxhist11=0 IF ( setinitval .EQ. 3 ) grid%auxhist12_oid=0 IF ( setinitval .EQ. 3 ) grid%auxhist12_interval_y=0 IF ( setinitval .EQ. 3 ) grid%auxhist12_interval_d=0 END SUBROUTINE alloc_space_field_core_3 END MODULE module_alloc_space_3