281 |
|
|
282 |
RETURN |
RETURN |
283 |
END |
END |
284 |
|
|
285 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
286 |
|
|
287 |
|
CBOP 0 |
288 |
|
C !ROUTINE: DIAGS_MK_UNITS |
289 |
|
|
290 |
|
C !INTERFACE: |
291 |
|
CHARACTER*16 FUNCTION DIAGS_MK_UNITS( |
292 |
|
I diagUnitsInPieces, myThid ) |
293 |
|
|
294 |
|
C !DESCRIPTION: |
295 |
|
C *==========================================================* |
296 |
|
C | FUNCTION DIAGS_MK_UNITS |
297 |
|
C | o Return the diagnostic units string (16c) removing |
298 |
|
C | blanks from the input string |
299 |
|
C *==========================================================* |
300 |
|
|
301 |
|
C !USES: |
302 |
|
IMPLICIT NONE |
303 |
|
#include "EEPARAMS.h" |
304 |
|
|
305 |
|
C !INPUT PARAMETERS: |
306 |
|
C diagUnitsInPieces :: string for diagnostic units: in several |
307 |
|
C pieces, with blanks in between |
308 |
|
C myThid :: my thread Id number |
309 |
|
CHARACTER*(*) diagUnitsInPieces |
310 |
|
INTEGER myThid |
311 |
|
CEOP |
312 |
|
|
313 |
|
C !LOCAL VARIABLES: |
314 |
|
CHARACTER*(MAX_LEN_MBUF) msgBuf |
315 |
|
INTEGER i,j,n |
316 |
|
|
317 |
|
DIAGS_MK_UNITS = ' ' |
318 |
|
n = LEN(diagUnitsInPieces) |
319 |
|
|
320 |
|
j = 0 |
321 |
|
DO i=1,n |
322 |
|
IF (diagUnitsInPieces(i:i) .NE. ' ' ) THEN |
323 |
|
j = j+1 |
324 |
|
IF ( j.LE.16 ) DIAGS_MK_UNITS(j:j) = diagUnitsInPieces(i:i) |
325 |
|
ENDIF |
326 |
|
ENDDO |
327 |
|
|
328 |
|
IF ( j.GT.16 ) THEN |
329 |
|
WRITE(msgBuf,'(2A,I4,A)') '**WARNING** ', |
330 |
|
& 'DIAGS_MK_UNITS: too long (',j,' >16) input string' |
331 |
|
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, |
332 |
|
& SQUEEZE_RIGHT , myThid) |
333 |
|
WRITE(msgBuf,'(3A)') '**WARNING** ', |
334 |
|
& 'DIAGS_MK_UNITS: input=', diagUnitsInPieces |
335 |
|
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, |
336 |
|
& SQUEEZE_RIGHT , myThid) |
337 |
|
ENDIF |
338 |
|
|
339 |
|
RETURN |
340 |
|
END |