Changeset 129 for palm/trunk


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
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/DOC/app/chapter_3.5.4.html

    r89 r129  
    11<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    22<html><head>
    3 <meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252"><title>PALM chapter 3.5.5</title> <meta name="GENERATOR" content="StarOffice 7 (Win32)"> <meta name="AUTHOR" content="Siegfried Raasch"> <meta name="CREATED" content="20040802;14050943"> <meta name="CHANGED" content="20041117;12180008"> <meta name="KEYWORDS" content="parallel LES model"> <style>
     3<meta http-equiv="CONTENT-TYPE" content="text/html; charset=windows-1252"><title>PALM chapter 3.5.4</title> <meta name="GENERATOR" content="StarOffice 7 (Win32)"> <meta name="AUTHOR" content="Siegfried Raasch"> <meta name="CREATED" content="20040802;14050943"> <meta name="CHANGED" content="20041117;12180008"> <meta name="KEYWORDS" content="parallel LES model"> <style>
    44<!--
    55@page { size: 21cm 29.7cm }
     
    1313quantities which are not part of PALM's standard output. The basic user
    1414interface includes a number of subroutines which allow the calculation
    15 of user-defined quantities and output of these quantities as time series, (horizontally averaged) vertical profile, 2d cross
    16 section or 3d volume data. The respective subroutines
     15of user-defined quantities and output of these quantities as (horizontally averaged) <a href="#vertical_profiles">vertical profiles</a>, <a href="#time_series">time series</a>, <a href="#2D_and_3D">2d cross
     16section</a> or <a href="#2D_and_3D">3d volume data</a>. The respective subroutines
    1717contain sample code lines (written as comment lines) for defining, calculating and
    1818output of such quantities.<br><br>Output times, averaging intervals, etc. are steered by the same variables as used for the standard PALM output quantities, e.g. <a href="chapter_4.2.html#dt_data_output">dt_data_output</a>.<br><br>The
    1919rest of this chapter explains step-by-step how to modify/extend the
    20 default file user_interface.f90 in order to generate the respective output.<br><br><br><h4>Output of vertical profiles</h4>This example shows the output of the
     20default file user_interface.f90 in order to generate the respective output.<br><br><br><h4><a name="vertical_profiles"></a>Output of vertical profiles</h4>This example shows the output of the
    2121quantity "turbulent resolved-scale horizontal momentum flux" (u*v*). If more than one user-defined
    2222quantity shall be output, the following steps have to be carried out in the
     
    4949calculation is stored in array <span style="font-family: Courier New,Courier,monospace;">sums_l</span>.
    5050The second index of this array is the identification number of the
    51 profile which must match the one given in the previous step 2.</li></ol><br><h4>Output of timeseries</h4>still to be added<br>&nbsp;<br><h4><span style="font-weight: bold;">Output of 2d cross sections or 3d volume data</span></h4><br>This example shows the output of the
     51profile which must match the one given in the previous step 2.</li></ol><br><h4><a name="time_series"></a>Output of timeseries</h4>This example shows the output of  two time series for the absolut extremal values of the horizontal velocities <span style="font-style: italic;">u</span> and <span style="font-style: italic;">v</span>. If more than one user-defined
     52quantity shall be output, the following steps have to be carried out in the
     53same way for each of the quantities.<br><br><ol><li>For each time series quantity you have to give a label and a unit  (subroutine <a href="chapter_3.5.1.html#user_init">user_init</a>), which will be used for the NetCDF file. They must not contain more than seven characters. The value of <code>dots_num</code> has to be increased by the number of new time series quantities. Its old value has to be stored in <code>dots_num_palm</code>.<br><br><code>&nbsp;&nbsp;&nbsp; dots_label(dots_num<span style="color: rgb(255, 0, 0);">+1</span>) = '<span style="color: rgb(255, 0, 0);">abs_umx</span>'<br>&nbsp;&nbsp;&nbsp; dots_unit(dots_num<span style="color: rgb(255, 0, 0);">+1</span>)&nbsp; = '<span style="color: rgb(255, 0, 0);">m/s</span>'<br>&nbsp;&nbsp;&nbsp; dots_label(dots_num<span style="color: rgb(255, 0, 0);">+2</span>) = '<span style="color: rgb(255, 0, 0);">abs_vmx</span>'<br>&nbsp;&nbsp;&nbsp; dots_unit(dots_num<span style="color: rgb(255, 0, 0);">+2</span>)&nbsp; = '<span style="color: rgb(255, 0, 0);">m/s</span>'<br><br>&nbsp;&nbsp;&nbsp; dots_num_palm = dots_num<br>&nbsp;&nbsp;&nbsp; dots_num = dots_num <span style="color: rgb(255, 0, 0);">+ 2</span><br><br></code>Only those parts in <span style="color: rgb(255, 0, 0);">red</span> have to be adjusted by the user.<br><br></li><li>These quantities are&nbsp;calculated and output in subroutine <a href="chapter_3.5.1.html#user_statistics">user_statistics</a> for every statistic region <code>sr</code> defined by the user,&nbsp;but at least for the region <span style="font-style: italic;">"total domain"</span>:<br>&nbsp;<br><code>&nbsp;&nbsp;&nbsp; ts_value(dots_num_palm+1,sr) = ABS( u_max )<br>&nbsp;&nbsp;&nbsp; ts_value(dots_num_palm+2,sr) = ABS( v_max )<br></code>&nbsp;<br></li></ol><h4><span style="font-weight: bold;"><a name="2D_and_3D"></a>Output of 2d cross sections or 3d volume data</span></h4><br>This example shows the output of the
    5254quantity "square of the u-component" (<span style="font-weight: bold;">Note:</span> this quantity
    5355could of course easily be calculated from the u-component by
  • palm/trunk/DOC/app/chapter_4.2.html

    r127 r129  
    1068210682(cross sections), and <span style="font-style: italic;">'particles'</span>.
    1068310683Within the strings the hash character ("#") has to be replaced by a
    10684 digit &le;9. Up to 10 objects
    10685 can be assigned at the same time, e.g. :&nbsp; </p>
     10684digit 1&le;#&le;9. Up to 10 objects
     10685can be assigned at the same time, e.g.:&nbsp; </p>
    1068610686
    1068710687
     
    1070010700      <p>In this
    1070110701case one isosurface, two cross sections, and particles
    10702 will be created. The quantities for which an isosurface are to be
     10702will be created. The quantities for which isosurfaces or cross sections are to be
    1070310703created have to be selected with
    10704 the parameter <a href="#data_output">data_output</a>,
    10705 those for cross sections with <a href="#data_output">data_output</a>
    10706 (<span style="font-weight: bold;">data_output</span>
     10704the parameter <a href="#data_output">data_output</a> (<span style="font-weight: bold;">data_output</span>
    1070710705also determines the
    10708 orientation of the cross section, thus xy, xz, or yz). Since for <span style="font-weight: bold;">data_output</span> and <span style="font-weight: bold;">data_output</span> lists of
     10706orientation of the cross section, thus xy, xz, or yz). Since for <span style="font-weight: bold;">data_output</span> <span style="font-weight: bold;"></span>lists of
    1070910707variables may be
    1071010708assigned, the digit at the end of the <span style="font-weight: bold;">mode_dvrp</span>-string
    1071110709selects the quantity, which is given
    1071210710at the respective position in the respective list (e.g. <span style="font-style: italic;">'isosurface2'</span>
    10713 selects the quantity
    10714 given in the second position of <span style="font-weight: bold;">data_output</span>).
    10715 If e.g. <span style="font-weight: bold;">data_output</span>
    10716 and <span style="font-weight: bold;">data_output</span>
    10717 are assigned as <b>data_output</b> = <span style="font-style: italic;">'u_xy'</span><i>,
    10718 'w_xz', 'v_yz'</i> and <b>data_output</b> = <span style="font-style: italic;">'pt'</span><i>,
    10719 'u', 'w' </i>are
    10720 indicated, then - assuming the above assignment of <span style="font-weight: bold;">mode_dvrp</span> - an
     10711selects the second 3D quantity
     10712of <span style="font-weight: bold;">data_output</span>,  <span style="font-style: italic;">'slicer1'</span> selects the first 2D quantity
     10713of <span style="font-weight: bold;">data_output</span>).
     10714If e.g. <span style="font-weight: bold;">data_output</span> is assigned as <b>data_output</b> = <span style="font-style: italic;">'u_xy'</span><i>,
     10715'w_xz', 'v_yz'</i>, <span style="font-style: italic;">'pt'</span><i>,
     10716'u', 'w'</i>, then - assuming the above assignment of <span style="font-weight: bold;">mode_dvrp</span> - an
    1072110717isosurface of u, a
    1072210718horizontal cross section of u and
    10723 a vertical cross section (xz) of w is created. For locations of the
     10719a vertical cross section (xz) of w are created. For locations of the
    1072410720cross sections see <a href="#data_output">data_output</a>.
    1072510721The theshold value for which the isosurface is
     
    1073810734
    1073910735
    10740  </p>
    10741 
    10742 
    10743 
    10744      
    10745      
    10746       <p>The vertical extension of the displayed domain is given by <a href="#nz_do3d">nz_do3d</a>. </p>
    10747 
    10748 
    10749  
    10750      
    10751      
    10752       <p><b>Assignments
     10736 </p><p><b>Assignments
    1075310737of mode_dvrp must correspond to those of data_output
    1075410738and
    10755 data_output! </b>If e.g. <b>data_output</b> = <span style="font-style: italic;">'pt_xy'</span>
    10756 and <b>data_output</b>
    10757 = 'w'<i> </i>was set, then only the digit "1" is allowed
     10739data_output! </b>If e.g. <b>data_output</b> = <span style="font-style: italic;">'pt_xy'</span>,<span style="font-style: italic;"> 'w'</span><i> </i>was set, then only the digit "1" is allowed
    1075810740for <b>mode_dvrp</b>,
    1075910741thus <span style="font-style: italic;">'isosurface1'</span>
    10760 and/or <span style="font-style: italic;">'slicer1'</span><i>.</i>&nbsp;
     10742and/or <span style="font-style: italic;">'slicer1'</span><i>.</i>
    1076110743      </p>
    1076210744
  • palm/trunk/DOC/misc/Tsubame.html

    r127 r129  
    4242options are available:</p><table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"><tbody><tr><td><span style="font-weight: bold;">mrun</span> option</td><td>explanation</td><td>possible
    4343values</td><td>default value</td></tr><tr><td><code>-q</code></td><td>queue
    44 name for main job</td><td>novice, bes1, bes2, sla1, sla2,
    45 sla3, RAM64GB, RAM128GB</td><td>novice</td></tr><tr><td><code>-n</code></td><td>queue
     44name for main job</td><td>novice,&nbsp;sla1, sla2,
     45sla3, RAM64GB, RAM128GB</td><td>sla3</td></tr><tr><td><code>-n</code></td><td>queue
    4646name for "submitting job" (always runs on 1 PE only)</td><td>novice,
    47 sla1, sla2, sla3</td><td>novice</td></tr><tr><td><code>-g</code></td><td>group number</td><td>name of the N1GE_GROUP that is required to utilize the bes or sla queues</td><td>none</td></tr></tbody></table><p>Note that the default value "novice" of the
     47sla1, sla2, sla3</td><td>sla3</td></tr><tr><td><code>-g</code></td><td>group number</td><td>name of the N1GE_GROUP that is required to utilize the bes or sla queues</td><td>none</td></tr></tbody></table><p>Note that the default value "sla3" of the
    4848<span style="font-weight: bold;">mrun</span> option <code>-q</code> may
    49 only be suitable for code development, debugging or short test runs.
    50 Production runs should use the respective production queues(see&nbsp; <a href="http://www.gsic.titech.ac.jp/%7Eccwww/tgc/q_e.html">http://www.gsic.titech.ac.jp/~ccwww/tgc/q_e.html</a> for details).</p><p>The <span style="font-weight: bold;">mrun</span> option <code><span style="font-family: Courier New,Courier,monospace;">-t</span></code>
     49not always be the best choice. For code development, debugging or short
     50test runs the value "novice" for both options may be suitable.
     51Production runs should use the respective production queues (see <a href="http://www.gsic.titech.ac.jp/%7Eccwww/tgc/q_e.html">http://www.gsic.titech.ac.jp/~ccwww/tgc/q_e.html</a> for details).&nbsp;</p><p>The computer center advised us that due to restrictions of the batch system the value "novice" should not be mixed with the other queues. Please specify either a combination of sla<span style="font-style: italic;">n</span> for <code>-n</code> and sla<span style="font-style: italic;">n</span> or RAM<span style="font-style: italic;">*</span> for <code>-q</code>, or specify the combination "novice" + "novice".<span style="font-style: italic;"></span></p><p>The <span style="font-weight: bold;">mrun</span> option <code><span style="font-family: Courier New,Courier,monospace;">-t</span></code>
    5152contains the CPU time demand for the main job in s which will be
    5253automatically converted into min for the <span style="font-weight: bold;">n1ge</span> command. The
  • palm/trunk/SCRIPTS/.mrun.config.default

    r100 r129  
    4747#
    4848#%remote_username   <replace by your tsubame username>              lctit parallel
    49 #%tmp_user_catalog  <replace by your user_catalog>                  lctit parallel
    50 #%tmp_data_catalog  <replace by your data_catalog>                  lctit parallel
     49#%tmp_user_catalog  /work/<replace by your tsubame username>                    lctit parallel
     50#%tmp_data_catalog  /work/<replace by your tsubame username>/palm_restart_data  lctit parallel
    5151%cpp_options       -Mpreprocess:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf  lctit parallel
    5252%netcdf_inc        -I:/home2/usr5/mkanda/netcdf-3.6.2/include      lctit parallel
  • palm/trunk/SCRIPTS/mrun

    r127 r129  
    135135     #                     argument -g group_number, admit all sla* node_usage
    136136     #                     queues
    137      # 23/10/07 - Marcus - further adjustments for queues on lctit
     137     # 30/10/07 - Marcus - further adjustments for queues on lctit
    138138
    139139 
     
    10261026       elif [[ $host = lctit ]]
    10271027       then
    1028           node_usage=novice
     1028          node_usage=sla3
    10291029       else
    10301030          node_usage=not_shared
     
    10901090                     fi;;
    10911091        (ibmy)       queue=parallel;;
    1092         (lctit)      queue=novice;;
     1092        (lctit)      queue=sla3;;
    10931093        (nech)       queue=none;;
    10941094        (neck)       queue=P;;
  • palm/trunk/SCRIPTS/subjob

    r126 r129  
    8989     # 19/10/07 - Marcus- add new optional argument -g group_number
    9090     # 19/10/07 - Siggi - a ";" was missing in the last change done by Marcus
    91      # 23/10/07 - Marcus- further adjustments for queues on lctit
     91     # 30/10/07 - Marcus- further adjustments for queues on lctit
    9292
    9393
     
    340340                 esac;;
    341341        (lctit)  case  $ndq  in
    342                      (novice|bes1|bes2|sla1|sla2|sla3|RAM64GB|RAM128GB)    error=false;;
     342                     (novice|sla1|sla2|sla3|RAM64GB|RAM128GB)    error=false;;
    343343                     (*)                                     error=true;;
    344344                 esac;;
  • 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.