- Created by Burkhardt Rockel (Unlicensed), last modified on Feb 11, 2022
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 56 Next »
CFU (Climate Fortran Utilities)
Several functions of the CFU package are need in the subchain scripts. CFU contains functions that are not covered by neither CDO nor NCO functions .
add_hours
Purpose | add a number of hours to a date | |
Call |
| |
Result | YYYYMMDDHH[mmss] | |
Meanings | ystartdate | has the form YYYYMMDDHH[mmss] |
itype_calendar | 0 = 365 days (plus taking into account for leap years) a year 1 = climatological calendar (360 days per year) |
add_lonlat
Purpose | adds 2D geographical latitude and longitude to a netCDF file containing rotated coordinates | |
Call |
| |
Result | < ncfile > with two additional 2D fields (lon and lat) | |
Meanings | ncfile | name of netCDF file to which the coordinates should be added |
add_months
Purpose | add a number of hours to a date | |
Call |
| |
Result | YYYYMMDDHH[mmss] | |
Meanings | ystartdate | has the form YYYYMMDDHH[mmss] |
add_vertices
Purpose | adds geographical latitude and longitude vertices to a netCDF file | |
Call |
| |
Result | < ncfile > with two additional fields (lon_bnds and lat_bnds) with the dimensions (4,lon,lat) | |
Meanings | ncfile | name of netCDF file to which the vertices should be added |
Remark | The counting of the 4 vertices goes like this
|
check_files
Purpose | check whether all required files in a date range are in a certain directory | |
Call |
| |
Result | 0=success, 1=error. In case of error the file | |
Meanings
| ystartdate | start date in the form YYYYMMDDHH[mmss] |
yenddate | end date the form YYYYMMDDHH[mmss] | |
hh:mm:ss | time increment of the files in the date range | |
prefix1 | primary prefix to be checked (e.g. caf, laf, …), i.e. the characters preceding the YYYYMMDDHH[mmss] sequence | |
prefix2 | secondary prefix to be checked (e.g. cas, lbfd, …), if prefix1 gives errors.In case only one prefix should be checked set prefix1=prefix2 | |
suffix | suffix to be checked (e.g. .nc, c.nc, …), i.e. the characters following the YYYYMMDDHH[mmss] sequence | |
input directory | full path to directory holding the files to be checked | |
last output | should be set to true | |
itype_calendar | 0 = 365 days (plus taking into account for leap years) a year 1 = climatological calendar (360 days per year) |
check_files_iso
Purpose | check whether all required files in a date range are in a certain directory (uses ISO time stamp: YYYYMMDDHHTmmssZ) | |
Call |
| |
Result | 0=success, 1=error. In case of error the file | |
Meanings
| ystartdate | start date in the form YYYYMMDDHHmmss |
yenddate | end date the form YYYYMMDDHHmmss | |
hh:mm:ss | time increment of the files in the date range | |
prefix1 | primary prefix to be checked (e.g. caf, laf, …), i.e. the characters preceding the YYYYMMDDHH[mmss] sequence | |
prefix2 | secondary prefix to be checked (e.g. cas, lbfd, …), if prefix1 gives errors.In case only one prefix should be checked set prefix1=prefix2 | |
suffix | suffix to be checked (e.g. .nc, c.nc, …), i.e. the characters following the YYYYMMDDHHTmmssZ sequence | |
input directory | full path to directory holding the files to be checked | |
last output | should be set to true | |
itype_calendar | 0 = 365 days (plus taking into account for leap years) a year 1 = climatological calendar (360 days per year) |
create_rotgrid
Purpose | creates lon/lat grid values and lon/lat grid vertices for a rotated g rid | |
Call |
| |
Result | <gridfile> in netCDF format containing the grid information | |
Meanings
| startrlon | longitude of lower left corner in rotated coordinates |
startrlat | latitude of lower left corner in rotated coordinates | |
drlon | longitudinal grid with in rotated coordinates | |
drlat | latitudinal grid with in rotated coordinates | |
nrlon | number of grid points in longitudinal direction | |
nrlat | number of grid points in latitudinal direction | |
pollon | rotated coordinates of longitude of geographical North Pole | |
pollat | rotated coordinates of latitude of geographical North Pole | |
polgam | rotated longitude shift of North Pole | |
gridfile | output file in netCDF format containing the grid information |
get_attval
Purpose | get the value of an attribute | |
Call |
| |
Result | value of the attribute or | |
Meanings | ncfile | name of the netCDF file |
varname | name of the variable with the requested attribute | |
attribute name | name of the attribute |
get_hours
Purpose | determine the number of hours between two dates | |
Call |
| |
Result | number of hours | |
Meanings | ystartdate | start date in the form the form YYYYMMDDHH[mmss] |
| yenddate | end date in the form the form YYYYMMDDHH[mmss] |
| itype_calendar | 0 = 365 days (plus taking into account for leap years) a year 1 = climatological calendar (360 days per year) |
get_next_dates
Purpose | determines the next two dates for a given time increment | |
Call |
| |
Result | YYYYMMDDHH[mmss]YYYYMMDDHH[mmss] | |
Meanings | ystartdate | startdate in the form YYYYMMDDHH[mmss] |
| MM:DD:HH[:mm:ss] | time increment |
| itype_calendar | 0 = 365 days (plus taking into account for leap years) a year 1 = climatological calendar (360 days per year) |
Remark | presently this function is especially for calculating the next dates when running the CCLM in the subchain. This includes a restriction of maximum 28 for DD . Note that the DD restriction only applies for sub monthly chunks. |
get_prev_date
Purpose | determines the previous two dates for a given time increment | |
Call |
| |
Result | YYYYMMDDHH | |
Meanings | ystartdate | startdate in the form YYYYMMDDHH[mmss] |
| MM:DD:HH[:mm:ss] | time increment |
| itype_calendar | 0 = 365 days (plus taking into account for leap years) a year |
Remark | Presently this version takes monthly intervals only. |
icon_domain
Purpose | provide helpful input for the ICON Grid Generator + ExtPar Web Frontend | |
Call |
| |
Result | an example output looks as follows
| |
Meanings | input file | File that contains the rotated coordinates of the domain to which the ICON results in the post processing script of SPICE will be remapped |
| nbound | If only nbound is given as argument: Number of grid points by which the domain given by the input file is extended. This is to keep the rotated domain out of the boundary zone of the regional ICON. If nbound, nudging_zone_width, Rn and Bk are given: Number of extra safety grid points Default: 0 |
| nudge_zone_width | The number you are going to use in the namelist interpol_nml settings of your ICON simulations |
| Rn and Bk | The n and k values for your chosen ICON grid |
Remark | If all parameters are given the number of grid points for the boundaries are calculated as nboundaries = nbound + nudge_zone_width + grf_bdywidth_c where grf_bdywidth_c=4 as described in the ICON Tutorial. The Rn and Bn are used in case the grid width of the rotated grid is smaller than the ICON grid. In this case the number of boundaries are extended to make sure that the boundary width is not too small. |
p2sec
Purpose | Converts ISO 8601 duration in the form PThhHmmMssS into seconds | |
Call |
| |
Result | seconds on standard output | |
Meanings | PThhHmmMssS | ISO 8601 duration |
shellpp
Purpose | "pre-compiles" a shell script | |
Call |
| |
Result | pre-compiled file output file | |
Meanings | input file | input file containing the pre-compile commands |
| output file | "pre-compiled" output file |
| name | name of the "#ifdef name" clauses that should be used |
| add-on | names of add-ons to be included |
Remark | This is a very rudimentary pre-compiler version like the one for e.g. FORTRAN programs. It can only handle the three commands: Nesting #ifdef are allowed. |
tbtimestamp
Purpose | Prints the time stamp of the time bounds variable | |
Call |
| |
Result | YYYY-MM-DDThh:mm:ss as loop over bounds (=2) and time steps | |
Meanings | input file | File containing the time bounds |
| itype_calendar | 0 = 365 days (plus taking into account for leap years) a year 1 = climatological calendar (360 days per year) |
- No labels