Changeset 51 for palm/trunk/SOURCE


Ignore:
Timestamp:
Mar 7, 2007 8:38:00 AM (18 years ago)
Author:
raasch
Message:

preliminary version, several changes to be explained later

Location:
palm/trunk/SOURCE
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/CURRENT_MODIFICATIONS

    r48 r51  
    11New:
    22---
     3
     4Wall functions for vertical walls now include diabatic conditions. New subroutine wall_fluxes. New 4D-array rif_wall.
    35
    46new d3par-parameter netcdf_64bit_3d to switch on 64bit offset only for 3D files
     
    1012samples added to the user interface which show how to add user-define time series quantities.
    1113
    12 check_open, check_parameters, header, init_3d_model, modules, netcdf, parin, user_interface
     14Makefile, check_open, check_parameters, header, init_3d_model, modules, netcdf, parin, user_interface
     15
     16New: wall_fluxes
    1317
    1418
     
    2024
    2125d3par-parameter data_output_ts removed. Timeseries output for "profil" removed. Timeseries are now switched on by dt_dots. Timeseries data is collected in flow_statistics.
     26
     27Initial velocities at nzb+1 are regarded for volume flow control in case they have been set zero before (to avoid small timesteps); see new internal parameters u/v_nzb_p1_for_vfc.
    2228
    2329check_parameters, data_output_ts, flow_statistics, init_3d_model, modules, parin, time_integration
  • palm/trunk/SOURCE/Makefile

    r48 r51  
    66# default suffixes removed from the suffix list to avoid calling of m2c in
    77# case of .mod files
     8# +wall_fluxes
    89#
    910# Former revisions:
    1011# -----------------
    11 # $Id $
     12# $Id$
    1213# RCS Log replace by Id keyword, revision history cleaned up
    1314#
     
    5556        swap_timelevel.f90 temperton_fft.f90 time_integration.f90 \
    5657        time_to_string.f90 timestep.f90 timestep_scheme_steering.f90 \
    57         transpose.f90 user_interface.f90 write_3d_binary.f90 \
     58        transpose.f90 user_interface.f90 wall_fluxes.f90 write_3d_binary.f90 \
    5859        write_compressed.f90 write_var_list.f90
    5960
     
    8485        temperton_fft.o time_integration.o time_to_string.o timestep.o \
    8586        timestep_scheme_steering.o transpose.o user_interface.o \
    86         write_3d_binary.o write_compressed.o write_var_list.o
     87        wall_fluxes.o write_3d_binary.o write_compressed.o write_var_list.o
    8788
    8889CC = cc
     
    216217transpose.o: modules.o
    217218user_interface.o: modules.o user_interface.f90
     219wall_fluxes.o: modules.o
    218220write_3d_binary.o: modules.o random_function.o
    219221write_compressed.o: modules.o
  • palm/trunk/SOURCE/check_parameters.f90

    r48 r51  
    44! Actual revisions:
    55! -----------------
    6 ! "by_user" allowed as initializing action, -data_output_ts
     6! "by_user" allowed as initializing action, -data_output_ts,
     7! leapfrog with non-flat topography not allowed any more
    78!
    89! Former revisions:
     
    8889       IF ( momentum_advec /= 'pw-scheme' )  THEN
    8990          WRITE( action, '(A,A)' )  'momentum_advec = ', momentum_advec
     91       ENDIF
     92       IF ( timestep_scheme(1:8) == 'leapfrog' )  THEN
     93          WRITE( action, '(A,A)' )  'timestep_scheme = ', timestep_scheme
    9094       ENDIF
    9195       IF ( psolver == 'multigrid'  .OR.  psolver == 'sor' )  THEN
  • palm/trunk/SOURCE/diffusion_u.f90

    r39 r51  
    44! Actual revisions:
    55! -----------------
    6 !
     6! wall functions now include diabatic conditions, call of routine wall_fluxes
    77!
    88! Former revisions:
     
    3030! ------------
    3131! Diffusion term of the u-component
     32! To do: additional damping (needed for non-cyclic bc) causes bad vectorization
     33!        and slows down the speed on NEC about 5-10%
    3234!------------------------------------------------------------------------------!
    3335
     
    5557
    5658       INTEGER ::  i, j, k
    57        REAL    ::  kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp, usvs
     59       REAL    ::  kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp
    5860       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_y(nys-1:nyn+1)
    5961       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    6062       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     63       REAL, DIMENSION(nzb:nzt+1)      ::  usvs
    6164       REAL, DIMENSION(:,:),   POINTER ::  usws
    6265       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
     
    100103!--          Wall functions at the north and south walls, respectively
    101104             IF ( wall_u(j,i) /= 0.0 )  THEN
     105
     106!
     107!--             Calculate the horizontal momentum flux u'v'
     108                CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i),  &
     109                                  usvs, 1.0, 0.0, 0.0, 0.0 )
     110
    102111                DO  k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i)
    103                    usvs   = kappa * u(k,j,i) / LOG( 0.5 * dy / z0(j,i) )
    104                    usvs   = -usvs * ABS( usvs )
    105112                   kmyp_x = 0.25 * &
    106113                            ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) )
     
    132139                                + kmym_x * ( v(k,j,i) - v(k,j,i-1) ) * ddx     &
    133140                                                  )                            &
    134                                      + wall_u(j,i) * usvs                      &
     141                                     + wall_u(j,i) * usvs(k)                   &
    135142                                   ) * ddy
    136143                ENDDO
     
    204211
    205212       INTEGER ::  i, j, k
    206        REAL    ::  kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp, usvs
     213       REAL    ::  kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp
    207214       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_y(nys-1:nyn+1)
    208215       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    209216       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     217       REAL, DIMENSION(nzb:nzt+1)      ::  usvs
    210218       REAL, DIMENSION(:,:),   POINTER ::  usws
    211219       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
     
    246254!--    Wall functions at the north and south walls, respectively
    247255       IF ( wall_u(j,i) .NE. 0.0 )  THEN
     256
     257!
     258!--       Calculate the horizontal momentum flux u'v'
     259          CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i),  &
     260                            usvs, 1.0, 0.0, 0.0, 0.0 )
     261
    248262          DO  k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i)
    249              usvs   = kappa * u(k,j,i) / LOG( 0.5 * dy / z0(j,i) )
    250              usvs   = -usvs * ABS( usvs )
    251263             kmyp_x = 0.25 * ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) )
    252264             kmym_x = 0.25 * ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) )
     
    276288                                + kmym_x * ( v(k,j,i) - v(k,j,i-1) ) * ddx     &
    277289                                                  )                            &
    278                                      + wall_u(j,i) * usvs                      &
     290                                     + wall_u(j,i) * usvs(k)                   &
    279291                                   ) * ddy
    280292          ENDDO
  • palm/trunk/SOURCE/diffusion_v.f90

    r39 r51  
    44! Actual revisions:
    55! -----------------
    6 !
     6! wall functions now include diabatic conditions, call of routine wall_fluxes
    77!
    88! Former revisions:
     
    5555
    5656       INTEGER ::  i, j, k
    57        REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp, vsus
     57       REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp
    5858       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1)
    5959       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    6060       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     61       REAL, DIMENSION(nzb:nzt+1)      ::  vsus
    6162       REAL, DIMENSION(:,:),   POINTER ::  vsws
    6263       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
     
    100101!--          Wall functions at the left and right walls, respectively
    101102             IF ( wall_v(j,i) /= 0.0 )  THEN
     103
     104!
     105!--             Calculate the horizontal momentum flux v'u'
     106                CALL wall_fluxes( i, j, nzb_v_inner(j,i)+1, nzb_v_outer(j,i), &
     107                                  vsus, 0.0, 1.0, 0.0, 0.0 )
     108
    102109                DO  k = nzb_v_inner(j,i)+1, nzb_v_outer(j,i)
    103                    vsus   = kappa * v(k,j,i) / LOG( 0.5 * dx / z0(j,i))
    104                    vsus   = -vsus * ABS( vsus )
    105110                   kmxp_x = 0.25 * &
    106111                            ( km(k,j,i)+km(k,j,i+1)+km(k,j-1,i)+km(k,j-1,i+1) )
     
    132137                                + kmxm_y * ( u(k,j,i) - u(k,j-1,i) ) * ddy     &
    133138                                                  )                            &
    134                                      + wall_v(j,i) * vsus                      &
     139                                     + wall_v(j,i) * vsus(k)                   &
    135140                                   ) * ddx
    136141                ENDDO
     
    204209
    205210       INTEGER ::  i, j, k
    206        REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp, vsus
     211       REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp
    207212       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1)
    208213       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    209214       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     215       REAL, DIMENSION(nzb:nzt+1)      ::  vsus
    210216       REAL, DIMENSION(:,:),   POINTER ::  vsws
    211217       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
     
    245251!--    Wall functions at the left and right walls, respectively
    246252       IF ( wall_v(j,i) /= 0.0 )  THEN
     253
     254!
     255!--       Calculate the horizontal momentum flux v'u'
     256          CALL wall_fluxes( i, j, nzb_v_inner(j,i)+1, nzb_v_outer(j,i), &
     257                            vsus, 0.0, 1.0, 0.0, 0.0 )
     258
    247259          DO  k = nzb_v_inner(j,i)+1, nzb_v_outer(j,i)
    248              vsus   = kappa * v(k,j,i) / LOG( 0.5 * dx / z0(j,i))
    249              vsus   = -vsus * ABS( vsus )
    250260             kmxp_x = 0.25 * &
    251261                      ( km(k,j,i)+km(k,j,i+1)+km(k,j-1,i)+km(k,j-1,i+1) )
     
    277287                                + kmxm_y * ( u(k,j,i) - u(k,j-1,i) ) * ddy     &
    278288                                                  )                            &
    279                                      + wall_v(j,i) * vsus                      &
     289                                     + wall_v(j,i) * vsus(k)                   &
    280290                                   ) * ddx
    281291          ENDDO
  • palm/trunk/SOURCE/diffusion_w.f90

    r39 r51  
    44! Actual revisions:
    55! -----------------
    6 !
     6! wall functions now include diabatic conditions, call of routine wall_fluxes
    77!
    88! Former revisions:
     
    5454       INTEGER ::  i, j, k
    5555       REAL    ::  kmxm_x, kmxm_z, kmxp_x, kmxp_z, kmym_y, kmym_z, kmyp_y, &
    56                    kmyp_z, wsus, wsvs
     56                   kmyp_z
    5757       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1), &
    5858                   km_damp_y(nys-1:nyn+1)
    5959       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    6060       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     61       REAL, DIMENSION(nzb:nzt+1)      ::  wsus, wsvs
    6162       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
    6263
     
    113114!--          Wall functions at all vertical walls, where necessary
    114115             IF ( wall_w_x(j,i) /= 0.0  .OR.  wall_w_y(j,i) /= 0.0 )  THEN
     116
     117!
     118!--             Calculate the horizontal momentum fluxes w'u' and/or w'v'
     119                IF ( wall_w_x(j,i) /= 0.0 )  THEN
     120                   CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1,              &
     121                                     nzb_w_outer(j,i), wsus, 0.0, 0.0, 0.0, &
     122                                     1.0 )
     123                ELSE
     124                   wsus = 0.0
     125                ENDIF
     126
     127                IF ( wall_w_y(j,i) /= 0.0 )  THEN
     128                   CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1,              &
     129                                     nzb_w_outer(j,i), wsvs, 0.0, 0.0, 1.0, &
     130                                     0.0 )
     131                ELSE
     132                   wsvs = 0.0
     133                ENDIF
     134
    115135                DO  k = nzb_w_inner(j,i)+1, nzb_w_outer(j,i)
    116                    IF ( wall_w_x(j,i) /= 0.0 )  THEN
    117                       wsus = kappa * w(k,j,i) / LOG( 0.5 * dx / z0(j,i))
    118                       wsus = -wsus * ABS( wsus )
    119                    ELSE
    120                       wsus = 0.0
    121                    ENDIF
    122                    IF ( wall_w_y(j,i) /= 0.0 )  THEN
    123                       wsvs = kappa * w(k,j,i) / LOG( 0.5 * dy / z0(j,i))
    124                       wsvs = -wsvs * ABS( wsvs )
    125                    ELSE
    126                       wsvs = 0.0
    127                    ENDIF
    128136!
    129137!--                Interpolate eddy diffusivities on staggered gridpoints
     
    163171                          + kmxm_z * ( u(k+1,j,i)   - u(k,j,i)   ) * ddzu(k+1) &
    164172                                                   )                           &
    165                                      + wall_w_x(j,i) * wsus                    &
     173                                     + wall_w_x(j,i) * wsus(k)                 &
    166174                                   ) * ddx                                     &
    167175                                 + (   fwyp(j,i) * (                           &
     
    173181                          + kmym_z * ( v(k+1,j,i)   - v(k,j,i)   ) * ddzu(k+1) &
    174182                                                   )                           &
    175                                      + wall_w_y(j,i) * wsvs                    &
     183                                     + wall_w_y(j,i) * wsvs(k)                 &
    176184                                   ) * ddy                                     &
    177185                                 + 2.0 * (                                     &
     
    202210       INTEGER ::  i, j, k
    203211       REAL    ::  kmxm_x, kmxm_z, kmxp_x, kmxp_z, kmym_y, kmym_z, kmyp_y, &
    204                    kmyp_z, wsus, wsvs
     212                   kmyp_z
    205213       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1), &
    206214                   km_damp_y(nys-1:nyn+1)
    207215       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    208216       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     217       REAL, DIMENSION(nzb:nzt+1)      ::  wsus, wsvs
    209218       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
    210219
     
    255264!--    Wall functions at all vertical walls, where necessary
    256265       IF ( wall_w_x(j,i) /= 0.0  .OR.  wall_w_y(j,i) /= 0.0 )  THEN
     266
     267!
     268!--       Calculate the horizontal momentum fluxes w'u' and/or w'v'
     269          IF ( wall_w_x(j,i) /= 0.0 )  THEN
     270             CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1, nzb_w_outer(j,i), &
     271                               wsus, 0.0, 0.0, 0.0, 1.0 )
     272          ELSE
     273             wsus = 0.0
     274          ENDIF
     275
     276          IF ( wall_w_y(j,i) /= 0.0 )  THEN
     277             CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1, nzb_w_outer(j,i),  &
     278                               wsvs, 0.0, 0.0, 1.0, 0.0 )
     279          ELSE
     280             wsvs = 0.0
     281          ENDIF
     282
    257283          DO  k = nzb_w_inner(j,i)+1, nzb_w_outer(j,i)
    258              IF ( wall_w_x(j,i) /= 0.0 )  THEN
    259                 wsus = kappa * w(k,j,i) / LOG( 0.5 * dx / z0(j,i))
    260                 wsus = -wsus * ABS( wsus )
    261              ELSE
    262                 wsus = 0.0
    263              ENDIF
    264              IF ( wall_w_y(j,i) /= 0.0 )  THEN
    265                 wsvs = kappa * w(k,j,i) / LOG( 0.5 * dy / z0(j,i))
    266                 wsvs = -wsvs * ABS( wsvs )
    267              ELSE
    268                 wsvs = 0.0
    269              ENDIF
    270284!
    271285!--          Interpolate eddy diffusivities on staggered gridpoints
     
    301315                          + kmxm_z * ( u(k+1,j,i)   - u(k,j,i)   ) * ddzu(k+1) &
    302316                                                   )                           &
    303                                      + wall_w_x(j,i) * wsus                    &
     317                                     + wall_w_x(j,i) * wsus(k)                 &
    304318                                   ) * ddx                                     &
    305319                                 + (   fwyp(j,i) * (                           &
     
    311325                          + kmym_z * ( v(k+1,j,i)   - v(k,j,i)   ) * ddzu(k+1) &
    312326                                                   )                           &
    313                                      + wall_w_y(j,i) * wsvs                    &
     327                                     + wall_w_y(j,i) * wsvs(k)                 &
    314328                                   ) * ddy                                     &
    315329                                 + 2.0 * (                                     &
  • palm/trunk/SOURCE/flow_statistics.f90

    r48 r51  
    44! Actual revisions:
    55! -----------------
    6 !
     6! Collection of time series quantities moved from routine flow_statistics to
     7! here, routine user_statistics is called for each statistic region
    78!
    89! Former revisions:
  • palm/trunk/SOURCE/init_3d_model.f90

    r48 r51  
    88! -----------------
    99! New initializing action "by_user" calls user_init_3d_model,
    10 ! ts_value is allocated
     10! ts_value is allocated, +module netcdf_control,
     11! initial velocities at nzb+1 are regarded for volume
     12! flow control in case they have been set zero before (to avoid small timesteps)
    1113!
    1214! Former revisions:
     
    4446    USE interfaces
    4547    USE model_1d
     48    USE netcdf_control
    4649    USE particle_attributes
    4750    USE pegrid
     
    183186
    184187!
     188!-- 4D-array for storing the Rif-values at vertical walls
     189    IF ( topography /= 'flat' )  THEN
     190       ALLOCATE( rif_wall(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1,1:4) )
     191       rif_wall = 0.0
     192    ENDIF
     193
     194!
     195!-- Velocities at nzb+1 needed for volume flow control
     196    IF ( conserve_volume_flow )  THEN
     197       ALLOCATE( u_nzb_p1_for_vfc(nys:nyn), v_nzb_p1_for_vfc(nxl:nxr) )
     198       u_nzb_p1_for_vfc = 0.0
     199       v_nzb_p1_for_vfc = 0.0
     200    ENDIF
     201
     202!
    185203!-- Initial assignment of the pointers
    186204    IF ( timestep_scheme(1:5) /= 'runge' )  THEN
     
    382400          ENDDO
    383401!
    384 !--       Set initial horizontal velocities at the lowest grid levels to zero
    385 !--       in order to avoid too small time steps caused by the diffusion
     402!--       Set initial horizontal velocities at the lowest computational grid levels
     403!--       to zero in order to avoid too small time steps caused by the diffusion
    386404!--       limit in the initial phase of a run (at k=1, dz/2 occurs in the
    387 !--       limiting formula!)
     405!--       limiting formula!). The original values are stored to be later used for
     406!--       volume flow control.
    388407          DO  i = nxl-1, nxr+1
    389408             DO  j = nys-1, nyn+1
     
    392411             ENDDO
    393412          ENDDO
     413          IF ( conserve_volume_flow )  THEN
     414             IF ( nxr == nx )  THEN
     415                DO  j = nys, nyn
     416                   k = nzb_u_inner(j,nx) + 1
     417                   u_nzb_p1_for_vfc(j) = u_init(k) * dzu(k)
     418                ENDDO
     419             ENDIF
     420             IF ( nyn == ny )  THEN
     421                DO  i = nxl, nxr
     422                   k = nzb_v_inner(ny,i) + 1
     423                   v_nzb_p1_for_vfc(i) = v_init(k) * dzu(k)
     424                ENDDO
     425             ENDIF
     426          ENDIF
    394427
    395428          IF ( moisture  .OR.  passive_scalar )  THEN
     
    568601                   volume_flow_area_l(1)    = volume_flow_area_l(1) + dzu(k)
    569602                ENDDO
     603!
     604!--             Correction if velocity at nzb+1 has been set zero further above
     605                volume_flow_initial_l(1) = volume_flow_initial_l(1) + &
     606                                           u_nzb_p1_for_vfc(j)
    570607             ENDDO
    571608          ENDIF
     
    578615                   volume_flow_area_l(2)    = volume_flow_area_l(2) + dzu(k)
    579616                ENDDO
     617!
     618!--             Correction if velocity at nzb+1 has been set zero further above
     619                volume_flow_initial_l(2) = volume_flow_initial_l(2) + &
     620                                           v_nzb_p1_for_vfc(i)
    580621             ENDDO
    581622          ENDIF
     
    704745!
    705746!-- If required, initialize dvrp-software
    706 !    WRITE ( 9, * ) '*** myid=', myid, ' vor init_dvrp'
    707 !    CALL FLUSH_( 9 )
    708747    IF ( dt_dvrp /= 9999999.9 )  CALL init_dvrp
    709 !    WRITE ( 9, * ) '*** myid=', myid, ' nach init_dvrp'
    710 !    CALL FLUSH_( 9 )
    711748
    712749!
     
    719756!
    720757!-- If required, initialize particles
    721 !    WRITE ( 9, * ) '*** myid=', myid, ' vor init_particles'
    722 !    CALL FLUSH_( 9 )
    723758    CALL init_particles
    724 !    WRITE ( 9, * ) '*** myid=', myid, ' nach init_particles'
    725 !    CALL FLUSH_( 9 )
    726759
    727760!
     
    825858
    826859!
    827 !-- User-defined initializing actions
     860!-- User-defined initializing actions. Check afterwards, if maximum number
     861!-- of allowed timeseries is not exceeded
    828862    CALL user_init
     863
     864    IF ( dots_num > dots_max )  THEN
     865       IF ( myid == 0 )  THEN
     866          PRINT*, '+++ user_init: number of time series quantities exceeds', &
     867                  ' its maximum of dots_max = ', dots_max
     868          PRINT*, '    Please increase dots_max in modules.f90.'
     869       ENDIF
     870       CALL local_stop
     871    ENDIF
    829872
    830873!
  • palm/trunk/SOURCE/modules.f90

    r48 r51  
    55! Actual revisions:
    66! -----------------
     7! +array rif_wall
    78! +netcdf_64bit_3d, zu_s_inner, zw_w_inner, id_var_zusi_*, id_var_zwwi_*,
    8 ! ts_value
     9! ts_value, u_nzb_p1_for_vfc, v_nzb_p1_for_vfc
    910! -data_output_ts, dots_n
    1011! arrays dots_label and dots_unit now dimensioned with dots_max
     
    7778    REAL, DIMENSION(:), ALLOCATABLE ::                                         &
    7879          ddzu, dd2zu, dzu, ddzw, dzw, km_damp_x, km_damp_y, l_grid, pt_init,  &
    79           q_init, rdf, ug, u_init, uvmean_outflow, uvmean_outflow_l, vg,       &
    80           v_init, zu, zw
     80          q_init, rdf, ug, uvmean_outflow, uvmean_outflow_l, u_init,           &
     81          u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, zu, zw
    8182
    8283    REAL, DIMENSION(:,:), ALLOCATABLE ::                                       &
     
    106107          ql_c, te_m, tpt_m, tq_m, tu_m, tv_m, tw_m, u, u_m, u_p, v, v_m, v_p, &
    107108          vpt, vpt_m, w, w_m, w_p
     109
     110    REAL, DIMENSION(:,:,:,:), ALLOCATABLE ::  rif_wall
    108111                                                   
    109112
  • palm/trunk/SOURCE/read_3d_binary.f90

    r39 r51  
    44! Actual revisions:
    55! -----------------
    6 !
     6! +rif_wall
    77!
    88! Former revisions:
     
    267267          CASE ( 'rif_m' )
    268268             READ ( 13 )  rif_m
     269          CASE ( 'rif_wall' )
     270             READ ( 13 )  rif_wall
    269271          CASE ( 's_av' )
    270272             ALLOCATE( s_av(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) )
  • palm/trunk/SOURCE/write_3d_binary.f90

    r39 r51  
    44! Actual revisions:
    55! -----------------
    6 !
     6! +rif_wall
    77!
    88! Former revisions:
     
    137137    IF ( timestep_scheme(1:5) /= 'runge' )  THEN
    138138       WRITE ( 14 )  'rif_m               ';  WRITE ( 14 )  rif_m
     139    ENDIF
     140    IF ( topography /= 'flat' )  THEN
     141       WRITE ( 14 )  'rif_wall            ';  WRITE ( 14 )  rif_wall
    139142    ENDIF
    140143    IF ( ALLOCATED( s_av ) )  THEN
Note: See TracChangeset for help on using the changeset viewer.