/[MITgcm]/MITgcm/pkg/obcs/obcs_output.F
ViewVC logotype

Contents of /MITgcm/pkg/obcs/obcs_output.F

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


Revision 1.2 - (show annotations) (download)
Sun Oct 4 22:01:28 2009 UTC (14 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint61w, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.1: +96 -24 lines
write binary output for OB values (usefull for debuging)(frequency=diagFreq)

1 C $Header: /u/gcmpack/MITgcm/pkg/obcs/obcs_output.F,v 1.1 2009/06/17 14:25:46 jmc Exp $
2 C $Name: $
3
4 #include "OBCS_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: OBCS_OUTPUT
8
9 C !INTERFACE:
10 SUBROUTINE OBCS_OUTPUT( myTime, myIter, myThid )
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE OBCS_OUTPUT
15 C | o General routine for OBCS output
16 C *==========================================================*
17 C \ev
18
19 C !USES:
20 IMPLICIT NONE
21 C == Global variables ===
22 #include "SIZE.h"
23 #include "EEPARAMS.h"
24 #include "PARAMS.h"
25 #include "OBCS.h"
26
27 C !INPUT PARAMETERS:
28 C myTime :: my time in simulation ( s )
29 C myIter :: my Iteration number
30 C myThid :: my Thread Id number
31 _RL myTime
32 INTEGER myIter
33 INTEGER myThid
34 CEOP
35
36 #ifdef ALLOW_OBCS
37 C !FUNCTIONS:
38 LOGICAL DIFFERENT_MULTIPLE
39 EXTERNAL DIFFERENT_MULTIPLE
40 c INTEGER ILNBLNK
41 c EXTERNAL ILNBLNK
42
43 C !LOCAL VARIABLES:
44 CHARACTER*(MAX_LEN_FNAM) fn
45 INTEGER prec
46
47 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
48
49 IF (
50 & DIFFERENT_MULTIPLE(dumpFreq,myTime,deltaTClock)
51 & .AND. OBCSprintDiags
52 & ) THEN
53
54 C-- Generaly only thread 1 does IO here. It can not start until
55 C-- all threads fields are ready.
56 _BARRIER
57
58 #ifdef ALLOW_OBCS_NORTH
59 CALL PLOT_FIELD_XZRL( OBNu, 'OBNu' , Nr, myIter, mythid )
60 CALL PLOT_FIELD_XZRL( OBNv, 'OBNv' , Nr, myIter, mythid )
61 CALL PLOT_FIELD_XZRL( OBNt, 'OBNt' , Nr, myIter, mythid )
62 CALL PLOT_FIELD_XZRL( OBNs, 'OBNs' , Nr, myIter, mythid )
63 #endif
64
65 #ifdef ALLOW_OBCS_SOUTH
66 CALL PLOT_FIELD_XZRL( OBSu, 'OBSu' , Nr, myIter, mythid )
67 CALL PLOT_FIELD_XZRL( OBSv, 'OBSv' , Nr, myIter, mythid )
68 CALL PLOT_FIELD_XZRL( OBSt, 'OBSt' , Nr, myIter, mythid )
69 CALL PLOT_FIELD_XZRL( OBSs, 'OBSs' , Nr, myIter, mythid )
70 #endif
71
72 #ifdef ALLOW_OBCS_EAST
73 CALL PLOT_FIELD_YZRL( OBEu, 'OBEu' , Nr, myIter, mythid )
74 CALL PLOT_FIELD_YZRL( OBEv, 'OBEv' , Nr, myIter, mythid )
75 CALL PLOT_FIELD_YZRL( OBEt, 'OBEt' , Nr, myIter, mythid )
76 CALL PLOT_FIELD_YZRL( OBEs, 'OBEs' , Nr, myIter, mythid )
77 #endif
78
79 #ifdef ALLOW_OBCS_WEST
80 CALL PLOT_FIELD_YZRL( OBWu, 'OBWu' , Nr, myIter, mythid )
81 CALL PLOT_FIELD_YZRL( OBWv, 'OBWv' , Nr, myIter, mythid )
82 CALL PLOT_FIELD_YZRL( OBWt, 'OBWt' , Nr, myIter, mythid )
83 CALL PLOT_FIELD_YZRL( OBWs, 'OBWs' , Nr, myIter, mythid )
84 #endif
85
86 ENDIF
87
88 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
89
90 C-- Write OB aray to binary files (mainly for debugging => use "diagFreq")
91 IF (
92 & DIFFERENT_MULTIPLE(diagFreq,myTime,deltaTClock)
93 & ) THEN
94
95 _BARRIER
96 prec = writeBinaryPrec
97
98 #ifdef ALLOW_OBCS_NORTH
99 C Write Northern OB arrays
100 WRITE(fn,'(A,I10.10)') 'obcs_N.', myIter
101 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBNu,1,myIter,myThid)
102 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBNv,2,myIter,myThid)
103 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBNt,3,myIter,myThid)
104 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBNs,4,myIter,myThid)
105 # ifdef ALLOW_NONHYDROSTATIC
106 IF ( nonHydrostatic ) THEN
107 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBNw,5,myIter,myThid)
108 ENDIF
109 # endif
110 #endif
111
112 #ifdef ALLOW_OBCS_SOUTH
113 C Write Southern OB arrays
114 WRITE(fn,'(A,I10.10)') 'obcs_S.', myIter
115 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBSu,1,myIter,myThid)
116 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBSv,2,myIter,myThid)
117 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBSt,3,myIter,myThid)
118 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBSs,4,myIter,myThid)
119 # ifdef ALLOW_NONHYDROSTATIC
120 IF ( nonHydrostatic ) THEN
121 CALL WRITE_REC_XZ_RL(fn,prec,Nr,OBSw,5,myIter,myThid)
122 ENDIF
123 # endif
124 #endif
125
126 #ifdef ALLOW_OBCS_EAST
127 C Write Eastern OB arrays
128 WRITE(fn,'(A,I10.10)') 'obcs_E.', myIter
129 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBEu,1,myIter,myThid)
130 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBEv,2,myIter,myThid)
131 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBEt,3,myIter,myThid)
132 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBEs,4,myIter,myThid)
133 # ifdef ALLOW_NONHYDROSTATIC
134 IF ( nonHydrostatic ) THEN
135 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBEw,5,myIter,myThid)
136 ENDIF
137 # endif
138 #endif
139
140 #ifdef ALLOW_OBCS_WEST
141 C Write Western OB arrays
142 WRITE(fn,'(A,I10.10)') 'obcs_W.', myIter
143 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBWu,1,myIter,myThid)
144 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBWv,2,myIter,myThid)
145 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBWt,3,myIter,myThid)
146 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBWs,4,myIter,myThid)
147 # ifdef ALLOW_NONHYDROSTATIC
148 IF ( nonHydrostatic ) THEN
149 CALL WRITE_REC_YZ_RL(fn,prec,Nr,OBWw,5,myIter,myThid)
150 ENDIF
151 # endif
152 #endif
153
154 _BARRIER
155
156 ENDIF
157
158 #endif /* ALLOW_OBCS */
159
160 RETURN
161 END

  ViewVC Help
Powered by ViewVC 1.1.22