Changeset 129 for palm/trunk/SOURCE


Ignore:
Timestamp:
Oct 30, 2007 12:12:24 PM (17 years ago)
Author:
letzel
Message:

prognostic_equations include the respective wall_*flux in the parameter list of
calls of diffusion_s. Same as before, only the values of wall_heatflux(0:4)
can be assigned. At present, wall_humidityflux, wall_qflux, wall_salinityflux,
wall_scalarflux are kept zero. diffusion_s uses the respective wall_*flux
instead of wall_heatflux. This update serves two purposes:

  • it avoids errors in calculations with humidity/scalar/salinity and prescribed

non-zero wall_heatflux,

  • it prepares PALM for a possible assignment of wall fluxes of

humidity/scalar/salinity in a future release.

Bugfix: assignment of fluxes at walls

Updates to documentation:
chapter_4.2.html#mode_dvrp
chapter_3.5.4.html#time_series

Default for mrun options -q and -n is "sla3" for lctit. Queues bes1 and bes2
removed. DOC/misc/Tsubame.html updated.

Modified default paths (/work/...) for lctit in .mrun.config.default

Location:
palm/trunk/SOURCE
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/CURRENT_MODIFICATIONS

    r128 r129  
    1919Status of 3D-volume NetCDF data file only depends on switch netcdf_64bit_3d (check_open)
    2020
    21 check_open
     21prognostic_equations include the respective wall_*flux in the parameter list of
     22calls of diffusion_s. Same as before, only the values of wall_heatflux(0:4)
     23can be assigned. At present, wall_humidityflux, wall_qflux, wall_salinityflux,
     24and wall_scalarflux are kept zero. diffusion_s uses the respective wall_*flux
     25instead of wall_heatflux. This update serves two purposes:
     26- it avoids errors in calculations with humidity/scalar/salinity and prescribed
     27non-zero wall_heatflux,
     28- it prepares PALM for a possible assignment of wall fluxes of
     29humidity/scalar/salinity in a future release.
     30
     31check_open, diffusion_s, modules, prognostic_equations
    2232
    2333
     
    3747Bugfix: wavenumber calculation for even nx in routines maketri (poisfft)
    3848
    39 advec_particles, check_parameters, combine_plot_fields, init_ocean, poisfft, production_e
     49Bugfix: assignment of fluxes at walls
     50
     51advec_particles, check_parameters, combine_plot_fields, diffusion_s, init_ocean, poisfft, production_e
  • palm/trunk/SOURCE/diffusion_s.f90

    r39 r129  
    44! Actual revisions:
    55! -----------------
    6 !
     6! replace wall_heatflux by wall_s_flux that is now included in the parameter
     7! list, bugfix for assignment of fluxes at walls
    78!
    89! Former revisions:
     
    4546! Call for all grid points
    4647!------------------------------------------------------------------------------!
    47     SUBROUTINE diffusion_s( ddzu, ddzw, kh, s, s_flux_b, s_flux_t, tend )
     48    SUBROUTINE diffusion_s( ddzu, ddzw, kh, s, s_flux_b, s_flux_t, &
     49                            wall_s_flux, tend )
    4850
    4951       USE control_parameters
     
    5759       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1)
    5860       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     61       REAL    ::  wall_s_flux(0:4)
    5962       REAL, DIMENSION(:,:),   POINTER ::  s_flux_b, s_flux_t
    6063       REAL, DIMENSION(:,:,:), POINTER ::  kh, s
     
    8689                                          + 0.5 * ( fwxp(j,i) *               &
    8790                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    88                         - ( 1.0 - fwxp(j,i) ) * wall_heatflux(1)              &
     91                        + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                &
    8992                                                   -fwxm(j,i) *               &
    9093                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    91                         + ( 1.0 - fwxm(j,i) ) * wall_heatflux(3)              &
     94                        + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                &
    9295                                                  ) * ddx2                    &
    9396                                          + 0.5 * ( fwyp(j,i) *               &
    9497                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    95                         - ( 1.0 - fwyp(j,i) ) * wall_heatflux(2)              &
     98                        + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                &
    9699                                                   -fwym(j,i) *               &
    97100                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
    98                         + ( 1.0 - fwym(j,i) ) * wall_heatflux(4)              &
     101                        + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                &
    99102                                                  ) * ddy2
    100103                ENDDO
     
    156159!------------------------------------------------------------------------------!
    157160    SUBROUTINE diffusion_s_ij( i, j, ddzu, ddzw, kh, s, s_flux_b, s_flux_t, &
    158                                tend )
     161                               wall_s_flux, tend )
    159162
    160163       USE control_parameters
     
    168171       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1)
    169172       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     173       REAL    ::  wall_s_flux(0:4)
    170174       REAL, DIMENSION(:,:),   POINTER ::  s_flux_b, s_flux_t
    171175       REAL, DIMENSION(:,:,:), POINTER ::  kh, s
     
    195199                                          + 0.5 * ( fwxp(j,i) *               &
    196200                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    197                         - ( 1.0 - fwxp(j,i) ) * wall_heatflux(1)              &
     201                        + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                &
    198202                                                   -fwxm(j,i) *               &
    199203                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    200                         + ( 1.0 - fwxm(j,i) ) * wall_heatflux(3)              &
     204                        + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                &
    201205                                                  ) * ddx2                    &
    202206                                          + 0.5 * ( fwyp(j,i) *               &
    203207                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    204                         - ( 1.0 - fwyp(j,i) ) * wall_heatflux(2)              &
     208                        + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                &
    205209                                                   -fwym(j,i) *               &
    206210                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
    207                         + ( 1.0 - fwym(j,i) ) * wall_heatflux(4)              &
     211                        + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                &
    208212                                                  ) * ddy2
    209213          ENDDO
  • palm/trunk/SOURCE/modules.f90

    r116 r129  
    66! -----------------
    77! +dt_sort_particles, time_sort_particles, flags, wall_flags_1..10
     8! wall_humidityflux(0:4), wall_qflux(0:4), wall_salinityflux(0:4),
     9! wall_scalarflux(0:4)
    810!
    911! Former revisions:
     
    431433             vg_vertical_gradient_level(10) = -9999999.9, &
    432434             volume_flow(1:2) = 0.0, volume_flow_area(1:2) = 0.0, &
    433              volume_flow_initial(1:2) = 0.0, wall_heatflux(0:4) = 0.0
     435             volume_flow_initial(1:2) = 0.0, wall_heatflux(0:4) = 0.0, &
     436             wall_humidityflux(0:4) = 0.0, wall_qflux(0:4) = 0.0, &
     437             wall_salinityflux(0:4) = 0.0, wall_scalarflux(0:4) = 0.0
    434438
    435439
  • palm/trunk/SOURCE/prognostic_equations.f90

    r110 r129  
    44! Actual revisions:
    55! -----------------
    6 !
     6! add wall_*flux to parameter list of calls of diffusion_s
    77!
    88! Former revisions:
     
    369369!--       Tendency terms
    370370          IF ( scalar_advec == 'bc-scheme' )  THEN
    371              CALL diffusion_s( i, j, ddzu, ddzw, kh, pt, shf, tswst, tend )
     371             CALL diffusion_s( i, j, ddzu, ddzw, kh, pt, shf, tswst, &
     372                               wall_heatflux, tend )
    372373          ELSE
    373374             IF ( tsc(2) == 2.0  .OR.  timestep_scheme(1:5) == 'runge' )  THEN
     
    383384             THEN
    384385                CALL diffusion_s( i, j, ddzu, ddzw, kh_m, pt_m, shf_m, &
    385                                   tswst_m, tend )
     386                                  tswst_m, wall_heatflux, tend )
    386387             ELSE
    387                 CALL diffusion_s( i, j, ddzu, ddzw, kh, pt, shf, tswst, tend )
     388                CALL diffusion_s( i, j, ddzu, ddzw, kh, pt, shf, tswst, &
     389                                  wall_heatflux, tend )
    388390             ENDIF
    389391          ENDIF
     
    471473             IF ( scalar_advec == 'bc-scheme' )  THEN
    472474                CALL diffusion_s( i, j, ddzu, ddzw, kh, sa, saswsb, saswst, &
    473                                   tend )
     475                                  wall_salinityflux, tend )
    474476             ELSE
    475477                IF ( tsc(2) == 2.0  .OR.  timestep_scheme(1:5) == 'runge' ) THEN
     
    483485                ENDIF
    484486                CALL diffusion_s( i, j, ddzu, ddzw, kh, sa, saswsb, saswst, &
    485                                   tend )
     487                                  wall_salinityflux, tend )
    486488             ENDIF
    487489       
     
    563565!--          Tendency-terms
    564566             IF ( scalar_advec == 'bc-scheme' )  THEN
    565                 CALL diffusion_s( i, j, ddzu, ddzw, kh, q, qsws, qswst, tend )
     567                CALL diffusion_s( i, j, ddzu, ddzw, kh, q, qsws, qswst, &
     568                                  wall_qflux, tend )
    566569             ELSE
    567570                IF ( tsc(2) == 2.0  .OR.  timestep_scheme(1:5) == 'runge' ) THEN
     
    577580                THEN
    578581                   CALL diffusion_s( i, j, ddzu, ddzw, kh_m, q_m, qsws_m, &
    579                                      qswst_m, tend )
     582                                     qswst_m, wall_qflux, tend )
    580583                ELSE
    581584                   CALL diffusion_s( i, j, ddzu, ddzw, kh, q, qsws, qswst, &
    582                                      tend )
     585                                     wall_qflux, tend )
    583586                ENDIF
    584587             ENDIF
     
    974977          THEN
    975978             CALL diffusion_s( i, j, ddzu, ddzw, kh_m, pt_m, shf_m, &
    976                                tswst_m, tend )
    977           ELSE
    978              CALL diffusion_s( i, j, ddzu, ddzw, kh, pt, shf, tswst, tend )
     979                               tswst_m, wall_heatflux, tend )
     980          ELSE
     981             CALL diffusion_s( i, j, ddzu, ddzw, kh, pt, shf, tswst, &
     982                               wall_heatflux, tend )
    979983          ENDIF
    980984
     
    10331037             ENDIF
    10341038             CALL diffusion_s( i, j, ddzu, ddzw, kh, sa, saswsb, saswst, &
    1035                                tend )
     1039                               wall_salinityflux, tend )
    10361040
    10371041             CALL user_actions( i, j, 'sa-tendency' )
     
    10871091             THEN
    10881092                CALL diffusion_s( i, j, ddzu, ddzw, kh_m, q_m, qsws_m, &
    1089                                   qswst_m, tend )
     1093                                  qswst_m, wall_qflux, tend )
    10901094             ELSE
    10911095                CALL diffusion_s( i, j, ddzu, ddzw, kh, q, qsws, qswst, &
    1092                                   tend )
     1096                                  wall_qflux, tend )
    10931097             ENDIF
    10941098       
     
    14871491!-- pt-tendency terms with no communication
    14881492    IF ( scalar_advec == 'bc-scheme' )  THEN
    1489        CALL diffusion_s( ddzu, ddzw, kh, pt, shf, tswst, tend )
     1493       CALL diffusion_s( ddzu, ddzw, kh, pt, shf, tswst, wall_heatflux, &
     1494                         tend )
    14901495    ELSE
    14911496       IF ( tsc(2) == 2.0  .OR.  timestep_scheme(1:5) == 'runge' )  THEN
     
    14991504       ENDIF
    15001505       IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    1501           CALL diffusion_s( ddzu, ddzw, kh_m, pt_m, shf_m, tswst_m, tend )
     1506          CALL diffusion_s( ddzu, ddzw, kh_m, pt_m, shf_m, tswst_m, &
     1507                            wall_heatflux, tend )
    15021508       ELSE
    1503           CALL diffusion_s( ddzu, ddzw, kh, pt, shf, tswst, tend )
     1509          CALL diffusion_s( ddzu, ddzw, kh, pt, shf, tswst, wall_heatflux, &
     1510                            tend )
    15041511       ENDIF
    15051512    ENDIF
     
    15891596
    15901597!
    1591 !--    Scalar/q-tendency terms with no communication
     1598!--    sa-tendency terms with no communication
    15921599       IF ( scalar_advec == 'bc-scheme' )  THEN
    1593           CALL diffusion_s( ddzu, ddzw, kh, sa, saswsb, saswst, tend )
     1600          CALL diffusion_s( ddzu, ddzw, kh, sa, saswsb, saswst, &
     1601                            wall_salinityflux, tend )
    15941602       ELSE
    15951603          IF ( tsc(2) == 2.0  .OR.  timestep_scheme(1:5) == 'runge' )  THEN
     
    16021610             ENDIF
    16031611          ENDIF
    1604           CALL diffusion_s( ddzu, ddzw, kh, sa, saswsb, saswst, tend )
     1612          CALL diffusion_s( ddzu, ddzw, kh, sa, saswsb, saswst, &
     1613                            wall_salinityflux, tend )
    16051614       ENDIF
    16061615       
     
    16891698!--    Scalar/q-tendency terms with no communication
    16901699       IF ( scalar_advec == 'bc-scheme' )  THEN
    1691           CALL diffusion_s( ddzu, ddzw, kh, q, qsws, qswst, tend )
     1700          CALL diffusion_s( ddzu, ddzw, kh, q, qsws, qswst, wall_qflux, tend )
    16921701       ELSE
    16931702          IF ( tsc(2) == 2.0  .OR.  timestep_scheme(1:5) == 'runge' )  THEN
     
    17011710          ENDIF
    17021711          IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    1703              CALL diffusion_s( ddzu, ddzw, kh_m, q_m, qsws_m, qswst_m, tend )
    1704           ELSE
    1705              CALL diffusion_s( ddzu, ddzw, kh, q, qsws, qswst, tend )
     1712             CALL diffusion_s( ddzu, ddzw, kh_m, q_m, qsws_m, qswst_m, &
     1713                               wall_qflux, tend )
     1714          ELSE
     1715             CALL diffusion_s( ddzu, ddzw, kh, q, qsws, qswst, &
     1716                               wall_qflux, tend )
    17061717          ENDIF
    17071718       ENDIF
Note: See TracChangeset for help on using the changeset viewer.