62 |
INTEGER ILNBLNK |
INTEGER ILNBLNK |
63 |
EXTERNAL ILNBLNK |
EXTERNAL ILNBLNK |
64 |
INTEGER ilen |
INTEGER ilen |
65 |
|
INTEGER nlevsout |
66 |
|
|
67 |
INTEGER ioUnit |
INTEGER ioUnit |
68 |
CHARACTER*(MAX_LEN_FNAM) fn |
CHARACTER*(MAX_LEN_FNAM) fn |
72 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
73 |
INTEGER ii |
INTEGER ii |
74 |
CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn |
CHARACTER*(MAX_LEN_FNAM) diag_mnc_bn |
|
CHARACTER*(5) ctmp |
|
75 |
INTEGER CW_DIMS, NLEN |
INTEGER CW_DIMS, NLEN |
76 |
PARAMETER ( CW_DIMS = 10 ) |
PARAMETER ( CW_DIMS = 10 ) |
77 |
PARAMETER ( NLEN = 80 ) |
PARAMETER ( NLEN = 80 ) |
79 |
CHARACTER*(NLEN) dn(CW_DIMS) |
CHARACTER*(NLEN) dn(CW_DIMS) |
80 |
CHARACTER*(NLEN) d_cw_name |
CHARACTER*(NLEN) d_cw_name |
81 |
CHARACTER*(NLEN) dn_blnk |
CHARACTER*(NLEN) dn_blnk |
82 |
|
#ifdef DIAG_MNC_COORD_NEEDSWORK |
83 |
|
CHARACTER*(5) ctmp |
84 |
_RS ztmp(Nr+Nrphys) |
_RS ztmp(Nr+Nrphys) |
85 |
|
#endif |
86 |
#endif /* ALLOW_MNC */ |
#endif /* ALLOW_MNC */ |
87 |
|
|
88 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
278 |
C- end of empty diag / not empty block |
C- end of empty diag / not empty block |
279 |
ENDIF |
ENDIF |
280 |
|
|
281 |
|
nlevsout = nlevels(listId) |
282 |
|
|
283 |
|
C----------------------------------------------------------------------- |
284 |
|
C Check to see if we need to interpolate before output |
285 |
|
C----------------------------------------------------------------------- |
286 |
|
IF ( fflags(listId)(2:2).EQ.'P' ) THEN |
287 |
|
C- Do vertical interpolation: |
288 |
|
CALL DIAGNOSTICS_INTERP_VERT( |
289 |
|
I listId, md, ndId, ip, im, |
290 |
|
U nlevsout, |
291 |
|
U qtmp1, |
292 |
|
I undef, |
293 |
|
I myTime, myIter, myThid ) |
294 |
|
ENDIF |
295 |
|
|
296 |
#ifdef ALLOW_MDSIO |
#ifdef ALLOW_MDSIO |
297 |
C Prepare for mdsio optionality |
C Prepare for mdsio optionality |
298 |
IF (diag_mdsio) THEN |
IF (diag_mdsio) THEN |
299 |
IF (fflags(listId)(1:1) .EQ. ' ') THEN |
IF (fflags(listId)(1:1) .EQ. ' ') THEN |
300 |
C This is the old default behavior |
C This is the old default behavior |
301 |
CALL MDSWRITEFIELD_NEW(fn,writeBinaryPrec,glf,'RL', |
CALL MDSWRITEFIELD_NEW(fn,writeBinaryPrec,glf,'RL', |
302 |
& Nr+Nrphys,nlevels(listId),qtmp1,md,myIter,myThid) |
& Nr+Nrphys,nlevsout,qtmp1,md,myIter,myThid) |
303 |
ELSEIF (fflags(listId)(1:1) .EQ. 'R') THEN |
ELSEIF (fflags(listId)(1:1) .EQ. 'R') THEN |
304 |
C Force it to be 32-bit precision |
C Force it to be 32-bit precision |
305 |
CALL MDSWRITEFIELD_NEW(fn,precFloat32,glf,'RL', |
CALL MDSWRITEFIELD_NEW(fn,precFloat32,glf,'RL', |
306 |
& Nr+Nrphys,nlevels(listId),qtmp1,md,myIter,myThid) |
& Nr+Nrphys,nlevsout,qtmp1,md,myIter,myThid) |
307 |
ELSEIF (fflags(listId)(1:1) .EQ. 'D') THEN |
ELSEIF (fflags(listId)(1:1) .EQ. 'D') THEN |
308 |
C Force it to be 64-bit precision |
C Force it to be 64-bit precision |
309 |
CALL MDSWRITEFIELD_NEW(fn,precFloat64,glf,'RL', |
CALL MDSWRITEFIELD_NEW(fn,precFloat64,glf,'RL', |
310 |
& Nr+Nrphys,nlevels(listId),qtmp1,md,myIter,myThid) |
& Nr+Nrphys,nlevsout,qtmp1,md,myIter,myThid) |
311 |
ENDIF |
ENDIF |
312 |
ENDIF |
ENDIF |
313 |
#endif /* ALLOW_MDSIO */ |
#endif /* ALLOW_MDSIO */ |