File indexing completed on 2018-03-02 18:43:50 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
ae125ba74b Jean*0001 #include "SEAICE_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE SEAICE_WRITE_PICKUP ( permPickup, suff,
0007 I myTime, myIter, myThid )
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 IMPLICIT NONE
0018
0019
0020 #include "SIZE.h"
0021 #include "EEPARAMS.h"
0022 #include "PARAMS.h"
ccaa3c61f4 Patr*0023 #include "SEAICE_SIZE.h"
ae125ba74b Jean*0024 #include "SEAICE_PARAMS.h"
0025 #include "SEAICE.h"
ccaa3c61f4 Patr*0026 #include "SEAICE_TRACER.h"
ae125ba74b Jean*0027
0028
0029
0030
0031
0032
0033
0034
0035 LOGICAL permPickup
0036 CHARACTER*(*) suff
0037 _RL myTime
0038 INTEGER myIter
0039 INTEGER myThid
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052 INTEGER fp
0053 LOGICAL glf
1706a6e971 Jean*0054 _RL timList(1)
ae125ba74b Jean*0055 CHARACTER*(MAX_LEN_FNAM) fn
0056 INTEGER listDim, nWrFlds
0057 PARAMETER( listDim = 20 )
edfdf5fa1d Jean*0058 CHARACTER*(8) wrFldList(listDim)
0059 INTEGER j, nj
ae125ba74b Jean*0060 CHARACTER*(MAX_LEN_MBUF) msgBuf
e54fe3e1f9 Gael*0061 #ifdef ALLOW_SITRACER
edfdf5fa1d Jean*0062 CHARACTER*(8) fldName
78c1ea7129 Patr*0063 INTEGER iTrac
edfdf5fa1d Jean*0064 #endif
ae125ba74b Jean*0065
0066
0067
0068 WRITE(fn,'(A,A)') 'pickup_seaice.',suff
0069
0070
0071
0072 fp = precFloat64
0073 j = 0
0074 nj = 0
0075
0076
0077
0078 IF ( .NOT.useThSIce ) THEN
e2bce35691 Jean*0079
0080 #ifdef SEAICE_ITD
0081
0082 j = j + 1
0083 CALL WRITE_REC_3D_RL( fn,fp, nITD, TICES, -j, myIter,myThid )
0084 IF (j.LE.listDim) wrFldList(j) = 'siTICES '
0085 j = j + 1
0086 CALL WRITE_REC_3D_RL( fn,fp, nITD, AREAITD, -j, myIter,myThid )
0087 IF (j.LE.listDim) wrFldList(j) = 'siAREAn '
0088 j = j + 1
0089 CALL WRITE_REC_3D_RL( fn,fp, nITD, HEFFITD, -j, myIter,myThid )
0090 IF (j.LE.listDim) wrFldList(j) = 'siHEFFn '
0091 j = j + 1
0092 CALL WRITE_REC_3D_RL( fn,fp, nITD, HSNOWITD,-j, myIter,myThid )
0093 IF (j.LE.listDim) wrFldList(j) = 'siHSNOWn'
0094
0095 nj = -j*nITD
0096
0097 #else /* SEAICE_ITD */
0098
3d682e2e14 Torg*0099 j = j + 1
0100 nj = nj-1
f5282c5b03 Gael*0101 IF (SEAICE_multDim.GT.1) THEN
f913c5a485 Mart*0102 CALL WRITE_REC_3D_RL(fn,fp,nITD,TICES, nj, myIter, myThid )
f5282c5b03 Gael*0103 IF (j.LE.listDim) wrFldList(j) = 'siTICES '
ae125ba74b Jean*0104
f913c5a485 Mart*0105
0106 nj = nj-nITD+1
f5282c5b03 Gael*0107 ELSE
f913c5a485 Mart*0108 CALL WRITE_REC_LEV_RL( fn, fp, nITD, 1, 1, TICES,
2d5ef26c04 Jean*0109 I nj, myIter, myThid )
f5282c5b03 Gael*0110 IF (j.LE.listDim) wrFldList(j) = 'siTICE '
0111 ENDIF
ae125ba74b Jean*0112
0113
0114 j = j + 1
3d682e2e14 Torg*0115 nj = nj-1
772590b63c Mart*0116 CALL WRITE_REC_3D_RL( fn, fp, 1, AREA , nj, myIter, myThid )
ae125ba74b Jean*0117 IF (j.LE.listDim) wrFldList(j) = 'siAREA '
0118 j = j + 1
3d682e2e14 Torg*0119 nj = nj-1
772590b63c Mart*0120 CALL WRITE_REC_3D_RL( fn, fp, 1, HEFF , nj, myIter, myThid )
ae125ba74b Jean*0121 IF (j.LE.listDim) wrFldList(j) = 'siHEFF '
0122 j = j + 1
3d682e2e14 Torg*0123 nj = nj-1
ae125ba74b Jean*0124 CALL WRITE_REC_3D_RL( fn, fp, 1, HSNOW , nj, myIter, myThid )
0125 IF (j.LE.listDim) wrFldList(j) = 'siHSNOW '
e2bce35691 Jean*0126
0127 #endif /* SEAICE_ITD */
0128
a98c4b8072 Ian *0129 #ifdef SEAICE_VARIABLE_SALINITY
ae125ba74b Jean*0130 j = j + 1
0131 nj = nj-1
0132 CALL WRITE_REC_3D_RL( fn, fp, 1, HSALT , nj, myIter, myThid )
0133 IF (j.LE.listDim) wrFldList(j) = 'siHSALT '
0134 #endif
78c1ea7129 Patr*0135 #ifdef ALLOW_SITRACER
38cfb58d85 Gael*0136 DO iTrac = 1, SItrNumInUse
78c1ea7129 Patr*0137 WRITE(fldName,'(A6,I2.2)') 'siTrac', iTrac
c284306958 Patr*0138 j = j + 1
0139 nj = nj-1
0140 CALL WRITE_REC_3D_RL( fn, fp, 1,
ba68d2f969 Jean*0141 & SItracer(1-OLx,1-OLy,1,1,iTrac),
c284306958 Patr*0142 & nj, myIter, myThid )
0143 IF (j.LE.listDim) wrFldList(j) = fldName
78c1ea7129 Patr*0144 ENDDO
0145 #endif
ae125ba74b Jean*0146 ENDIF
0147
0148
0149 j = j + 1
0150 nj = nj-1
772590b63c Mart*0151 CALL WRITE_REC_3D_RL( fn, fp, 1, UICE , nj, myIter, myThid )
ae125ba74b Jean*0152 IF (j.LE.listDim) wrFldList(j) = 'siUICE '
0153
0154 j = j + 1
0155 nj = nj-1
772590b63c Mart*0156 CALL WRITE_REC_3D_RL( fn, fp, 1, VICE , nj, myIter, myThid )
ae125ba74b Jean*0157 IF (j.LE.listDim) wrFldList(j) = 'siVICE '
0158
e501eee760 Mart*0159 IF ( SEAICEuseBDF2 ) THEN
6cbc659de0 Mart*0160 j = j + 1
0161 nj = nj-1
0162 CALL WRITE_REC_3D_RL( fn, fp, 1, uIceNm1 , nj, myIter, myThid )
0163 IF (j.LE.listDim) wrFldList(j) = 'siUicNm1'
0164
0165 j = j + 1
0166 nj = nj-1
0167 CALL WRITE_REC_3D_RL( fn, fp, 1, vIceNm1 , nj, myIter, myThid )
0168 IF (j.LE.listDim) wrFldList(j) = 'siVicNm1'
0169 ENDIF
ae125ba74b Jean*0170 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
0171 IF ( SEAICEuseEVP ) THEN
0172 j = j + 1
0173 nj = nj-1
0174 CALL WRITE_REC_3D_RL( fn, fp, 1, seaice_sigma1,
0175 & nj, myIter, myThid )
0176 IF (j.LE.listDim) wrFldList(j) = 'siSigm1 '
0177
0178 j = j + 1
0179 nj = nj-1
0180 CALL WRITE_REC_3D_RL( fn, fp, 1, seaice_sigma2,
0181 & nj, myIter, myThid )
0182 IF (j.LE.listDim) wrFldList(j) = 'siSigm2 '
0183
0184 j = j + 1
0185 nj = nj-1
0186 CALL WRITE_REC_3D_RL( fn, fp, 1, seaice_sigma12,
0187 & nj, myIter, myThid )
0188 IF (j.LE.listDim) wrFldList(j) = 'siSigm12'
0189 ENDIF
0190 #endif /* SEAICE_ALLOW_EVP */
0191
0192 nWrFlds = j
0193 IF ( nWrFlds.GT.listDim ) THEN
0194 WRITE(msgBuf,'(2A,I5,A)') 'WRITE_SEAICE_PICKUP: ',
0195 & 'trying to write ',nWrFlds,' fields'
0196 CALL PRINT_ERROR( msgBuf, myThid )
0197 WRITE(msgBuf,'(2A,I5,A)') 'WRITE_SEAICE_PICKUP: ',
0198 & 'field-list dimension (listDim=',listDim,') too small'
0199 CALL PRINT_ERROR( msgBuf, myThid )
0200 STOP 'ABNORMAL END: S/R WRITE_SEAICE_PICKUP (list-size Pb)'
0201 ENDIF
78c1ea7129 Patr*0202
ae125ba74b Jean*0203 #ifdef ALLOW_MDSIO
0204
0205 nj = ABS(nj)
0206 glf = globalFiles
1706a6e971 Jean*0207 timList(1) = myTime
ae125ba74b Jean*0208 CALL MDS_WR_METAFILES( fn, fp, glf, .FALSE.,
0209 & 0, 0, 1, ' ',
0210 & nWrFlds, wrFldList,
ba68d2f969 Jean*0211 & 1, timList, oneRL,
ae125ba74b Jean*0212 & nj, myIter, myThid )
78c1ea7129 Patr*0213
ae125ba74b Jean*0214 #endif /* ALLOW_MDSIO */
0215
0216
0217
0218 RETURN
0219 END