- Timestamp:
- 2018-09-12T15:59:13+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2018/dev_r5003_MERCATOR6_CRS/NEMOGCM/TOOLS/SIREN/src/iom_cdf.f90
r7261 r10115 316 316 !> @author J.Paul 317 317 !> @date November, 2013 - Initial Version 318 !> @date October, 2016 319 !> - define cdf4 as cdf. 318 320 ! 319 321 !> @param[inout] td_file file structure … … 340 342 td_file%c_type='cdf' 341 343 CASE(nf90_format_netcdf4, nf90_format_netcdf4_classic) 342 td_file%c_type='cdf4' 344 !td_file%c_type='cdf4' 345 td_file%c_type='cdf' 343 346 END SELECT 347 CALL logger_debug("IOM CDF GET INFO: type "//TRIM(td_file%c_type)) 344 348 345 349 ! record header infos … … 351 355 !> reorder dimension to ('x', 'y', 'z', 't'). 352 356 !> The dimension structure inside file structure is then completed. 353 ! 354 !> @author J.Paul 355 !> @date November, 2013 - Initial Version 356 ! 357 !> 358 !> @author J.Paul 359 !> @date November, 2013 - Initial Version 360 !> @date October, 2016 361 !> - check unknown dimension 362 !> 357 363 !> @param[inout] td_file file structure 358 364 !------------------------------------------------------------------- … … 375 381 376 382 IF( td_file%i_ndim > 0 )THEN 383 377 384 ii=1 378 385 DO ji = 1, td_file%i_ndim 379 386 ! read dimension information 380 387 tl_dim=iom_cdf_read_dim( td_file, ji) 381 IF( .NOT. dim_is_dummy(tl_dim) )THEN 388 ! sname == 'u' if dimension is unknown (not to be used) 389 IF( TRIM(tl_dim%c_sname) /= 'u' )THEN 382 390 IF( ii > ip_maxdim )THEN 383 391 CALL logger_fatal("IOM CDF OPEN: too much dimension "//& 384 & "to be read. you should remove dummy dimension using"//&392 & "to be read. you could choose dimension to be used. see "//& 385 393 & " configuration file") 386 394 ENDIF … … 395 403 & " IOM CDF GET FILE DIM: there is no unlimited dimension in file "//& 396 404 & TRIM(td_file%c_name)) 397 ELSE398 td_file%t_dim( td_file%i_uldid )%l_uld=.TRUE.405 !ELSE 406 ! td_file%t_dim( td_file%i_uldid )%l_uld=.TRUE. 399 407 ENDIF 400 408 … … 466 474 !> The variable structure inside file structure is then completed. 467 475 !> @note variable value are not read ! 468 ! 476 !> 469 477 !> @author J.Paul 470 478 !> @date November, 2013 - Initial Version … … 473 481 !> @date January, 2016 474 482 !> - increment n3d for 4D variable 475 ! 483 !> @date October, 2016 484 !> - check variable to be used (variable's dimension allowed and variable 485 !> not "dummy") 486 !> 476 487 !> @param[inout] td_file file structure 477 488 !------------------------------------------------------------------- … … 501 512 il_nvar=td_file%i_nvar 502 513 ALLOCATE(tl_var(il_nvar)) 503 ii=0504 514 DO ji = 1, il_nvar 505 515 ! read variable information 506 516 tl_var(ji)=iom_cdf__read_var_meta( td_file, ji) 507 IF( .NOT. var_is_dummy(tl_var(ji)) )THEN508 ii=ii+1509 ENDIF510 517 ENDDO 511 518 512 519 ! update number of variable used 513 td_file%i_nvar= ii520 td_file%i_nvar=COUNT(tl_var(:)%l_use) 514 521 515 522 ALLOCATE(td_file%t_var(td_file%i_nvar)) … … 517 524 ii=0 518 525 DO ji = 1, il_nvar 519 IF( .NOT. var_is_dummy(tl_var(ji)))THEN526 IF( tl_var(ji)%l_use )THEN 520 527 ii=ii+1 521 528 td_file%t_var(ii)=var_copy(tl_var(ji)) … … 552 559 td_file%i_timeid=ji 553 560 ELSE 561 IF( td_file%i_timeid /= ji )THEN 562 CALL logger_warn("IOM CDF GET FILE VAR: find more "//& 563 & "than one time variable in file "//& 564 & TRIM(td_file%c_name)//". see "//& 565 & "dummy.cfg configuration file to"//& 566 & " not used dummy variables.") 567 ENDIF 554 568 il_attid=0 555 569 IF( ASSOCIATED(td_file%t_var(ii)%t_att) )THEN … … 558 572 IF( il_attid /= 0 )THEN 559 573 td_file%i_timeid=ji 560 !ELSE561 ! CALL logger_error("IOM CDF GET FILE VAR: find more "//&562 ! & "than one time variable in file "//&563 ! & TRIM(td_file%c_name) )564 574 ENDIF 565 575 ENDIF … … 652 662 & " IOM CDF READ DIM: no id associated to file "//TRIM(td_file%c_name)) 653 663 654 ELSE 664 ELSE 655 665 656 666 CALL logger_trace( & … … 723 733 !> @author J.Paul 724 734 !> @date November, 2013 - Initial Version 735 !> @date November 2017 736 !> - check if cl_value is not bug 725 737 ! 726 738 !> @param[in] td_file file structure … … 793 805 794 806 CASE(NF90_CHAR) 807 CALL logger_debug( " IOM CDF READ ATT: get NF90_CHAR ") 795 808 796 809 ! check string lengths … … 809 822 CALL iom_cdf__check(il_status,"IOM CDF READ ATT: ") 810 823 824 ! check cl_value 825 IF( LLT(cl_value,'') ) cl_value = '' 811 826 iom_cdf__read_att_name=att_init(cl_name, cl_value) 812 827 … … 814 829 815 830 CASE(NF90_BYTE) 831 CALL logger_debug( " IOM CDF READ ATT: get NF90_BYTE ") 816 832 817 833 ALLOCATE( bl_value( il_len), & … … 837 853 838 854 CASE(NF90_SHORT) 855 CALL logger_debug( " IOM CDF READ ATT: get NF90_SHORT ") 839 856 840 857 ALLOCATE( sl_value( il_len), & … … 861 878 862 879 CASE(NF90_INT) 880 CALL logger_debug( " IOM CDF READ ATT: get NF90_INT ") 863 881 864 882 ALLOCATE( il_value( il_len), & … … 884 902 885 903 CASE(NF90_FLOAT) 904 CALL logger_debug( " IOM CDF READ ATT: get NF90_FLOAT ") 886 905 887 906 ALLOCATE( fl_value( il_len), & … … 908 927 909 928 CASE(NF90_DOUBLE) 929 CALL logger_debug( " IOM CDF READ ATT: get NF90_DOUBLE ") 910 930 911 931 ALLOCATE( dl_value( il_len), & … … 1413 1433 ENDDO 1414 1434 1435 !! check if variable is dummy 1436 IF( var_is_dummy(iom_cdf__read_var_meta) )THEN 1437 iom_cdf__read_var_meta%l_use=.FALSE. 1438 ENDIF 1439 1440 !! check if all dimensions are allowed 1441 DO ji=1,il_ndim 1442 IF( ALL(td_file%t_dim(:)%i_id /= il_dimid(ji)) )THEN 1443 iom_cdf__read_var_meta%l_use=.FALSE. 1444 ENDIF 1445 ENDDO 1446 1415 1447 ! clean 1416 1448 CALL dim_clean(tl_dim(:)) … … 1484 1516 ELSE IF( id_ndim > 0 )THEN 1485 1517 1486 1487 1518 ii=1 1488 1519 DO ji = 1, id_ndim 1489 1520 1490 ! !! check no dummy dimension to be used1521 ! check if dimension to be used, is allowed 1491 1522 IF( ANY(td_file%t_dim(:)%i_id == id_dimid(ji)) )THEN 1492 1523 IF( ii > ip_maxdim )THEN … … 1504 1535 tl_dim(ii) = dim_init( td_file%t_dim(il_xyzt2(ii))%c_name, & 1505 1536 & td_file%t_dim(il_xyzt2(ii))%i_len ) 1506 1537 1507 1538 ii=ii+1 1508 1539 ELSE … … 2080 2111 & 'gcost','gcosu','gcosv','gcosf', & 2081 2112 & 'gsint','gsinu','gsinv','gsinf', & 2082 & 'mbathy','misf','isf_draft', &2113 & 'mbathy','misf','isf_draft','isfdraft', & 2083 2114 & 'hbatt','hbatu','hbatv','hbatf', & 2084 2115 & 'gsigt','gsigu','gsigv','gsigf', & … … 2189 2220 CALL iom_cdf__check(il_status,"IOM CDF WRITE VAR DEF: ") 2190 2221 ENDIF 2222 CALL logger_debug("IOM CDF WRITE VAR DEF: type = "//TRIM(fct_str(tl_var%i_type))) 2191 2223 2192 2224 ! remove unuseful attribute
Note: See TracChangeset
for help on using the changeset viewer.