/[MITgcm]/MITgcm/pkg/debug/write_fullarray_rl.F
ViewVC logotype

Contents of /MITgcm/pkg/debug/write_fullarray_rl.F

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


Revision 1.4 - (show annotations) (download)
Tue Nov 13 01:23:08 2007 UTC (16 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59k, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61h, checkpoint61i
Changes since 1.3: +5 -4 lines
fix bug (was not there in some earliest version).

1 C $Header: /u/gcmpack/MITgcm/pkg/debug/write_fullarray_rl.F,v 1.3 2007/08/21 15:04:15 jmc Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: WRITE_FULLARRAY_RL
8 C !INTERFACE:
9 SUBROUTINE WRITE_FULLARRAY_RL( fnam, fld, kSize,
10 I biArg, bjArg, myIter, myThid )
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE WRITE_FULLARRAY
15 C | write full array (including the overlap) to binary files
16 C *==========================================================*
17 C | Only used for debugging purpose.
18 C | can write local array (with no bi,bj) corresponding to
19 C | tile biArg,bjArg
20 C | or global array (with bi,bj) (called with biArg=bjArg=0)
21 C | Warning: does not explicitly do the byte-swapping
22 C | (=> write little-endian binary file).
23 C *==========================================================*
24 C \ev
25 C !USES:
26 IMPLICIT NONE
27
28 C == Global variables ===
29 #include "SIZE.h"
30 #include "EEPARAMS.h"
31 #include "PARAMS.h"
32
33 C !INPUT/OUTPUT PARAMETERS:
34 C == Routine arguments ==
35 CHARACTER*(*) fnam
36 INTEGER kSize
37 INTEGER biArg, bjArg
38 INTEGER myIter
39 INTEGER myThid
40 _RL fld(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSize,nSx,nSy)
41
42 C !FUNCTIONS:
43 C == Functions ==
44 INTEGER ILNBLNK, IFNBLNK, MDS_RECLEN
45 EXTERNAL ILNBLNK, IFNBLNK, MDS_RECLEN
46
47 C !LOCAL VARIABLES:
48 C == Local variables ==
49 CHARACTER*(2) fType
50 INTEGER i,j,k,bi,bj,iG,jG
51 INTEGER s1Lo,s1Hi, dUnit, filePrec, length_of_rec
52 CHARACTER*(80) fullName
53 CEOP
54
55
56 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
57
58 C-- Only do I/O if I am the master thread
59 _BEGIN_MASTER( myThid )
60
61 C-- to Build file name
62 s1Lo = IFNBLNK(fnam)
63 s1Hi = ILNBLNK(fnam)
64 CALL MDSFINDUNIT( dUnit, myThid )
65
66 fType='RL'
67 filePrec = precFloat64
68
69 IF ( biArg.EQ.0 .AND. bjArg.EQ.0 ) THEN
70 C-- Write full global array:
71 DO bj = 1,nSy
72 DO bi = 1,nSx
73 iG=bi+(myXGlobalLo-1)/sNx
74 jG=bj+(myYGlobalLo-1)/sNy
75
76 WRITE( fullName, '(2A,I10.10,2(A,I3.3),A)' )
77 & fnam(s1Lo:s1Hi),'.',myIter,'.',iG,'.',jG,'.data'
78
79 c OPEN( dUnit, file=fullName, status='unknown',
80 c & form='unformatted')
81 c WRITE(dUnit) ((( fld(i,j,k,bi,bj),
82 c & i=1-Olx,sNx+Olx),
83 c & j=1-Oly,sNy+Oly),
84 c & k=1,kSize)
85 length_of_rec = MDS_RECLEN(
86 & filePrec, (sNx+2*Olx)*(sNy+2*Oly), myThid )
87 OPEN( dUnit, file=fullName, status='unknown',
88 & access='direct', recl=length_of_rec )
89 DO k = 1,kSize
90 WRITE(dUnit,rec=k) (( fld(i,j,k,bi,bj),
91 & i=1-Olx,sNx+Olx),
92 & j=1-Oly,sNy+Oly )
93 ENDDO
94 CLOSE(dUnit)
95
96 ENDDO
97 ENDDO
98
99 ELSE
100 C-- Write local array:
101 iG=biArg+(myXGlobalLo-1)/sNx
102 jG=bjArg+(myYGlobalLo-1)/sNy
103
104 WRITE( fullName, '(2A,I10.10,2(A,I3.3),A)' )
105 & fnam(s1Lo:s1Hi),'.',myIter,'.',iG,'.',jG,'.data'
106
107 c OPEN( dUnit, file=fullName, status='unknown',
108 c & form='unformatted')
109 c WRITE(dUnit) ((( fld(i,j,k,1,1),
110 c & i=1-Olx,sNx+Olx),
111 c & j=1-Oly,sNy+Oly),
112 c & k=1,kSize)
113 length_of_rec = MDS_RECLEN(
114 & filePrec, (sNx+2*Olx)*(sNy+2*Oly), myThid )
115 OPEN( dUnit, file=fullName, status='unknown',
116 & access='direct', recl=length_of_rec )
117 DO k = 1,kSize
118 WRITE(dUnit,rec=k) (( fld(i,j,k,1,1),
119 & i=1-Olx,sNx+Olx),
120 & j=1-Oly,sNy+Oly )
121 ENDDO
122 CLOSE(dUnit)
123
124 ENDIF
125
126 _END_MASTER( myThid )
127
128 RETURN
129 END

  ViewVC Help
Powered by ViewVC 1.1.22