Please see the following non-public wiki page where it is explained, as an example, how we transform the CNRM AOGCM data. http://www.meteo.unican.es/wiki/cordexwrf/SoftwareTools/PreProcessors 'NOTE:'_______________________________ The use of 'CDO' to transform the initial and boundary conditions data, might introduce a new problem, that we have also solved. This problem is related with the precision of the longitude coordinate (in our wrfinput a hole appeared along Greenwich). WPS uses 'iDirectionIncrementInDegrees' grib attribute, but cdo (used to transform input files) does not use it ('MISSING' value). In order to prevent this error and others (not enough decimals in codification of the longitude value in the input grib files), a new namelist option has been introduced in nameslit.wps 'ungrib' section. is_global = 1, With this value, is stated that input files cover the entire earth (global). In consequence, the increment in degrees of the longitude along the 'i-direction' of the initial condition, will be computed according to the range of x dimension of the input files (obtaining an exact value). Some modifications have done in some modules of 'WPS/ungrib' source code. NOTE: This option is only available if input data is in a regular matrix in x-direction * ungrib/src/rd_grib1.F SUBROUTINE rd_grib1(IUNIT, gribflnm, level, field, hdate, & ierr, iuarr, debug_level, is_g) (...) ! L. Fita. UC. August 2010 INTEGER :: is_g (...) ! L. Fita. UC. August 2010 IF (is_g == 1) THEN PRINT *,"*********** L. Fita. UC . August 2010 ***********" PRINT *,"*** Assuming global regular grid. ***" PRINT *,"*** Computing 'dx' from number of points 'Nx' ***" PRINT *,"*************************************************" map%dx = 360.0 / map%nx PRINT *,'Nx = ',map%nx,' dx:',map%dx ELSE map%dx = ginfo(8) ENDIF (...) ! L. Fita. UC. August 2010 IF (is_g == 1) THEN PRINT *,"*********** L. Fita. UC . August 2010 ***********" PRINT *,"*** Assuming global regular grid. ***" PRINT *,"*** Computing 'dx' from number of points 'Nx' ***" PRINT *,"*************************************************" map%dx = 360.0 / map%nx PRINT *,'Nx = ',map%nx,' dx:',map%dx ELSE map%dx = ginfo(8) ENDIF * ungrib/src/read_namelist.F subroutine read_namelist(hstart, hend, delta_time, ntimes,& ordered_by_date, debug_level, out_format, prefix, is_global) ! L. Fita. UC. August 2010 ! Adding new 'namelsit.wps' value in '&ungrib' section: is_global (0, No; 1, ! Yes [default 0]). ! NOTE: This modification is only useful for global GRIBs with a regular ! longitude distribution ! ! EXPLANATION: ! In some global files, grid information, is not correctly extacted and/or ! they could not be exactly fitted in an entire earth. By this modification, ! gris spacing in x direction is computed from the number of grid points in ! this direction (...) ! L. fita. UC. August 2010 INTEGER :: is_global (...) ordered_by_date, prefix, is_global * ungrib/src/ungrib.F ! L. Fita. UC 2010 August INTEGER :: is_global (...) call read_namelist(hstart, hend, interval, ntimes, & ordered_by_date, debug_level, out_format, prefix, is_global) (...) call rd_grib1(nunit1, gribflnm, level, field, & hdate, ierr, iuarr, debug_level, is_global) Will appear during ungrib.exe execution: *** Starting program ungrib.exe *** Start_date = 1975-07-16_00:00:00 , End_date = 1975-07-30_00:00:00 output format is WPS Path to intermediate files is ./ ungrib - grib edition num 1 *********** L. Fita. UC . August 2010 *********** *** Assuming global regular grid. *** *** Computing 'dx' from number of points 'Nx' *** ************************************************* Nx = 128 dx: 2.812500 *********** L. Fita. UC . August 2010 *********** *** Assuming global regular grid. *** *** Computing 'dx' from number of points 'Nx' *** ************************************************* Nx = 128 dx: 2.812500 (...)