Index: palm/trunk/UTIL/inifor/src/inifor_types.f90
===================================================================
--- palm/trunk/UTIL/inifor/src/inifor_types.f90	(revision 3447)
+++ palm/trunk/UTIL/inifor/src/inifor_types.f90	(revision 3557)
@@ -26,4 +26,8 @@
 ! -----------------
 ! $Id$
+! Updated documentation
+! 
+! 
+! 3447 2018-10-29 15:52:54Z eckhard
 ! Renamed source files for compatibilty with PALM build system
 ! 
@@ -51,5 +55,5 @@
 ! Authors:
 ! --------
-! @author Eckhard Kadasch
+!> @author Eckhard Kadasch (Deutscher Wetterdienst, Offenbach)
 !
 ! Description:
@@ -66,4 +70,9 @@
  IMPLICIT NONE
 
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Contaner for the INIFOR command-line configuration
+!------------------------------------------------------------------------------!
  TYPE inifor_config
     CHARACTER(LEN=DATE)  ::  start_date           !< String of the FORMAT YYYYMMDDHH indicating the start of the intended PALM-4U simulation
@@ -82,27 +91,33 @@
     CHARACTER(LEN=SNAME) ::  soilmoisture_prefix  !< Prefix of input files for soil moisture spin-up, e.g 'laf' for COSMO-DE analyses
 
-    CHARACTER(LEN=SNAME) ::  averaging_mode
-    CHARACTER(LEN=SNAME) ::  bc_mode
-    CHARACTER(LEN=SNAME) ::  ic_mode
-    CHARACTER(LEN=SNAME) ::  rotation_method
-
-    REAL(dp)             ::  p0
-    REAL(dp)             ::  ug
-    REAL(dp)             ::  vg
-    REAL(dp)             ::  z0                   !< Elevation of the PALM-4U domain above sea level [m]
+    CHARACTER(LEN=SNAME) ::  averaging_mode       !< destinguishes between level-based and heigh-based averaging
+    CHARACTER(LEN=SNAME) ::  bc_mode              !< destinguishes realistic and idealistic forcing
+    CHARACTER(LEN=SNAME) ::  ic_mode              !< destinguishes volume and profile initialization
+    CHARACTER(LEN=SNAME) ::  rotation_method      !< selects method for velocity rotation
+
+    REAL(dp)             ::  p0                   !< manually specified surface pressure [Pa]
+    REAL(dp)             ::  ug                   !< manually spefied geostrophic wind component in x direction [m/s]
+    REAL(dp)             ::  vg                   !< manually spefied geostrophic wind component in y direction [m/s]
+    REAL(dp)             ::  z0                   !< elevation of the PALM-4U domain above sea level [m]
     REAL(dp)             ::  averaging_angle      !< latitudal and longitudal width of averaging regions [deg]
     
-
-    LOGICAL              ::  debug
-    LOGICAL              ::  p0_is_set
-    LOGICAL              ::  ug_is_set
-    LOGICAL              ::  vg_is_set
-    LOGICAL              ::  flow_prefix_is_set          !< 
-    LOGICAL              ::  input_prefix_is_set         !< 
-    LOGICAL              ::  radiation_prefix_is_set     !< 
-    LOGICAL              ::  soil_prefix_is_set          !< 
-    LOGICAL              ::  soilmoisture_prefix_is_set  !< 
+    LOGICAL              ::  debug                       !< indicates whether --debug option was given
+    LOGICAL              ::  p0_is_set                   !< indicates whether p0 was set manually
+    LOGICAL              ::  ug_is_set                   !< indicates whether ug was set manually
+    LOGICAL              ::  vg_is_set                   !< indicates whether vg was set manually
+    LOGICAL              ::  flow_prefix_is_set          !<  indicates whether the flow prefix was set manually
+    LOGICAL              ::  input_prefix_is_set         !<  indicates whether the input prefix was set manually
+    LOGICAL              ::  radiation_prefix_is_set     !<  indicates whether the radiation prefix was set manually
+    LOGICAL              ::  soil_prefix_is_set          !<  indicates whether the soil prefix was set manually
+    LOGICAL              ::  soilmoisture_prefix_is_set  !<  indicates whether the soilmoisture prefix was set manually
  END TYPE inifor_config
 
