[cdftools] 29/228: JMM fixes in cdfnorth_unfold

Alastair McKinstry mckinstry at moszumanska.debian.org
Fri Jun 12 08:21:25 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 37210d493d52aab535a4e2ca8a2dbd002f5eb2ff
Author: molines <molines at 1055176f-818a-41d9-83e1-73fbe5b947c5>
Date:   Mon Apr 26 22:36:13 2010 +0000

    JMM fixes in cdfnorth_unfold
    
    
    
    git-svn-id: http://servforge.legi.grenoble-inp.fr/svn/CDFTOOLS/trunk@305 1055176f-818a-41d9-83e1-73fbe5b947c5
---
 cdfnorth_unfold.f90 | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/cdfnorth_unfold.f90 b/cdfnorth_unfold.f90
index b94e43c..7393f2c 100644
--- a/cdfnorth_unfold.f90
+++ b/cdfnorth_unfold.f90
@@ -67,6 +67,7 @@ PROGRAM cdfnorth_unfold
   npiglo= getdim (cfile,'x')
   npjglo= getdim (cfile,'y')
   npk   = getdim (cfile,'depth',cdtrue=cdep, kstatus=istatus)
+  nt   = getdim (cfile,'time', kstatus=istatus)
 
   IF (istatus /= 0 ) THEN
      npk   = getdim (cfile,'z',cdtrue=cdep,kstatus=istatus)
@@ -129,6 +130,7 @@ PROGRAM cdfnorth_unfold
         DO jk = 1, ipk(jvar)
            PRINT *,'level ',jk
            tab(:,:) = 0.
+           isig =  1
               DO jtt=1,nt
                 jkk=jk
                 ! If forcing fields is without depth dimension
@@ -140,9 +142,10 @@ PROGRAM cdfnorth_unfold
                    SELECT CASE (ctype )
                    CASE ( 'T','t') 
                      ji=1
-                     DO WHILE ( v2d(ji,npjglo-1) == 0 )
+                     DO WHILE ( v2d(ji,npjglo-1)  == 0 .AND. ji < npiglo ) 
                        ji=ji+1
                      ENDDO
+                      IF ( ji /=  npiglo )  THEN
                       ij=2*ipivot - ji +2
                       zrat= v2d(ij,npjglo-1) / v2d(ji,npjglo-1)
                       IF ( ABS(zrat) /= 1. ) THEN
@@ -150,9 +153,10 @@ PROGRAM cdfnorth_unfold
                       ELSE
                        isig=zrat
                       ENDIF
+                      ENDIF
                    CASE ( 'U','u') 
                      ji=1
-                     DO WHILE ( v2d(ji,npjglo-1) == 0 )
+                     DO WHILE ( v2d(ji,npjglo-1) == 0  .AND. ji < npiglo )
                        ji=ji+1
                      ENDDO
                       ij=2*ipivot - ji + 1
@@ -164,7 +168,7 @@ PROGRAM cdfnorth_unfold
                       ENDIF
                    CASE ( 'V','v') 
                      ji=1
-                     DO WHILE ( v2d(ji,npjglo-1) == 0 )
+                     DO WHILE ( v2d(ji,npjglo-1) == 0 .AND. ji < npiglo )
                        ji=ji+1
                      ENDDO
                       ij=2*ipivot - ji + 2
@@ -177,9 +181,11 @@ PROGRAM cdfnorth_unfold
                    END SELECT
                  CASE ( 'F','f')
                  END SELECT
+                PRINT *,'ISIG=', isig
                 ENDIF
+                
                 CALL unfold(v2d, tab, ijatl, ijpacif, cpivot, ctype, isig)
-                ierr = putvar(ncout, id_varout(jvar) ,tab, jkk, npiarctic, npjarctic, ktime=jtt)
+                ierr = putvar(ncout, id_varout(jvar) ,tab, jkk, npiarctic, npjarctic)
               ENDDO
         END DO  ! loop to next level
   END DO ! loop to next var in file
@@ -215,15 +221,17 @@ CONTAINS
       DO jj=npjglo-3,kjpacif, -1
         ij=  ijn + ( npjglo - 3  - jj ) +1 !  2 *npjglo - kjatl -1 -jj
         DO ji = 2, npiarctic
-         ii = 2*ipivot -ji +2
+!        ii = 2*ipivot -ji +2 -ipivot +1 
+         ii = ipivot - ji + 3 
          ptabout(ji,ij)= ksig * ptabin(ii, jj)
         ENDDO
       ENDDO
     CASE ('V','v')
       DO jj=npjglo-4,kjpacif-1, -1
-        ij=  ijn + ( npjglo - 3  - jj ) +1 !  2 *npjglo - kjatl -1 -jj
+        ij=  ijn + ( npjglo - 4  - jj ) +1 !  2 *npjglo - kjatl -1 -jj
         DO ji = 2, npiarctic
-         ii = 2*ipivot -ji +2
+!        ii = 2*ipivot -ji +2 -ipivot +1
+         ii = ipivot - ji + 3
          ptabout(ji,ij)= ksig * ptabin(ii, jj)
         ENDDO
       ENDDO
@@ -231,7 +239,8 @@ CONTAINS
       DO jj=npjglo-3,kjpacif, -1
         ij=  ijn + ( npjglo - 3  - jj ) +1 !  2 *npjglo - kjatl -1 -jj
         DO ji = 1, npiarctic
-         ii = 2*ipivot -ji + 1
+!        ii = 2*ipivot -ji + 1 -ipivot + 1
+         ii = ipivot -ji + 2
          ptabout(ji,ij)= ksig * ptabin(ii, jj)
         ENDDO
       ENDDO

-- 
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