/[MITgcm]/MITgcm/pkg/rw/write_fld_s3d_rl.F
ViewVC logotype

Annotation of /MITgcm/pkg/rw/write_fld_s3d_rl.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Wed Nov 18 00:33:58 2009 UTC (14 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint65, checkpoint62, checkpoint63, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint61z, HEAD
for debugging: add S/R to write out smaller overlap array

1 jmc 1.1 C $Header: /u/gcmpack/MITgcm/model/src/cg3d.F,v 1.20 2009/04/28 18:01:14 jmc Exp $
2     C $Name: $
3    
4     #include "RW_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: WRITE_FLD_S3D_RL
8     C !INTERFACE:
9     SUBROUTINE WRITE_FLD_S3D_RL(
10     I pref, suff, Ovl, nNz, field, myIter, myThid )
11    
12     C !DESCRIPTION: \bv
13     C *==========================================================*
14     C | SUBROUTINE WRITE_FLD_S3D_RL
15     C | Front-end interface to low-level I/O subroutine (MDSIO).
16     C | Write short (smaller overlap) 3-D "RL" type field
17     C | to binary file (prefix,suffix).
18     C *==========================================================*
19     C | Note: Use a local copy to full overlap array
20     C | - not very efficient
21     C | - max number of level is limited (set to kSiz)
22     C | But since it is used mainly for debugging purpose,
23     C | no attempt to improve efficiency/flexibility
24     C *==========================================================*
25     C \ev
26    
27     C !USES:
28     IMPLICIT NONE
29     C === Global data ===
30     #include "SIZE.h"
31     #include "EEPARAMS.h"
32     #include "PARAMS.h"
33    
34     C !INPUT/OUTPUT PARAMETERS:
35     C myThid :: my Thread Id number
36     CHARACTER*(*) pref,suff
37     INTEGER Ovl
38     INTEGER nNz
39     _RL field(1-Ovl:sNx+Ovl,1-Ovl:sNy+Ovl,nNz,nSx,nSy)
40     INTEGER myIter
41     INTEGER myThid
42    
43     #ifndef RW_DISABLE_SMALL_OVERLAP
44     C !FUNCTIONS:
45     INTEGER ILNBLNK, IFNBLNK
46     EXTERNAL ILNBLNK, IFNBLNK
47    
48     C !LOCAL VARIABLES:
49     C msgBuf :: Informational/error message buffer
50     INTEGER kSiz
51     PARAMETER ( kSiz = Nr )
52     _RL locVar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSiz,nSx,nSy)
53    
54     CHARACTER*(MAX_LEN_MBUF) msgBuf
55     CHARACTER*(MAX_LEN_FNAM) fName
56     INTEGER fPrec, iRec
57     INTEGER i,j,k,bi,bj
58     INTEGER s1Lo,s1Hi,s2Lo,s2Hi
59    
60     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
61    
62     IF ( Ovl.GT.OLx .OR. Ovl.GT.OLy ) THEN
63     WRITE(msgBuf,'(2A,2(I3,A))') 'WRITE_FLD_S3D_RL:',
64     & ' Argument Ovl (=', Ovl, ' ) too large (>', MIN(OLx,OLy), ' )'
65     CALL PRINT_ERROR( msgBuf, myThid )
66     STOP 'ABNORMAL END: S/R WRITE_FLD_S3D_RL'
67     ENDIF
68     IF ( nNz.GT.kSiz ) THEN
69     WRITE(msgBuf,'(2A,2(I3,A))') 'WRITE_FLD_S3D_RL:',
70     & ' Argument nNz (=', nNz, ' ) too large (> kSiz=', kSiz, ' )'
71     CALL PRINT_ERROR( msgBuf, myThid )
72     STOP 'ABNORMAL END: S/R WRITE_FLD_S3D_RL'
73     ENDIF
74    
75     s1Lo = IFNBLNK(pref)
76     s1Hi = ILNBLNK(pref)
77     IF ( suff .EQ. ' ' ) THEN
78     WRITE( fName, '(A)' ) pref(s1Lo:s1Hi)
79     ELSEIF ( suff .EQ. 'I10' ) THEN
80     WRITE( fName, '(A,A,I10.10)' ) pref(s1Lo:s1Hi),'.',myIter
81     ELSE
82     s2Lo = IFNBLNK(suff)
83     s2Hi = ILNBLNK(suff)
84     WRITE( fName, '(A,A)' ) pref(s1Lo:s1Hi),suff(s2Lo:s2Hi)
85     ENDIF
86    
87     DO bj=myByLo(myThid),myByHi(myThid)
88     DO bi=myBxLo(myThid),myBxHi(myThid)
89     DO k=1,nNz
90     DO j=1,sNy
91     DO i=1,sNx
92     locVar(i,j,k,bi,bj) = field(i,j,k,bi,bj)
93     ENDDO
94     ENDDO
95     ENDDO
96     ENDDO
97     ENDDO
98    
99     fPrec = writeBinaryPrec
100     iRec = 1
101     CALL WRITE_REC_LEV_RL(
102     I fName, fPrec, kSiz, 1, nNz, locVar,
103     I iRec, myIter, myThid )
104    
105     #else /* RW_DISABLE_SMALL_OVERLAP */
106    
107     STOP 'ABNORMAL END: S/R WRITE_FLD_S3D_RL empty'
108    
109     #endif /* RW_DISABLE_SMALL_OVERLAP */
110    
111     RETURN
112     END

  ViewVC Help
Powered by ViewVC 1.1.22