Changeset 4742 for palm/trunk/SOURCE/advec_ws.f90
- Timestamp:
- Oct 14, 2020 3:11:02 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/advec_ws.f90
r4697 r4742 24 24 ! ----------------- 25 25 ! $Id$ 26 ! Implement snow and graupel (bulk microphysics) 27 ! 28 ! 4697 2020-09-25 08:24:29Z suehring 26 29 ! To avoid numerical oscillations which may lead to a built-up of passive scalar near non-cyclic 27 30 ! boundaries, employ a first-order scheme at the 3 grid points next to the boundary for passive … … 252 255 sums_wsqis_ws_l, & 253 256 sums_wsnis_ws_l, & 257 sums_wsqgs_ws_l, & 258 sums_wsngs_ws_l, & 259 sums_wsqss_ws_l, & 260 sums_wsnss_ws_l, & 254 261 sums_wssas_ws_l, & 255 262 sums_wsus_ws_l, & … … 1828 1835 ENDDO 1829 1836 1837 CASE ( 'qg' ) 1838 1839 DO k = nzb, nzt 1840 sums_wsqgs_ws_l(k,tn) = sums_wsqgs_ws_l(k,tn) + & 1841 ( flux_t(k) / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 1842 * ( w(k,j,i) - hom(k,1,3,0) ) & 1843 + diss_t(k) / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 1844 * ABS( w(k,j,i) - hom(k,1,3,0) ) & 1845 ) * weight_substep(intermediate_timestep_count) 1846 ENDDO 1830 1847 1831 1848 CASE ( 'qi' ) … … 1851 1868 ENDDO 1852 1869 1870 CASE ( 'qs' ) 1871 1872 DO k = nzb, nzt 1873 sums_wsqss_ws_l(k,tn) = sums_wsqss_ws_l(k,tn) + & 1874 ( flux_t(k) / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 1875 * ( w(k,j,i) - hom(k,1,3,0) ) & 1876 + diss_t(k) / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 1877 * ABS( w(k,j,i) - hom(k,1,3,0) ) & 1878 ) * weight_substep(intermediate_timestep_count) 1879 ENDDO 1880 1853 1881 CASE ( 'nc' ) 1854 1882 … … 1862 1890 ENDDO 1863 1891 1892 CASE ( 'ng' ) 1893 1894 DO k = nzb, nzt 1895 sums_wsngs_ws_l(k,tn) = sums_wsngs_ws_l(k,tn) + & 1896 ( flux_t(k) / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 1897 * ( w(k,j,i) - hom(k,1,3,0) ) & 1898 + diss_t(k) / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 1899 * ABS( w(k,j,i) - hom(k,1,3,0) ) & 1900 ) * weight_substep(intermediate_timestep_count) 1901 ENDDO 1902 1903 1864 1904 CASE ( 'ni' ) 1865 1905 … … 1877 1917 DO k = nzb, nzt 1878 1918 sums_wsnrs_ws_l(k,tn) = sums_wsnrs_ws_l(k,tn) + & 1919 ( flux_t(k) / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 1920 * ( w(k,j,i) - hom(k,1,3,0) ) & 1921 + diss_t(k) / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 1922 * ABS( w(k,j,i) - hom(k,1,3,0) ) & 1923 ) * weight_substep(intermediate_timestep_count) 1924 ENDDO 1925 1926 CASE ( 'ns' ) 1927 1928 DO k = nzb, nzt 1929 sums_wsnss_ws_l(k,tn) = sums_wsnss_ws_l(k,tn) + & 1879 1930 ( flux_t(k) / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 1880 1931 * ( w(k,j,i) - hom(k,1,3,0) ) & … … 3450 3501 CASE ( 'qi' ) 3451 3502 sk_num = 11 3503 CASE ( 'ng' ) 3504 sk_num = 12 3505 CASE ( 'qg' ) 3506 sk_num = 13 3507 CASE ( 'ns' ) 3508 sk_num = 14 3509 CASE ( 'qs' ) 3510 sk_num = 15 3452 3511 CASE DEFAULT 3453 3512 sk_num = 0 … … 3477 3536 !$ACC PRESENT(sums_wsnrs_ws_l, sums_wsss_ws_l) & 3478 3537 !$ACC PRESENT(sums_wsnis_ws_l, sums_wsqis_ws_l) & 3538 !$ACC PRESENT(sums_wsngs_ws_l, sums_wsqgs_ws_l) & 3539 !$ACC PRESENT(sums_wsnss_ws_l, sums_wsqss_ws_l) & 3479 3540 !$ACC PRESENT(sums_salsa_ws_l) 3480 3541 DO i = nxl, nxr … … 4123 4184 * ABS(w(k,j,i) - hom(k,1,3,0) ) & 4124 4185 ) * weight_substep(intermediate_timestep_count) 4186 CASE ( 12 ) 4187 !$ACC ATOMIC 4188 sums_wsngs_ws_l(k,tn) = sums_wsngs_ws_l(k,tn) + & 4189 ( flux_t(k) & 4190 / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 4191 * ( w(k,j,i) - hom(k,1,3,0) ) & 4192 + diss_t(k) & 4193 / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 4194 * ABS(w(k,j,i) - hom(k,1,3,0) ) & 4195 ) * weight_substep(intermediate_timestep_count) 4196 CASE ( 13 ) 4197 !$ACC ATOMIC 4198 sums_wsqgs_ws_l(k,tn) = sums_wsqgs_ws_l(k,tn) + & 4199 ( flux_t(k) & 4200 / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 4201 * ( w(k,j,i) - hom(k,1,3,0) ) & 4202 + diss_t(k) & 4203 / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 4204 * ABS(w(k,j,i) - hom(k,1,3,0) ) & 4205 ) * weight_substep(intermediate_timestep_count) 4206 4207 CASE ( 14 ) 4208 !$ACC ATOMIC 4209 sums_wsnss_ws_l(k,tn) = sums_wsnss_ws_l(k,tn) + & 4210 ( flux_t(k) & 4211 / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 4212 * ( w(k,j,i) - hom(k,1,3,0) ) & 4213 + diss_t(k) & 4214 / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 4215 * ABS(w(k,j,i) - hom(k,1,3,0) ) & 4216 ) * weight_substep(intermediate_timestep_count) 4217 CASE ( 15 ) 4218 !$ACC ATOMIC 4219 sums_wsqss_ws_l(k,tn) = sums_wsqss_ws_l(k,tn) + & 4220 ( flux_t(k) & 4221 / ( w(k,j,i) + SIGN( 1.0E-20_wp, w(k,j,i) ) ) & 4222 * ( w(k,j,i) - hom(k,1,3,0) ) & 4223 + diss_t(k) & 4224 / ( ABS(w(k,j,i)) + 1.0E-20_wp ) & 4225 * ABS(w(k,j,i) - hom(k,1,3,0) ) & 4226 ) * weight_substep(intermediate_timestep_count) 4227 4125 4228 4126 4229 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.