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

Contents 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 - (show annotations) (download)
Wed Nov 18 00:33:58 2009 UTC (14 years, 5 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 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