Changeset 364


Ignore:
Timestamp:
Aug 24, 2009 4:03:39 PM (12 years ago)
Author:
letzel
Message:
  • Bugfix: avoid zero division by km_neutral (production_e)
Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/CURRENT_MODIFICATIONS

    r359 r364  
    113113Errors:
    114114------
     115Bugfix to avoid zero division by km_neutral (production_e)
     116
    115117Bugfix for extended NetCDF files: In order to avoid 'data mode' errors if
    116118updated attributes are larger than their original size, NF90_PUT_ATT is called
     
    163165Bugfix: initial setting of time_coupling in coupled restart runs (time_integration)
    164166
    165 advec_particles, check_parameters, cpu_log, data_output_2d, data_output_3d, header, init_3d_model, init_particles, modules, netcdf, prandtl_fluxes, read_var_list, time_integration, write_var_list
     167advec_particles, check_parameters, cpu_log, data_output_2d, data_output_3d, header, init_3d_model, init_particles, modules, netcdf, prandtl_fluxes, production_e, read_var_list, time_integration, write_var_list
  • palm/trunk/SOURCE/production_e.f90

    r226 r364  
    44! Actual revisions:
    55! -----------------
    6 !
     6! Bugfix to avoid zero division by km_neutral
    77!
    88! Former revisions:
     
    185185                      km_neutral = kappa * ( usvs(k)**2 + wsvs(k)**2 )**0.25 * &
    186186                                   0.5 * dy
    187                       dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
    188                       dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     187                      IF ( km_neutral > 0.0 )  THEN
     188                         dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
     189                         dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     190                      ELSE
     191                         dudy = 0.0
     192                         dwdy = 0.0
     193                      ENDIF
    189194                   ELSE
    190195                      dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1) - &
     
    210215                      km_neutral = kappa * ( vsus(k)**2 + wsus(k)**2 )**0.25 * &
    211216                                   0.5 * dx
    212                       dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
    213                       dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     217                      IF ( km_neutral > 0.0 )  THEN
     218                         dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
     219                         dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     220                      ELSE
     221                         dvdx = 0.0
     222                         dwdx = 0.0
     223                      ENDIF
    214224                   ELSE
    215225                      dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1) - &
     
    257267                         km_neutral = kappa * ( usvs(k)**2 + &
    258268                                                wsvs(k)**2 )**0.25 * 0.5 * dy
    259                          dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
    260                          dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     269                         IF ( km_neutral > 0.0 )  THEN
     270                            dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
     271                            dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     272                         ELSE
     273                            dudy = 0.0
     274                            dwdy = 0.0
     275                         ENDIF
    261276                      ELSE
    262277                         dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1) - &
     
    278293                         km_neutral = kappa * ( vsus(k)**2 + &
    279294                                                wsus(k)**2 )**0.25 * 0.5 * dx
    280                          dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
    281                          dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     295                         IF ( km_neutral > 0.0 )  THEN
     296                            dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
     297                            dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     298                         ELSE
     299                            dvdx = 0.0
     300                            dwdx = 0.0
     301                         ENDIF
    282302                      ELSE
    283303                         dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1) - &
     
    686706                km_neutral = kappa * ( usvs(k)**2 + wsvs(k)**2 )**0.25 * &
    687707                             0.5 * dy
    688                 dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
    689                 dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     708                IF ( km_neutral > 0.0 )  THEN
     709                   dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
     710                   dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     711                ELSE
     712                   dudy = 0.0
     713                   dwdy = 0.0
     714                ENDIF
    690715             ELSE
    691716                dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1) - &
     
    711736                km_neutral = kappa * ( vsus(k)**2 + wsus(k)**2 )**0.25 * &
    712737                             0.5 * dx
    713                 dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
    714                 dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     738                IF ( km_neutral > 0.0 )  THEN
     739                   dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
     740                   dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     741                ELSE
     742                   dvdx = 0.0
     743                   dwdx = 0.0
     744                ENDIF
    715745             ELSE
    716746                dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1) - &
     
    756786                   km_neutral = kappa * ( usvs(k)**2 + &
    757787                                          wsvs(k)**2 )**0.25 * 0.5 * dy
    758                    dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
    759                    dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     788                   IF ( km_neutral > 0.0 )  THEN
     789                      dudy = - wall_e_y(j,i) * usvs(k) / km_neutral
     790                      dwdy = - wall_e_y(j,i) * wsvs(k) / km_neutral
     791                   ELSE
     792                      dudy = 0.0
     793                      dwdy = 0.0
     794                   ENDIF
    760795                ELSE
    761796                   dudy = 0.25 * ( u(k,j+1,i) + u(k,j+1,i+1) - &
     
    777812                   km_neutral = kappa * ( vsus(k)**2 + &
    778813                                          wsus(k)**2 )**0.25 * 0.5 * dx
    779                    dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
    780                    dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     814                   IF ( km_neutral > 0.0 )  THEN
     815                      dvdx = - wall_e_x(j,i) * vsus(k) / km_neutral
     816                      dwdx = - wall_e_x(j,i) * wsus(k) / km_neutral
     817                   ELSE
     818                      dvdx = 0.0
     819                      dwdx = 0.0
     820                   ENDIF
    781821                ELSE
    782822                   dvdx = 0.25 * ( v(k,j,i+1) + v(k,j+1,i+1) - &
Note: See TracChangeset for help on using the changeset viewer.