Ignore:
Timestamp:
Apr 17, 2020 10:12:45 AM (4 years ago)
Author:
suehring
Message:

Surface output: correct output of ground/wall-heat flux at USM surfaces; add conversion factor to heat- and momentum-flux outputs; data_output_2d: Unify output conversion of sensible and latent heat flux; data-output module: avoid uninitialized variables; restart_data_mpi_io: fix overlong lines

File:
1 edited

Legend:

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

    r4495 r4500  
    2525! -----------------
    2626! $Id$
     27! - Correct output of ground/wall heat flux at USM surfaces
     28! - Add conversion factor to heat and momentum-flux output
     29!
     30! 4495 2020-04-13 20:11:20Z raasch
    2731! restart data handling with MPI-IO added
    2832!
     
    106110   USE kinds
    107111
    108    USE arrays_3d,                                                              &
    109        ONLY:  zu, zw
    110 
    111    USE control_parameters,                                                     &
    112        ONLY:  coupling_char, data_output_during_spinup, end_time,              &
    113               message_string, restart_data_format_output, run_description_header, simulated_time_at_begin, &
     112   USE arrays_3d,                                                                                  &
     113       ONLY:  heatflux_output_conversion,                                                          &
     114              momentumflux_output_conversion,                                                      &
     115              waterflux_output_conversion,                                                         &
     116              zu,                                                                                  &
     117              zw
     118
     119   USE control_parameters,                                                                         &
     120       ONLY:  coupling_char, data_output_during_spinup, end_time,                                  &
     121              message_string,                                                                      &
     122              restart_data_format_output, run_description_header, simulated_time_at_begin,         &
    114123              spinup_time, surface_output
    115124
     
    137146       ONLY:  rrd_mpi_io, wrd_mpi_io
    138147
    139    USE surface_mod,                                                            &
    140        ONLY:  surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v,                  &
    141               surf_usm_h, surf_usm_v
     148   USE surface_mod,                                                                                &
     149       ONLY:  ind_pav_green,                                                                       &
     150              ind_veg_wall,                                                                        &
     151              ind_wat_win,                                                                         &
     152              surf_def_h,                                                                          &
     153              surf_def_v,                                                                          &
     154              surf_lsm_h,                                                                          &
     155              surf_lsm_v,                                                                          &
     156              surf_usm_h,                                                                          &
     157              surf_usm_v
    142158
    143159   IMPLICIT NONE
     
    14321448      INTEGER(iwp) ::  av     !< id indicating average or non-average data output
    14331449      INTEGER(iwp) ::  i      !< loop index
     1450      INTEGER(iwp) ::  l      !< running index for surface orientation
     1451      INTEGER(iwp) ::  m      !< running index for surface elements
    14341452      INTEGER(iwp) ::  n_out  !< counter variables for surface output
    14351453
     
    19571975                                               surf_def_v(3)%usws,             &
    19581976                                               surf_lsm_v(3)%usws,             &
    1959                                                surf_usm_v(3)%usws )
     1977                                               surf_usm_v(3)%usws,             &
     1978                                               momentumflux_output_conversion )
    19601979               ELSE
    19611980!
     
    19862005                                               surf_def_v(3)%vsws,             &
    19872006                                               surf_lsm_v(3)%vsws,             &
    1988                                                surf_usm_v(3)%vsws )
     2007                                               surf_usm_v(3)%vsws,             &
     2008                                               momentumflux_output_conversion )
    19892009               ELSE
    19902010!
     
    20152035                                               surf_def_v(3)%shf,              &
    20162036                                               surf_lsm_v(3)%shf,              &
    2017                                                surf_usm_v(3)%shf )
     2037                                               surf_usm_v(3)%shf,              &
     2038                                               heatflux_output_conversion )
    20182039               ELSE
    20192040!
     
    20432064                                               surf_def_v(3)%qsws,             &
    20442065                                               surf_lsm_v(3)%qsws,             &
    2045                                                surf_usm_v(3)%qsws )
     2066                                               surf_usm_v(3)%qsws,             &
     2067                                               waterflux_output_conversion )
    20462068               ELSE
    20472069!
     
    24632485!--            Output of instantaneous data
    24642486               IF ( av == 0 )  THEN
     2487!
     2488!--               Sum up ground / wall heat flux. Note, for urban surfaces the
     2489!--               wall heat flux is aggregated from the different green, window
     2490!--               and wall tiles.
     2491                  DO  m = 1, surf_usm_h%ns
     2492                     surf_usm_h%ghf(m) = surf_usm_h%frac(m,ind_veg_wall)       &
     2493                                       * surf_usm_h%wghf_eb(m) +               &
     2494                                         surf_usm_h%frac(m,ind_pav_green)      &
     2495                                       * surf_usm_h%wghf_eb_green(m) +         &
     2496                                         surf_usm_h%frac(m,ind_wat_win)        &
     2497                                       * surf_usm_h%wghf_eb_window(m)
     2498                  ENDDO
     2499                  DO  l = 0, 3
     2500                     DO  m = 1, surf_usm_v(l)%ns
     2501                        surf_usm_v(l)%ghf(m) = surf_usm_v(l)%frac(m,ind_veg_wall) &
     2502                                             * surf_usm_v(l)%wghf_eb(m) +          &
     2503                                               surf_usm_v(l)%frac(m,ind_pav_green) &
     2504                                             * surf_usm_v(l)%wghf_eb_green(m) +    &
     2505                                               surf_usm_v(l)%frac(m,ind_wat_win)   &
     2506                                             * surf_usm_v(l)%wghf_eb_window(m)
     2507                     ENDDO
     2508                  ENDDO
     2509
    24652510                  CALL surface_data_output_collect( surf_def_h(0)%ghf,         &
    24662511                                               surf_def_h(1)%ghf,              &
     
    24792524                                               surf_lsm_v(3)%ghf,              &
    24802525                                               surf_usm_v(3)%ghf )
    2481                                                                         ELSE
     2526               ELSE
    24822527!
    24832528!--               Output of averaged data
     
    29553000      CHARACTER(LEN=100) ::  trimvar !< dummy variable for current output variable
    29563001
     3002      INTEGER(iwp) ::  l      !< running index for surface orientation
     3003      INTEGER(iwp) ::  m      !< running index for surface elements
    29573004      INTEGER(iwp) ::  n_out  !< counter variables for surface output
    29583005
     
    32513298                                           surf_def_v(3)%usws,                 &
    32523299                                           surf_lsm_v(3)%usws,                 &
    3253                                            surf_usm_v(3)%usws, n_out )
     3300                                           surf_usm_v(3)%usws, n_out,          &
     3301                                           momentumflux_output_conversion )
    32543302
    32553303            CASE ( 'vsws' )
     
    32693317                                           surf_def_v(3)%vsws,                 &
    32703318                                           surf_lsm_v(3)%vsws,                 &
    3271                                            surf_usm_v(3)%vsws, n_out )
     3319                                           surf_usm_v(3)%vsws, n_out,          &
     3320                                           momentumflux_output_conversion )
    32723321
    32733322            CASE ( 'shf' )
     
    32873336                                           surf_def_v(3)%shf,                  &
    32883337                                           surf_lsm_v(3)%shf,                  &
    3289                                            surf_usm_v(3)%shf, n_out )
     3338                                           surf_usm_v(3)%shf, n_out,          &
     3339                                           heatflux_output_conversion )
    32903340
    32913341            CASE ( 'qsws' )
     
    33053355                                           surf_def_v(3)%qsws,                 &
    33063356                                           surf_lsm_v(3)%qsws,                 &
    3307                                            surf_usm_v(3)%qsws, n_out )
     3357                                           surf_usm_v(3)%qsws, n_out,          &
     3358                                           waterflux_output_conversion )
    33083359
    33093360            CASE ( 'ssws' )
     
    35613612
    35623613            CASE ( 'ghf' )
     3614!
     3615!--            Sum up ground / wall heat flux. Note, for urban surfaces the
     3616!--            wall heat flux is aggregated from the different green, window
     3617!--            and wall tiles.
     3618               DO  m = 1, surf_usm_h%ns
     3619                  surf_usm_h%ghf(m) = surf_usm_h%frac(m,ind_veg_wall)          &
     3620                                    * surf_usm_h%wghf_eb(m) +                  &
     3621                                      surf_usm_h%frac(m,ind_pav_green)         &
     3622                                    * surf_usm_h%wghf_eb_green(m) +            &
     3623                                      surf_usm_h%frac(m,ind_wat_win)           &
     3624                                    * surf_usm_h%wghf_eb_window(m)
     3625               ENDDO
     3626               DO  l = 0, 3
     3627                  DO  m = 1, surf_usm_v(l)%ns
     3628                     surf_usm_v(l)%ghf(m) = surf_usm_v(l)%frac(m,ind_veg_wall) &
     3629                                          * surf_usm_v(l)%wghf_eb(m) +         &
     3630                                            surf_usm_v(l)%frac(m,ind_pav_green)&
     3631                                          * surf_usm_v(l)%wghf_eb_green(m) +   &
     3632                                            surf_usm_v(l)%frac(m,ind_wat_win)  &
     3633                                          * surf_usm_v(l)%wghf_eb_window(m)
     3634                  ENDDO
     3635               ENDDO
     3636
    35633637               CALL surface_data_output_sum_up( surf_def_h(0)%ghf,             &
    35643638                                           surf_def_h(1)%ghf,                  &
     
    38463920                                     var_def_v1, var_lsm_v1, var_usm_v1,       &
    38473921                                     var_def_v2, var_lsm_v2, var_usm_v2,       &
    3848                                      var_def_v3, var_lsm_v3, var_usm_v3, n_out )
     3922                                     var_def_v3, var_lsm_v3, var_usm_v3, n_out,&
     3923                                     fac )
    38493924
    38503925      IMPLICIT NONE
    38513926
     3927      INTEGER(iwp) ::  k          !< height index of surface element
    38523928      INTEGER(iwp) ::  m          !< running index for surface elements
    38533929      INTEGER(iwp) ::  n_out      !< index for output variable
    38543930      INTEGER(iwp) ::  n_surf     !< running index for surface elements
     3931
     3932      REAL(wp), DIMENSION(:), OPTIONAL                ::  fac               !< passed output conversion factor for heatflux output
     3933      REAL(wp), DIMENSION(nzb:nzt+1)                  ::  conversion_factor !< effective array for output conversion factor
    38553934
    38563935      REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_h0 !< output variable at upward-facing default-type surfaces
     
    38723951
    38733952!
     3953!--   Set conversion factor to one if not present
     3954      IF ( .NOT. PRESENT( fac ) )  THEN
     3955         conversion_factor = 1.0_wp
     3956      ELSE
     3957         conversion_factor = fac
     3958      ENDIF
     3959!
    38743960!--   Set counter variable to zero before the variable is written to
    38753961!--   the output array.
     
    38883974         DO  m = 1, surf_def_h(0)%ns
    38893975            n_surf                        = n_surf + 1
     3976            k                             = surf_def_h(0)%k(m)
    38903977            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3891                                           + var_def_h0(m)
     3978                                          + var_def_h0(m) * conversion_factor(k)
    38923979         ENDDO
    38933980      ELSE
     
    38973984         DO  m = 1, surf_def_h(1)%ns
    38983985            n_surf                   = n_surf + 1
     3986            k                             = surf_def_h(1)%k(m)
    38993987            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3900                                           + var_def_h1(m)
     3988                                          + var_def_h1(m) * conversion_factor(k)
    39013989         ENDDO
    39023990      ELSE
     
    39063994         DO  m = 1, surf_lsm_h%ns
    39073995            n_surf                        = n_surf + 1
     3996            k                             = surf_lsm_h%k(m)
    39083997            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3909                                           + var_lsm_h(m)
     3998                                          + var_lsm_h(m) * conversion_factor(k)
    39103999         ENDDO
    39114000      ELSE
     
    39154004         DO  m = 1, surf_usm_h%ns
    39164005            n_surf                        = n_surf + 1
     4006            k                             = surf_usm_h%k(m)
    39174007            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3918                                           + var_usm_h(m)
     4008                                          + var_usm_h(m) * conversion_factor(k)
    39194009         ENDDO
    39204010      ELSE
     
    39264016         DO  m = 1, surf_def_v(0)%ns
    39274017            n_surf                        = n_surf + 1
     4018            k                             = surf_def_v(0)%k(m)
    39284019            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3929                                           + var_def_v0(m)
     4020                                          + var_def_v0(m) * conversion_factor(k)
    39304021         ENDDO
    39314022      ELSE
     
    39354026         DO  m = 1, surf_lsm_v(0)%ns
    39364027            n_surf                        = n_surf + 1
     4028            k                             = surf_lsm_v(0)%k(m)
    39374029            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3938                                           + var_lsm_v0(m)
     4030                                          + var_lsm_v0(m) * conversion_factor(k)
    39394031         ENDDO
    39404032      ELSE
     
    39444036         DO  m = 1, surf_usm_v(0)%ns
    39454037            n_surf                        = n_surf + 1
     4038            k                             = surf_usm_v(0)%k(m)
    39464039            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3947                                           + var_usm_v0(m)
     4040                                          + var_usm_v0(m) * conversion_factor(k)
    39484041         ENDDO
    39494042      ELSE
     
    39554048         DO  m = 1, surf_def_v(1)%ns
    39564049            n_surf                        = n_surf + 1
     4050            k                             = surf_def_v(1)%k(m)
    39574051            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3958                                           + var_def_v1(m)
     4052                                          + var_def_v1(m) * conversion_factor(k)
    39594053         ENDDO
    39604054      ELSE
     
    39644058         DO  m = 1, surf_lsm_v(1)%ns
    39654059            n_surf                        = n_surf + 1
     4060            k                             = surf_lsm_v(1)%k(m)
    39664061            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3967                                           + var_lsm_v1(m)
     4062                                          + var_lsm_v1(m) * conversion_factor(k)
    39684063         ENDDO
    39694064      ELSE
     
    39734068         DO  m = 1, surf_usm_v(1)%ns
    39744069            n_surf                        = n_surf + 1
     4070            k                             = surf_usm_v(1)%k(m)
    39754071            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3976                                           + var_usm_v1(m)
     4072                                          + var_usm_v1(m) * conversion_factor(k)
    39774073         ENDDO
    39784074      ELSE
     
    39844080         DO  m = 1, surf_def_v(2)%ns
    39854081            n_surf                        = n_surf + 1
     4082            k                             = surf_def_v(2)%k(m)
    39864083            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3987                                           + var_def_v2(m)
     4084                                          + var_def_v2(m) * conversion_factor(k)
    39884085         ENDDO
    39894086      ELSE
     
    39934090         DO  m = 1, surf_lsm_v(2)%ns
    39944091            n_surf                        = n_surf + 1
     4092            k                             = surf_lsm_v(2)%k(m)
    39954093            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    3996                                           + var_lsm_v2(m)
     4094                                          + var_lsm_v2(m) * conversion_factor(k)
    39974095         ENDDO
    39984096      ELSE
     
    40024100         DO  m = 1, surf_usm_v(2)%ns
    40034101            n_surf                        = n_surf + 1
     4102            k                             = surf_usm_v(2)%k(m)
    40044103            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    4005                                           + var_usm_v2(m)
     4104                                          + var_usm_v2(m) * conversion_factor(k)
    40064105         ENDDO
    40074106      ELSE
     
    40134112         DO  m = 1, surf_def_v(3)%ns
    40144113            n_surf                        = n_surf + 1
     4114            k                             = surf_def_v(3)%k(m)
    40154115            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    4016                                           + var_def_v3(m)
     4116                                          + var_def_v3(m) * conversion_factor(k)
    40174117         ENDDO
    40184118      ELSE
     
    40224122         DO  m = 1, surf_lsm_v(3)%ns
    40234123            n_surf                        = n_surf + 1
     4124            k                             = surf_lsm_v(3)%k(m)
    40244125            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    4025                                           + var_lsm_v3(m)
     4126                                          + var_lsm_v3(m) * conversion_factor(k)
    40264127         ENDDO
    40274128      ELSE
     
    40314132         DO  m = 1, surf_usm_v(3)%ns
    40324133            n_surf                        = n_surf + 1
     4134            k                             = surf_usm_v(3)%k(m)
    40334135            surfaces%var_av(n_surf,n_out) = surfaces%var_av(n_surf,n_out)      &
    4034                                           + var_usm_v3(m)
     4136                                          + var_usm_v3(m) * conversion_factor(k)
    40354137         ENDDO
    40364138      ELSE
     
    40504152                                      var_def_v1, var_lsm_v1, var_usm_v1,      &
    40514153                                      var_def_v2, var_lsm_v2, var_usm_v2,      &
    4052                                       var_def_v3, var_lsm_v3, var_usm_v3 )
     4154                                      var_def_v3, var_lsm_v3, var_usm_v3,      &
     4155                                      fac )
    40534156
    40544157      IMPLICIT NONE
    40554158
     4159      INTEGER(iwp) ::  k      !< height index of surface element
    40564160      INTEGER(iwp) ::  m      !< running index for surface elements
    40574161      INTEGER(iwp) ::  n_surf !< running index for surface elements
     4162
     4163      REAL(wp), DIMENSION(:), OPTIONAL                ::  fac               !< passed output conversion factor for heatflux output
     4164      REAL(wp), DIMENSION(nzb:nzt+1)                  ::  conversion_factor !< effective array for output conversion factor
    40584165
    40594166      REAL(wp), DIMENSION(:), ALLOCATABLE, INTENT(IN) ::  var_def_h0 !< output variable at upward-facing default-type surfaces
     
    40754182
    40764183!
     4184!--   Set conversion factor to one if not present
     4185      IF ( .NOT. PRESENT( fac ) )  THEN
     4186         conversion_factor = 1.0_wp
     4187      ELSE
     4188         conversion_factor = fac
     4189      ENDIF
     4190!
    40774191!--   Set counter variable to zero before the variable is written to
    40784192!--   the output array.
    40794193      n_surf = 0
    4080 
    40814194!
    40824195!--   Write the horizontal surfaces.
     
    40854198!--   If a variable is not defined, skip the block and increment the counter
    40864199!--   variable by the number of surface elements of this type. Usually this
    4087 !--   is zere, however, there might be the situation that e.g. urban surfaces
     4200!--   is zero, however, there might be the situation that e.g. urban surfaces
    40884201!--   are defined but the respective variable is not allocated for this surface
    40894202!--   type. To write the data on the exact position, increment the counter.
     
    40914204         DO  m = 1, surf_def_h(0)%ns
    40924205            n_surf                   = n_surf + 1
    4093             surfaces%var_out(n_surf) = var_def_h0(m)
     4206            k                        = surf_def_h(0)%k(m)
     4207            surfaces%var_out(n_surf) = var_def_h0(m) * conversion_factor(k)
    40944208         ENDDO
    40954209      ELSE
     
    40994213         DO  m = 1, surf_def_h(1)%ns
    41004214            n_surf                   = n_surf + 1
    4101             surfaces%var_out(n_surf) = var_def_h1(m)
     4215            k                        = surf_def_h(1)%k(m)
     4216            surfaces%var_out(n_surf) = var_def_h1(m) * conversion_factor(k)
    41024217         ENDDO
    41034218      ELSE
     
    41074222         DO  m = 1, surf_lsm_h%ns
    41084223            n_surf                   = n_surf + 1
    4109             surfaces%var_out(n_surf) = var_lsm_h(m)
     4224            k                        = surf_lsm_h%k(m)
     4225            surfaces%var_out(n_surf) = var_lsm_h(m) * conversion_factor(k)
    41104226         ENDDO
    41114227      ELSE
     
    41154231         DO  m = 1, surf_usm_h%ns
    41164232            n_surf                   = n_surf + 1
    4117             surfaces%var_out(n_surf) = var_usm_h(m)
     4233            k                        = surf_usm_h%k(m)
     4234            surfaces%var_out(n_surf) = var_usm_h(m) * conversion_factor(k)
    41184235         ENDDO
    41194236      ELSE
     
    41254242         DO  m = 1, surf_def_v(0)%ns
    41264243            n_surf                   = n_surf + 1
    4127             surfaces%var_out(n_surf) = var_def_v0(m)
     4244            k                        = surf_def_v(0)%k(m)
     4245            surfaces%var_out(n_surf) = var_def_v0(m) * conversion_factor(k)
    41284246         ENDDO
    41294247      ELSE
     
    41334251         DO  m = 1, surf_lsm_v(0)%ns
    41344252            n_surf                   = n_surf + 1
    4135             surfaces%var_out(n_surf) = var_lsm_v0(m)
     4253            k                        = surf_lsm_v(0)%k(m)
     4254            surfaces%var_out(n_surf) = var_lsm_v0(m) * conversion_factor(k)
    41364255         ENDDO
    41374256      ELSE
     
    41414260         DO  m = 1, surf_usm_v(0)%ns
    41424261            n_surf                   = n_surf + 1
    4143             surfaces%var_out(n_surf) = var_usm_v0(m)
     4262            k                        = surf_usm_v(0)%k(m)
     4263            surfaces%var_out(n_surf) = var_usm_v0(m) * conversion_factor(k)
    41444264         ENDDO
    41454265      ELSE
     
    41514271         DO  m = 1, surf_def_v(1)%ns
    41524272            n_surf                   = n_surf + 1
    4153             surfaces%var_out(n_surf) = var_def_v1(m)
     4273            k                        = surf_def_v(1)%k(m)
     4274            surfaces%var_out(n_surf) = var_def_v1(m) * conversion_factor(k)
    41544275         ENDDO
    41554276      ELSE
     
    41594280         DO  m = 1, surf_lsm_v(1)%ns
    41604281            n_surf                   = n_surf + 1
    4161             surfaces%var_out(n_surf) = var_lsm_v1(m)
     4282            k                        = surf_lsm_v(1)%k(m)
     4283            surfaces%var_out(n_surf) = var_lsm_v1(m) * conversion_factor(k)
    41624284         ENDDO
    41634285      ELSE
     
    41674289         DO  m = 1, surf_usm_v(1)%ns
    41684290            n_surf                   = n_surf + 1
    4169             surfaces%var_out(n_surf) = var_usm_v1(m)
     4291            k                        = surf_usm_v(1)%k(m)
     4292            surfaces%var_out(n_surf) = var_usm_v1(m) * conversion_factor(k)
    41704293         ENDDO
    41714294      ELSE
     
    41774300         DO  m = 1, surf_def_v(2)%ns
    41784301            n_surf                   = n_surf + 1
    4179             surfaces%var_out(n_surf) = var_def_v2(m)
     4302            k                        = surf_def_v(2)%k(m)
     4303            surfaces%var_out(n_surf) = var_def_v2(m) * conversion_factor(k)
    41804304         ENDDO
    41814305      ELSE
     
    41854309         DO  m = 1, surf_lsm_v(2)%ns
    41864310            n_surf                   = n_surf + 1
    4187             surfaces%var_out(n_surf) = var_lsm_v2(m)
     4311            k                        = surf_lsm_v(2)%k(m)
     4312            surfaces%var_out(n_surf) = var_lsm_v2(m) * conversion_factor(k)
    41884313         ENDDO
    41894314      ELSE
     
    41934318         DO  m = 1, surf_usm_v(2)%ns
    41944319            n_surf                   = n_surf + 1
    4195             surfaces%var_out(n_surf) = var_usm_v2(m)
     4320            k                        = surf_usm_v(2)%k(m)
     4321            surfaces%var_out(n_surf) = var_usm_v2(m) * conversion_factor(k)
    41964322         ENDDO
    41974323      ELSE
     
    42034329         DO  m = 1, surf_def_v(3)%ns
    42044330            n_surf                   = n_surf + 1
    4205             surfaces%var_out(n_surf) = var_def_v3(m)
     4331            k                        = surf_def_v(3)%k(m)
     4332            surfaces%var_out(n_surf) = var_def_v3(m) * conversion_factor(k)
    42064333         ENDDO
    42074334      ELSE
     
    42114338         DO  m = 1, surf_lsm_v(3)%ns
    42124339            n_surf                   = n_surf + 1
    4213             surfaces%var_out(n_surf) = var_lsm_v3(m)
     4340            k                        = surf_lsm_v(3)%k(m)
     4341            surfaces%var_out(n_surf) = var_lsm_v3(m) * conversion_factor(k)
    42144342         ENDDO
    42154343      ELSE
     
    42194347         DO  m = 1, surf_usm_v(3)%ns
    42204348            n_surf                   = n_surf + 1
    4221             surfaces%var_out(n_surf) = var_usm_v3(m)
     4349            k                        = surf_usm_v(3)%k(m)
     4350            surfaces%var_out(n_surf) = var_usm_v3(m) * conversion_factor(k)
    42224351         ENDDO
    42234352      ELSE
Note: See TracChangeset for help on using the changeset viewer.