Changeset 2805


Ignore:
Timestamp:
Feb 14, 2018 5:00:09 PM (6 years ago)
Author:
suehring
Message:

Bugfix in re-mapping surface-element data in case of restarts; bugfix in initialization of water-surface roughness; bugfix - uninitialized resistance at urban-type surfaces

Location:
palm/trunk/SOURCE
Files:
4 edited

Legend:

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

    r2798 r2805  
    913913                                   surf_usm_h%frac(2,m) * surf_usm_h%r_a_window(m) )
    914914                   ENDDO
    915 
    916915                ELSE
    917916                   DO  i = nxl, nxr
  • palm/trunk/SOURCE/land_surface_model_mod.f90

    r2798 r2805  
    2525! -----------------
    2626! $Id$
     27! Bugfix in initialization of roughness over water surfaces
     28!
     29! 2798 2018-02-09 17:16:39Z suehring
    2730! Minor bugfix for initialization of pt_surface
    2831!
     
    33823385                   surf_lsm_h%z0q(m)    = water_pars_f%pars_xy(ind_w_z0h,j,i)
    33833386                ENDIF
    3384 
    33853387                IF ( water_pars_f%pars_xy(ind_w_lambda_s,j,i) /=               &
    33863388                     water_pars_f%fill )                                       &
     
    38643866          ENDDO
    38653867       ENDIF
     3868
    38663869!
    38673870!--    Initial run actions
     
    42644267!--    Calculate new roughness lengths (for water surfaces only, i.e. only
    42654268!-     horizontal surfaces)
    4266        CALL calc_z0_water_surface
     4269       IF ( .NOT. constant_roughness )  CALL calc_z0_water_surface
    42674270
    42684271       t_soil_h_p    = t_soil_h
     
    43074310          ENDIF
    43084311       ENDDO
     4312
    43094313
    43104314
     
    58975901      ENDIF
    58985902      READ ( 13 ) ns_v_on_file_lsm
    5899 
    59005903!
    59015904!--   Allocate temporary arrays to store surface data
  • palm/trunk/SOURCE/surface_mod.f90

    r2766 r2805  
    2626! -----------------
    2727! $Id$
     28! Bugfix in re-mapping surface elements in case of restart runs
     29!
     30! 2766 2018-01-22 17:17:47Z kanani
    2831! Removed preprocessor directive __chem
    2932!
     
    875878       ENDDO
    876879
     880
    877881    END SUBROUTINE init_surface_arrays
    878882
     
    16101614       ENDDO
    16111615
    1612 
    16131616       CONTAINS
    16141617
     
    21812184       IMPLICIT NONE
    21822185
    2183        CHARACTER(LEN=1)             ::  dum  !< dummy string to create output-variable name
    2184 
    2185        INTEGER(iwp)                 ::  i    !< running index x-direction
    2186        INTEGER(iwp)                 ::  j    !< running index y-direction
    2187        INTEGER(iwp)                 ::  l    !< index surface type orientation
    2188        INTEGER(iwp)                 ::  lsp  !< running index chemical species
    2189        INTEGER(iwp)                 ::  m    !< running index for surface elements on individual surface array
    2190        INTEGER(iwp), DIMENSION(0:3) ::  mm   !< running index for surface elements on gathered surface array
    2191 
    2192        TYPE(surf_type), DIMENSION(0:2) ::  surf_h !< gathered horizontal surfaces, contains all surface types
    2193        TYPE(surf_type), DIMENSION(0:3) ::  surf_v !< gathered vertical surfaces, contains all surface types
     2186       CHARACTER(LEN=1)             ::  dum           !< dummy string to create output-variable name
     2187
     2188       INTEGER(iwp)                 ::  i             !< running index x-direction
     2189       INTEGER(iwp)                 ::  j             !< running index y-direction
     2190       INTEGER(iwp)                 ::  l             !< index surface type orientation
     2191       INTEGER(iwp)                 ::  lsp           !< running index chemical species
     2192       INTEGER(iwp)                 ::  m             !< running index for surface elements on individual surface array
     2193       INTEGER(iwp)                 ::  start_index_h !< start index for horizontal surface elements on gathered surface array
     2194       INTEGER(iwp), DIMENSION(0:3) ::  mm            !< running index for surface elements on gathered surface array
     2195       INTEGER(iwp), DIMENSION(0:3) ::  start_index_v !< start index for vertical surface elements on gathered surface array
     2196
     2197       TYPE(surf_type), DIMENSION(0:2) ::  surf_h     !< gathered horizontal surfaces, contains all surface types
     2198       TYPE(surf_type), DIMENSION(0:3) ::  surf_v     !< gathered vertical surfaces, contains all surface types
    21942199
    21952200!
     
    23962401          ENDDO
    23972402!
    2398 !--       Gather start- and end indices                                       
     2403!--       Gather start- and end indices
     2404          start_index_h = 1                                       
    23992405          DO  i = nxl, nxr
    24002406             DO  j = nys, nyn
     2407
     2408                surf_h(l)%start_index(j,i) = start_index_h
     2409                surf_h(l)%end_index(j,i)   = surf_h(l)%start_index(j,i) -1
     2410
    24012411                IF ( surf_def_h(l)%start_index(j,i) <=                         &
    2402                      surf_def_h(l)%end_index(j,i) )  THEN
    2403                    surf_h(l)%start_index(j,i) = surf_def_h(l)%start_index(j,i)
    2404                    surf_h(l)%end_index(j,i)   = surf_def_h(l)%end_index(j,i)
    2405                 ENDIF
     2412                     surf_def_h(l)%end_index(j,i) )                            &
     2413                   surf_h(l)%end_index(j,i) = surf_h(l)%end_index(j,i) + 1
    24062414                IF ( l == 0 )  THEN
    24072415                   IF ( surf_lsm_h%start_index(j,i) <=                         &
    2408                         surf_lsm_h%end_index(j,i) )  THEN
    2409                       surf_h(l)%start_index(j,i) = surf_lsm_h%start_index(j,i)
    2410                       surf_h(l)%end_index(j,i)   = surf_lsm_h%end_index(j,i)
    2411                    ENDIF
     2416                        surf_lsm_h%end_index(j,i) )                            &
     2417                      surf_h(l)%end_index(j,i) = surf_h(l)%end_index(j,i) + 1
    24122418                   IF ( surf_usm_h%start_index(j,i) <=                         &
    2413                         surf_usm_h%end_index(j,i) )  THEN
    2414                       surf_h(l)%start_index(j,i) = surf_usm_h%start_index(j,i)
    2415                       surf_h(l)%end_index(j,i)   = surf_usm_h%end_index(j,i)
    2416                    ENDIF
     2419                        surf_usm_h%end_index(j,i) )                            &
     2420                      surf_h(l)%end_index(j,i) = surf_h(l)%end_index(j,i) + 1
    24172421                ENDIF
     2422                start_index_h = surf_h(l)%start_index(j,i) + 1
    24182423             ENDDO
    24192424          ENDDO
     
    26112616                                       surf_lsm_v(l)%end_index,                &
    26122617                                       surf_usm_v(l)%end_index   )
     2618
     2619!
     2620!--       Gather start- and end indices
     2621          start_index_v(l) = 1                                       
     2622          DO  i = nxl, nxr
     2623             DO  j = nys, nyn
     2624
     2625                surf_v(l)%start_index(j,i) = start_index_v(l)
     2626                surf_v(l)%end_index(j,i)   = surf_v(l)%start_index(j,i) -1
     2627
     2628                IF ( surf_def_v(l)%start_index(j,i) <=                         &
     2629                     surf_def_v(l)%end_index(j,i) )                            &
     2630                   surf_v(l)%end_index(j,i) = surf_v(l)%end_index(j,i) + 1
     2631                IF ( l == 0 )  THEN
     2632                   IF ( surf_lsm_v(l)%start_index(j,i) <=                      &
     2633                        surf_lsm_v(l)%end_index(j,i) )                         &
     2634                      surf_v(l)%end_index(j,i) = surf_v(l)%end_index(j,i) + 1
     2635                   IF ( surf_usm_v(l)%start_index(j,i) <=                      &
     2636                        surf_usm_v(l)%end_index(j,i) )                         &
     2637                      surf_v(l)%end_index(j,i) = surf_v(l)%end_index(j,i) + 1
     2638                ENDIF
     2639                start_index_v(l) = surf_v(l)%start_index(j,i) + 1
     2640             ENDDO
     2641          ENDDO
    26132642       ENDDO
    26142643
     
    26282657          WRITE ( 14 )   surf_h(l)%end_index
    26292658
    2630           WRITE ( 14 )  'surf_h(' // dum // ')%us                  '
    26312659          IF ( ALLOCATED ( surf_h(l)%us ) )  THEN
     2660             WRITE ( 14 )  'surf_h(' // dum // ')%us                  '
    26322661             WRITE ( 14 )  surf_h(l)%us
    2633           ENDIF
    2634           WRITE ( 14 )  'surf_h(' // dum // ')%ts                  ' 
     2662          ENDIF
    26352663          IF ( ALLOCATED ( surf_h(l)%ts ) )  THEN
     2664             WRITE ( 14 )  'surf_h(' // dum // ')%ts                  '
    26362665             WRITE ( 14 )  surf_h(l)%ts
    26372666          ENDIF
    2638           WRITE ( 14 )  'surf_h(' // dum // ')%qs                  ' 
    26392667          IF ( ALLOCATED ( surf_h(l)%qs ) )  THEN
     2668             WRITE ( 14 )  'surf_h(' // dum // ')%qs                  ' 
    26402669             WRITE ( 14 )  surf_h(l)%qs
    26412670          ENDIF
    2642           WRITE ( 14 )  'surf_h(' // dum // ')%ss                  ' 
    26432671          IF ( ALLOCATED ( surf_h(l)%ss ) )  THEN
     2672             WRITE ( 14 )  'surf_h(' // dum // ')%ss                  ' 
    26442673             WRITE ( 14 )  surf_h(l)%ss
    26452674          ENDIF
    2646           WRITE ( 14 )  'surf_h(' // dum // ')%qcs                 '
    26472675          IF ( ALLOCATED ( surf_h(l)%qcs ) )  THEN 
     2676             WRITE ( 14 )  'surf_h(' // dum // ')%qcs                 '
    26482677             WRITE ( 14 )  surf_h(l)%qcs
    26492678          ENDIF
    2650           WRITE ( 14 )  'surf_h(' // dum // ')%ncs                 ' 
    26512679          IF ( ALLOCATED ( surf_h(l)%ncs ) )  THEN
     2680             WRITE ( 14 )  'surf_h(' // dum // ')%ncs                 '
    26522681             WRITE ( 14 )  surf_h(l)%ncs
    26532682          ENDIF
    2654           WRITE ( 14 )  'surf_h(' // dum // ')%qrs                 '
    26552683          IF ( ALLOCATED ( surf_h(l)%qrs ) )  THEN 
     2684             WRITE ( 14 )  'surf_h(' // dum // ')%qrs                 '
    26562685             WRITE ( 14 )  surf_h(l)%qrs
    26572686          ENDIF
    2658           WRITE ( 14 )  'surf_h(' // dum // ')%nrs                 ' 
    26592687          IF ( ALLOCATED ( surf_h(l)%nrs ) )  THEN
     2688             WRITE ( 14 )  'surf_h(' // dum // ')%nrs                 ' 
    26602689             WRITE ( 14 )  surf_h(l)%nrs
    26612690          ENDIF
    2662           WRITE ( 14 )  'surf_h(' // dum // ')%ol                  ' 
    26632691          IF ( ALLOCATED ( surf_h(l)%ol ) )  THEN
     2692             WRITE ( 14 )  'surf_h(' // dum // ')%ol                  ' 
    26642693             WRITE ( 14 )  surf_h(l)%ol
    2665           ENDIF
    2666           WRITE ( 14 )  'surf_h(' // dum // ')%rib                 ' 
     2694          ENDIF
    26672695          IF ( ALLOCATED ( surf_h(l)%rib ) )  THEN
     2696             WRITE ( 14 )  'surf_h(' // dum // ')%rib                 '
    26682697             WRITE ( 14 )  surf_h(l)%rib
    2669           ENDIF
    2670           WRITE ( 14 )  'surf_h(' // dum // ')%pt_surface          ' 
     2698          ENDIF
    26712699          IF ( ALLOCATED ( surf_h(l)%pt_surface ) )  THEN
     2700             WRITE ( 14 )  'surf_h(' // dum // ')%pt_surface          '
    26722701             WRITE ( 14 )  surf_h(l)%pt_surface
    2673           ENDIF
    2674           WRITE ( 14 )  'surf_h(' // dum // ')%usws                ' 
     2702          ENDIF
    26752703          IF ( ALLOCATED ( surf_h(l)%usws ) )  THEN
     2704             WRITE ( 14 )  'surf_h(' // dum // ')%usws                '
    26762705             WRITE ( 14 )  surf_h(l)%usws
    26772706          ENDIF
    2678           WRITE ( 14 )  'surf_h(' // dum // ')%vsws                ' 
    26792707          IF ( ALLOCATED ( surf_h(l)%vsws ) )  THEN
     2708             WRITE ( 14 )  'surf_h(' // dum // ')%vsws                ' 
    26802709             WRITE ( 14 )  surf_h(l)%vsws
    26812710          ENDIF
    2682           WRITE ( 14 )  'surf_h(' // dum // ')%shf                 '
    26832711          IF ( ALLOCATED ( surf_h(l)%shf ) )  THEN
     2712             WRITE ( 14 )  'surf_h(' // dum // ')%shf                 '
    26842713             WRITE ( 14 )  surf_h(l)%shf
    26852714          ENDIF
    2686           WRITE ( 14 )  'surf_h(' // dum // ')%qsws                ' 
    26872715          IF ( ALLOCATED ( surf_h(l)%qsws ) )  THEN
     2716             WRITE ( 14 )  'surf_h(' // dum // ')%qsws                ' 
    26882717             WRITE ( 14 )  surf_h(l)%qsws
    26892718          ENDIF
    2690           WRITE ( 14 )  'surf_h(' // dum // ')%ssws                ' 
    26912719          IF ( ALLOCATED ( surf_h(l)%ssws ) )  THEN
     2720             WRITE ( 14 )  'surf_h(' // dum // ')%ssws                ' 
    26922721             WRITE ( 14 )  surf_h(l)%ssws
    26932722          ENDIF
    2694           WRITE ( 14 )  'surf_h(' // dum // ')%css                 '
    26952723          IF ( ALLOCATED ( surf_h(l)%css ) )  THEN
     2724             WRITE ( 14 )  'surf_h(' // dum // ')%css                 '
    26962725             WRITE ( 14 )  surf_h(l)%css
    26972726          ENDIF
    2698           WRITE ( 14 )  'surf_h(' // dum // ')%cssws               '
    26992727          IF ( ALLOCATED ( surf_h(l)%cssws ) )  THEN
     2728             WRITE ( 14 )  'surf_h(' // dum // ')%cssws               '
    27002729             WRITE ( 14 )  surf_h(l)%cssws
    27012730          ENDIF
    2702           WRITE ( 14 )  'surf_h(' // dum // ')%qcsws               ' 
    27032731          IF ( ALLOCATED ( surf_h(l)%qcsws ) )  THEN
     2732             WRITE ( 14 )  'surf_h(' // dum // ')%qcsws               ' 
    27042733             WRITE ( 14 )  surf_h(l)%qcsws
    27052734          ENDIF
    2706           WRITE ( 14 )  'surf_h(' // dum // ')%ncsws               ' 
    27072735          IF ( ALLOCATED ( surf_h(l)%ncsws ) )  THEN
     2736             WRITE ( 14 )  'surf_h(' // dum // ')%ncsws               ' 
    27082737             WRITE ( 14 )  surf_h(l)%ncsws
    27092738          ENDIF
    2710           WRITE ( 14 )  'surf_h(' // dum // ')%qrsws               ' 
    27112739          IF ( ALLOCATED ( surf_h(l)%qrsws ) )  THEN
     2740             WRITE ( 14 )  'surf_h(' // dum // ')%qrsws               ' 
    27122741             WRITE ( 14 )  surf_h(l)%qrsws
    27132742          ENDIF
    2714           WRITE ( 14 )  'surf_h(' // dum // ')%nrsws               ' 
    27152743          IF ( ALLOCATED ( surf_h(l)%nrsws ) )  THEN
     2744             WRITE ( 14 )  'surf_h(' // dum // ')%nrsws               ' 
    27162745             WRITE ( 14 )  surf_h(l)%nrsws
    27172746          ENDIF
    2718           WRITE ( 14 )  'surf_h(' // dum // ')%sasws               '
    27192747          IF ( ALLOCATED ( surf_h(l)%sasws ) )  THEN
     2748             WRITE ( 14 )  'surf_h(' // dum // ')%sasws               '
    27202749             WRITE ( 14 )  surf_h(l)%sasws
    27212750          ENDIF
     
    27312760          WRITE ( 14 )   surf_v(l)%end_index
    27322761
    2733           WRITE ( 14 )  'surf_v(' // dum // ')%us                  ' 
    27342762          IF ( ALLOCATED ( surf_v(l)%us ) )  THEN
     2763             WRITE ( 14 )  'surf_v(' // dum // ')%us                  ' 
    27352764             WRITE ( 14 )  surf_v(l)%us
    27362765          ENDIF
    2737           WRITE ( 14 )  'surf_v(' // dum // ')%ts                  '
    27382766          IF ( ALLOCATED ( surf_v(l)%ts ) )  THEN
     2767             WRITE ( 14 )  'surf_v(' // dum // ')%ts                  '
    27392768             WRITE ( 14 )  surf_v(l)%ts
    27402769          ENDIF
    2741           WRITE ( 14 )  'surf_v(' // dum // ')%qs                  ' 
    27422770          IF ( ALLOCATED ( surf_v(l)%qs ) )  THEN
     2771             WRITE ( 14 )  'surf_v(' // dum // ')%qs                  ' 
    27432772             WRITE ( 14 )  surf_v(l)%qs
    27442773          ENDIF
    2745           WRITE ( 14 )  'surf_v(' // dum // ')%ss                  ' 
    27462774          IF ( ALLOCATED ( surf_v(l)%ss ) )  THEN
     2775             WRITE ( 14 )  'surf_v(' // dum // ')%ss                  ' 
    27472776             WRITE ( 14 )  surf_v(l)%ss
    27482777          ENDIF
    2749           WRITE ( 14 )  'surf_v(' // dum // ')%qcs                 ' 
    27502778          IF ( ALLOCATED ( surf_v(l)%qcs ) )  THEN
     2779             WRITE ( 14 )  'surf_v(' // dum // ')%qcs                 ' 
    27512780             WRITE ( 14 )  surf_v(l)%qcs
    27522781          ENDIF
    2753           WRITE ( 14 )  'surf_v(' // dum // ')%ncs                 '
    27542782          IF ( ALLOCATED ( surf_v(l)%ncs ) )  THEN
     2783             WRITE ( 14 )  'surf_v(' // dum // ')%ncs                 '
    27552784             WRITE ( 14 )  surf_v(l)%ncs
    27562785          ENDIF
    2757           WRITE ( 14 )  'surf_v(' // dum // ')%qrs                 ' 
    27582786          IF ( ALLOCATED ( surf_v(l)%qrs ) )  THEN
     2787             WRITE ( 14 )  'surf_v(' // dum // ')%qrs                 ' 
    27592788             WRITE ( 14 )  surf_v(l)%qrs
    27602789          ENDIF
    2761           WRITE ( 14 )  'surf_v(' // dum // ')%nrs                 '
    27622790          IF ( ALLOCATED ( surf_v(l)%nrs ) )  THEN
     2791             WRITE ( 14 )  'surf_v(' // dum // ')%nrs                 '
    27632792             WRITE ( 14 )  surf_v(l)%nrs
    27642793          ENDIF
    2765           WRITE ( 14 )  'surf_v(' // dum // ')%ol                  ' 
    27662794          IF ( ALLOCATED ( surf_v(l)%ol ) )  THEN
     2795             WRITE ( 14 )  'surf_v(' // dum // ')%ol                  ' 
    27672796             WRITE ( 14 )  surf_v(l)%ol
    27682797          ENDIF
    2769           WRITE ( 14 )  'surf_v(' // dum // ')%rib                 ' 
    27702798          IF ( ALLOCATED ( surf_v(l)%rib ) )  THEN
     2799             WRITE ( 14 )  'surf_v(' // dum // ')%rib                 ' 
    27712800             WRITE ( 14 )  surf_v(l)%rib
    27722801          ENDIF
    2773           WRITE ( 14 )  'surf_v(' // dum // ')%pt_surface          ' 
    27742802          IF ( ALLOCATED ( surf_v(l)%pt_surface ) )  THEN
     2803             WRITE ( 14 )  'surf_v(' // dum // ')%pt_surface          ' 
    27752804             WRITE ( 14 )  surf_v(l)%pt_surface
    27762805          ENDIF
    2777           WRITE ( 14 )  'surf_v(' // dum // ')%shf                 ' 
    27782806          IF ( ALLOCATED ( surf_v(l)%shf ) )  THEN
     2807             WRITE ( 14 )  'surf_v(' // dum // ')%shf                 ' 
    27792808             WRITE ( 14 )  surf_v(l)%shf
    27802809          ENDIF
    2781           WRITE ( 14 )  'surf_v(' // dum // ')%qsws                ' 
    27822810          IF ( ALLOCATED ( surf_v(l)%qsws ) )  THEN
     2811             WRITE ( 14 )  'surf_v(' // dum // ')%qsws                ' 
    27832812             WRITE ( 14 )  surf_v(l)%qsws
    27842813          ENDIF
    2785           WRITE ( 14 )  'surf_v(' // dum // ')%ssws                ' 
    27862814          IF ( ALLOCATED ( surf_v(l)%ssws ) )  THEN
     2815             WRITE ( 14 )  'surf_v(' // dum // ')%ssws                ' 
    27872816             WRITE ( 14 )  surf_v(l)%ssws
    27882817          ENDIF
    2789           WRITE ( 14 )  'surf_v(' // dum // ')%css                 ' 
    27902818          IF ( ALLOCATED ( surf_v(l)%css ) )  THEN
     2819             WRITE ( 14 )  'surf_v(' // dum // ')%css                 ' 
    27912820             WRITE ( 14 )  surf_v(l)%css
    2792           ENDIF
    2793           WRITE ( 14 )  'surf_v(' // dum // ')%cssws               ' 
     2821          ENDIF
    27942822          IF ( ALLOCATED ( surf_v(l)%cssws ) )  THEN
     2823             WRITE ( 14 )  'surf_v(' // dum // ')%cssws               '
    27952824             WRITE ( 14 )  surf_v(l)%cssws
    2796           ENDIF
    2797           WRITE ( 14 )  'surf_v(' // dum // ')%qcsws               ' 
     2825          ENDIF
    27982826          IF ( ALLOCATED ( surf_v(l)%qcsws ) )  THEN
     2827             WRITE ( 14 )  'surf_v(' // dum // ')%qcsws               '
    27992828             WRITE ( 14 )  surf_v(l)%qcsws
    2800           ENDIF
    2801           WRITE ( 14 )  'surf_v(' // dum // ')%ncsws               ' 
     2829          ENDIF
    28022830          IF ( ALLOCATED ( surf_v(l)%ncsws ) )  THEN
     2831             WRITE ( 14 )  'surf_v(' // dum // ')%ncsws               '
    28032832             WRITE ( 14 )  surf_v(l)%ncsws
    28042833          ENDIF
    2805           WRITE ( 14 )  'surf_v(' // dum // ')%qrsws               ' 
    28062834          IF ( ALLOCATED ( surf_v(l)%qrsws ) )  THEN
     2835             WRITE ( 14 )  'surf_v(' // dum // ')%qrsws               ' 
    28072836             WRITE ( 14 )  surf_v(l)%qrsws
    28082837          ENDIF
    2809           WRITE ( 14 )  'surf_v(' // dum // ')%nrsws               ' 
    28102838          IF ( ALLOCATED ( surf_v(l)%nrsws ) )  THEN
     2839             WRITE ( 14 )  'surf_v(' // dum // ')%nrsws               ' 
    28112840             WRITE ( 14 )  surf_v(l)%nrsws
    2812           ENDIF
    2813           WRITE ( 14 )  'surf_v(' // dum // ')%sasws               ' 
     2841          ENDIF
    28142842          IF ( ALLOCATED ( surf_v(l)%sasws ) )  THEN
     2843             WRITE ( 14 )  'surf_v(' // dum // ')%sasws               '
    28152844             WRITE ( 14 )  surf_v(l)%sasws
    28162845          ENDIF
    2817           WRITE ( 14 )  'surf_v(' // dum // ')%mom_uv              ' 
    28182846          IF ( ALLOCATED ( surf_v(l)%mom_flux_uv ) )  THEN
     2847             WRITE ( 14 )  'surf_v(' // dum // ')%mom_uv              ' 
    28192848             WRITE ( 14 )  surf_v(l)%mom_flux_uv
    28202849          ENDIF
    2821           WRITE ( 14 )  'surf_v(' // dum // ')%mom_w               ' 
    28222850          IF ( ALLOCATED ( surf_v(l)%mom_flux_w ) )  THEN
     2851             WRITE ( 14 )  'surf_v(' // dum // ')%mom_w               ' 
    28232852             WRITE ( 14 )  surf_v(l)%mom_flux_w
    28242853          ENDIF
    2825           WRITE ( 14 )  'surf_v(' // dum // ')%mom_tke             ' 
    28262854          IF ( ALLOCATED ( surf_v(l)%mom_flux_tke ) )  THEN
     2855             WRITE ( 14 )  'surf_v(' // dum // ')%mom_tke             ' 
    28272856             WRITE ( 14 )  surf_v(l)%mom_flux_tke
    28282857          ENDIF
     
    35363565                         surf_match_def  = surf_def_h(l)%end_index(jc,ic) >=   &
    35373566                                           surf_def_h(l)%start_index(jc,ic)
    3538                          surf_match_lsm  = surf_lsm_h%end_index(jc,ic)    >=   &
    3539                                            surf_lsm_h%start_index(jc,ic)
    3540                          surf_match_usm  = surf_usm_h%end_index(jc,ic)    >=   &
    3541                                            surf_usm_h%start_index(jc,ic)
     3567                         surf_match_lsm  = ( surf_lsm_h%end_index(jc,ic)  >=   &
     3568                                             surf_lsm_h%start_index(jc,ic) )   &
     3569                                     .AND.  l == 0
     3570                         surf_match_usm  = ( surf_usm_h%end_index(jc,ic)  >=   &
     3571                                             surf_usm_h%start_index(jc,ic) )   &
     3572                                     .AND.  l == 0
    35423573
    35433574                         IF ( surf_match_def )  THEN
     
    35873618                         surf_match_usm  = surf_usm_v(l)%end_index(jc,ic) >=   &
    35883619                                           surf_usm_v(l)%start_index(jc,ic)
    3589 
    3590 
    35913620
    35923621                         IF ( surf_match_def )  THEN
     
    36343663       ENDIF
    36353664
    3636 
    36373665       CONTAINS
    36383666!------------------------------------------------------------------------------!
  • palm/trunk/SOURCE/urban_surface_mod.f90

    r2797 r2805  
    2626! -----------------
    2727! $Id$
     28! Initialization of resistances.
     29!
     30! 2797 2018-02-08 13:24:35Z suehring
    2831! Comment concerning output of ground-heat flux added.
    2932!
     
    34733476                 surf_usm_v(l)%ground_level(m) = .TRUE.
    34743477
     3478           ENDDO
     3479        ENDDO
     3480!
     3481!--     Initialization of resistances.
     3482        DO  m = 1, surf_usm_h%ns
     3483           surf_usm_h%r_a(m)        = 50.0_wp
     3484           surf_usm_h%r_a_green(m)  = 50.0_wp
     3485           surf_usm_h%r_a_window(m) = 50.0_wp
     3486        ENDDO
     3487        DO  l = 0, 3
     3488           DO  m = 1, surf_usm_v(l)%ns
     3489              surf_usm_v(l)%r_a(m)        = 50.0_wp
     3490              surf_usm_v(l)%r_a_green(m)  = 50.0_wp
     3491              surf_usm_v(l)%r_a_window(m) = 50.0_wp
    34753492           ENDDO
    34763493        ENDDO
Note: See TracChangeset for help on using the changeset viewer.