Changeset 410 for palm/trunk/SOURCE/check_open.f90
- Timestamp:
- Dec 4, 2009 5:05:40 PM (14 years ago)
- Location:
- palm/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk
-
Property
svn:mergeinfo
set to
False
/palm/branches/letzel/masked_output 296-409
-
Property
svn:mergeinfo
set to
False
-
palm/trunk/SOURCE/check_open.f90
r392 r410 5 5 ! ----------------- 6 6 ! 7 ! 8 ! Branch revisions: 9 ! ----------------- 10 ! masked data output 7 11 ! 8 12 ! Former revisions: … … 60 64 IMPLICIT NONE 61 65 62 CHARACTER (LEN=2) :: suffix66 CHARACTER (LEN=2) :: mask_char, suffix 63 67 CHARACTER (LEN=20) :: xtext = 'time in s' 64 68 CHARACTER (LEN=30) :: filename … … 123 127 124 128 CASE ( 15, 16, 17, 18, 19, 40:49, 50:59, 81:84, 101:107, 109, 111:113, & 125 116 ) 129 116, 121:160 ) 130 131 IF ( .NOT. format_parallel_io) THEN 126 132 127 IF ( myid /= 0 ) THEN 128 WRITE( message_string, * ) 'opening file-id ',file_id, & 129 ' not allowed for PE ',myid 130 CALL message( 'check_open', 'PA0167', 2, 2, -1, 6, 1 ) 131 ENDIF 133 IF ( myid /= 0 ) THEN 134 WRITE( message_string, * ) 'opening file-id ',file_id, & 135 ' not allowed for PE ',myid 136 CALL message( 'check_open', 'PA0167', 2, 2, -1, 6, 1 ) 137 ENDIF 138 139 ENDIF 132 140 133 141 CASE ( 21, 22, 23 ) … … 1233 1241 1234 1242 ENDIF 1243 1244 CASE ( 121:160 ) 1245 ! 1246 !-- Set filename depending on unit number 1247 IF ( file_id <= 140 ) THEN 1248 mid = file_id - 120 1249 WRITE ( mask_char,'(I2.2)') mid 1250 filename = 'DATA_MASK_' // mask_char // '_NETCDF' // coupling_char 1251 av = 0 1252 ELSE 1253 mid = file_id - 140 1254 WRITE ( mask_char,'(I2.2)') mid 1255 filename = 'DATA_MASK_' // mask_char // '_AV_NETCDF' // & 1256 coupling_char 1257 av = 1 1258 ENDIF 1259 ! 1260 !-- Inquire, if there is a NetCDF file from a previuos run. This should 1261 !-- be opened for extension, if its dimensions and variables match the 1262 !-- actual run. 1263 INQUIRE( FILE=filename, EXIST=netcdf_extend ) 1264 1265 IF ( netcdf_extend ) THEN 1266 ! 1267 !-- Open an existing NetCDF file for output 1268 #if defined( __netcdf4 ) 1269 nc_stat = NF90_OPEN_PAR( filename, NF90_WRITE, comm2d, & 1270 MPI_INFO_NULL, id_set_mask(mid,av) ) 1235 1271 #else 1236 1237 CASE ( 101:109, 111:113, 116 ) 1272 nc_stat = NF90_OPEN( filename, NF90_WRITE, id_set_mask(mid,av) ) 1273 #endif 1274 CALL handle_netcdf_error( 'check_open', 9998 ) 1275 ! 1276 !-- Read header information and set all ids. If there is a mismatch 1277 !-- between the previuos and the actual run, netcdf_extend is returned 1278 !-- as .FALSE. 1279 CALL define_netcdf_header( 'ma', netcdf_extend, file_id ) 1280 1281 ! 1282 !-- Remove the local file, if it can not be extended 1283 IF ( .NOT. netcdf_extend ) THEN 1284 nc_stat = NF90_CLOSE( id_set_mask(mid,av) ) 1285 CALL handle_netcdf_error( 'check_open', 9998 ) 1286 CALL local_system('rm ' // TRIM( filename ) ) 1287 ENDIF 1288 1289 ENDIF 1290 1291 IF ( .NOT. netcdf_extend ) THEN 1292 ! 1293 !-- Create a new NetCDF output file 1294 SELECT CASE ( nc_format_mask(mid,av) ) 1295 1296 CASE ( 1 ) 1297 nc_stat = NF90_CREATE( filename, NF90_NOCLOBBER, & 1298 id_set_mask(mid,av) ) 1299 1300 CASE ( 2 ) 1301 #if defined( __netcdf_64bit ) 1302 nc_stat = NF90_CREATE( filename, OR( NF90_NOCLOBBER, & 1303 NF90_64BIT_OFFSET ), id_set_mask(mid,av) ) 1304 #else 1305 WRITE( message_string, * ) 'NetCDF: no 64-bit ', & 1306 'offset format allowed on this machine' 1307 CALL message( 'check_open', 'PA9998', 0, 1, 0, 6, 0 ) 1308 nc_stat = NF90_CREATE( filename, NF90_NOCLOBBER, & 1309 id_set_mask(mid,av) ) 1310 #endif 1311 1312 CASE ( 3 ) 1313 #if defined( __netcdf4 ) 1314 nc_stat = NF90_CREATE_PAR( filename, OR( NF90_NOCLOBBER, & 1315 NF90_NETCDF4 ), comm2d, MPI_INFO_NULL, & 1316 id_set_mask(mid,av) ) 1317 #else 1318 WRITE( message_string, * ) 'NetCDF: no NetCDF 4 ', & 1319 'format allowed on this machine' 1320 CALL message( 'check_open', 'PA9998', 0, 1, 0, 6, 0 ) 1321 nc_stat = NF90_CREATE( filename, NF90_NOCLOBBER, & 1322 id_set_mask(mid,av) ) 1323 #endif 1324 1325 CASE ( 4 ) 1326 #if defined( __netcdf4 ) 1327 nc_stat = NF90_CREATE_PAR( filename, OR( NF90_NOCLOBBER, & 1328 NF90_CLASSIC_MODEL ), comm2d, & 1329 MPI_INFO_NULL, id_set_mask(mid,av) ) 1330 #else 1331 WRITE( message_string, * ) 'NetCDF: no NetCDF 4 (Classic ', & 1332 'model) format allowed on this machine' 1333 CALL message( 'check_open', 'PA9998', 0, 1, 0, 6, 0 ) 1334 nc_stat = NF90_CREATE( filename, NF90_NOCLOBBER, & 1335 id_set_mask(mid,av) ) 1336 #endif 1337 1338 CASE DEFAULT 1339 WRITE( message_string, * ) 'illegal NetCDF file format: ', & 1340 'nc_format_mask(mid=',mid,',av=',av,')=', & 1341 nc_format_mask(mid,av) 1342 CALL message( 'check_open', 'PA9998', 2, 2, 0, 6, 0 ) 1343 1344 END SELECT 1345 CALL handle_netcdf_error( 'check_open', 9998 ) 1346 ! 1347 !-- Define the header 1348 CALL define_netcdf_header( 'ma', netcdf_extend, file_id ) 1349 1350 ENDIF 1351 1352 1353 #else 1354 1355 CASE ( 101:109, 111:113, 116, 121:160 ) 1238 1356 1239 1357 !
Note: See TracChangeset
for help on using the changeset viewer.