- Timestamp:
- 2017-11-30T16:58:49+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/TOOLS/SIREN/src/iom_cdf.f90
r7372 r8862 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) 344 !td_file%c_type='cdf4' 342 345 td_file%c_type='cdf' 343 !td_file%c_type='cdf4'344 346 END SELECT 345 347 CALL logger_debug("IOM CDF GET INFO: type "//TRIM(td_file%c_type)) … … 353 355 !> reorder dimension to ('x', 'y', 'z', 't'). 354 356 !> The dimension structure inside file structure is then completed. 355 ! 356 !> @author J.Paul 357 !> @date November, 2013 - Initial Version 358 ! 357 !> 358 !> @author J.Paul 359 !> @date November, 2013 - Initial Version 360 !> @date October, 2016 361 !> - check unknown dimension 362 !> 359 363 !> @param[inout] td_file file structure 360 364 !------------------------------------------------------------------- … … 377 381 378 382 IF( td_file%i_ndim > 0 )THEN 383 379 384 ii=1 380 385 DO ji = 1, td_file%i_ndim 381 386 ! read dimension information 382 387 tl_dim=iom_cdf_read_dim( td_file, ji) 383 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 384 390 IF( ii > ip_maxdim )THEN 385 391 CALL logger_fatal("IOM CDF OPEN: too much dimension "//& 386 & "to be read. you should remove dummy dimension using"//&392 & "to be read. you could choose dimension to be used. see "//& 387 393 & " configuration file") 388 394 ENDIF … … 397 403 & " IOM CDF GET FILE DIM: there is no unlimited dimension in file "//& 398 404 & TRIM(td_file%c_name)) 399 ELSE400 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. 401 407 ENDIF 402 408 … … 468 474 !> The variable structure inside file structure is then completed. 469 475 !> @note variable value are not read ! 470 ! 476 !> 471 477 !> @author J.Paul 472 478 !> @date November, 2013 - Initial Version … … 475 481 !> @date January, 2016 476 482 !> - increment n3d for 4D variable 477 ! 483 !> @date October, 2016 484 !> - check variable to be used (variable's dimension allowed and variable 485 !> not "dummy") 486 !> 478 487 !> @param[inout] td_file file structure 479 488 !------------------------------------------------------------------- … … 503 512 il_nvar=td_file%i_nvar 504 513 ALLOCATE(tl_var(il_nvar)) 505 ii=0506 514 DO ji = 1, il_nvar 507 515 ! read variable information 508 516 tl_var(ji)=iom_cdf__read_var_meta( td_file, ji) 509 IF( .NOT. var_is_dummy(tl_var(ji)) )THEN510 ii=ii+1511 ENDIF512 517 ENDDO 513 518 514 519 ! update number of variable used 515 td_file%i_nvar= ii520 td_file%i_nvar=COUNT(tl_var(:)%l_use) 516 521 517 522 ALLOCATE(td_file%t_var(td_file%i_nvar)) … … 519 524 ii=0 520 525 DO ji = 1, il_nvar 521 IF( .NOT. var_is_dummy(tl_var(ji)))THEN526 IF( tl_var(ji)%l_use )THEN 522 527 ii=ii+1 523 528 td_file%t_var(ii)=var_copy(tl_var(ji)) … … 554 559 td_file%i_timeid=ji 555 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 556 568 il_attid=0 557 569 IF( ASSOCIATED(td_file%t_var(ii)%t_att) )THEN … … 560 572 IF( il_attid /= 0 )THEN 561 573 td_file%i_timeid=ji 562 !ELSE563 ! CALL logger_error("IOM CDF GET FILE VAR: find more "//&564 ! & "than one time variable in file "//&565 ! & TRIM(td_file%c_name) )566 574 ENDIF 567 575 ENDIF … … 654 662 & " IOM CDF READ DIM: no id associated to file "//TRIM(td_file%c_name)) 655 663 656 ELSE 664 ELSE 657 665 658 666 CALL logger_trace( & … … 725 733 !> @author J.Paul 726 734 !> @date November, 2013 - Initial Version 735 !> @date November 2017 736 !> - check if cl_value is not bug 727 737 ! 728 738 !> @param[in] td_file file structure … … 795 805 796 806 CASE(NF90_CHAR) 807 CALL logger_debug( " IOM CDF READ ATT: get NF90_CHAR ") 797 808 798 809 ! check string lengths … … 811 822 CALL iom_cdf__check(il_status,"IOM CDF READ ATT: ") 812 823 824 ! check cl_value 825 IF( LLT(cl_value,'') ) cl_value = '' 813 826 iom_cdf__read_att_name=att_init(cl_name, cl_value) 814 827 … … 816 829 817 830 CASE(NF90_BYTE) 831 CALL logger_debug( " IOM CDF READ ATT: get NF90_BYTE ") 818 832 819 833 ALLOCATE( bl_value( il_len), & … … 839 853 840 854 CASE(NF90_SHORT) 855 CALL logger_debug( " IOM CDF READ ATT: get NF90_SHORT ") 841 856 842 857 ALLOCATE( sl_value( il_len), & … … 863 878 864 879 CASE(NF90_INT) 880 CALL logger_debug( " IOM CDF READ ATT: get NF90_INT ") 865 881 866 882 ALLOCATE( il_value( il_len), & … … 886 902 887 903 CASE(NF90_FLOAT) 904 CALL logger_debug( " IOM CDF READ ATT: get NF90_FLOAT ") 888 905 889 906 ALLOCATE( fl_value( il_len), & … … 910 927 911 928 CASE(NF90_DOUBLE) 929 CALL logger_debug( " IOM CDF READ ATT: get NF90_DOUBLE ") 912 930 913 931 ALLOCATE( dl_value( il_len), & … … 1415 1433 ENDDO 1416 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 1417 1447 ! clean 1418 1448 CALL dim_clean(tl_dim(:)) … … 1486 1516 ELSE IF( id_ndim > 0 )THEN 1487 1517 1488 1489 1518 ii=1 1490 1519 DO ji = 1, id_ndim 1491 1520 1492 ! !! check no dummy dimension to be used1521 ! check if dimension to be used, is allowed 1493 1522 IF( ANY(td_file%t_dim(:)%i_id == id_dimid(ji)) )THEN 1494 1523 IF( ii > ip_maxdim )THEN … … 1506 1535 tl_dim(ii) = dim_init( td_file%t_dim(il_xyzt2(ii))%c_name, & 1507 1536 & td_file%t_dim(il_xyzt2(ii))%i_len ) 1508 1537 1509 1538 ii=ii+1 1510 1539 ELSE … … 2082 2111 & 'gcost','gcosu','gcosv','gcosf', & 2083 2112 & 'gsint','gsinu','gsinv','gsinf', & 2084 & 'mbathy','misf','isf_draft', &2113 & 'mbathy','misf','isf_draft','isfdraft', & 2085 2114 & 'hbatt','hbatu','hbatv','hbatf', & 2086 2115 & 'gsigt','gsigu','gsigv','gsigf', & … … 2191 2220 CALL iom_cdf__check(il_status,"IOM CDF WRITE VAR DEF: ") 2192 2221 ENDIF 2222 CALL logger_debug("IOM CDF WRITE VAR DEF: type = "//TRIM(fct_str(tl_var%i_type))) 2193 2223 2194 2224 ! remove unuseful attribute
Note: See TracChangeset
for help on using the changeset viewer.