File indexing completed on 2020-02-28 06:11:25 UTC
view on githubraw file Latest commit 3b867959 on 2020-02-11 01:31:16 UTC
198f6904ea Dani*0001 #include "SHELFICE_OPTIONS.h"
0002
0003
0004
0005
0006
0007 SUBROUTINE SHELFICE_WRITE_PICKUP( permPickup,
0008 & suff, myTime, myIter, myThid )
0009
0010
0011
0012
0013
0014 IMPLICIT NONE
0015 #include "SIZE.h"
0016 #include "EEPARAMS.h"
0017 #include "PARAMS.h"
0018 #include "SHELFICE.h"
0019
0020
0021
0022
0023
0024
0025
0026 LOGICAL permPickup
0027 CHARACTER*(*) suff
0028 _RL myTime
0029 INTEGER myIter
0030 INTEGER myThid
0031
0032
0033
0034
0035 #ifdef ALLOW_SHELFICE
0036
0037 INTEGER ILNBLNK
0038 EXTERNAL ILNBLNK
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050 INTEGER j, nj, fp, lChar
0051 LOGICAL glf
0052 _RL timList(1)
0053 CHARACTER*(MAX_LEN_FNAM) fn
0054 INTEGER listDim, nWrFlds
0055 PARAMETER( listDim = 12 )
0056 CHARACTER*(8) wrFldList(listDim)
0057 CHARACTER*(MAX_LEN_MBUF) msgBuf
0058
0059
9952f046d7 dngo*0060 IF ( SHELFICEMassStepping .OR.
0061 & SHELFICEremeshFrequency.GT.zeroRL ) THEN
198f6904ea Dani*0062 lChar = ILNBLNK(suff)
0063 IF ( lChar.EQ.0 ) THEN
0064 WRITE(fn,'(2A)') 'pickup_shelfice'
0065 ELSE
0066 WRITE(fn,'(2A)') 'pickup_shelfice.',suff(1:lChar)
0067 ENDIF
0068 fp = precFloat64
0069 j = 0
0070
0071
0072
0073
0074 nj = -j*Nr
0075
9952f046d7 dngo*0076 IF ( SHELFICEMassStepping ) THEN
0077
198f6904ea Dani*0078 j = j + 1
0079 nj = nj-1
0080 CALL WRITE_REC_3D_RL( fn, fp, 1, ShelficeMass,
0081 & nj, myIter, myThid )
0082 IF (j.LE.listDim) wrFldList(j) = 'SHI_mass'
0083
9952f046d7 dngo*0084 ENDIF
0085
0086 #ifdef ALLOW_SHELFICE_REMESHING
0087 IF ( SHELFICEremeshFrequency.GT.zeroRL ) THEN
0088
0089 j = j + 1
0090 nj = nj-1
3b86795949 Jean*0091 CALL WRITE_REC_3D_RS( fn, fp, 1, R_shelfIce,
9952f046d7 dngo*0092 & nj, myIter, myThid )
0093 IF (j.LE.listDim) wrFldList(j) = 'R_Shelfi'
0094
0095 ENDIF
0096 #endif /* ALLOW_SHELFICE_REMESHING */
198f6904ea Dani*0097
0098
0099 nWrFlds = j
0100 IF ( nWrFlds.GT.listDim ) THEN
0101 WRITE(msgBuf,'(2A,I5,A)') 'SHELFICE_WRITE_PICKUP: ',
0102 & 'trying to write ',nWrFlds,' fields'
0103 CALL PRINT_ERROR( msgBuf, myThid )
0104 WRITE(msgBuf,'(2A,I5,A)') 'SHELFICE_WRITE_PICKUP: ',
0105 & 'field-list dimension (listDim=',listDim,') too small'
0106 CALL PRINT_ERROR( msgBuf, myThid )
0107 CALL ALL_PROC_DIE( myThid )
0108 STOP 'ABNORMAL END: S/R SHELFICE_WRITE_PICKUP (list-size Pb)'
0109 ENDIF
0110 #ifdef ALLOW_MDSIO
0111
0112 j = 1
0113 nj = ABS(nj)
0114 IF ( nWrFlds*Nr .EQ. nj ) THEN
0115 j = Nr
0116 nj = nWrFlds
0117 ENDIF
0118 glf = globalFiles
0119 timList(1) = myTime
0120 CALL MDS_WR_METAFILES( fn, fp, glf, .FALSE.,
0121 & 0, 0, j, ' ',
0122 & nWrFlds, wrFldList,
0123 & 1, timList, oneRL,
0124 & nj, myIter, myThid )
0125 #endif /* ALLOW_MDSIO */
0126
9952f046d7 dngo*0127 ENDIF
198f6904ea Dani*0128
0129 #endif /* ALLOW_SHELFICE */
0130
0131 RETURN
0132 END