Changeset 3395 for palm/trunk/UTIL/inifor/src/types.f90
- Timestamp:
- Oct 22, 2018 5:32:49 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/UTIL/inifor/src/types.f90
r3183 r3395 26 26 ! ----------------- 27 27 ! $Id$ 28 ! Added *_is_set LOGICALs to inifor_config type to indicate option invocation 29 ! from the command-line 30 ! Added 1D index vertical weights lists to support addressing averaging regions 31 ! by list of columns instead of index bounds 32 ! 33 ! 34 ! 3183 2018-07-27 14:25:55Z suehring 28 35 ! Introduced new PALM grid stretching: 29 36 ! - Converted vertical grid_definition coordinte variables to pointers … … 66 73 67 74 CHARACTER(LEN=SNAME) :: flow_prefix !< Prefix of flow input files, e.g. 'laf' for COSMO-DE analyses 75 CHARACTER(LEN=SNAME) :: input_prefix !< Prefix of all input files, e.g. 'laf' for COSMO-DE analyses 76 CHARACTER(LEN=SNAME) :: radiation_prefix !< Prefix of radiation input files, e.g 'laf' for COSMO-DE analyses 68 77 CHARACTER(LEN=SNAME) :: soil_prefix !< Prefix of soil input files, e.g. 'laf' for COSMO-DE analyses 69 CHARACTER(LEN=SNAME) :: radiation_prefix !< Prefix of radiation input files, e.g 'laf' for COSMO-DE analyses70 78 CHARACTER(LEN=SNAME) :: soilmoisture_prefix !< Prefix of input files for soil moisture spin-up, e.g 'laf' for COSMO-DE analyses 71 79 80 CHARACTER(LEN=SNAME) :: averaging_mode 72 81 CHARACTER(LEN=SNAME) :: bc_mode 73 82 CHARACTER(LEN=SNAME) :: ic_mode … … 77 86 REAL(dp) :: ug 78 87 REAL(dp) :: vg 79 REAL(dp) :: z0 !< Elevation of the PALM-4U domain above sea level [m] 88 REAL(dp) :: z0 !< Elevation of the PALM-4U domain above sea level [m] 89 REAL(dp) :: averaging_angle !< latitudal and longitudal width of averaging regions [deg] 90 91 92 LOGICAL :: debug 93 LOGICAL :: p0_is_set 94 LOGICAL :: ug_is_set 95 LOGICAL :: vg_is_set 96 LOGICAL :: flow_prefix_is_set !< 97 LOGICAL :: input_prefix_is_set !< 98 LOGICAL :: radiation_prefix_is_set !< 99 LOGICAL :: soil_prefix_is_set !< 100 LOGICAL :: soilmoisture_prefix_is_set !< 80 101 END TYPE inifor_config 81 102 82 103 TYPE grid_definition 83 104 CHARACTER(LEN=SNAME) :: name(3) !< names of the grid dimensions, e.g. (/'x', 'y', 'z'/) or (/'latitude', 'longitude', 'height'/) 105 CHARACTER(LEN=SNAME) :: kind !< names of the grid dimensions, e.g. (/'x', 'y', 'z'/) or (/'latitude', 'longitude', 'height'/) 106 INTEGER :: k_min !< Index of lowest PALM grid level that is not cut by local COSMO orography; vertically separates interpolation and extrapolation region. 84 107 INTEGER :: nx !< number of gridpoints in the first dimension 85 108 INTEGER :: ny !< number of gridpoints in the second dimension 86 INTEGER :: nz !< number of gridpoints in the third dimension 109 INTEGER :: nz !< number of gridpoints in the third dimension, used for PALM points 110 INTEGER :: nlev !< number of COSMO grid levels 111 INTEGER :: n_columns !< number of averaging columns of the source grid 87 112 INTEGER, ALLOCATABLE :: ii(:,:,:) !< Given a point (i,j,k) in the PALM-4U grid, ii(i,j,l) gives the x index of the l'th horizontl neighbour on the COSMO-DE grid. 88 113 INTEGER, ALLOCATABLE :: jj(:,:,:) !< Given a point (i,j,k) in the PALM-4U grid, jj(i,j,l) gives the y index of the l'th horizontl neighbour on the COSMO-DE grid. 89 114 INTEGER, ALLOCATABLE :: kk(:,:,:,:) !< Given a point (i,j,k) in the PALM-4U grid, kk(i,j,k,l) gives the z index of the l'th vertical neighbour in the intermediate grid. 115 INTEGER, ALLOCATABLE :: iii(:) !< profile averaging neighbour indices 116 INTEGER, ALLOCATABLE :: jjj(:) !< profile averaging neighbour indices 117 INTEGER, ALLOCATABLE :: kkk(:,:,:) !< indices of vertical interpolation neightbours, kkk(<source column>, <PALM k level>, <neighbour index>) 90 118 REAL(dp) :: lx !< domain length in the first dimension [m] 91 119 REAL(dp) :: ly !< domain length in the second dimension [m] … … 97 125 REAL(dp), POINTER :: z(:) !< coordinates of cell centers in z direction [m] 98 126 REAL(dp), ALLOCATABLE :: h(:,:,:) !< heights grid point for intermediate grids [m] 127 REAL(dp), POINTER :: cosmo_h(:,:,:)!< pointer to appropriate COSMO level heights (scalar/w) [m] 99 128 REAL(dp), POINTER :: hhl(:,:,:) !< heights of half layers (cell faces) above sea level in COSMO-DE, read in from 100 129 REAL(dp), POINTER :: hfl(:,:,:) !< heights of full layers (cell centres) above sea level in COSMO-DE, computed as arithmetic average of hhl … … 115 144 REAL(dp), ALLOCATABLE :: w_horiz(:,:,:) !< weights for bilinear horizontal interpolation 116 145 REAL(dp), ALLOCATABLE :: w_verti(:,:,:,:) !< weights for linear vertical interpolation 146 REAL(dp), ALLOCATABLE :: w(:,:,:) !< vertical interpolation weights, w(<source_column>, <PALM k level>, <neighbour index>) [-] 117 147 END TYPE grid_definition 118 148 … … 150 180 CHARACTER(LEN=SNAME) :: task !< Processing task that generates this variable, e.g. 'interpolate_2d' or 'average profile' 151 181 LOGICAL :: to_be_processed = .FALSE. !< INIFOR flag indicating whether variable shall be processed 182 LOGICAL :: is_internal = .FALSE. !< INIFOR flag indicating whether variable shall be written to netCDF file (.FALSE.) or kept for later (.TRUE.) 152 183 LOGICAL :: is_read = .FALSE. !< INIFOR flag indicating whether variable has been read 153 LOGICAL :: is_upside_down = .FALSE. !< INIFOR flag indicating whether v ariable shall be processed184 LOGICAL :: is_upside_down = .FALSE. !< INIFOR flag indicating whether vertical dimension is reversed (typically the case with COSMO-DE atmospheric fields) 154 185 TYPE(grid_definition), POINTER :: grid !< Pointer to the corresponding output grid 155 186 TYPE(grid_definition), POINTER :: intermediate_grid !< Pointer to the corresponding intermediate grid 187 TYPE(grid_definition), POINTER :: averaging_grid !< Pointer to the corresponding intermediate grid 156 188 END TYPE nc_var 157 189 … … 159 191 TYPE io_group !< Input/Output group, groups together output variabels that share their input variables. For instance, all boundary surfaces and initialization fields of the potential temperature are base on T and p. 160 192 INTEGER :: nt !< maximum number of output time steps across all output variables 161 INTEGER :: nv !< number of output variables 193 INTEGER :: nv !< number of netCDF output variables 194 INTEGER :: n_inputs !< number of input variables 195 INTEGER :: n_output_quantities !< number of physical quantities required for computing netCDF output variables 162 196 CHARACTER(LEN=SNAME) :: kind !< kind of I/O group 163 197 CHARACTER(LEN=PATH), ALLOCATABLE :: in_files(:) !< list of nt input files
Note: See TracChangeset
for help on using the changeset viewer.