- Timestamp:
- Oct 30, 2007 12:12:24 PM (17 years ago)
- Location:
- palm/trunk
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/DOC/app/chapter_3.5.4.html
r89 r129 1 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 2 <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> 4 4 <!-- 5 5 @page { size: 21cm 29.7cm } … … 13 13 quantities which are not part of PALM's standard output. The basic user 14 14 interface 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 cross16 section or 3d volume data. The respective subroutines15 of 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 16 section</a> or <a href="#2D_and_3D">3d volume data</a>. The respective subroutines 17 17 contain sample code lines (written as comment lines) for defining, calculating and 18 18 output 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 19 19 rest 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 the20 default 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 21 21 quantity "turbulent resolved-scale horizontal momentum flux" (u*v*). If more than one user-defined 22 22 quantity shall be output, the following steps have to be carried out in the … … 49 49 calculation is stored in array <span style="font-family: Courier New,Courier,monospace;">sums_l</span>. 50 50 The 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> <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 51 profile 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 52 quantity shall be output, the following steps have to be carried out in the 53 same 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> dots_label(dots_num<span style="color: rgb(255, 0, 0);">+1</span>) = '<span style="color: rgb(255, 0, 0);">abs_umx</span>'<br> dots_unit(dots_num<span style="color: rgb(255, 0, 0);">+1</span>) = '<span style="color: rgb(255, 0, 0);">m/s</span>'<br> dots_label(dots_num<span style="color: rgb(255, 0, 0);">+2</span>) = '<span style="color: rgb(255, 0, 0);">abs_vmx</span>'<br> dots_unit(dots_num<span style="color: rgb(255, 0, 0);">+2</span>) = '<span style="color: rgb(255, 0, 0);">m/s</span>'<br><br> dots_num_palm = dots_num<br> 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 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, but at least for the region <span style="font-style: italic;">"total domain"</span>:<br> <br><code> ts_value(dots_num_palm+1,sr) = ABS( u_max )<br> ts_value(dots_num_palm+2,sr) = ABS( v_max )<br></code> <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 52 54 quantity "square of the u-component" (<span style="font-weight: bold;">Note:</span> this quantity 53 55 could of course easily be calculated from the u-component by -
palm/trunk/DOC/app/chapter_4.2.html
r127 r129 10682 10682 (cross sections), and <span style="font-style: italic;">'particles'</span>. 10683 10683 Within the strings the hash character ("#") has to be replaced by a 10684 digit ≤9. Up to 10 objects10685 can be assigned at the same time, e.g. 10684 digit 1≤#≤9. Up to 10 objects 10685 can be assigned at the same time, e.g.: </p> 10686 10686 10687 10687 … … 10700 10700 <p>In this 10701 10701 case one isosurface, two cross sections, and particles 10702 will be created. The quantities for which an isosurfaceare to be10702 will be created. The quantities for which isosurfaces or cross sections are to be 10703 10703 created 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> 10704 the parameter <a href="#data_output">data_output</a> (<span style="font-weight: bold;">data_output</span> 10707 10705 also 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 of10706 orientation 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 10709 10707 variables may be 10710 10708 assigned, the digit at the end of the <span style="font-weight: bold;">mode_dvrp</span>-string 10711 10709 selects the quantity, which is given 10712 10710 at 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 10711 selects the second 3D quantity 10712 of <span style="font-weight: bold;">data_output</span>, <span style="font-style: italic;">'slicer1'</span> selects the first 2D quantity 10713 of <span style="font-weight: bold;">data_output</span>). 10714 If 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 10721 10717 isosurface of u, a 10722 10718 horizontal cross section of u and 10723 a vertical cross section (xz) of w iscreated. For locations of the10719 a vertical cross section (xz) of w are created. For locations of the 10724 10720 cross sections see <a href="#data_output">data_output</a>. 10725 10721 The theshold value for which the isosurface is … … 10738 10734 10739 10735 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 10753 10737 of mode_dvrp must correspond to those of data_output 10754 10738 and 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 10739 data_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 10758 10740 for <b>mode_dvrp</b>, 10759 10741 thus <span style="font-style: italic;">'isosurface1'</span> 10760 and/or <span style="font-style: italic;">'slicer1'</span><i>.</i> 10742 and/or <span style="font-style: italic;">'slicer1'</span><i>.</i> 10761 10743 </p> 10762 10744 -
palm/trunk/DOC/misc/Tsubame.html
r127 r129 42 42 options 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 43 43 values</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>queue44 name for main job</td><td>novice, sla1, sla2, 45 sla3, RAM64GB, RAM128GB</td><td>sla3</td></tr><tr><td><code>-n</code></td><td>queue 46 46 name 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 the47 sla1, 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 48 48 <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 <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> 49 not always be the best choice. For code development, debugging or short 50 test runs the value "novice" for both options may be suitable. 51 Production 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). </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> 51 52 contains the CPU time demand for the main job in s which will be 52 53 automatically converted into min for the <span style="font-weight: bold;">n1ge</span> command. The -
palm/trunk/SCRIPTS/.mrun.config.default
r100 r129 47 47 # 48 48 #%remote_username <replace by your tsubame username> lctit parallel 49 #%tmp_user_catalog <replace by your user_catalog>lctit parallel50 #%tmp_data_catalog <replace by your data_catalog>lctit parallel49 #%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 51 51 %cpp_options -Mpreprocess:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:-D__netcdf lctit parallel 52 52 %netcdf_inc -I:/home2/usr5/mkanda/netcdf-3.6.2/include lctit parallel -
palm/trunk/SCRIPTS/mrun
r127 r129 135 135 # argument -g group_number, admit all sla* node_usage 136 136 # queues 137 # 23/10/07 - Marcus - further adjustments for queues on lctit137 # 30/10/07 - Marcus - further adjustments for queues on lctit 138 138 139 139 … … 1026 1026 elif [[ $host = lctit ]] 1027 1027 then 1028 node_usage= novice1028 node_usage=sla3 1029 1029 else 1030 1030 node_usage=not_shared … … 1090 1090 fi;; 1091 1091 (ibmy) queue=parallel;; 1092 (lctit) queue= novice;;1092 (lctit) queue=sla3;; 1093 1093 (nech) queue=none;; 1094 1094 (neck) queue=P;; -
palm/trunk/SCRIPTS/subjob
r126 r129 89 89 # 19/10/07 - Marcus- add new optional argument -g group_number 90 90 # 19/10/07 - Siggi - a ";" was missing in the last change done by Marcus 91 # 23/10/07 - Marcus- further adjustments for queues on lctit91 # 30/10/07 - Marcus- further adjustments for queues on lctit 92 92 93 93 … … 340 340 esac;; 341 341 (lctit) case $ndq in 342 (novice| bes1|bes2|sla1|sla2|sla3|RAM64GB|RAM128GB) error=false;;342 (novice|sla1|sla2|sla3|RAM64GB|RAM128GB) error=false;; 343 343 (*) error=true;; 344 344 esac;; -
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r128 r129 19 19 Status of 3D-volume NetCDF data file only depends on switch netcdf_64bit_3d (check_open) 20 20 21 check_open 21 prognostic_equations include the respective wall_*flux in the parameter list of 22 calls of diffusion_s. Same as before, only the values of wall_heatflux(0:4) 23 can be assigned. At present, wall_humidityflux, wall_qflux, wall_salinityflux, 24 and wall_scalarflux are kept zero. diffusion_s uses the respective wall_*flux 25 instead of wall_heatflux. This update serves two purposes: 26 - it avoids errors in calculations with humidity/scalar/salinity and prescribed 27 non-zero wall_heatflux, 28 - it prepares PALM for a possible assignment of wall fluxes of 29 humidity/scalar/salinity in a future release. 30 31 check_open, diffusion_s, modules, prognostic_equations 22 32 23 33 … … 37 47 Bugfix: wavenumber calculation for even nx in routines maketri (poisfft) 38 48 39 advec_particles, check_parameters, combine_plot_fields, init_ocean, poisfft, production_e 49 Bugfix: assignment of fluxes at walls 50 51 advec_particles, check_parameters, combine_plot_fields, diffusion_s, init_ocean, poisfft, production_e -
palm/trunk/SOURCE/diffusion_s.f90
r39 r129 4 4 ! Actual revisions: 5 5 ! ----------------- 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 7 8 ! 8 9 ! Former revisions: … … 45 46 ! Call for all grid points 46 47 !------------------------------------------------------------------------------! 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 ) 48 50 49 51 USE control_parameters … … 57 59 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1) 58 60 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 61 REAL :: wall_s_flux(0:4) 59 62 REAL, DIMENSION(:,:), POINTER :: s_flux_b, s_flux_t 60 63 REAL, DIMENSION(:,:,:), POINTER :: kh, s … … 86 89 + 0.5 * ( fwxp(j,i) * & 87 90 ( 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) & 89 92 -fwxm(j,i) * & 90 93 ( 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) & 92 95 ) * ddx2 & 93 96 + 0.5 * ( fwyp(j,i) * & 94 97 ( 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) & 96 99 -fwym(j,i) * & 97 100 ( 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) & 99 102 ) * ddy2 100 103 ENDDO … … 156 159 !------------------------------------------------------------------------------! 157 160 SUBROUTINE diffusion_s_ij( i, j, ddzu, ddzw, kh, s, s_flux_b, s_flux_t, & 158 tend )161 wall_s_flux, tend ) 159 162 160 163 USE control_parameters … … 168 171 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1) 169 172 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 173 REAL :: wall_s_flux(0:4) 170 174 REAL, DIMENSION(:,:), POINTER :: s_flux_b, s_flux_t 171 175 REAL, DIMENSION(:,:,:), POINTER :: kh, s … … 195 199 + 0.5 * ( fwxp(j,i) * & 196 200 ( 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) & 198 202 -fwxm(j,i) * & 199 203 ( 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) & 201 205 ) * ddx2 & 202 206 + 0.5 * ( fwyp(j,i) * & 203 207 ( 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) & 205 209 -fwym(j,i) * & 206 210 ( 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) & 208 212 ) * ddy2 209 213 ENDDO -
palm/trunk/SOURCE/modules.f90
r116 r129 6 6 ! ----------------- 7 7 ! +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) 8 10 ! 9 11 ! Former revisions: … … 431 433 vg_vertical_gradient_level(10) = -9999999.9, & 432 434 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 434 438 435 439 -
palm/trunk/SOURCE/prognostic_equations.f90
r110 r129 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! add wall_*flux to parameter list of calls of diffusion_s 7 7 ! 8 8 ! Former revisions: … … 369 369 !-- Tendency terms 370 370 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 ) 372 373 ELSE 373 374 IF ( tsc(2) == 2.0 .OR. timestep_scheme(1:5) == 'runge' ) THEN … … 383 384 THEN 384 385 CALL diffusion_s( i, j, ddzu, ddzw, kh_m, pt_m, shf_m, & 385 tswst_m, tend )386 tswst_m, wall_heatflux, tend ) 386 387 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 ) 388 390 ENDIF 389 391 ENDIF … … 471 473 IF ( scalar_advec == 'bc-scheme' ) THEN 472 474 CALL diffusion_s( i, j, ddzu, ddzw, kh, sa, saswsb, saswst, & 473 tend )475 wall_salinityflux, tend ) 474 476 ELSE 475 477 IF ( tsc(2) == 2.0 .OR. timestep_scheme(1:5) == 'runge' ) THEN … … 483 485 ENDIF 484 486 CALL diffusion_s( i, j, ddzu, ddzw, kh, sa, saswsb, saswst, & 485 tend )487 wall_salinityflux, tend ) 486 488 ENDIF 487 489 … … 563 565 !-- Tendency-terms 564 566 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 ) 566 569 ELSE 567 570 IF ( tsc(2) == 2.0 .OR. timestep_scheme(1:5) == 'runge' ) THEN … … 577 580 THEN 578 581 CALL diffusion_s( i, j, ddzu, ddzw, kh_m, q_m, qsws_m, & 579 qswst_m, tend )582 qswst_m, wall_qflux, tend ) 580 583 ELSE 581 584 CALL diffusion_s( i, j, ddzu, ddzw, kh, q, qsws, qswst, & 582 tend )585 wall_qflux, tend ) 583 586 ENDIF 584 587 ENDIF … … 974 977 THEN 975 978 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 ) 979 983 ENDIF 980 984 … … 1033 1037 ENDIF 1034 1038 CALL diffusion_s( i, j, ddzu, ddzw, kh, sa, saswsb, saswst, & 1035 tend )1039 wall_salinityflux, tend ) 1036 1040 1037 1041 CALL user_actions( i, j, 'sa-tendency' ) … … 1087 1091 THEN 1088 1092 CALL diffusion_s( i, j, ddzu, ddzw, kh_m, q_m, qsws_m, & 1089 qswst_m, tend )1093 qswst_m, wall_qflux, tend ) 1090 1094 ELSE 1091 1095 CALL diffusion_s( i, j, ddzu, ddzw, kh, q, qsws, qswst, & 1092 tend )1096 wall_qflux, tend ) 1093 1097 ENDIF 1094 1098 … … 1487 1491 !-- pt-tendency terms with no communication 1488 1492 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 ) 1490 1495 ELSE 1491 1496 IF ( tsc(2) == 2.0 .OR. timestep_scheme(1:5) == 'runge' ) THEN … … 1499 1504 ENDIF 1500 1505 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 ) 1502 1508 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 ) 1504 1511 ENDIF 1505 1512 ENDIF … … 1589 1596 1590 1597 ! 1591 !-- Scalar/q-tendency terms with no communication1598 !-- sa-tendency terms with no communication 1592 1599 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 ) 1594 1602 ELSE 1595 1603 IF ( tsc(2) == 2.0 .OR. timestep_scheme(1:5) == 'runge' ) THEN … … 1602 1610 ENDIF 1603 1611 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 ) 1605 1614 ENDIF 1606 1615 … … 1689 1698 !-- Scalar/q-tendency terms with no communication 1690 1699 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 ) 1692 1701 ELSE 1693 1702 IF ( tsc(2) == 2.0 .OR. timestep_scheme(1:5) == 'runge' ) THEN … … 1701 1710 ENDIF 1702 1711 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 ) 1706 1717 ENDIF 1707 1718 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.