SUBROUTINE QTOPER(U,V,VORT,T,PLON,PLAT,NSIG,JCAP,NLON,NLATH, * PLN,QLN,RLN,TRIGS,IFAX,DEL2,WGTS,A3,SIGL,SIGI,DS,IBACK,RLATS, * RUS,RVS,RTS,RVORTS,RPLONS,RPLATS) C----------------- C$$$ SUBPROGRAM DOCUMENTATION BLOCK C . . . . C SUBPROGRAM: QTOPER ADJOINT OF QOPER, TLM FOR DIVERGENCY TENDENCY C PRGMMR: PARRISH ORG: W/NMC22 DATE: 94-02-12 C C ABSTRACT: ADJOINT OF TANGENT LINEAR MODEL (TLM) FOR DIV TENDENCY. C SPECIAL NOTE: VERTICAL ADVECTION TERMS NOT INCLUDED HERE C (THEY ARE INCLUDED IN FULLDIVT) C C PROGRAM HISTORY LOG: C 94-02-12 PARRISH C C INPUT ARGUMENT LIST: C DS - PERTURBATION DIVERGENCE TENDENCY COEFFICIENTS C NSIG - NUMBER OF SIGMA LAYERS C JCAP - TRIANGULAR TRUNCATION C NLON - NUMBER OF LONGITUDES C NLATH - NUMBER OF GAUSSIAN LATS IN ONE HEMISPHERE C PLN,QLN,RLN - SPHERICAL HARMONICS C TRIGS,IFAX - USED BY FFT C DEL2 - N*(N+1)/A**2 C WGTS - GAUSSIAN INTEGRATION WEIGHTS C A3 - HYDROSTATIC MATRIX C SIGL,SIGI - VERTICAL COORDINATE STUFF C IBACK - UNIT NUMBER WHERE REFERENCE FIELDS ARE STORED C C OUTPUT ARGUMENT LIST: C U,V,VORT,T,PLON,PLAT - PERTURBATION U,V, ETC. ON GAUSSIAN GRID C C ATTRIBUTES: C LANGUAGE: CFT77 C MACHINE: CRAY YMP C C$$$ C C-CRA DIMENSION SIGL(NSIG),SIGI(NSIG+1) C-CRA DIMENSION A3(NSIG,NSIG) C-CRA DIMENSION DEL2((JCAP+1)*(JCAP+2)) C-CRA DIMENSION WGTS(2*NLATH) C-CRA DIMENSION U(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION V(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION VORT(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION PLON(2*NLATH+1,NLON+2),PLAT(2*NLATH+1,NLON+2) C-CRA DIMENSION TRIGS(NLON*2),IFAX(10) C-CRA DIMENSION PLN((JCAP+1)*(JCAP+2),NLATH) C-CRA DIMENSION QLN((JCAP+1)*(JCAP+2),NLATH) C-CRA DIMENSION RLN((JCAP+1)*(JCAP+2),NLATH) C-CRA DIMENSION DS((JCAP+1)*(JCAP+2),NSIG) C-CRA DIMENSION RLATS(2*NLATH) C-CRA DIMENSION RUS(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION RVS(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION RTS(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION RVORTS(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION RPLONS(2*NLATH+1,NLON+2) C-CRA DIMENSION RPLATS(2*NLATH+1,NLON+2) C-CRA DIMENSION PW(2*NLATH+1,NLON+2) C-CRA DIMENSION TS((JCAP+1)*(JCAP+2),NSIG) C-CRA DIMENSION PS((JCAP+1)*(JCAP+2)) C-CRA DIMENSION UW(2*NLATH+1,NLON+2,NSIG),VW(2*NLATH+1,NLON+2,NSIG) C-CRA DIMENSION CORIOLIS(2*NLATH+1,NLON+2) C-CRA REAL T(2*NLATH+1,NLON+2,NSIG) DIMENSION SIGL(28),SIGI(28+1) DIMENSION A3(28,28) DIMENSION DEL2((62+1)*(62+2)) DIMENSION WGTS(2*48) DIMENSION U(2*48+1,192+2,28) DIMENSION V(2*48+1,192+2,28) DIMENSION VORT(2*48+1,192+2,28) DIMENSION PLON(2*48+1,192+2),PLAT(2*48+1,192+2) DIMENSION TRIGS(192*2),IFAX(10) DIMENSION PLN((62+1)*(62+2),48) DIMENSION QLN((62+1)*(62+2),48) DIMENSION RLN((62+1)*(62+2),48) DIMENSION DS((62+1)*(62+2),28) DIMENSION RLATS(2*48) DIMENSION RUS(2*48+1,192+2,28) DIMENSION RVS(2*48+1,192+2,28) DIMENSION RTS(2*48+1,192+2,28) DIMENSION RVORTS(2*48+1,192+2,28) DIMENSION RPLONS(2*48+1,192+2) DIMENSION RPLATS(2*48+1,192+2) DIMENSION PW(2*48+1,192+2) DIMENSION TS((62+1)*(62+2),28) DIMENSION PS((62+1)*(62+2)) DIMENSION UW(2*48+1,192+2,28) DIMENSION VW(2*48+1,192+2,28) DIMENSION CORIOLIS(2*48+1,192+2) REAL T(2*48+1,192+2,28) C-------- C-------- INTERNAL SCRATCH DYNAMIC SPACE FOLLOWS: C-------- C-------- C-------- COMPUTE UD,VD, BIGE (STORED IN VORT) C-------- NG=(2*NLATH+1)*NLON NC=(JCAP+1)*(JCAP+2) OMEGA=CONMC('OMEGA$') GASCON=CONMC('RD$') EACCEL=9.8 C--------- DO K=1,NSIG C-CRA TS(1:NC,K)=DEL2(1:NC)*DS(1:NC,K) DO ITMP=1,NC TS(ITMP,K)=DEL2(ITMP)*DS(ITMP,K) END DO CALL TG2S0(TS(1,K),VORT(1,1,K),JCAP,NLON,NLATH, * WGTS,PLN,TRIGS,IFAX) CALL TGRAD2S(DS(1,K),UW(1,1,K),VW(1,1,K),JCAP,NLON,NLATH, * QLN,RLN,TRIGS,IFAX,WGTS,DEL2) END DO C PRINT *,' IN QTOPER AT 1, ',UW(1,1,1),VW(1,1,1),VORT(1,1,1) C--------- DO J=1,2*NLATH C-CRA CORIOLIS(J,1:NLON)=2.*OMEGA*SIN(RLATS(J)) DO ITMP=1,NLON CORIOLIS(J,ITMP)=2.*OMEGA*SIN(RLATS(J)) END DO DO K=1,NSIG DO L=1,NSIG DO I=1,NLON T(J,I,L)=T(J,I,L)+EACCEL*A3(K,L)*VORT(J,I,K) END DO END DO END DO C--------------------- DO I=1,NLON PLON(J,I)=0. PLAT(J,I)=0. END DO DO K=1,NSIG DO I=1,NLON T(J,I,K)=T(J,I,K)-GASCON*UW(J,I,K)*RPLONS(J,I) * -GASCON*VW(J,I,K)*RPLATS(J,I) U(J,I,K)=U(J,I,K)+VORT(J,I,K)*RUS(J,I,K) * -VW(J,I,K)*(RVORTS(J,I,K)+CORIOLIS(J,I)) V(J,I,K)=V(J,I,K) * +VORT(J,I,K)*RVS(J,I,K) * +UW(J,I,K)*(RVORTS(J,I,K)+CORIOLIS(J,I)) PLON(J,I)=PLON(J,I) * -GASCON*RTS(J,I,K)*UW(J,I,K) PLAT(J,I)=PLAT(J,I) * -GASCON*RTS(J,I,K)*VW(J,I,K) VORT(J,I,K)=-RUS(J,I,K)*VW(J,I,K) * +RVS(J,I,K)*UW(J,I,K) END DO END DO END DO C------------------------COMPUTE FULL NON-LIN BAL EQ RETURN END