- Created by Burkhardt Rockel (Unlicensed), last modified on Jan 15, 2021
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 21 Next »
CFU (Climate Fortran Utilities)
The CFU package need to be compiled for the subchain scripts. CFU contains several functions that are not covered by neither CDO nor NCO functions.
add_hours
Purpose | add a number of hours to a date | |
Call | cfu add_hours <ystartdate> <hours> [<itype_calendar>] | |
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) 2 = climatological calendar (365 days per year) |
add_lonlat
Purpose | adds 2D geographical latitude and longitude to a netCDF file containing rotated coordinates | |
Call | cfu add_lonlat <ncfile> | |
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 | cfu add_months <ystartdate> <months> | |
Result | YYYYMMDDHH[mmss] | |
Meanings | ystartdate | has the form YYYYMMDDHH[mmss] |
add_vertices
Purpose | adds geographical latitude and longitude vertices to a netCDF file | |
Call | cfu add_vertices <ncfile> | |
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 4 --- 3 | | 1 --- 2 |
check_files
Purpose | check whether all required files in a date range are in a certain directory | |
Call | cfu check_files <ystartdate> <yenddate> <hh:mm:ss> <prefix12> <prefix2> <suffix><input directory> <last output> [<itype_calendar>] | |
Result | 0=success, 1=error. In case of error the file check_files.log contains the names of the missing files. The file check_files.log is written to the directory where the program check_files is called. | |
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 T in case the yenddate should be included in the check, otherwise it should be set to false F | |
itype_calendar | 0 = 365 days (plus taking into account for leap years) a 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 | cfu check_files_iso <ystartdate> <yenddate> <hh:mm:ss> <prefix12> <prefix2> <suffix><input directory> <last output> [<itype_calendar>] | |
Result | 0=success, 1=error. In case of error the file check_files.log contains the names of the missing files. The file check_files.log is written to the directory where the program check_files_iso is called. | |
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 T in case the yenddate should be included in the check, otherwise it should be set to false F | |
itype_calendar | 0 = 365 days (plus taking into account for leap years) a year |
get_attval
Purpose | get the value of an attribute | |
Call | cfu get_attval <ncfile> <varname> <attribute name> | |
Result | value of the attribute or -- in case the attribute is not found | |
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 | cfu get_hours <ystartdate><enddate> [<itype_calendar>] | |
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) 2 = climatological calendar (365 days per year) |
get_next_dates
Purpose | determines the next two dates for a given time increment | |
Call | cfu get_next_dates <ystartdate><MM:DD:HH[:mm:ss]> [<itype_calendar>] | |
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) 2 = climatological calendar (365 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_next_date
Purpose | determines the previous two dates for a given time increment | |
Call | cfu get_prev_date <ystartdate><MM:DD:HH[:mm:ss]> [<itype_calendar>] | |
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 1 = climatological calendar (360 days per year) 2 = climatological calendar (365 days per year) | |
Remark | Presently this version takes monthly intervals only. itype_calendar is not used in this version. |
icon_domain
Purpose | provide helpful input for the ICON Grid Generator + ExtPar Web Frontend | |
Call | cfu icon_domain <input file> <nbound> | |
Result | an example output looks as follows write parent grid: (tick box) center: longitude (degrees) -5.11000 center: latitude (degrees) -0.77000 half width: 24.42000 half height: 23.76000 rotate: (tick box) north pole: longitude (degrees) -162.00000 latitude (degrees) 39.25000 | |
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 | Number of grid point 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 |
shellpp
Purpose | "precompiles" a shell script | |
Call | cfu shellpp <input file> <output file> <name> | |
Result | precompiled file output file | |
Meanings | input file | input file containing the precompile commands |
output file | "precompiled" output file | |
name | name of the ifdef clauses that should be used | |
Remark | This is a very rudimentary pre-compiler version like the one for e.g. FORTRAN programs. It can only handle the two commands: If you are interested in a more sophisticated bash pre-processor please check the one on bashpp GitHub. |
tbtimestamp
Purpose | Prints the time stamp of the time bounds variable time_bnds | |
Call | cfu tbtimestamp <input file> [<itype_calendar>] | |
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) 2 = climatological calendar (365 days per year) |
- No labels