SUBROUTINE gdtomvo 1 * #if defined (DOC) * ***s/r GDTOMVO - Simple forward operator where observations are located at * all analysis grid points (special case of BILIN) * *Author : Mark Buehner October 1998 *Revision: * Y. Yang Sep. 2004 * - Added include "comchem.cdk" * - Added loops for species * Y. Yang Feb. 2005 * - Removed 'OZ' part * #endif IMPLICIT NONE *implicits #include "pardim.cdk"
#include "comdim.cdk"
#include "comdimo.cdk"
#include "comgem.cdk"
#include "comchem.cdk"
#include "comgd0.cdk"
#include "commvo.cdk"
#include "comstate.cdk"
* INTEGER JK, JOBS,jlev,jlon,jgl,IERR INTEGER ILON, ILA, IMAX INTEGER JJ, NLEV C C* 1.0 TRANSFORM WIND IMAGES INTO PHYSICAL WINDS C 100 CONTINUE C DO JK = 1, NFLEV DO ILA = 1, NJ IMAX = NILON(ILA) DO ILON = 1, IMAX UT0(ILON,JK,ILA) = CONPHY(ILA) * UT0(ILON,JK,ILA) VT0(ILON,JK,ILA) = CONPHY(ILA) * VT0(ILON,JK,ILA) ENDDO ENDDO ENDDO C c 2.0 Copy over from GD to MVO unchanged in the order JK,JLON,JLAT C JOBS=0 IMAX = NILON(1) DO ILON = 1, IMAX DO ILA = 1, NJ JOBS=JOBS+1 DO JK = 1, nflev if(NGEXIST(nguu).eq.1) then gomu(JK,JOBS) = ut0(ILON,JK,ILA) endif if(NGEXIST(ngvv).eq.1) then gomv(JK,JOBS) = vt0(ILON,JK,ILA) endif if(NGEXIST(ngq).eq.1) then gomq(JK,JOBS) = q0(ILON,JK,ILA) endif if(NGEXIST(nggz).eq.1) then gomgz(JK,JOBS) = gz0(ILON,JK,ILA) endif if(NGEXIST(ngtt).eq.1) then gomt(JK,JOBS) = tt0(ILON,JK,ILA) endif do jj = 1,NGCMT if(NGEXIST(ngtr(jj)).eq.1) then nlev = (jj-1)*nflev + jk gomtr(NLEV,JOBS) = gtr0(ILON,NLEV,ILA) endif end do enddo if(NGEXIST(ngps).eq.1) then gomps(1,JOBS) = gps0(ILON,1,ILA) endif enddo enddo C RETURN END