[cdftools] 195/228: JMM : add velocitu direction in cdfvita
Alastair McKinstry
mckinstry at moszumanska.debian.org
Fri Jun 12 08:21:49 UTC 2015
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch master
in repository cdftools.
commit afc520a6b9297df6963dd22629877b98ff5739ad
Author: molines <molines at 1055176f-818a-41d9-83e1-73fbe5b947c5>
Date: Fri Feb 8 17:21:20 2013 +0000
JMM : add velocitu direction in cdfvita
git-svn-id: http://servforge.legi.grenoble-inp.fr/svn/CDFTOOLS/trunk@643 1055176f-818a-41d9-83e1-73fbe5b947c5
---
cdfvita.f90 | 29 +++++++++++++++++++++++++----
1 file changed, 25 insertions(+), 4 deletions(-)
diff --git a/cdfvita.f90 b/cdfvita.f90
index c688507..8c6792f 100644
--- a/cdfvita.f90
+++ b/cdfvita.f90
@@ -34,10 +34,11 @@ PROGRAM cdfvita
INTEGER(KIND=4), DIMENSION(:), ALLOCATABLE :: nklev ! selected levels
INTEGER(KIND=4), DIMENSION(:), ALLOCATABLE :: ipk, id_varout ! output stuff
+ REAL(KIND=4) :: pi ! pi
REAL(KIND=4), DIMENSION(:), ALLOCATABLE :: tim ! time counter array
REAL(KIND=4), DIMENSION(:), ALLOCATABLE :: gdeptall, gdept ! depths and selected depths
REAL(KIND=4), DIMENSION(:,:), ALLOCATABLE :: uc, vc ! velocity component on C grid
- REAL(KIND=4), DIMENSION(:,:), ALLOCATABLE :: ua, va, vmod ! velocity component on A grid
+ REAL(KIND=4), DIMENSION(:,:), ALLOCATABLE :: ua, va, vmod, vdir ! velocity component on A grid
TYPE(variable), DIMENSION(:), ALLOCATABLE :: stypvar ! data attributes
@@ -85,6 +86,7 @@ PROGRAM cdfvita
nlev = 0
ijarg=1
+ pi=ACOS(-1.)
DO WHILE ( ijarg <= narg )
CALL getarg( ijarg, cldum ) ; ijarg=ijarg+1
SELECT CASE ( cldum )
@@ -105,8 +107,8 @@ PROGRAM cdfvita
ENDDO
! adjust number of variable according to -w option
- nvar=3
- IF ( lvertical ) nvar = 4
+ nvar=4
+ IF ( lvertical ) nvar = 5
ALLOCATE ( ipk(nvar), id_varout(nvar), stypvar(nvar) )
@@ -167,6 +169,20 @@ PROGRAM cdfvita
stypvar(3)%conline_operation = 'N/A'
stypvar(3)%caxis = 'TZYX'
+ ! Velocity module T point
+ ipk(4) = nlev
+ stypvar(4)%cname = 'sovitdir'
+ stypvar(4)%cunits = 'deg N'
+ stypvar(4)%rmissing_value = 0.
+ stypvar(4)%valid_min = 0.
+ stypvar(4)%valid_max = 360.
+ stypvar(4)%clong_name = 'Velocity direction T point'
+ stypvar(4)%cshort_name = 'sovitdir'
+ stypvar(4)%conline_operation = 'N/A'
+ stypvar(4)%caxis = 'TZYX'
+
+
+
IF ( lvertical ) THEN
! Vertical Velocity at T point
ipk(nvar) = nlev
@@ -188,7 +204,8 @@ PROGRAM cdfvita
PRINT *, 'nlev =', nlev
ALLOCATE( uc(npiglo,npjglo), vc(npiglo,npjglo) )
- ALLOCATE( ua(npiglo,npjglo), va(npiglo,npjglo), vmod(npiglo,npjglo) )
+ ALLOCATE( ua(npiglo,npjglo), va(npiglo,npjglo) )
+ ALLOCATE( vmod(npiglo,npjglo), vdir(npiglo, npjglo) )
ALLOCATE( tim(npt), gdeptall(npk) )
gdeptall(:) = getvar1d(cf_tfil,cn_vdeptht, npk)
@@ -220,17 +237,21 @@ PROGRAM cdfvita
ua(ji,jj) = 0.5* (uc(ji,jj)+ uc(ji-1,jj))
va(ji,jj) = 0.5* (vc(ji,jj)+ vc(ji,jj-1))
vmod(ji,jj) = SQRT( ua(ji,jj)*ua(ji,jj) + va(ji,jj)*va(ji,jj) )
+ vdir(ji,jj) = 90. - atan2(va(ji,jj),ua(ji,jj))*180./pi
+ IF ( vdir(ji,jj) < 0. ) vdir(ji,jj) = 360.+vdir(ji,jj)
END DO
END DO
IF ( lperio) THEN ! periodic E-W boundary ...
ua (1,:) = ua (npiglo-1,:)
va (1,:) = va (npiglo-1,:)
vmod(1,:) = vmod(npiglo-1,:)
+ vdir(1,:) = vdir(npiglo-1,:)
ENDIF
ierr=putvar(ncout, id_varout(1), ua, jlev ,npiglo, npjglo, ktime=jt )
ierr=putvar(ncout, id_varout(2), va, jlev ,npiglo, npjglo, ktime=jt )
ierr=putvar(ncout, id_varout(3), vmod, jlev ,npiglo, npjglo, ktime=jt )
+ ierr=putvar(ncout, id_varout(4), vdir, jlev ,npiglo, npjglo, ktime=jt )
END DO
END DO
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cdftools.git
More information about the debian-science-commits
mailing list