Ignore:
Timestamp:
Jan 29, 2018 1:10:35 PM (7 years ago)
Author:
suehring
Message:

Enable initialization via inifor without running land-surface model; small bugfix in chemistry model string treatment

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/netcdf_data_input_mod.f90

    r2746 r2772  
    2525! -----------------
    2626! $Id$
     27! Initialization of simulation independent on land-surface model.
     28!
     29! 2746 2018-01-15 12:06:04Z suehring
    2730! Read plant-canopy variables independently on land-surface model usage
    2831!
     
    549552                CALL inquire_variable_names( id_surf, var_names )
    550553
    551 
    552554!
    553555!--             Read leaf area density - resolved vegetation
     
    567569                                                   nys:nyn,nxl:nxr) )
    568570
    569                       DO  i = nxl, nxr
    570                          DO  j = nys, nyn
    571                             CALL get_variable( id_surf, 'leaf_area_density',   &
    572                                                i, j,                           &
    573                                                leaf_area_density_f%var(:,j,i) )
    574                          ENDDO
     571                   DO  i = nxl, nxr
     572                      DO  j = nys, nyn
     573                         CALL get_variable( id_surf, 'leaf_area_density',      &
     574                                            i, j,                              &
     575                                            leaf_area_density_f%var(:,j,i) )
    575576                      ENDDO
     577                   ENDDO
    576578                ELSE
    577579                   leaf_area_density_f%from_file = .FALSE.
     
    18821884
    18831885       USE control_parameters,                                                 &
    1884            ONLY:  bc_lr_cyc, bc_ns_cyc, forcing, humidity, message_string,     &
    1885                   neutral, surface_pressure
     1886           ONLY:  bc_lr_cyc, bc_ns_cyc, forcing, humidity, land_surface,       &
     1887                  message_string, neutral, surface_pressure
    18861888
    18871889       USE indices,                                                            &
     
    21672169!
    21682170!--          Read soil moisture
    2169              IF ( check_existence( var_names, 'init_soil_m' ) )  THEN
    2170 !
    2171 !--             Read attributes for the fill value and level-of-detail
    2172                 CALL get_attribute( id_dynamic, char_fill, init_3d%fill_msoil, &
    2173                                     .FALSE., 'init_soil_m' )
    2174                 CALL get_attribute( id_dynamic, char_lod, init_3d%lod_msoil,   &
    2175                                     .FALSE., 'init_soil_m' )
    2176 !
    2177 !--             level-of-detail 1 - read initialization profile
    2178                 IF ( init_3d%lod_msoil == 1 )  THEN
    2179                    ALLOCATE( init_3d%msoil_init(0:init_3d%nzs-1) )
    2180 
    2181                    CALL get_variable( id_dynamic, 'init_soil_m',               &
    2182                                       init_3d%msoil_init(0:init_3d%nzs-1) )
    2183 !
    2184 !--             level-of-detail 2 - read 3D initialization data
    2185                 ELSEIF ( init_3d%lod_msoil == 2 )  THEN  ! need to be corrected
    2186                    ALLOCATE ( init_3d%msoil(0:init_3d%nzs-1,nys:nyn,nxl:nxr) )
    2187                    DO  i = nxl, nxr
    2188                       DO  j = nys, nyn
    2189                          CALL get_variable( id_dynamic, 'init_soil_m', i, j,   &
    2190                                             init_3d%msoil(0:init_3d%nzs-1,j,i) )
     2171             IF ( land_surface )  THEN
     2172                IF ( check_existence( var_names, 'init_soil_m' ) )  THEN
     2173!
     2174!--                Read attributes for the fill value and level-of-detail
     2175                   CALL get_attribute( id_dynamic, char_fill,                  &
     2176                                       init_3d%fill_msoil,                     &
     2177                                       .FALSE., 'init_soil_m' )
     2178                   CALL get_attribute( id_dynamic, char_lod,                   &
     2179                                       init_3d%lod_msoil,                      &
     2180                                       .FALSE., 'init_soil_m' )
     2181!
     2182!--                level-of-detail 1 - read initialization profile
     2183                   IF ( init_3d%lod_msoil == 1 )  THEN
     2184                      ALLOCATE( init_3d%msoil_init(0:init_3d%nzs-1) )
     2185
     2186                      CALL get_variable( id_dynamic, 'init_soil_m',            &
     2187                                         init_3d%msoil_init(0:init_3d%nzs-1) )
     2188!
     2189!--                level-of-detail 2 - read 3D initialization data
     2190                   ELSEIF ( init_3d%lod_msoil == 2 )  THEN  ! need to be corrected
     2191                      ALLOCATE ( init_3d%msoil(0:init_3d%nzs-1,nys:nyn,nxl:nxr) )
     2192                      DO  i = nxl, nxr
     2193                         DO  j = nys, nyn
     2194                            CALL get_variable( id_dynamic, 'init_soil_m', i, j,&
     2195                                               init_3d%msoil(0:init_3d%nzs-1,j,i) )
     2196                         ENDDO
    21912197                      ENDDO
    2192                    ENDDO
    2193                 ENDIF
    2194                 init_3d%from_file_msoil = .TRUE.
    2195              ENDIF
    2196 !
    2197 !--          Read soil temperature
    2198              IF ( check_existence( var_names, 'init_soil_t' ) )  THEN
    2199 !
    2200 !--             Read attributes for the fill value and level-of-detail
    2201                 CALL get_attribute( id_dynamic, char_fill, init_3d%fill_tsoil, &
    2202                                     .FALSE., 'init_soil_t' )
    2203                 CALL get_attribute( id_dynamic, char_lod, init_3d%lod_tsoil,   &
    2204                                     .FALSE., 'init_soil_t' )
    2205 !
    2206 !--             level-of-detail 1 - read initialization profile
    2207                 IF ( init_3d%lod_tsoil == 1 )  THEN
    2208                    ALLOCATE( init_3d%tsoil_init(0:init_3d%nzs-1) )
    2209 
    2210                    CALL get_variable( id_dynamic, 'init_soil_t',               &
    2211                                       init_3d%tsoil_init(0:init_3d%nzs-1) )
    2212 
    2213 !
    2214 !--             level-of-detail 2 - read 3D initialization data
    2215                 ELSEIF ( init_3d%lod_tsoil == 2 )  THEN  ! need to be corrected
    2216                    ALLOCATE ( init_3d%tsoil(0:init_3d%nzs-1,nys:nyn,nxl:nxr) )
    2217                    DO  i = nxl, nxr
    2218                       DO  j = nys, nyn
    2219                          CALL get_variable( id_dynamic, 'init_soil_t', i, j,   &
    2220                                             init_3d%tsoil(0:init_3d%nzs-1,j,i) )
     2198                   ENDIF
     2199                   init_3d%from_file_msoil = .TRUE.
     2200                ENDIF
     2201!
     2202!--             Read soil temperature
     2203                IF ( check_existence( var_names, 'init_soil_t' ) )  THEN
     2204!
     2205!--                Read attributes for the fill value and level-of-detail
     2206                   CALL get_attribute( id_dynamic, char_fill,                  &
     2207                                       init_3d%fill_tsoil,                     &
     2208                                       .FALSE., 'init_soil_t' )
     2209                   CALL get_attribute( id_dynamic, char_lod,                   &
     2210                                       init_3d%lod_tsoil,                      &
     2211                                       .FALSE., 'init_soil_t' )
     2212!
     2213!--                level-of-detail 1 - read initialization profile
     2214                   IF ( init_3d%lod_tsoil == 1 )  THEN
     2215                      ALLOCATE( init_3d%tsoil_init(0:init_3d%nzs-1) )
     2216
     2217                      CALL get_variable( id_dynamic, 'init_soil_t',            &
     2218                                         init_3d%tsoil_init(0:init_3d%nzs-1) )
     2219
     2220!
     2221!--                level-of-detail 2 - read 3D initialization data
     2222                   ELSEIF ( init_3d%lod_tsoil == 2 )  THEN  ! need to be corrected
     2223                      ALLOCATE ( init_3d%tsoil(0:init_3d%nzs-1,nys:nyn,nxl:nxr) )
     2224                      DO  i = nxl, nxr
     2225                         DO  j = nys, nyn
     2226                            CALL get_variable( id_dynamic, 'init_soil_t', i, j,&
     2227                                               init_3d%tsoil(0:init_3d%nzs-1,j,i) )
     2228                         ENDDO
    22212229                      ENDDO
    2222                    ENDDO
    2223                 ENDIF
    2224                 init_3d%from_file_tsoil = .TRUE.
     2230                   ENDIF
     2231                   init_3d%from_file_tsoil = .TRUE.
     2232                ENDIF
    22252233             ENDIF
    22262234!
Note: See TracChangeset for help on using the changeset viewer.