/[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.6 - (show annotations) (download)
Tue May 25 19:07:53 2010 UTC (13 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62u, checkpoint62t
Changes since 1.5: +1 -2 lines
remove PARAMS.h (not needed).

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

  ViewVC Help
Powered by ViewVC 1.1.22