Changeset 2232 for palm/trunk/SOURCE/data_output_2d.f90
- Timestamp:
- May 30, 2017 5:47:52 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/data_output_2d.f90
r2191 r2232 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! Adjustments to new surface concept 22 23 ! 23 24 ! … … 162 163 163 164 USE arrays_3d, & 164 ONLY: dzw, e, nr, ol, p, pt, precipitation_amount, precipitation_rate,&165 prr, q, qc, ql, ql_c, ql_v, ql_vp, qr, qsws, rho_ocean, s, sa, shf,&166 ssws, tend, ts, u, us, v, vpt, w, z0, z0h, z0q, zu, zw165 ONLY: dzw, e, nr, p, pt, precipitation_amount, precipitation_rate, & 166 prr, q, qc, ql, ql_c, ql_v, ql_vp, qr, rho_ocean, s, sa, & 167 tend, u, v, vpt, w, zu, zw 167 168 168 169 USE averaging … … 177 178 do2d_xz_last_time, do2d_xz_n, do2d_xz_time_count, & 178 179 do2d_yz_last_time, do2d_yz_n, do2d_yz_time_count, & 179 ibc_uv_b, io_blocks, io_group, message_string,&180 ibc_uv_b, io_blocks, io_group, land_surface, message_string, & 180 181 ntdim_2d_xy, ntdim_2d_xz, ntdim_2d_yz, & 181 182 psolver, section, simulated_time, simulated_time_chr, & … … 195 196 196 197 USE land_surface_model_mod, & 197 ONLY: l and_surface, lsm_data_output_2d, zs198 ONLY: lsm_data_output_2d, zs 198 199 199 200 #if defined( __netcdf ) … … 214 215 USE radiation_model_mod, & 215 216 ONLY: radiation, radiation_data_output_2d 217 218 USE surface_mod, & 219 ONLY: surf_def_h, surf_lsm_h, surf_usm_h 216 220 217 221 IMPLICIT NONE … … 234 238 INTEGER(iwp) :: l !< 235 239 INTEGER(iwp) :: layer_xy !< 240 INTEGER(iwp) :: m !< 236 241 INTEGER(iwp) :: n !< 237 242 INTEGER(iwp) :: nis !< … … 255 260 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: local_2d !< 256 261 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: local_2d_l !< 262 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: tmp_2d !< temporary field used to exchange surface-related quantities 263 257 264 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: local_pf !< 258 265 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: local_2d_sections !< … … 417 424 !-- Allocate a temporary array for resorting (kji -> ijk). 418 425 ALLOCATE( local_pf(nxlg:nxrg,nysg:nyng,nzb:nzt+1) ) 426 local_pf = 0.0 427 ! 428 !-- Allocate temporary array used for exchanging ghoist points of surface-data 429 ALLOCATE( tmp_2d(nysg:nyng,nxlg:nxrg) ) 430 tmp_2d = 0.0 419 431 420 432 ! … … 485 497 CASE ( 'ol*_xy' ) ! 2d-array 486 498 IF ( av == 0 ) THEN 487 DO i = nxlg, nxrg 488 DO j = nysg, nyng 489 local_pf(i,j,nzb+1) = ol(j,i) 490 ENDDO 491 ENDDO 499 DO m = 1, surf_def_h(0)%ns 500 i = surf_def_h(0)%i(m) 501 j = surf_def_h(0)%j(m) 502 tmp_2d(j,i) = surf_def_h(0)%ol(m) 503 ENDDO 504 DO m = 1, surf_lsm_h%ns 505 i = surf_lsm_h%i(m) 506 j = surf_lsm_h%j(m) 507 tmp_2d(j,i) = surf_lsm_h%ol(m) 508 ENDDO 509 DO m = 1, surf_usm_h%ns 510 i = surf_usm_h%i(m) 511 j = surf_usm_h%j(m) 512 tmp_2d(j,i) = surf_usm_h%ol(m) 513 ENDDO 514 515 CALL exchange_horiz_2d( tmp_2d, nbgp ) 516 517 DO i = nxlg, nxrg 518 DO j = nysg, nyng 519 local_pf(i,j,nzb+1) = tmp_2d(j,i) 520 ENDDO 521 ENDDO 522 492 523 ELSE 493 524 DO i = nxlg, nxrg … … 740 771 CASE ( 'qsws*_xy' ) ! 2d-array 741 772 IF ( av == 0 ) THEN 742 DO i = nxlg, nxrg 743 DO j = nysg, nyng 744 local_pf(i,j,nzb+1) = qsws(j,i) 773 DO m = 1, surf_def_h(0)%ns 774 i = surf_def_h(0)%i(m) 775 j = surf_def_h(0)%j(m) 776 tmp_2d(j,i) = surf_def_h(0)%qsws(m) 777 ENDDO 778 DO m = 1, surf_lsm_h%ns 779 i = surf_lsm_h%i(m) 780 j = surf_lsm_h%j(m) 781 tmp_2d(j,i) = surf_lsm_h%qsws(m) 782 ENDDO 783 DO m = 1, surf_usm_h%ns 784 i = surf_usm_h%i(m) 785 j = surf_usm_h%j(m) 786 tmp_2d(j,i) = surf_usm_h%qsws(m) 787 ENDDO 788 789 CALL exchange_horiz_2d( tmp_2d, nbgp ) 790 791 DO i = nxlg, nxrg 792 DO j = nysg, nyng 793 local_pf(i,j,nzb+1) = tmp_2d(j,i) 745 794 ENDDO 746 795 ENDDO … … 796 845 CASE ( 'shf*_xy' ) ! 2d-array 797 846 IF ( av == 0 ) THEN 798 DO i = nxlg, nxrg 799 DO j = nysg, nyng 800 local_pf(i,j,nzb+1) = shf(j,i) 847 DO m = 1, surf_def_h(0)%ns 848 i = surf_def_h(0)%i(m) 849 j = surf_def_h(0)%j(m) 850 tmp_2d(j,i) = surf_def_h(0)%shf(m) 851 ENDDO 852 DO m = 1, surf_lsm_h%ns 853 i = surf_lsm_h%i(m) 854 j = surf_lsm_h%j(m) 855 tmp_2d(j,i) = surf_lsm_h%shf(m) 856 ENDDO 857 DO m = 1, surf_usm_h%ns 858 i = surf_usm_h%i(m) 859 j = surf_usm_h%j(m) 860 tmp_2d(j,i) = surf_usm_h%shf(m) 861 ENDDO 862 863 CALL exchange_horiz_2d( tmp_2d, nbgp ) 864 865 DO i = nxlg, nxrg 866 DO j = nysg, nyng 867 local_pf(i,j,nzb+1) = tmp_2d(j,i) 801 868 ENDDO 802 869 ENDDO … … 814 881 CASE ( 'ssws*_xy' ) ! 2d-array 815 882 IF ( av == 0 ) THEN 816 DO i = nxlg, nxrg 817 DO j = nysg, nyng 818 local_pf(i,j,nzb+1) = ssws(j,i) 883 DO m = 1, surf_def_h(0)%ns 884 i = surf_def_h(0)%i(m) 885 j = surf_def_h(0)%j(m) 886 tmp_2d(j,i) = surf_def_h(0)%ssws(m) 887 ENDDO 888 DO m = 1, surf_lsm_h%ns 889 i = surf_lsm_h%i(m) 890 j = surf_lsm_h%j(m) 891 tmp_2d(j,i) = surf_lsm_h%ssws(m) 892 ENDDO 893 DO m = 1, surf_usm_h%ns 894 i = surf_usm_h%i(m) 895 j = surf_usm_h%j(m) 896 tmp_2d(j,i) = surf_usm_h%ssws(m) 897 ENDDO 898 899 CALL exchange_horiz_2d( tmp_2d, nbgp ) 900 901 DO i = nxlg, nxrg 902 DO j = nysg, nyng 903 local_pf(i,j,nzb+1) = tmp_2d(j,i) 819 904 ENDDO 820 905 ENDDO … … 832 917 CASE ( 't*_xy' ) ! 2d-array 833 918 IF ( av == 0 ) THEN 834 DO i = nxlg, nxrg 835 DO j = nysg, nyng 836 local_pf(i,j,nzb+1) = ts(j,i) 837 ENDDO 838 ENDDO 919 DO m = 1, surf_def_h(0)%ns 920 i = surf_def_h(0)%i(m) 921 j = surf_def_h(0)%j(m) 922 tmp_2d(j,i) = surf_def_h(0)%ts(m) 923 ENDDO 924 DO m = 1, surf_lsm_h%ns 925 i = surf_lsm_h%i(m) 926 j = surf_lsm_h%j(m) 927 tmp_2d(j,i) = surf_lsm_h%ts(m) 928 ENDDO 929 DO m = 1, surf_usm_h%ns 930 i = surf_usm_h%i(m) 931 j = surf_usm_h%j(m) 932 tmp_2d(j,i) = surf_usm_h%ts(m) 933 ENDDO 934 935 CALL exchange_horiz_2d( tmp_2d, nbgp ) 936 937 DO i = nxlg, nxrg 938 DO j = nysg, nyng 939 local_pf(i,j,nzb+1) = tmp_2d(j,i) 940 ENDDO 941 ENDDO 942 839 943 ELSE 840 944 DO i = nxlg, nxrg … … 864 968 CASE ( 'u*_xy' ) ! 2d-array 865 969 IF ( av == 0 ) THEN 866 DO i = nxlg, nxrg 867 DO j = nysg, nyng 868 local_pf(i,j,nzb+1) = us(j,i) 970 DO m = 1, surf_def_h(0)%ns 971 i = surf_def_h(0)%i(m) 972 j = surf_def_h(0)%j(m) 973 tmp_2d(j,i) = surf_def_h(0)%us(m) 974 ENDDO 975 DO m = 1, surf_lsm_h%ns 976 i = surf_lsm_h%i(m) 977 j = surf_lsm_h%j(m) 978 tmp_2d(j,i) = surf_lsm_h%us(m) 979 ENDDO 980 DO m = 1, surf_usm_h%ns 981 i = surf_usm_h%i(m) 982 j = surf_usm_h%j(m) 983 tmp_2d(j,i) = surf_usm_h%us(m) 984 ENDDO 985 986 CALL exchange_horiz_2d( tmp_2d, nbgp ) 987 988 DO i = nxlg, nxrg 989 DO j = nysg, nyng 990 local_pf(i,j,nzb+1) = tmp_2d(j,i) 869 991 ENDDO 870 992 ENDDO … … 912 1034 CASE ( 'z0*_xy' ) ! 2d-array 913 1035 IF ( av == 0 ) THEN 914 DO i = nxlg, nxrg 915 DO j = nysg, nyng 916 local_pf(i,j,nzb+1) = z0(j,i) 917 ENDDO 918 ENDDO 1036 DO m = 1, surf_def_h(0)%ns 1037 i = surf_def_h(0)%i(m) 1038 j = surf_def_h(0)%j(m) 1039 tmp_2d(j,i) = surf_def_h(0)%z0(m) 1040 ENDDO 1041 DO m = 1, surf_lsm_h%ns 1042 i = surf_lsm_h%i(m) 1043 j = surf_lsm_h%j(m) 1044 tmp_2d(j,i) = surf_lsm_h%z0(m) 1045 ENDDO 1046 DO m = 1, surf_usm_h%ns 1047 i = surf_usm_h%i(m) 1048 j = surf_usm_h%j(m) 1049 tmp_2d(j,i) = surf_usm_h%z0(m) 1050 ENDDO 1051 1052 CALL exchange_horiz_2d( tmp_2d, nbgp ) 1053 1054 DO i = nxlg, nxrg 1055 DO j = nysg, nyng 1056 local_pf(i,j,nzb+1) = tmp_2d(j,i) 1057 ENDDO 1058 ENDDO 1059 919 1060 ELSE 920 1061 DO i = nxlg, nxrg … … 930 1071 CASE ( 'z0h*_xy' ) ! 2d-array 931 1072 IF ( av == 0 ) THEN 932 DO i = nxlg, nxrg 933 DO j = nysg, nyng 934 local_pf(i,j,nzb+1) = z0h(j,i) 1073 DO m = 1, surf_def_h(0)%ns 1074 i = surf_def_h(0)%i(m) 1075 j = surf_def_h(0)%j(m) 1076 tmp_2d(j,i) = surf_def_h(0)%z0h(m) 1077 ENDDO 1078 DO m = 1, surf_lsm_h%ns 1079 i = surf_lsm_h%i(m) 1080 j = surf_lsm_h%j(m) 1081 tmp_2d(j,i) = surf_lsm_h%z0h(m) 1082 ENDDO 1083 DO m = 1, surf_usm_h%ns 1084 i = surf_usm_h%i(m) 1085 j = surf_usm_h%j(m) 1086 tmp_2d(j,i) = surf_usm_h%z0h(m) 1087 ENDDO 1088 1089 CALL exchange_horiz_2d( tmp_2d, nbgp ) 1090 1091 DO i = nxlg, nxrg 1092 DO j = nysg, nyng 1093 local_pf(i,j,nzb+1) = tmp_2d(j,i) 935 1094 ENDDO 936 1095 ENDDO … … 948 1107 CASE ( 'z0q*_xy' ) ! 2d-array 949 1108 IF ( av == 0 ) THEN 950 DO i = nxlg, nxrg 951 DO j = nysg, nyng 952 local_pf(i,j,nzb+1) = z0q(j,i) 1109 DO m = 1, surf_def_h(0)%ns 1110 i = surf_def_h(0)%i(m) 1111 j = surf_def_h(0)%j(m) 1112 tmp_2d(j,i) = surf_def_h(0)%z0q(m) 1113 ENDDO 1114 DO m = 1, surf_lsm_h%ns 1115 i = surf_lsm_h%i(m) 1116 j = surf_lsm_h%j(m) 1117 tmp_2d(j,i) = surf_lsm_h%z0q(m) 1118 ENDDO 1119 DO m = 1, surf_usm_h%ns 1120 i = surf_usm_h%i(m) 1121 j = surf_usm_h%j(m) 1122 tmp_2d(j,i) = surf_usm_h%z0q(m) 1123 ENDDO 1124 1125 CALL exchange_horiz_2d( tmp_2d, nbgp ) 1126 1127 DO i = nxlg, nxrg 1128 DO j = nysg, nyng 1129 local_pf(i,j,nzb+1) = tmp_2d(j,i) 953 1130 ENDDO 954 1131 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.