1 |
C $Header: /u/gcmpack/MITgcm/pkg/rw/write_glvec_rs.F,v 1.3 2009/09/01 19:28:24 jmc Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "RW_OPTIONS.h" |
5 |
|
6 |
CBOP |
7 |
C !ROUTINE: READ_GLVEC_RS |
8 |
C !INTERFACE: |
9 |
SUBROUTINE READ_GLVEC_RS( |
10 |
I pref, suff, |
11 |
O array, |
12 |
I sizArr, iRec, myThid ) |
13 |
|
14 |
C !DESCRIPTION: |
15 |
C READ_GLVEC_RS |
16 |
C is a "front-end" interface to the low-level MDS I/O routines. |
17 |
C Reads a global (=tile independent) vector. |
18 |
|
19 |
C !USES: |
20 |
IMPLICIT NONE |
21 |
|
22 |
C == Global Variables |
23 |
#include "SIZE.h" |
24 |
#include "EEPARAMS.h" |
25 |
#include "PARAMS.h" |
26 |
|
27 |
C !INPUT PARAMETERS: |
28 |
CHARACTER*(*) pref,suff |
29 |
INTEGER sizArr |
30 |
_RS array(sizArr) |
31 |
INTEGER iRec |
32 |
INTEGER myThid |
33 |
|
34 |
C !FUNCTIONS: |
35 |
INTEGER ILNBLNK, IFNBLNK |
36 |
EXTERNAL ILNBLNK, IFNBLNK |
37 |
|
38 |
C !LOCAL VARIABLES: |
39 |
_RL dummyRL(1) |
40 |
CHARACTER*(2) fType |
41 |
INTEGER ioUnit, bi, bj |
42 |
INTEGER s1Lo,s1Hi,s2Lo,s2Hi |
43 |
CHARACTER*(MAX_LEN_FNAM) fullName |
44 |
CEOP |
45 |
|
46 |
C-- Build file name |
47 |
C Name has form 'prefix.suffix' |
48 |
C e.g. U.0000000100 |
49 |
s1Lo = IFNBLNK(pref) |
50 |
s1Hi = ILNBLNK(pref) |
51 |
IF ( suff .EQ. ' ' ) THEN |
52 |
WRITE( fullName, '(A)' ) pref(s1Lo:s1Hi) |
53 |
ELSE |
54 |
s2Lo = IFNBLNK(suff) |
55 |
s2Hi = ILNBLNK(suff) |
56 |
WRITE( fullName, '(A,A)' ) pref(s1Lo:s1Hi),suff(s2Lo:s2Hi) |
57 |
ENDIF |
58 |
|
59 |
ioUnit = 0 |
60 |
fType ='RS' |
61 |
bi = 0 |
62 |
bj = 0 |
63 |
#ifdef ALLOW_MDSIO |
64 |
CALL MDS_READVEC_LOC( |
65 |
& fullName, readBinaryPrec, ioUnit, |
66 |
& fType, sizArr, dummyRL, array, |
67 |
I bi, bj, iRec, myThid ) |
68 |
#else |
69 |
STOP 'ABNORMAL END: S/R READ_GLVEC_RS needs MDSIO pkg' |
70 |
#endif |
71 |
|
72 |
RETURN |
73 |
END |