Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Runing with fine_input_stream = 2 option

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


New member
Hello all,
Some context:
I intend to use WRF for ensemble generation with random perturbations using WRFDA. The perturbations are generated for a set of dynamical variables such as PSFC, T, U and V for my outer domain. Since I want to run a set of 3 nested domains, the wrfinput_d02 and wrfinput_d03 files are not aware that perturbations have been added to the initial conditions. For that reason I used the "fine_input_stream = 0, 2, 2," option in the namelist.input file so initial conditions for the nests domains are read directly from wrfinput_d01 (the one IC file that knows about the perturbations).
My question:
The problem I am having is that I can not find any information regarding what variables are actually read from this file and what other variables are read from the wrfinput_d02 and wrfinput_d03 files, respectively for each nested domain. Could anyone please point me in the right direction. I would appreciate any help you can provide.
By setting fine_input_stream = 0, 2, 2, all static data (e.g., HGT, LANDUSE. etc.), soil information ( moisture and temperature), and SST for child domains D02 and D03 are read from wrfinput_d02 and wrfinput_d03, while upper level air data are interpolated from wrfinput_d01.

For your case, this setting is correct.
Dear Ming Chen,
Thank very much you for your reply. However, I still would like to know where in the WRF code such read takes place. I ask because in this post here:, someone complains about some variables, that are supposed to be read from wrfinput_d{nests}, are actually interpolated from the outer domain and producing undesired results. Any idea where to look at?
This is a pretty complicated issue.

First, you need to take a look at the code, which is automatically generated after WRF is built. In this code, you will find the "switches" like input_only, boundary_only, etc, and these variables are used in input_wrf.F.

Second, take a look at the code share/input_wrf.F. This code reads wrfinput, wrfbdy, wrfrst, etc depending on the "switch". Once the code knows the value of 'switch', then it starts to read the corresponding file (e.g., wrfinput, wrfbdy, etc.). All variables in this specific file will be read one by one. However, the variable names are not explicitly specified. Instead, they are read as p%ifield_0d, p%rfield_1d, etc (p is a pointer).

I don't think you need to modify these codes. if there is any issue you are concerned regarding the I/O issue, please let us know.
Hi, thanks for your hints.
I took a look inside those codes and it was indeed not possible for me figuring out what was going on in there :? . So I managed to analyzed this option performance by comparing wrfinput_d0? with the wrfout_d0? files at analysis time. The option works fine.