NCEPLIBS-sp  2.3.3
spgradq.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine spgradq (I, M, ENN1, ELONN1, EON, EONTOP, Q, QDX, QDY, QDYTOP)
 COMPUTES THE HORIZONTAL VECTOR GRADIENT OF A SCALAR FIELD IN SPECTRAL SPACE. More...
 

Detailed Description

Compute gradient in spectral space

Author
IREDELL
Date
92-10-31

Definition in file spgradq.f.

Function/Subroutine Documentation

◆ spgradq()

subroutine spgradq (   I,
  M,
real, dimension((m+1)*((i+1)*m+2)/2)  ENN1,
real, dimension((m+1)*((i+1)*m+2)/2)  ELONN1,
real, dimension((m+1)*((i+1)*m+2)/2)  EON,
real, dimension(m+1)  EONTOP,
real, dimension((m+1)*((i+1)*m+2))  Q,
real, dimension((m+1)*((i+1)*m+2))  QDX,
real, dimension((m+1)*((i+1)*m+2))  QDY,
real, dimension(2*(m+1))  QDYTOP 
)

COMPUTES THE HORIZONTAL VECTOR GRADIENT OF A SCALAR FIELD IN SPECTRAL SPACE.

SUBPROGRAM SPEPS SHOULD BE CALLED ALREADY. IF L IS THE ZONAL WAVENUMBER, N IS THE TOTAL WAVENUMBER, EPS(L,N)=SQRT((N**2-L**2)/(4*N**2-1)) AND A IS EARTH RADIUS, THEN THE ZONAL GRADIENT OF Q(L,N) IS SIMPLY I*L/A*Q(L,N) WHILE THE MERIDIONAL GRADIENT OF Q(L,N) IS COMPUTED AS EPS(L,N+1)*(N+2)/A*Q(L,N+1)-EPS(L,N+1)*(N-1)/A*Q(L,N-1). EXTRA TERMS ARE COMPUTED OVER TOP OF THE SPECTRAL DOMAIN. ADVANTAGE IS TAKEN OF THE FACT THAT EPS(L,L)=0 IN ORDER TO VECTORIZE OVER THE ENTIRE SPECTRAL DOMAIN.

Parameters
I- INTEGER SPECTRAL DOMAIN SHAPE (0 FOR TRIANGULAR, 1 FOR RHOMBOIDAL)
M- INTEGER SPECTRAL TRUNCATION
ENN1- REAL ((M+1)*((I+1)*M+2)/2) N*(N+1)/A**2
ELONN1- REAL ((M+1)*((I+1)*M+2)/2) L/(N*(N+1))*A
EON- REAL ((M+1)*((I+1)*M+2)/2) EPSILON/N*A
EONTOP- REAL (M+1) EPSILON/N*A OVER TOP
Q- REAL ((M+1)*((I+1)*M+2)) SCALAR FIELD
QDX- REAL ((M+1)*((I+1)*M+2)) ZONAL GRADIENT (TIMES COSLAT)
QDY- REAL ((M+1)*((I+1)*M+2)) MERID GRADIENT (TIMES COSLAT)
QDYTOP- REAL (2*(M+1)) MERID GRADIENT (TIMES COSLAT) OVER TOP

Definition at line 30 of file spgradq.f.