@@ -56,6 +56,7 @@ PROGRAM cdfmltmask
56
56
IF ( narg == 0 ) THEN
57
57
PRINT * ,' usage : cdfmltmask -f IN-file -m MSK-file -v IN-var1,var2,... '
58
58
PRINT * ,' -p T| U | V | F | W | P [-s _Fillvalue] [-nc4] [-o OUT-file]'
59
+ PRINT * ,' [ -M MSK-var ]'
59
60
PRINT * ,' '
60
61
PRINT * ,' PURPOSE :'
61
62
PRINT * ,' Multiply IN-var(s) of IN-file by the mask corresponding to the'
@@ -71,6 +72,8 @@ PROGRAM cdfmltmask
71
72
PRINT * ,' -s _FillValue : specify values for masked areas [0 by default ]'
72
73
PRINT * ,' -nc4 : output file will be chunked and deflated'
73
74
PRINT * ,' -o OUT-file : name of output file, instead of <IN-file>_masked'
75
+ PRINT * ,' -M MSK-var : use MSK-var in the MSK-file, instead of the one defined'
76
+ PRINT * ,' by default according to the -p option. Overrid -p option.'
74
77
PRINT * ,' '
75
78
PRINT * ,' REQUIRED FILES :'
76
79
PRINT * ,' none, all are given as arguments.'
@@ -85,13 +88,16 @@ PROGRAM cdfmltmask
85
88
86
89
zspv0 = 0 .
87
90
ijarg = 1
91
+ cv_msk = ' none'
88
92
DO WHILE (ijarg <= narg)
89
93
CALL getarg (ijarg, cldum ) ; ijarg = ijarg + 1
90
94
SELECT CASE ( cldum)
91
95
CASE ( ' -f' )
92
96
CALL getarg(ijarg, cf_in ) ; ijarg = ijarg + 1
93
97
CASE ( ' -m' )
94
98
CALL getarg(ijarg, cf_msk) ; ijarg = ijarg + 1
99
+ CASE ( ' -M' )
100
+ CALL getarg(ijarg, cv_msk) ; ijarg = ijarg + 1
95
101
CASE ( ' -v' )
96
102
CALL getarg(ijarg, cldum) ; ijarg = ijarg + 1
97
103
CALL ParseVars ( cldum )
@@ -178,6 +184,7 @@ PROGRAM cdfmltmask
178
184
ALLOCATE ( zv (npiglo,npjglo) )
179
185
ALLOCATE (zvmask(npiglo,npjglo) )
180
186
187
+ IF ( cv_msk == ' none' ) THEN ! means cv_msk was not defined by -M option
181
188
SELECT CASE (TRIM (cvartype))
182
189
CASE ( ' T' )
183
190
cv_msk= ' tmask'
@@ -195,6 +202,7 @@ PROGRAM cdfmltmask
195
202
PRINT * , ' this type of variable is not known :' , TRIM (cvartype)
196
203
STOP
197
204
END SELECT
205
+ ENDIF
198
206
199
207
IF ( npkmask <= 1 ) THEN
200
208
zmask(:,:) = getvar(cf_msk, cv_msk, 1 , npiglo, npjglo)
0 commit comments