Changeset 3785 for palm/trunk/UTIL/inifor/src/inifor_grid.f90
- Timestamp:
- Mar 6, 2019 10:41:14 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/UTIL/inifor/src/inifor_grid.f90
r3779 r3785 440 440 "has not been implemented, yet." 441 441 CALL inifor_abort('setup_parameters', message) 442 END 442 ENDIF 443 443 444 444 ! … … 525 525 // TRIM(cfg % namelist_file) // "'" 526 526 527 END 527 ENDIF 528 528 origin_lon = origin_lon * TO_RADIANS 529 529 origin_lat = origin_lat * TO_RADIANS … … 566 566 hfl(:,:,k) = 0.5_dp * ( hhl(:,:,k) + & 567 567 hhl(:,:,k+1) ) 568 END 568 ENDDO 569 569 CALL run_control('time', 'comp') 570 570 … … 1041 1041 x0=x0, y0=y0, z0 = z0, & 1042 1042 nx = nx, ny = ny, nz = nlev - 1) 1043 END 1043 ENDIF 1044 1044 1045 1045 ! … … 1117 1117 CALL setup_interpolation(cosmo_grid, scalars_south_grid, scalars_south_intermediate, interp_mode) 1118 1118 CALL setup_interpolation(cosmo_grid, scalars_top_grid, scalars_top_intermediate, interp_mode) 1119 END 1119 ENDIF 1120 1120 1121 1121 interp_mode = 'u' … … 1127 1127 CALL setup_interpolation(cosmo_grid, u_south_grid, u_south_intermediate, interp_mode) 1128 1128 CALL setup_interpolation(cosmo_grid, u_top_grid, u_top_intermediate, interp_mode) 1129 END 1129 ENDIF 1130 1130 1131 1131 interp_mode = 'v' … … 1137 1137 CALL setup_interpolation(cosmo_grid, v_south_grid, v_south_intermediate, interp_mode) 1138 1138 CALL setup_interpolation(cosmo_grid, v_top_grid, v_top_intermediate, interp_mode) 1139 END 1139 ENDIF 1140 1140 1141 1141 interp_mode = 'w' … … 1147 1147 CALL setup_interpolation(cosmo_grid, w_south_grid, w_south_intermediate, interp_mode) 1148 1148 CALL setup_interpolation(cosmo_grid, w_top_grid, w_top_intermediate, interp_mode) 1149 END 1149 ENDIF 1150 1150 1151 1151 IF (TRIM(cfg % ic_mode) == 'profile') THEN 1152 1152 !TODO: remove this conditional if not needed. 1153 END 1153 ENDIF 1154 1154 1155 1155 … … 1241 1241 IF (PRESENT(ic_mode)) THEN 1242 1242 IF (TRIM(ic_mode) == 'profile') setup_volumetric = .FALSE. 1243 END 1243 ENDIF 1244 1244 1245 1245 IF (setup_volumetric) THEN … … 1254 1254 CALL interpolate_2d(cosmo_h, intermediate_grid % h, intermediate_grid) 1255 1255 CALL find_vertical_neighbours_and_weights_interp(grid, intermediate_grid) 1256 END 1256 ENDIF 1257 1257 1258 1258 END SUBROUTINE setup_interpolation … … 1317 1317 message = "z has not been passed but is required for 'boundary' grids" 1318 1318 CALL inifor_abort('init_grid_definition', message) 1319 END 1319 ENDIF 1320 1320 1321 1321 ALLOCATE( grid % x(0:nx) ) … … 1335 1335 ALLOCATE( grid % w_verti(0:nx, 0:ny, 1:nz, 2) ) 1336 1336 grid % w_verti(:,:,:,:) = 0.0_dp 1337 END 1337 ENDIF 1338 1338 1339 1339 CASE('boundary intermediate') … … 1374 1374 message = "z has not been passed but is required for 'palm' grids" 1375 1375 CALL inifor_abort('init_grid_definition', message) 1376 END 1376 ENDIF 1377 1377 1378 1378 IF (.NOT.PRESENT(zw)) THEN 1379 1379 message = "zw has not been passed but is required for 'palm' grids" 1380 1380 CALL inifor_abort('init_grid_definition', message) 1381 END 1381 ENDIF 1382 1382 1383 1383 grid % name(1) = 'x and lon' … … 1407 1407 ALLOCATE( grid % w_verti(0:nx, 0:ny, 1:nz, 2) ) 1408 1408 grid % w_verti(:,:,:,:) = 0.0_dp 1409 END 1409 ENDIF 1410 1410 1411 1411 CASE('palm intermediate') … … 1602 1602 avg_grid % iii, avg_grid % jjj) 1603 1603 1604 END 1604 ENDIF 1605 1605 1606 1606 ! … … 1674 1674 avg_grid % iii(l) = i 1675 1675 avg_grid % jjj(l) = j 1676 END 1677 END 1676 ENDDO 1677 ENDDO 1678 1678 1679 1679 END SUBROUTINE get_cosmo_averaging_region … … 2083 2083 DO k = 1, UBOUND(zw, 1) 2084 2084 zw(k) = 0.5_dp * (z(k-1) + z(k)) 2085 END 2085 ENDDO 2086 2086 2087 2087 END SUBROUTINE midpoints … … 2291 2291 ELSE 2292 2292 group % n_output_quantities = group % n_inputs 2293 END 2293 ENDIF 2294 2294 2295 2295 ALLOCATE(group % in_var_list(group % n_inputs)) … … 2347 2347 message = 'Simulation start date has not been set.' 2348 2348 CALL inifor_abort('setup_variable_tables', message) 2349 END 2349 ENDIF 2350 2350 2351 2351 nc_source_text = 'COSMO-DE analysis from ' // TRIM(cfg % start_date) … … 2491 2491 IF (TRIM(ic_mode) == 'profile') THEN 2492 2492 output_var_table(3) % averaging_grid => averaged_initial_scalar_profile 2493 END 2493 ENDIF 2494 2494 2495 2495 output_var_table(4) = init_nc_var( & … … 2567 2567 IF (TRIM(ic_mode) == 'profile') THEN 2568 2568 output_var_table(9) % averaging_grid => averaged_initial_scalar_profile 2569 END 2569 ENDIF 2570 2570 2571 2571 output_var_table(10) = init_nc_var( & … … 2643 2643 IF (TRIM(ic_mode) == 'profile') THEN 2644 2644 output_var_table(15) % averaging_grid => averaged_initial_scalar_profile 2645 END 2645 ENDIF 2646 2646 2647 2647 output_var_table(16) = init_nc_var( & … … 2719 2719 IF (TRIM(ic_mode) == 'profile') THEN 2720 2720 output_var_table(21) % averaging_grid => averaged_initial_scalar_profile 2721 END 2721 ENDIF 2722 2722 2723 2723 output_var_table(22) = init_nc_var( & … … 2795 2795 IF (TRIM(ic_mode) == 'profile') THEN 2796 2796 output_var_table(27) % averaging_grid => averaged_initial_w_profile 2797 END 2797 ENDIF 2798 2798 2799 2799 output_var_table(28) = init_nc_var( & … … 3315 3315 IF (PRESENT(is_profile)) THEN 3316 3316 IF (is_profile) out_var_kind = TRIM(kind) // ' profile' 3317 END 3317 ENDIF 3318 3318 3319 3319 var % name = name … … 3734 3734 u = input_buffer(1) % array(i,j,k), & 3735 3735 v = input_buffer(2) % array(i,j,k) ) 3736 END 3737 END 3738 END 3736 ENDDO 3737 ENDDO 3738 ENDDO 3739 3739 3740 3740 CASE DEFAULT … … 3788 3788 basic_state_pressure(:) 3789 3789 3790 END 3791 END 3790 ENDDO 3791 ENDDO 3792 3792 CALL run_control('time', 'comp') 3793 3793 … … 3797 3797 group % in_var_list(2) % name = 'P' 3798 3798 3799 END 3799 ENDIF 3800 3800 ! 3801 3801 !-- mark pressure as preprocessed … … 3875 3875 input_buffer(1) % array(i,j,k) = & 3876 3876 input_buffer(1) % array(i,j,k) * d_depth_rho_inv(k) 3877 END 3878 END 3879 END 3877 ENDDO 3878 ENDDO 3879 ENDDO 3880 3880 3881 3881 message = "Converted soil water from [kg/m^2] to [m^3/m^3]" … … 4054 4054 n_cells = n_cells + 1 4055 4055 column(:) = column(:) + array(ii,jj,:) 4056 END 4057 4058 END 4056 ENDIF 4057 4058 ENDDO 4059 4059 4060 4060 ! … … 4063 4063 array(i,j,:) = column(:) / n_cells 4064 4064 new_soiltyp(i,j) = 0 4065 END 4066 4067 END 4068 4069 END 4070 END 4065 ENDIF 4066 4067 ENDIF 4068 4069 ENDDO 4070 ENDDO 4071 4071 4072 4072 old_soiltyp(:,:) = new_soiltyp(:,:) 4073 4073 4074 END 4074 ENDDO 4075 4075 4076 4076 DEALLOCATE(old_soiltyp, new_soiltyp)
Note: See TracChangeset
for help on using the changeset viewer.