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

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

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


Revision 1.5 - (hide annotations) (download)
Fri Feb 27 00:31:10 2009 UTC (15 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.4: +15 -11 lines
add argument for the reccord number

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

  ViewVC Help
Powered by ViewVC 1.1.22