Changeset 4346 for palm/trunk/SOURCE/salsa_mod.f90
- Timestamp:
- Dec 18, 2019 11:55:56 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/salsa_mod.f90
r4342 r4346 26 26 ! ----------------- 27 27 ! $Id$ 28 ! Introduction of wall_flags_total_0, which currently sets bits based on static 29 ! topography information used in wall_flags_static_0 30 ! 31 ! 4342 2019-12-16 13:49:14Z Giersch 28 32 ! cdc replaced by canopy_drag_coeff 29 33 ! … … 259 263 260 264 USE indices, & 261 ONLY: nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb, nz, nzt, wall_flags_static_0 265 ONLY: nbgp, nx, nxl, nxlg, nxr, nxrg, ny, nyn, nyng, nys, nysg, nzb, nz, nzt, & 266 wall_flags_total_0 262 267 263 268 USE kinds … … 1655 1660 ALLOCATE( salsa_advc_flags_s(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) 1656 1661 ! 1657 !-- In case of decycling, set Neuman boundary conditions for wall_flags_ static_0 bit 31 instead of1662 !-- In case of decycling, set Neuman boundary conditions for wall_flags_total_0 bit 31 instead of 1658 1663 !-- cyclic boundary conditions. Bit 31 is used to identify extended degradation zones (please see 1659 1664 !-- the following comment). Note, since several also other modules may access this bit but may 1660 !-- have other boundary conditions, the original value of wall_flags_ static_0 bit 31 must not be1665 !-- have other boundary conditions, the original value of wall_flags_total_0 bit 31 must not be 1661 1666 !-- modified. Hence, store the boundary conditions directly on salsa_advc_flags_s. 1662 1667 !-- salsa_advc_flags_s will be later overwritten in ws_init_flags_scalar and bit 31 won't be used … … 1664 1669 !-- Initialize with flag 31 only. 1665 1670 salsa_advc_flags_s = 0 1666 salsa_advc_flags_s = MERGE( IBSET( salsa_advc_flags_s, 31 ), 0, BTEST( wall_flags_ static_0, 31 ) )1671 salsa_advc_flags_s = MERGE( IBSET( salsa_advc_flags_s, 31 ), 0, BTEST( wall_flags_total_0, 31 ) ) 1667 1672 1668 1673 IF ( decycle_salsa_ns ) THEN … … 1784 1789 DO j = nys, nyn 1785 1790 1786 k_topo_top(j,i) = MAXLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,j,i), 12 ) ), DIM = 1 ) - 1 1791 k_topo_top(j,i) = MAXLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,j,i), 12 ) ), & 1792 DIM = 1 ) - 1 1787 1793 1788 1794 CALL salsa_driver( i, j, 1 ) … … 2310 2316 ! 2311 2317 !-- Predetermine flag to mask topography 2312 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )2318 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 2313 2319 ! 2314 2320 !-- a) Number concentrations … … 2521 2527 ! 2522 2528 !-- Predetermine flag to mask topography 2523 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )2529 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 2524 2530 ! 2525 2531 !-- Regime 2a: … … 3068 3074 ! 3069 3075 !-- Predetermine flag to mask topography 3070 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )3076 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 3071 3077 ! 3072 3078 !-- Wind velocity for dry depositon on vegetation … … 7443 7449 ! 7444 7450 !-- Predetermine flag to mask topography 7445 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(:,j,i), 0 ) )7451 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(:,j,i), 0 ) ) 7446 7452 7447 7453 DO ib = 1, nbins_aerosol ! aerosol size bins … … 7859 7865 7860 7866 USE indices, & 7861 ONLY: wall_flags_ static_07867 ONLY: wall_flags_total_0 7862 7868 7863 7869 USE surface_mod, & … … 7951 7957 tend(k,j,i) = tend(k,j,i) - MAX( 0.0_wp, ( rs(k+1,j,i) * sedim_vd(k+1,j,i,ib) - & 7952 7958 rs(k,j,i) * sedim_vd(k,j,i,ib) ) * ddzu(k) ) & 7953 * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k-1,j,i), 0 ) )7959 * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k-1,j,i), 0 ) ) 7954 7960 rs_p(k,j,i) = rs(k,j,i) + ( dt_3d * ( tsc(2) * tend(k,j,i) + tsc(3) * trs_m(k,j,i) ) & 7955 7961 - tsc(5) * rdf_sc(k) * ( rs(k,j,i) - rs_init(k) ) ) & 7956 * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )7962 * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 7957 7963 IF ( rs_p(k,j,i) < 0.0_wp ) rs_p(k,j,i) = 0.1_wp * rs(k,j,i) 7958 7964 ENDDO … … 7964 7970 rs_p(k,j,i) = rs(k,j,i) + ( dt_3d * ( tsc(2) * tend(k,j,i) + tsc(3) * trs_m(k,j,i) ) & 7965 7971 - tsc(5) * rdf_sc(k) * ( rs(k,j,i) - rs_init(k) ) )& 7966 * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )7972 * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 7967 7973 IF ( rs_p(k,j,i) < 0.0_wp ) rs_p(k,j,i) = 0.1_wp * rs(k,j,i) 7968 7974 ENDDO … … 8003 8009 ONLY: diffusion_s 8004 8010 USE indices, & 8005 ONLY: wall_flags_ static_08011 ONLY: wall_flags_total_0 8006 8012 USE surface_mod, & 8007 8013 ONLY : surf_def_h, surf_def_v, surf_lsm_h, surf_lsm_v, surf_usm_h, surf_usm_v … … 8088 8094 sedim_vd(nzb+2:nzt+1,j,i,ib) - rs(nzb+1:nzt,j,i) * & 8089 8095 sedim_vd(nzb+1:nzt,j,i,ib) ) * ddzu(nzb+1:nzt) ) * & 8090 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(nzb:nzt-1,j,i), 0 ) )8096 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(nzb:nzt-1,j,i), 0 ) ) 8091 8097 ENDIF 8092 8098 DO k = nzb+1, nzt 8093 8099 rs_p(k,j,i) = rs(k,j,i) + ( dt_3d * ( tsc(2) * tend(k,j,i) + tsc(3) * trs_m(k,j,i) )& 8094 8100 - tsc(5) * rdf_sc(k) * ( rs(k,j,i) - rs_init(k) )& 8095 ) * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )8101 ) * MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 8096 8102 IF ( rs_p(k,j,i) < 0.0_wp ) rs_p(k,j,i) = 0.1_wp * rs(k,j,i) 8097 8103 ENDDO … … 8424 8430 DO j = nysg, nyng 8425 8431 DO k = nzb+1, nzt 8426 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )8432 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 8427 8433 sq(k,j,i) = sq_init(k) * flag 8428 8434 ENDDO … … 8449 8455 DO j = nysg, nyng 8450 8456 DO k = nzb+1, nzt 8451 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )8457 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 8452 8458 sq(k,j,i) = sq(k,j,copied) * flag 8453 8459 ENDDO … … 8485 8491 DO j = ss, ee 8486 8492 DO k = nzb+1, nzt 8487 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )8493 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 8488 8494 sq(k,j,i) = sq_init(k) * flag 8489 8495 ENDDO … … 8510 8516 DO j = ss, ee 8511 8517 DO k = nzb+1, nzt 8512 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_ static_0(k,j,i), 0 ) )8518 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) ) 8513 8519 sq(k,j,i) = sq(k,copied,i) * flag 8514 8520 ENDDO … … 10006 10012 ENDDO 10007 10013 sums_l(k,ind,tn) = sums_l(k,ind,tn) + temp_bin * rmask(j,i,sr) * & 10008 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) ) 10014 MERGE( 1.0_wp, 0.0_wp, & 10015 BTEST( wall_flags_total_0(k,j,i), 22 ) ) 10009 10016 ENDDO 10010 10017 ENDDO … … 10021 10028 ENDDO 10022 10029 sums_l(k,ind,tn) = sums_l(k,ind,tn) + temp_bin * rmask(j,i,sr) * & 10023 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) ) 10030 MERGE( 1.0_wp, 0.0_wp, & 10031 BTEST( wall_flags_total_0(k,j,i), 22 ) ) 10024 10032 ENDDO 10025 10033 ENDDO … … 10035 10043 ENDDO 10036 10044 sums_l(k,ind,tn) = sums_l(k,ind,tn) + temp_bin * rmask(j,i,sr) * & 10037 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) ) 10045 MERGE( 1.0_wp, 0.0_wp, & 10046 BTEST( wall_flags_total_0(k,j,i), 22 ) ) 10038 10047 ENDDO 10039 10048 ENDDO … … 10053 10062 ENDDO 10054 10063 sums_l(k,ind,tn) = sums_l(k,ind,tn) + temp_bin * rmask(j,i,sr) * & 10055 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) ) 10064 MERGE( 1.0_wp, 0.0_wp, & 10065 BTEST( wall_flags_total_0(k,j,i), 22 ) ) 10056 10066 ENDDO 10057 10067 ENDDO … … 10071 10081 ENDDO 10072 10082 sums_l(k,ind,tn) = sums_l(k,ind,tn) + temp_bin * rmask(j,i,sr) * & 10073 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) ) 10083 MERGE( 1.0_wp, 0.0_wp, & 10084 BTEST( wall_flags_total_0(k,j,i), 22 ) ) 10074 10085 ENDDO 10075 10086 ENDDO … … 10089 10100 ENDDO 10090 10101 sums_l(k,ind,tn) = sums_l(k,ind,tn) + temp_bin * rmask(j,i,sr) * & 10091 MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 22 ) ) 10102 MERGE( 1.0_wp, 0.0_wp, & 10103 BTEST( wall_flags_total_0(k,j,i), 22 ) ) 10092 10104 ENDDO 10093 10105 ENDDO … … 10704 10716 DO k = nzb_do, nzt_do 10705 10717 local_pf(i,j,k) = MERGE( aerosol_number(ib)%conc(k,j,i), REAL( fill_value, & 10706 KIND = wp ), BTEST( wall_flags_ static_0(k,j,i), 0 ) )10718 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10707 10719 ENDDO 10708 10720 ENDDO … … 10713 10725 DO k = nzb_do, nzt_do 10714 10726 local_pf(i,j,k) = MERGE( nbins_av(k,j,i,ib), REAL( fill_value, KIND = wp ), & 10715 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10727 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10716 10728 ENDDO 10717 10729 ENDDO … … 10736 10748 ENDDO 10737 10749 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10738 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10750 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10739 10751 ENDDO 10740 10752 ENDDO … … 10745 10757 DO k = nzb_do, nzt_do 10746 10758 local_pf(i,j,k) = MERGE( mbins_av(k,j,i,ib), REAL( fill_value, KIND = wp ), & 10747 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10759 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10748 10760 ENDDO 10749 10761 ENDDO … … 10770 10782 local_pf(i,j,k) = MERGE( salsa_gas(found_index)%conc(k,j,i), & 10771 10783 REAL( fill_value, KIND = wp ), & 10772 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10784 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10773 10785 ENDDO 10774 10786 ENDDO … … 10784 10796 DO k = nzb_do, nzt_do 10785 10797 local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i), REAL( fill_value, & 10786 KIND = wp ), BTEST( wall_flags_static_0(k,j,i), 0 ) )10798 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10787 10799 ENDDO 10788 10800 ENDDO … … 10814 10826 10815 10827 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10816 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10828 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10817 10829 ENDDO 10818 10830 ENDDO … … 10823 10835 DO k = nzb_do, nzt_do 10824 10836 local_pf(i,j,k) = MERGE( ldsa_av(k,j,i), REAL( fill_value, KIND = wp ), & 10825 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10837 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10826 10838 ENDDO 10827 10839 ENDDO … … 10844 10856 ENDDO 10845 10857 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10846 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10858 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10847 10859 ENDDO 10848 10860 ENDDO … … 10853 10865 DO k = nzb_do, nzt_do 10854 10866 local_pf(i,j,k) = MERGE( nufp_av(k,j,i), REAL( fill_value, KIND = wp ), & 10855 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10867 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10856 10868 ENDDO 10857 10869 ENDDO … … 10872 10884 ENDDO 10873 10885 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10874 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10886 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10875 10887 ENDDO 10876 10888 ENDDO … … 10881 10893 DO k = nzb_do, nzt_do 10882 10894 local_pf(i,j,k) = MERGE( ntot_av(k,j,i), REAL( fill_value, KIND = wp ), & 10883 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10895 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10884 10896 ENDDO 10885 10897 ENDDO … … 10903 10915 ENDDO 10904 10916 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10905 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10917 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10906 10918 ENDDO 10907 10919 ENDDO … … 10912 10924 DO k = nzb_do, nzt_do 10913 10925 local_pf(i,j,k) = MERGE( pm01_av(k,j,i), REAL( fill_value, KIND = wp ), & 10914 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10926 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10915 10927 ENDDO 10916 10928 ENDDO … … 10934 10946 ENDDO 10935 10947 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10936 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10948 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10937 10949 ENDDO 10938 10950 ENDDO … … 10943 10955 DO k = nzb_do, nzt_do 10944 10956 local_pf(i,j,k) = MERGE( pm25_av(k,j,i), REAL( fill_value, KIND = wp ), & 10945 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10957 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10946 10958 ENDDO 10947 10959 ENDDO … … 10965 10977 ENDDO 10966 10978 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10967 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10979 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10968 10980 ENDDO 10969 10981 ENDDO … … 10974 10986 DO k = nzb_do, nzt_do 10975 10987 local_pf(i,j,k) = MERGE( pm10_av(k,j,i), REAL( fill_value, KIND = wp ), & 10976 BTEST( wall_flags_ static_0(k,j,i), 0 ) )10988 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10977 10989 ENDDO 10978 10990 ENDDO … … 10995 11007 ENDDO 10996 11008 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 10997 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11009 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 10998 11010 ENDDO 10999 11011 ENDDO … … 11011 11023 DO k = nzb_do, nzt_do 11012 11024 local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i), REAL( fill_value, & 11013 KIND = wp ), BTEST( wall_flags_static_0(k,j,i), 0 ) )11025 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11014 11026 ENDDO 11015 11027 ENDDO … … 11033 11045 ENDDO 11034 11046 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11035 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11047 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11036 11048 ENDDO 11037 11049 ENDDO … … 11043 11055 DO k = nzb_do, nzt_do 11044 11056 local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i), REAL( fill_value, & 11045 KIND = wp ), BTEST( wall_flags_static_0(k,j,i), 0 ) )11057 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11046 11058 ENDDO 11047 11059 ENDDO … … 11114 11126 DO k = nzb_do, nzt_do 11115 11127 local_pf(i,j,k) = MERGE( aerosol_number(ib)%conc(k,j,i), REAL( fill_value, & 11116 KIND = wp ), BTEST( wall_flags_ static_0(k,j,i), 0 ) )11128 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11117 11129 ENDDO 11118 11130 ENDDO … … 11123 11135 DO k = nzb_do, nzt_do 11124 11136 local_pf(i,j,k) = MERGE( nbins_av(k,j,i,ib), REAL( fill_value, KIND = wp ), & 11125 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11137 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11126 11138 ENDDO 11127 11139 ENDDO … … 11144 11156 ENDDO 11145 11157 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11146 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11158 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11147 11159 ENDDO 11148 11160 ENDDO … … 11153 11165 DO k = nzb_do, nzt_do 11154 11166 local_pf(i,j,k) = MERGE( mbins_av(k,j,i,ib), REAL( fill_value, KIND = wp ), & 11155 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11167 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11156 11168 ENDDO 11157 11169 ENDDO … … 11176 11188 local_pf(i,j,k) = MERGE( salsa_gas(found_index)%conc(k,j,i), & 11177 11189 REAL( fill_value, KIND = wp ), & 11178 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11190 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11179 11191 ENDDO 11180 11192 ENDDO … … 11192 11204 DO k = nzb_do, nzt_do 11193 11205 local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i), REAL( fill_value, & 11194 KIND = wp ), BTEST( wall_flags_static_0(k,j,i), 0 ) )11206 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11195 11207 ENDDO 11196 11208 ENDDO … … 11219 11231 ENDDO 11220 11232 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11221 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11233 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11222 11234 ENDDO 11223 11235 ENDDO … … 11228 11240 DO k = nzb_do, nzt_do 11229 11241 local_pf(i,j,k) = MERGE( ldsa_av(k,j,i), REAL( fill_value, KIND = wp ), & 11230 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11242 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11231 11243 ENDDO 11232 11244 ENDDO … … 11246 11258 ENDDO 11247 11259 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11248 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11260 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11249 11261 ENDDO 11250 11262 ENDDO … … 11255 11267 DO k = nzb_do, nzt_do 11256 11268 local_pf(i,j,k) = MERGE( nufp_av(k,j,i), REAL( fill_value, KIND = wp ), & 11257 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11269 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11258 11270 ENDDO 11259 11271 ENDDO … … 11271 11283 ENDDO 11272 11284 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11273 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11285 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11274 11286 ENDDO 11275 11287 ENDDO … … 11280 11292 DO k = nzb_do, nzt_do 11281 11293 local_pf(i,j,k) = MERGE( ntot_av(k,j,i), REAL( fill_value, KIND = wp ), & 11282 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11294 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11283 11295 ENDDO 11284 11296 ENDDO … … 11300 11312 ENDDO 11301 11313 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11302 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11314 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11303 11315 ENDDO 11304 11316 ENDDO … … 11309 11321 DO k = nzb_do, nzt_do 11310 11322 local_pf(i,j,k) = MERGE( pm01_av(k,j,i), REAL( fill_value, KIND = wp ), & 11311 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11323 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11312 11324 ENDDO 11313 11325 ENDDO … … 11329 11341 ENDDO 11330 11342 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11331 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11343 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11332 11344 ENDDO 11333 11345 ENDDO … … 11338 11350 DO k = nzb_do, nzt_do 11339 11351 local_pf(i,j,k) = MERGE( pm25_av(k,j,i), REAL( fill_value, KIND = wp ), & 11340 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11352 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11341 11353 ENDDO 11342 11354 ENDDO … … 11358 11370 ENDDO 11359 11371 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11360 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11372 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11361 11373 ENDDO 11362 11374 ENDDO … … 11367 11379 DO k = nzb_do, nzt_do 11368 11380 local_pf(i,j,k) = MERGE( pm10_av(k,j,i), REAL( fill_value, KIND = wp ), & 11369 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11381 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11370 11382 ENDDO 11371 11383 ENDDO … … 11385 11397 ENDDO 11386 11398 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11387 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11399 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11388 11400 ENDDO 11389 11401 ENDDO … … 11403 11415 DO k = nzb_do, nzt_do 11404 11416 local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i), REAL( fill_value, & 11405 KIND = wp ), BTEST( wall_flags_ static_0(k,j,i), 0 ) )11417 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11406 11418 ENDDO 11407 11419 ENDDO … … 11421 11433 ENDDO 11422 11434 local_pf(i,j,k) = MERGE( temp_bin, REAL( fill_value, KIND = wp ), & 11423 BTEST( wall_flags_ static_0(k,j,i), 0 ) )11435 BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11424 11436 ENDDO 11425 11437 ENDDO … … 11431 11443 DO k = nzb_do, nzt_do 11432 11444 local_pf(i,j,k) = MERGE( to_be_resorted(k,j,i), REAL( fill_value, & 11433 KIND = wp ), BTEST( wall_flags_static_0(k,j,i), 0 ) )11445 KIND = wp ), BTEST( wall_flags_total_0(k,j,i), 0 ) ) 11434 11446 ENDDO 11435 11447 ENDDO … … 11521 11533 im = mask_i(mid,i) 11522 11534 jm = mask_j(mid,j) 11523 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11535 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11536 DIM = 1 ) - 1 11524 11537 DO k = 1, mask_size_l(mid,3) 11525 11538 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11526 11539 ! 11527 11540 !-- Set value if not in building 11528 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11541 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11529 11542 local_pf(i,j,k) = fill_value 11530 11543 ELSE … … 11575 11588 im = mask_i(mid,i) 11576 11589 jm = mask_j(mid,j) 11577 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11590 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11591 DIM = 1 ) - 1 11578 11592 DO k = 1, mask_size_l(mid,3) 11579 11593 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11580 11594 ! 11581 11595 !-- Set value if not in building 11582 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11596 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11583 11597 local_pf(i,j,k) = fill_value 11584 11598 ELSE … … 11654 11668 im = mask_i(mid,i) 11655 11669 jm = mask_j(mid,j) 11656 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11670 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11671 DIM = 1 ) - 1 11657 11672 DO k = 1, mask_size_l(mid,3) 11658 11673 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11659 11674 ! 11660 11675 !-- Set value if not in building 11661 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11676 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11662 11677 local_pf(i,j,k) = fill_value 11663 11678 ELSE … … 11703 11718 im = mask_i(mid,i) 11704 11719 jm = mask_j(mid,j) 11705 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11720 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11721 DIM = 1 ) - 1 11706 11722 DO k = 1, mask_size_l(mid,3) 11707 11723 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11708 11724 ! 11709 11725 !-- Set value if not in building 11710 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11726 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11711 11727 local_pf(i,j,k) = fill_value 11712 11728 ELSE … … 11750 11766 im = mask_i(mid,i) 11751 11767 jm = mask_j(mid,j) 11752 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11768 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11769 DIM = 1 ) - 1 11753 11770 DO k = 1, mask_size_l(mid,3) 11754 11771 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11755 11772 ! 11756 11773 !-- Set value if not in building 11757 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11774 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11758 11775 local_pf(i,j,k) = fill_value 11759 11776 ELSE … … 11801 11818 im = mask_i(mid,i) 11802 11819 jm = mask_j(mid,j) 11803 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11820 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11821 DIM = 1 ) - 1 11804 11822 DO k = 1, mask_size_l(mid,3) 11805 11823 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11806 11824 ! 11807 11825 !-- Set value if not in building 11808 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11826 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11809 11827 local_pf(i,j,k) = fill_value 11810 11828 ELSE … … 11852 11870 im = mask_i(mid,i) 11853 11871 jm = mask_j(mid,j) 11854 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11872 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11873 DIM = 1 ) - 1 11855 11874 DO k = 1, mask_size_l(mid,3) 11856 11875 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11857 11876 ! 11858 11877 !-- Set value if not in building 11859 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11878 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11860 11879 local_pf(i,j,k) = fill_value 11861 11880 ELSE … … 11903 11922 im = mask_i(mid,i) 11904 11923 jm = mask_j(mid,j) 11905 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11924 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11925 DIM = 1 ) - 1 11906 11926 DO k = 1, mask_size_l(mid,3) 11907 11927 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11908 11928 ! 11909 11929 !-- Set value if not in building 11910 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11930 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11911 11931 local_pf(i,j,k) = fill_value 11912 11932 ELSE … … 11955 11975 im = mask_i(mid,i) 11956 11976 jm = mask_j(mid,j) 11957 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 11977 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 11978 DIM = 1 ) - 1 11958 11979 DO k = 1, mask_size_l(mid,3) 11959 11980 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 11960 11981 ! 11961 11982 !-- Set value if not in building 11962 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN11983 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 11963 11984 local_pf(i,j,k) = fill_value 11964 11985 ELSE … … 12011 12032 im = mask_i(mid,i) 12012 12033 jm = mask_j(mid,j) 12013 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 12034 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 12035 DIM = 1 ) - 1 12014 12036 DO k = 1, mask_size_l(mid,3) 12015 12037 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 12016 12038 ! 12017 12039 !-- Set value if not in building 12018 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN12040 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 12019 12041 local_pf(i,j,k) = fill_value 12020 12042 ELSE … … 12055 12077 im = mask_i(mid,i) 12056 12078 jm = mask_j(mid,j) 12057 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_static_0(:,jm,im), 5 )), DIM = 1 ) - 1 12079 ktt = MINLOC( MERGE( 1, 0, BTEST( wall_flags_total_0(:,jm,im), 5 )), & 12080 DIM = 1 ) - 1 12058 12081 DO k = 1, mask_size_l(mid,3) 12059 12082 kk = MIN( ktt+mask_k(mid,k), nzt+1 ) 12060 12083 !-- Set value if not in building 12061 IF ( BTEST( wall_flags_ static_0(kk,jm,im), 6 ) ) THEN12084 IF ( BTEST( wall_flags_total_0(kk,jm,im), 6 ) ) THEN 12062 12085 local_pf(i,j,k) = fill_value 12063 12086 ELSE
Note: See TracChangeset
for help on using the changeset viewer.