+
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Container for grid data, in partucular coordinates, interpolation neighbours
+!> and weights
+!------------------------------------------------------------------------------!
  TYPE grid_definition
     CHARACTER(LEN=SNAME)  ::  name(3)       !< names of the grid dimensions, e.g. (/'x', 'y', 'z'/) or (/'latitude', 'longitude', 'height'/)
@@ -152,18 +167,28 @@
 
 
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Container for name and dimensions of the netCDF output file
+!------------------------------------------------------------------------------!
  TYPE nc_file
-    CHARACTER(LEN=PATH)   ::  name          !< file name
-    INTEGER               ::  dimid_time    !< NetCDF IDs of the time dimension
-    INTEGER               ::  dimids_scl(3) !< NetCDF IDs of the grid dimensions for scalar points x, y, z 
-    INTEGER               ::  dimids_vel(3) !< NetCDF IDs of the grid dimensions for velocity points xu, yu, zu
-    INTEGER               ::  dimids_soil(3)!< NetCDF IDs of the grid dimensions for soil points x, y, depth
-    INTEGER               ::  dimvarid_time !< NetCDF IDs of the time variable
-    INTEGER               ::  dimvarids_scl(3) !< NetCDF IDs of the grid coordinates of scalars x, y, z 
-    INTEGER               ::  dimvarids_vel(3) !< NetCDF IDs of the grid coordinates of velocities xu, yu, zu. Note that velocities are located at mix of both coordinates, e.g. u(xu, y, z).
-    INTEGER               ::  dimvarids_soil(3)!< NetCDF IDs of the grid coordinates for soil points x, y, depth 
-    REAL(dp), POINTER     ::  time(:)       ! vector of output time steps
+    CHARACTER(LEN=PATH)   ::  name              !< file name
+    INTEGER               ::  dimid_time        !< NetCDF IDs of the time dimension
+    INTEGER               ::  dimids_scl(3)     !< NetCDF IDs of the grid dimensions for scalar points x, y, z 
+    INTEGER               ::  dimids_vel(3)     !< NetCDF IDs of the grid dimensions for velocity points xu, yu, zu
+    INTEGER               ::  dimids_soil(3)    !< NetCDF IDs of the grid dimensions for soil points x, y, depth
+    INTEGER               ::  dimvarid_time     !< NetCDF IDs of the time variable
+    INTEGER               ::  dimvarids_scl(3)  !< NetCDF IDs of the grid coordinates of scalars x, y, z 
+    INTEGER               ::  dimvarids_vel(3)  !< NetCDF IDs of the grid coordinates of velocities xu, yu, zu. Note that velocities are located at mix of both coordinates, e.g. u(xu, y, z).
+    INTEGER               ::  dimvarids_soil(3) !< NetCDF IDs of the grid coordinates for soil points x, y, depth 
+    REAL(dp), POINTER     ::  time(:)           !< vector of output time steps
  END TYPE nc_file
 
 
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Metadata container for netCDF variables
+!------------------------------------------------------------------------------!
  TYPE nc_var
     INTEGER                               ::  varid     !< NetCDF ID of the variable
@@ -193,5 +218,13 @@
 
 
- 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.
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Input/Output group, groups together nc_var-type output variabels that share 
+!> input variables as well as lists of the netCDF files they are stored in.
+!> For instance, all boundary surfaces and initialization fields of the
+!> potential temperature are base on the input netCDF variables T and P.
+!------------------------------------------------------------------------------!
+ TYPE io_group
     INTEGER                          ::  nt             !< maximum number of output time steps across all output variables
     INTEGER                          ::  nv             !< number of netCDF output variables
@@ -208,7 +241,14 @@
 
 
+!------------------------------------------------------------------------------!
+! Description:
+! ------------
+!> Container for input data arrays. read_input_variables() allocates a
+!> one-dimensional array of containers, to accomodate all inputs of the given
+!> IO group in one variable.
+!------------------------------------------------------------------------------!
  TYPE container
-   REAL(dp), ALLOCATABLE ::  array(:,:,:)
-   LOGICAL               ::  is_preprocessed = .FALSE.
+   REAL(dp), ALLOCATABLE ::  array(:,:,:)               !< generic data array
+   LOGICAL               ::  is_preprocessed = .FALSE.  !< flag indicating whether input array has been preprocessed
  END TYPE container
 
