8 |
C !ROUTINE: DIAGNOSTICS_WRITE_PICKUP |
C !ROUTINE: DIAGNOSTICS_WRITE_PICKUP |
9 |
C !INTERFACE: |
C !INTERFACE: |
10 |
SUBROUTINE DIAGNOSTICS_WRITE_PICKUP( |
SUBROUTINE DIAGNOSTICS_WRITE_PICKUP( |
11 |
|
I isPerm, |
12 |
I suff, |
I suff, |
13 |
I myTime, |
I myTime, |
14 |
I myIter, |
I myIter, |
28 |
#include "DIAGNOSTICS.h" |
#include "DIAGNOSTICS.h" |
29 |
|
|
30 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
31 |
|
C isPerm :: permanent checkpoint flag |
32 |
C suff :: suffix for pickup file (eg. ckptA or 0000000010) |
C suff :: suffix for pickup file (eg. ckptA or 0000000010) |
33 |
C myTime :: current time |
C myTime :: current time |
34 |
C myIter :: time-step number |
C myIter :: time-step number |
35 |
C myThid :: Number of this instance |
C myThid :: Number of this instance |
36 |
|
LOGICAL isPerm |
37 |
CHARACTER*(*) suff |
CHARACTER*(*) suff |
38 |
_RL myTime |
_RL myTime |
39 |
INTEGER myIter |
INTEGER myIter |
83 |
DO i = 1,MAX_LEN_FNAM |
DO i = 1,MAX_LEN_FNAM |
84 |
diag_mnc_bn(i:i) = ' ' |
diag_mnc_bn(i:i) = ' ' |
85 |
ENDDO |
ENDDO |
86 |
WRITE(diag_mnc_bn,'(A)') 'pickup_diagnostics' |
|
87 |
|
IF ( isPerm ) THEN |
88 |
|
WRITE(diag_mnc_bn,'(A)') 'pickup_diagnostics' |
89 |
|
ELSE |
90 |
|
ii = ILNBLNK(suff) |
91 |
|
WRITE(diag_mnc_bn,'(A,A)') |
92 |
|
& 'pickup_diagnostics.',suff(1:ii) |
93 |
|
ENDIF |
94 |
|
|
95 |
|
CALL MNC_CW_SET_UDIM(fn, 0, myThid) |
96 |
|
IF ( isPerm ) THEN |
97 |
|
CALL MNC_CW_SET_CITER(fn, 3, 3, myIter, 0, myThid) |
98 |
|
ELSE |
99 |
|
CALL MNC_CW_SET_CITER(fn, 2, -1, -1, -1, myThid) |
100 |
|
ENDIF |
101 |
|
C Then set the actual unlimited dimension |
102 |
|
CALL MNC_CW_SET_UDIM(fn, 1, myThid) |
103 |
|
|
104 |
C Update the record dimension by writing the iteration number |
C Update the record dimension by writing the iteration number |
|
CALL MNC_CW_SET_UDIM(diag_mnc_bn, -1, myThid) |
|
105 |
CALL MNC_CW_RL_W_S('D',diag_mnc_bn,0,0,'T',myTime,myThid) |
CALL MNC_CW_RL_W_S('D',diag_mnc_bn,0,0,'T',myTime,myThid) |
|
CALL MNC_CW_SET_UDIM(diag_mnc_bn, 0, myThid) |
|
106 |
CALL MNC_CW_I_W_S('I',diag_mnc_bn,0,0,'iter',myIter,myThid) |
CALL MNC_CW_I_W_S('I',diag_mnc_bn,0,0,'iter',myIter,myThid) |
107 |
|
|
108 |
C Write the qdiag() array |
C Write the qdiag() array |