I found NCO very handy for such sub-setting and you can can use the following one line code to do the job. You can add as many dimensions as you want depending on the nature of your data; for example, vertical level or time.
I have question for extracting data on GIS, I have tried to extract data in GIS, but it seems only for certain point (coordinate). if I want to extract time series data of selected variables (for example precipitation) in selected lat/long (for example from lat : -5 to -6 and lon: 106 to 108-this means many coordinates), is it possible to extract all data precipitation inside that area?