Ignore:
Timestamp:
Oct 24, 2019 1:40:54 PM (5 years ago)
Author:
monakurppa
Message:

Add logical switched nesting_chem and nesting_offline_chem

File:
1 edited

Legend:

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

    r4270 r4273  
    2525! -----------------
    2626! $Id$
     27! Add a logical switch nesting_offline_chem
     28!
     29! 4270 2019-10-23 10:46:20Z monakurppa
    2730! Implement offline nesting for salsa variables.
    2831!
     
    139142           ONLY:  g,                                                           &
    140143                  pi
    141                  
     144
    142145    USE chem_modules,                                                          &
    143         ONLY:  chem_species
     146        ONLY:  chem_species, nesting_offline_chem
    144147
    145148    USE control_parameters,                                                    &
     
    170173               time_since_reference_point,                                     &
    171174               volume_flow
    172                
     175
    173176    USE cpulog,                                                                &
    174177        ONLY:  cpu_log,                                                        &
     
    520523                             .TRUE. )
    521524       ENDIF
    522        
    523        IF ( air_chemistry )  THEN
     525
     526       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    524527          DO  n = 1, UBOUND(nest_offl%var_names_chem_l, 1)
    525528             IF ( check_existence( nest_offl%var_names,                        &
    526                                    nest_offl%var_names_chem_l(n) ) )  THEN 
     529                                   nest_offl%var_names_chem_l(n) ) )  THEN
    527530                CALL get_variable( pids_id,                                    &
    528531                           TRIM( nest_offl%var_names_chem_l(n) ),              &
     
    594597                             .TRUE. )
    595598       ENDIF
    596        
    597        IF ( air_chemistry )  THEN
     599
     600       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    598601          DO  n = 1, UBOUND(nest_offl%var_names_chem_r, 1)
    599602             IF ( check_existence( nest_offl%var_names,                        &
    600                                    nest_offl%var_names_chem_r(n) ) )  THEN     
     603                                   nest_offl%var_names_chem_r(n) ) )  THEN
    601604                CALL get_variable( pids_id,                                    &
    602605                           TRIM( nest_offl%var_names_chem_r(n) ),              &
     
    623626                          MERGE( nest_offl%nzu, 0, bc_dirichlet_n ),           & ! number of time steps (2 or 0)
    624627                          MERGE( 2, 0, bc_dirichlet_n ),                       & ! parallel IO when compiled accordingly
    625                           .TRUE. )                                             
    626                                                                                
     628                          .TRUE. )
     629
    627630       CALL get_variable( pids_id, 'ls_forcing_north_v',                       & ! array to be read
    628631                          nest_offl%v_north,                                   & ! start index x direction
     
    633636                          MERGE( nest_offl%nzu, 0, bc_dirichlet_n ),           & ! number of time steps (2 or 0)
    634637                          MERGE( 2, 0, bc_dirichlet_n ),                       & ! parallel IO when compiled accordingly
    635                           .TRUE. )                                             
    636                                                                                
     638                          .TRUE. )
     639
    637640       CALL get_variable( pids_id, 'ls_forcing_north_w',                       & ! array to be read
    638641                          nest_offl%w_north,                                   & ! start index x direction
     
    643646                          MERGE( nest_offl%nzw, 0, bc_dirichlet_n ),           & ! number of time steps (2 or 0)
    644647                          MERGE( 2, 0, bc_dirichlet_n ),                       & ! parallel IO when compiled accordingly
    645                           .TRUE. )                                             
    646                                                                                
    647        IF ( .NOT. neutral )  THEN                                             
     648                          .TRUE. )
     649
     650       IF ( .NOT. neutral )  THEN
    648651          CALL get_variable( pids_id, 'ls_forcing_north_pt',                   & ! array to be read
    649652                             nest_offl%pt_north,                               & ! start index x direction
     
    654657                             MERGE( nest_offl%nzu, 0, bc_dirichlet_n ),        & ! number of time steps (2 or 0)
    655658                             MERGE( 2, 0, bc_dirichlet_n ),                    & ! parallel IO when compiled accordingly
    656                              .TRUE. )                                             
    657        ENDIF                                                                   
    658        IF ( humidity )  THEN                                                   
     659                             .TRUE. )
     660       ENDIF
     661       IF ( humidity )  THEN
    659662          CALL get_variable( pids_id, 'ls_forcing_north_qv',                   & ! array to be read
    660663                             nest_offl%q_north,                                & ! start index x direction
     
    665668                             MERGE( nest_offl%nzu, 0, bc_dirichlet_n ),        & ! number of time steps (2 or 0)
    666669                             MERGE( 2, 0, bc_dirichlet_n ),                    & ! parallel IO when compiled accordingly
    667                              .TRUE. )                                             
    668        ENDIF                                                                   
    669                                                                                
    670        IF ( air_chemistry )  THEN                                             
    671           DO  n = 1, UBOUND(nest_offl%var_names_chem_n, 1)                     
     670                             .TRUE. )
     671       ENDIF
     672
     673       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
     674          DO  n = 1, UBOUND(nest_offl%var_names_chem_n, 1)
    672675             IF ( check_existence( nest_offl%var_names,                        &
    673                                    nest_offl%var_names_chem_n(n) ) )  THEN     
     676                                   nest_offl%var_names_chem_n(n) ) )  THEN
    674677                CALL get_variable( pids_id,                                    &
    675678                           TRIM( nest_offl%var_names_chem_n(n) ),              &
     
    696699                          MERGE( nest_offl%nzu, 0, bc_dirichlet_s ),           & ! number of time steps (2 or 0)
    697700                          MERGE( 2, 0, bc_dirichlet_s ),                       & ! parallel IO when compiled accordingly
    698                           .TRUE. )                                             
    699                                                                                
     701                          .TRUE. )
     702
    700703       CALL get_variable( pids_id, 'ls_forcing_south_v',                       & ! array to be read
    701704                          nest_offl%v_south,                                   & ! start index x direction
     
    706709                          MERGE( nest_offl%nzu, 0, bc_dirichlet_s ),           & ! number of time steps (2 or 0)
    707710                          MERGE( 2, 0, bc_dirichlet_s ),                       & ! parallel IO when compiled accordingly
    708                           .TRUE. )                                             
    709                                                                                
     711                          .TRUE. )
     712
    710713       CALL get_variable( pids_id, 'ls_forcing_south_w',                       & ! array to be read
    711714                          nest_offl%w_south,                                   & ! start index x direction
     
    716719                          MERGE( nest_offl%nzw, 0, bc_dirichlet_s ),           & ! number of time steps (2 or 0)
    717720                          MERGE( 2, 0, bc_dirichlet_s ),                       & ! parallel IO when compiled accordingly
    718                           .TRUE. )                                             
    719                                                                                
    720        IF ( .NOT. neutral )  THEN                                             
     721                          .TRUE. )
     722
     723       IF ( .NOT. neutral )  THEN
    721724          CALL get_variable( pids_id, 'ls_forcing_south_pt',                   & ! array to be read
    722725                             nest_offl%pt_south,                               & ! start index x direction
     
    727730                             MERGE( nest_offl%nzu, 0, bc_dirichlet_s ),        & ! number of time steps (2 or 0)
    728731                             MERGE( 2, 0, bc_dirichlet_s ),                    & ! parallel IO when compiled accordingly
    729                              .TRUE. )                                             
    730        ENDIF                                                                   
    731        IF ( humidity )  THEN                                                   
     732                             .TRUE. )
     733       ENDIF
     734       IF ( humidity )  THEN
    732735          CALL get_variable( pids_id, 'ls_forcing_south_qv',                   & ! array to be read
    733736                             nest_offl%q_south,                                & ! start index x direction
     
    738741                             MERGE( nest_offl%nzu, 0, bc_dirichlet_s ),        & ! number of time steps (2 or 0)
    739742                             MERGE( 2, 0, bc_dirichlet_s ),                    & ! parallel IO when compiled accordingly
    740                              .TRUE. )                                             
    741        ENDIF                                                                   
    742                                                                                
    743        IF ( air_chemistry )  THEN                                             
    744           DO  n = 1, UBOUND(nest_offl%var_names_chem_s, 1)                     
     743                             .TRUE. )
     744       ENDIF
     745
     746       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
     747          DO  n = 1, UBOUND(nest_offl%var_names_chem_s, 1)
    745748             IF ( check_existence( nest_offl%var_names,                        &
    746                                    nest_offl%var_names_chem_s(n) ) )  THEN     
     749                                   nest_offl%var_names_chem_s(n) ) )  THEN
    747750                CALL get_variable( pids_id,                                    &
    748751                           TRIM( nest_offl%var_names_chem_s(n) ),              &
     
    770773                             nxl+1, nysv, nest_offl%tind+1,                    &
    771774                             nxr-nxl+1, nyn-nysv+1, 2, .TRUE. )
    772                              
     775
    773776       CALL get_variable( pids_id, 'ls_forcing_top_w',                         &
    774777                             nest_offl%w_top(0:1,nys:nyn,nxl:nxr),             &
    775778                             nxl+1, nys+1, nest_offl%tind+1,                   &
    776779                             nxr-nxl+1, nyn-nys+1, 2, .TRUE. )
    777                              
     780
    778781       IF ( .NOT. neutral )  THEN
    779782          CALL get_variable( pids_id, 'ls_forcing_top_pt',                     &
     
    788791                                nxr-nxl+1, nyn-nys+1, 2, .TRUE. )
    789792       ENDIF
    790        
    791        IF ( air_chemistry )  THEN
     793
     794       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    792795          DO  n = 1, UBOUND(nest_offl%var_names_chem_t, 1)
    793796             IF ( check_existence( nest_offl%var_names,                        &
    794                                    nest_offl%var_names_chem_t(n) ) )  THEN     
     797                                   nest_offl%var_names_chem_t(n) ) )  THEN
    795798                CALL get_variable( pids_id,                                    &
    796799                              TRIM( nest_offl%var_names_chem_t(n) ),           &
     
    961964       u_ref    = 0.0_wp
    962965       v_ref    = 0.0_wp
    963        
     966
    964967       pt_ref_l = 0.0_wp
    965968       q_ref_l  = 0.0_wp
     
    968971!
    969972!--    If required, allocate temporary arrays to compute chemistry mean profiles
    970        IF ( air_chemistry )  THEN
     973       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    971974          ALLOCATE( ref_chem(nzb:nzt+1,1:UBOUND( chem_species, 1 ) )   )
    972975          ALLOCATE( ref_chem_l(nzb:nzt+1,1:UBOUND( chem_species, 1 ) ) )
     
    10431046             ENDDO
    10441047          ENDIF
    1045          
    1046           IF ( air_chemistry )  THEN
     1048
     1049          IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    10471050             DO  n = 1, UBOUND( chem_species, 1 )
    1048                 IF ( nest_offl%chem_from_file_l(n) )  THEN                   
     1051                IF ( nest_offl%chem_from_file_l(n) )  THEN
    10491052                   DO  j = nys, nyn
    10501053                      DO  k = nzb+1, nzt
     
    11211124             ENDDO
    11221125          ENDIF
    1123          
    1124           IF ( air_chemistry )  THEN
     1126
     1127          IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    11251128             DO  n = 1, UBOUND( chem_species, 1 )
    1126                 IF ( nest_offl%chem_from_file_r(n) )  THEN 
     1129                IF ( nest_offl%chem_from_file_r(n) )  THEN
    11271130                   DO  j = nys, nyn
    11281131                      DO  k = nzb+1, nzt
     
    12021205             ENDDO
    12031206          ENDIF
    1204          
    1205           IF ( air_chemistry )  THEN
     1207
     1208          IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    12061209             DO  n = 1, UBOUND( chem_species, 1 )
    1207                 IF ( nest_offl%chem_from_file_s(n) )  THEN 
     1210                IF ( nest_offl%chem_from_file_s(n) )  THEN
    12081211                   DO  i = nxl, nxr
    12091212                      DO  k = nzb+1, nzt
     
    12821285             ENDDO
    12831286          ENDIF
    1284          
    1285           IF ( air_chemistry )  THEN
     1287
     1288          IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    12861289             DO  n = 1, UBOUND( chem_species, 1 )
    1287                 IF ( nest_offl%chem_from_file_n(n) )  THEN 
     1290                IF ( nest_offl%chem_from_file_n(n) )  THEN
    12881291                   DO  i = nxl, nxr
    12891292                      DO  k = nzb+1, nzt
     
    13681371          ENDDO
    13691372       ENDIF
    1370        
    1371        IF ( air_chemistry )  THEN
     1373
     1374       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    13721375          DO  n = 1, UBOUND( chem_species, 1 )
    1373              IF ( nest_offl%chem_from_file_t(n) )  THEN 
     1376             IF ( nest_offl%chem_from_file_t(n) )  THEN
    13741377                DO  i = nxl, nxr
    13751378                   DO  j = nys, nyn
     
    14131416       IF ( .NOT. neutral )  CALL exchange_horiz( pt, nbgp )
    14141417       IF ( humidity      )  CALL exchange_horiz( q,  nbgp )
    1415        IF ( air_chemistry )  THEN
     1418       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    14161419          DO  n = 1, UBOUND( chem_species, 1 )
    14171420!
     
    14471450                              comm2d, ierr )
    14481451       ENDIF
    1449        IF ( air_chemistry )  THEN
     1452       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    14501453          CALL MPI_ALLREDUCE( ref_chem_l, ref_chem,                            &
    14511454                              ( nzt+1-nzb+1 ) * SIZE( ref_chem(nzb,:) ),       &
     
    14571460       IF ( humidity )       q_ref    = q_ref_l
    14581461       IF ( .NOT. neutral )  pt_ref   = pt_ref_l
    1459        IF ( air_chemistry )  ref_chem = ref_chem_l
     1462       IF ( air_chemistry  .AND.  nesting_offline_chem )  ref_chem = ref_chem_l
    14601463#endif
    14611464!
     
    14761479                                                          ( ny + 1 + nx + 1 ), &
    14771480                                              KIND = wp )
    1478        IF ( air_chemistry )                                                    &
     1481       IF ( air_chemistry  .AND.  nesting_offline_chem )                       &
    14791482          ref_chem(nzb:nzt,:) = ref_chem(nzb:nzt,:) / REAL( 2.0_wp *           &
    14801483                                                          ( ny + 1 + nx + 1 ), &
     
    14901493          pt_ref(nzt+1) = pt_ref(nzt+1) / REAL( ( ny + 1 ) * ( nx + 1 ),       &
    14911494                                                KIND = wp )
    1492        IF ( air_chemistry )                                                    &
     1495       IF ( air_chemistry  .AND.  nesting_offline_chem )                       &
    14931496          ref_chem(nzt+1,:) = ref_chem(nzt+1,:) /                              &
    14941497                              REAL( ( ny + 1 ) * ( nx + 1 ),KIND = wp )
     
    15081511       ENDIF
    15091512
    1510        IF ( air_chemistry )  THEN
     1513       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    15111514          DO  n = 1, UBOUND( chem_species, 1 )
    15121515             IF ( nest_offl%chem_from_file_t(n) )  THEN
     
    15191522
    15201523       IF ( ALLOCATED( ref_chem   ) )  DEALLOCATE( ref_chem   )
    1521        IF ( ALLOCATED( ref_chem_l ) )  DEALLOCATE( ref_chem_l )     
     1524       IF ( ALLOCATED( ref_chem_l ) )  DEALLOCATE( ref_chem_l )
    15221525!
    15231526!--    Further, adjust Rayleigh damping height in case of time-changing conditions.
     
    15251528       CALL nesting_offl_calc_zi
    15261529       CALL adjust_sponge_layer
    1527        
     1530
    15281531       CALL  cpu_log( log_point(58), 'offline nesting', 'stop' )
    15291532
     
    18931896          IF ( humidity )       ALLOCATE( nest_offl%q_left(0:1,nzb+1:nzt,nys:nyn)  )
    18941897          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_left(0:1,nzb+1:nzt,nys:nyn) )
    1895           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_left(0:1,nzb+1:nzt,nys:nyn,&
    1896                                           1:UBOUND( chem_species, 1 )) )
     1898          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1899             ALLOCATE( nest_offl%chem_left(0:1,nzb+1:nzt,nys:nyn,1:UBOUND( chem_species, 1 )) )
    18971900       ELSE
    18981901          ALLOCATE( nest_offl%u_left(1:1,1:1,1:1)  )
     
    19011904          IF ( humidity )       ALLOCATE( nest_offl%q_left(1:1,1:1,1:1)  )
    19021905          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_left(1:1,1:1,1:1)  )
    1903           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_left(1:1,1:1,1:1,     &
    1904                                           1:UBOUND( chem_species, 1 )) )
     1906          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1907             ALLOCATE( nest_offl%chem_left(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) )
    19051908       ENDIF
    19061909       IF ( bc_dirichlet_r )  THEN
     
    19101913          IF ( humidity )       ALLOCATE( nest_offl%q_right(0:1,nzb+1:nzt,nys:nyn)  )
    19111914          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_right(0:1,nzb+1:nzt,nys:nyn) )
    1912           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_right(0:1,nzb+1:nzt,nys:nyn,&
    1913                                           1:UBOUND( chem_species, 1 )) )
     1915          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1916             ALLOCATE( nest_offl%chem_right(0:1,nzb+1:nzt,nys:nyn,1:UBOUND( chem_species, 1 )) )
    19141917       ELSE
    19151918          ALLOCATE( nest_offl%u_right(1:1,1:1,1:1)  )
     
    19181921          IF ( humidity )       ALLOCATE( nest_offl%q_right(1:1,1:1,1:1)  )
    19191922          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_right(1:1,1:1,1:1)  )
    1920           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_right(1:1,1:1,1:1,    &
    1921                                           1:UBOUND( chem_species, 1 )) )
     1923          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1924             ALLOCATE( nest_offl%chem_right(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) )
    19221925       ENDIF
    19231926!
     
    19321935          IF ( humidity )       ALLOCATE( nest_offl%q_north(0:1,nzb+1:nzt,nxl:nxr)  )
    19331936          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_north(0:1,nzb+1:nzt,nxl:nxr) )
    1934           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_north(0:1,nzb+1:nzt,nxl:nxr,&
    1935                                           1:UBOUND( chem_species, 1 )) )
     1937          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1938             ALLOCATE( nest_offl%chem_north(0:1,nzb+1:nzt,nxl:nxr,1:UBOUND( chem_species, 1 )) )
    19361939       ELSE
    19371940          ALLOCATE( nest_offl%u_north(1:1,1:1,1:1)  )
     
    19401943          IF ( humidity )       ALLOCATE( nest_offl%q_north(1:1,1:1,1:1)  )
    19411944          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_north(1:1,1:1,1:1)  )
    1942           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_north(1:1,1:1,1:1,    &
    1943                                           1:UBOUND( chem_species, 1 )) )
     1945          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1946             ALLOCATE( nest_offl%chem_north(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) )
    19441947       ENDIF
    19451948       IF ( bc_dirichlet_s )  THEN
     
    19491952          IF ( humidity )       ALLOCATE( nest_offl%q_south(0:1,nzb+1:nzt,nxl:nxr)  )
    19501953          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_south(0:1,nzb+1:nzt,nxl:nxr) )
    1951           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_south(0:1,nzb+1:nzt,nxl:nxr,&
    1952                                           1:UBOUND( chem_species, 1 )) )
     1954          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1955             ALLOCATE( nest_offl%chem_south(0:1,nzb+1:nzt,nxl:nxr,1:UBOUND( chem_species, 1 )) )
    19531956       ELSE
    19541957          ALLOCATE( nest_offl%u_south(1:1,1:1,1:1)  )
     
    19571960          IF ( humidity )       ALLOCATE( nest_offl%q_south(1:1,1:1,1:1)  )
    19581961          IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_south(1:1,1:1,1:1)  )
    1959           IF ( air_chemistry )  ALLOCATE( nest_offl%chem_south(1:1,1:1,1:1,    &
    1960                                           1:UBOUND( chem_species, 1 )) )
     1962          IF ( air_chemistry  .AND.  nesting_offline_chem )                                        &
     1963             ALLOCATE( nest_offl%chem_south(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) )
    19611964       ENDIF
    19621965!
     
    19691972       IF ( humidity )       ALLOCATE( nest_offl%q_top(0:1,nys:nyn,nxl:nxr)  )
    19701973       IF ( .NOT. neutral )  ALLOCATE( nest_offl%pt_top(0:1,nys:nyn,nxl:nxr) )
    1971        IF ( air_chemistry )  ALLOCATE( nest_offl%chem_top(0:1,nys:nyn,nxl:nxr, &
    1972                                        1:UBOUND( chem_species, 1 )) )
     1974       IF ( air_chemistry  .AND.  nesting_offline_chem )                                          &
     1975          ALLOCATE( nest_offl%chem_top(0:1,nys:nyn,nxl:nxr,1:UBOUND( chem_species, 1 )) )
    19731976!
    19741977!--    For chemical species, create the names of the variables. This is necessary
    19751978!--    to identify the respective variable and write it onto the correct array
    19761979!--    in the chem_species datatype.
    1977        IF ( air_chemistry )  THEN
     1980       IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    19781981          ALLOCATE( nest_offl%chem_from_file_l(1:UBOUND( chem_species, 1 )) )
    19791982          ALLOCATE( nest_offl%chem_from_file_n(1:UBOUND( chem_species, 1 )) )
     
    19811984          ALLOCATE( nest_offl%chem_from_file_s(1:UBOUND( chem_species, 1 )) )
    19821985          ALLOCATE( nest_offl%chem_from_file_t(1:UBOUND( chem_species, 1 )) )
    1983          
     1986
    19841987          ALLOCATE( nest_offl%var_names_chem_l(1:UBOUND( chem_species, 1 )) )
    19851988          ALLOCATE( nest_offl%var_names_chem_n(1:UBOUND( chem_species, 1 )) )
     
    19951998          nest_offl%chem_from_file_s(:) = .FALSE.
    19961999          nest_offl%chem_from_file_t(:) = .FALSE.
    1997          
     2000
    19982001          DO  n = 1, UBOUND( chem_species, 1 )
    19992002             nest_offl%var_names_chem_l(n) = nest_offl%char_l //               &
     
    20542057             IF ( humidity      )  q(nzb+1:nzt,nys:nyn,-1)  =                  &
    20552058                                      nest_offl%q_left(0,nzb+1:nzt,nys:nyn)
    2056              IF ( air_chemistry )  THEN
     2059             IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    20572060                DO  n = 1, UBOUND( chem_species, 1 )
    20582061                   IF( nest_offl%chem_from_file_l(n) )  THEN
     
    20712074             IF ( humidity      )  q(nzb+1:nzt,nys:nyn,nxr+1)  =               &
    20722075                                      nest_offl%q_right(0,nzb+1:nzt,nys:nyn)
    2073              IF ( air_chemistry )  THEN
     2076             IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    20742077                DO  n = 1, UBOUND( chem_species, 1 )
    20752078                   IF( nest_offl%chem_from_file_r(n) )  THEN
     
    20882091             IF ( humidity      )  q(nzb+1:nzt,-1,nxl:nxr)  =                  &
    20892092                                      nest_offl%q_south(0,nzb+1:nzt,nxl:nxr)
    2090              IF ( air_chemistry )  THEN
     2093             IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    20912094                DO  n = 1, UBOUND( chem_species, 1 )
    20922095                   IF( nest_offl%chem_from_file_s(n) )  THEN
     
    21052108             IF ( humidity      )  q(nzb+1:nzt,nyn+1,nxl:nxr)  =               &
    21062109                                      nest_offl%q_north(0,nzb+1:nzt,nxl:nxr)
    2107              IF ( air_chemistry )  THEN
     2110             IF ( air_chemistry  .AND.  nesting_offline_chem )  THEN
    21082111                DO  n = 1, UBOUND( chem_species, 1 )
    21092112                   IF( nest_offl%chem_from_file_n(n) )  THEN
     
    21142117             ENDIF
    21152118          ENDIF
    2116 !         
     2119!
    21172120!--       Initialize geostrophic wind components. Actually this is already done in
    21182121!--       init_3d_model when initializing_action = 'inifor', however, in speical
     
    21212124          ug(nzb+1:nzt) = nest_offl%ug(0,nzb+1:nzt)
    21222125          vg(nzb+1:nzt) = nest_offl%vg(0,nzb+1:nzt)
    2123 !         
     2126!
    21242127!--       Set bottom and top boundary condition for geostrophic wind components
    21252128          ug(nzt+1) = ug(nzt)
     
    21272130          ug(nzb)   = ug(nzb+1)
    21282131          vg(nzb)   = vg(nzb+1)
    2129        ENDIF     
     2132       ENDIF
    21302133!
    21312134!--    After boundary data is initialized, mask topography at the
Note: See TracChangeset for help on using the changeset viewer.