...
Code Block | ||
---|---|---|
| ||
#!/bin/bash # this example will filter the area of Europe (N/W/S/E) and interpolate the final fields to # a 0.5x0.5 regular lat-lon grid (GRID=0.5/0.5) AREA="73.5/-27/33/45" GRID="0.5/0.5" # fixed selection from the same block PARAMS="130/131/132" LEVELIST="127/128/129/130/131/132/133/134/135/136/137" STEP="0/to/90/by/1" TIMES="0000 1200" YEAR="2017" MONTH="04" #date loop for y in ${YEAR}; do for m in ${MONTH}; do #get the number of days for this particular month/year days_per_month=$(cal ${m} ${y} | awk 'NF {DAYS = $NF}; END {print DAYS}') for my_date in $(seq -w 1 ${days_per_month}); do my_date=${YEAR}${MONTHm}${my_date} #time lop for my_time in ${TIMES}; do cat << EOF > my_request_${my_date}_${my_time}.mars RETRIEVE, CLASS = OD, TYPE = FC, STREAM = OPER, EXPVER = 0001, LEVTYPE = ML, GRID = ${GRID}, AREA = ${AREA}, LEVELIST = ${LEVELIST}, PARAM = ${PARAMS}, DATE = ${my_date}, TIME = ${my_time}, STEP = ${STEP}, TARGET = "oper_ml_${my_date}_${my_time}.grib" EOF mars my_request_${my_date}_${my_time}.mars if [ $? -eq 0 ]; then rm -f my_request_${my_date}_${my_time}.mars fi done done done done |
...