- Timestamp:
- 2018-10-29T15:20:26+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/TOOLS/SIREN/src/file.f90
r10248 r10251 137 137 !> J.Paul 138 138 ! REVISION HISTORY: 139 !> @date November, 2013 - Initial Version 140 !> @date November, 2014 141 !> - Fix memory leaks bug 139 !> @date November, 2013- Initial Version 140 !> @date November, 2014 - Fix memory leaks bug 142 141 !> 143 142 !> @note Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 289 288 !> 290 289 !> @author J.Paul 291 !> @date November, 2013- Initial Version290 !> - November, 2013- Initial Version 292 291 !> @date November, 2014 293 !> - use function instead of overload assignment operator292 !> - use function instead of overload assignment operator 294 293 !> (to avoid memory leak) 295 294 ! … … 410 409 !> 411 410 !> @author J.Paul 412 !> @date November, 2013- Initial Version411 !> - November, 2013- Initial Version 413 412 !> @date November, 2014 414 !> - use function instead of overload assignment operator413 !> - use function instead of overload assignment operator 415 414 !> (to avoid memory leak) 416 415 ! … … 449 448 ! 450 449 !> @author J.Paul 451 !> @date November, 2013- Initial Version450 !> - November, 2013- Initial Version 452 451 ! 453 452 !> @param[in] cd_file file name … … 554 553 ! 555 554 !> @author J.Paul 556 !> @date November, 2013- Initial Version555 !> - November, 2013- Initial Version 557 556 ! 558 557 !> @param[in] cd_file file name … … 590 589 ! 591 590 !> @author J.Paul 592 !> @date November, 2013- Initial Version591 !> - November, 2013- Initial Version 593 592 ! 594 593 !> @param[in] td_file file structure … … 605 604 CHARACTER(LEN=lc) :: cl_dim 606 605 LOGICAL :: ll_error 607 LOGICAL :: ll_warn 608 609 INTEGER(i4) :: il_ind 606 607 INTEGER(i4) :: il_ind 610 608 611 609 ! loop indices … … 616 614 ! check used dimension 617 615 ll_error=.FALSE. 618 ll_warn=.FALSE.619 616 DO ji=1,ip_maxdim 620 617 il_ind=dim_get_index( td_file%t_dim(:), & … … 622 619 & TRIM(td_var%t_dim(ji)%c_sname)) 623 620 IF( il_ind /= 0 )THEN 624 IF( td_var%t_dim(ji)%l_use .AND. & 625 & td_file%t_dim(il_ind)%l_use .AND. & 626 & td_var%t_dim(ji)%i_len /= td_file%t_dim(il_ind)%i_len )THEN 627 IF( INDEX( TRIM(td_var%c_axis), & 628 & TRIM(fct_upper(td_var%t_dim(ji)%c_name))) == 0 )THEN 629 ll_warn=.TRUE. 630 ELSE 631 ll_error=.TRUE. 632 ENDIF 633 ENDIF 621 IF( td_var%t_dim(ji)%l_use .AND. & 622 & td_file%t_dim(il_ind)%l_use .AND. & 623 & td_var%t_dim(ji)%i_len /= td_file%t_dim(il_ind)%i_len )THEN 624 ll_error=.TRUE. 625 ENDIF 634 626 ENDIF 635 627 ENDDO 636 628 637 629 IF( ll_error )THEN 630 631 file_check_var_dim=.FALSE. 632 633 CALL logger_error( & 634 & " FILE CHECK VAR DIM: variable and file dimension differ"//& 635 & " for variable "//TRIM(td_var%c_name)//& 636 & " and file "//TRIM(td_file%c_name)) 637 638 638 639 639 cl_dim='(/' … … 659 659 CALL logger_debug( " variable dimension: "//TRIM(cl_dim) ) 660 660 661 file_check_var_dim=.FALSE.662 663 CALL logger_error( &664 & " FILE CHECK VAR DIM: variable and file dimension differ"//&665 & " for variable "//TRIM(td_var%c_name)//&666 & " and file "//TRIM(td_file%c_name))667 668 ELSEIF( ll_warn )THEN669 CALL logger_warn( &670 & " FILE CHECK VAR DIM: variable and file dimension differ"//&671 & " for variable "//TRIM(td_var%c_name)//&672 & " and file "//TRIM(td_file%c_name)//". you should use"//&673 & " var_check_dim to remove useless dimension.")674 661 ELSE 675 662 … … 692 679 ! 693 680 !> @author J.Paul 694 !> @date November, 2013- Initial Version681 !> - November, 2013- Initial Version 695 682 !> @date September, 2014 696 683 !> - add dimension to file if need be … … 720 707 IF( TRIM(td_file%c_name) == '' )THEN 721 708 709 CALL logger_error( " FILE ADD VAR: structure file unknown" ) 722 710 CALL logger_debug( " FILE ADD VAR: you should have used file_init before "//& 723 711 & "running file_add_var" ) 724 CALL logger_error( " FILE ADD VAR: structure file unknown" )725 712 726 713 ELSE … … 736 723 & td_var%c_stdname ) 737 724 ENDIF 738 CALL logger_debug( & 739 & " FILE ADD VAR: ind "//TRIM(fct_str(il_ind)) ) 725 740 726 IF( il_ind /= 0 )THEN 741 727 … … 753 739 ELSE 754 740 755 CALL logger_ debug( &741 CALL logger_trace( & 756 742 & " FILE ADD VAR: add variable "//TRIM(td_var%c_name)//& 757 743 & ", standard name "//TRIM(td_var%c_stdname)//& … … 784 770 !il_rec=td_file%t_dim(3)%i_len 785 771 END SELECT 772 CALL logger_info( & 773 & " FILE ADD VAR: variable index "//TRIM(fct_str(il_ind))) 786 774 787 775 IF( td_file%i_nvar > 0 )THEN … … 818 806 ENDIF 819 807 820 IF( il_ind < td_file%i_nvar +1)THEN808 IF( il_ind < td_file%i_nvar )THEN 821 809 ! variable with more dimension than new variable 822 810 td_file%t_var( il_ind+1 : td_file%i_nvar+1 ) = & … … 905 893 ! 906 894 !> @author J.Paul 907 !> @date November, 2013 - Initial Version 908 !> @date February, 2015 909 !> - define local variable structure to avoid mistake with pointer 895 !> - November, 2013- Initial Version 910 896 ! 911 897 !> @param[inout] td_file file structure … … 921 907 ! local variable 922 908 INTEGER(i4) :: il_ind 923 TYPE(TVAR) :: tl_var924 909 !---------------------------------------------------------------- 925 910 … … 943 928 IF( il_ind /= 0 )THEN 944 929 945 tl_var=var_copy(td_file%t_var(il_ind)) 946 CALL file_del_var(td_file, tl_var) 930 CALL file_del_var(td_file, td_file%t_var(il_ind)) 947 931 948 932 ELSE 949 933 950 CALL logger_ debug( &934 CALL logger_warn( & 951 935 & " FILE DEL VAR NAME: there is no variable with name or "//& 952 936 & "standard name "//TRIM(cd_name)//" in file "//& … … 969 953 !> 970 954 !> @author J.Paul 971 !> @date November, 2013- Initial Version955 !> - November, 2013- Initial Version 972 956 !> 973 957 !> @param[inout] td_file file structure … … 1112 1096 ! 1113 1097 !> @author J.Paul 1114 !> @date November, 2013- Initial Version1098 !> - November, 2013- Initial Version 1115 1099 ! 1116 1100 !> @param[inout] td_file file structure … … 1147 1131 ! 1148 1132 !> @author J.Paul 1149 !> @date November, 2013- Initial Version1133 !> - November, 2013- Initial Version 1150 1134 ! 1151 1135 !> @param[inout] td_file file structure … … 1263 1247 ! 1264 1248 !> @author J.Paul 1265 !> @date November, 2013 - Initial Version 1266 !> @date February, 2015 1267 !> - define local attribute structure to avoid mistake 1268 !> with pointer 1249 !> - November, 2013- Initial Version 1269 1250 ! 1270 1251 !> @param[inout] td_file file structure … … 1280 1261 ! local variable 1281 1262 INTEGER(i4) :: il_ind 1282 TYPE(TATT) :: tl_att1283 1263 !---------------------------------------------------------------- 1284 1264 … … 1302 1282 IF( il_ind /= 0 )THEN 1303 1283 1304 tl_att=att_copy(td_file%t_att(il_ind)) 1305 CALL file_del_att(td_file, tl_att) 1284 CALL file_del_att(td_file, td_file%t_att(il_ind)) 1306 1285 1307 1286 ELSE 1308 1287 1309 CALL logger_ debug( &1288 CALL logger_warn( & 1310 1289 & " FILE DEL ATT NAME: there is no attribute with name "//& 1311 1290 & TRIM(cd_name)//" in file "//TRIM(td_file%c_name)) … … 1326 1305 ! 1327 1306 !> @author J.Paul 1328 !> @date November, 2013- Initial Version1307 !> - November, 2013- Initial Version 1329 1308 ! 1330 1309 !> @param[inout] td_file file structure … … 1424 1403 ! 1425 1404 !> @author J.Paul 1426 !> @date November, 2013- Initial Version1405 !> - November, 2013- Initial Version 1427 1406 ! 1428 1407 !> @param[inout] td_file file structure … … 1465 1444 ! 1466 1445 !> @author J.Paul 1467 !> @date November, 2013- Initial Version1446 !> - November, 2013- Initial Version 1468 1447 !> @date September, 2014 1469 1448 !> - do not reorder dimension, before put in file … … 1550 1529 !> 1551 1530 !> @author J.Paul 1552 !> @date November, 2013- Initial Version1531 !> - November, 2013- Initial Version 1553 1532 ! 1554 1533 !> @param[inout] td_file file structure … … 1630 1609 ! 1631 1610 !> @author J.Paul 1632 !> @date November, 2013- Initial Version1611 !> - November, 2013- Initial Version 1633 1612 ! 1634 1613 !> @param[inout] td_file file structure … … 1673 1652 ! 1674 1653 !> @author J.Paul 1675 !> @date November, 2013- Initial Version1654 !> - November, 2013- Initial Version 1676 1655 ! 1677 1656 !> @param[in] td_file file structure … … 1738 1717 WRITE(*,'(/a)') " File variable" 1739 1718 DO ji=1,td_file%i_nvar 1740 CALL var_print(td_file%t_var(ji) ,.FALSE.)1719 CALL var_print(td_file%t_var(ji))!,.FALSE.) 1741 1720 ENDDO 1742 1721 ENDIF … … 1751 1730 ! 1752 1731 !> @author J.Paul 1753 !> @date November, 2013- Initial Version1732 !> - November, 2013- Initial Version 1754 1733 ! 1755 1734 !> @param[in] cd_file file structure … … 1790 1769 ! 1791 1770 !> @author J.Paul 1792 !> @date November, 2013 - Initial Version 1793 !> @date February, 2015 1794 !> - add case to not return date (yyyymmdd) at the end of filename 1795 !> @date February, 2015 1796 !> - add case to not return release number 1797 !> we assume release number only on one digit (ex : file_v3.5.nc) 1771 !> - November, 2013- Initial Version 1798 1772 ! 1799 1773 !> @param[in] cd_file file name (without suffix) … … 1829 1803 IF( .NOT. fct_is_num(file__get_number(2:)) )THEN 1830 1804 file__get_number='' 1831 ELSEIF( LEN(TRIM(file__get_number))-1 == 8 )THEN1832 ! date case yyyymmdd1833 file__get_number=''1834 ELSEIF( LEN(TRIM(file__get_number))-1 == 1 )THEN1835 ! release number case1836 file__get_number=''1837 1805 ENDIF 1838 1806 ELSE … … 1848 1816 ! 1849 1817 !> @author J.Paul 1850 !> @date November, 2013- Initial Version1818 !> - November, 2013- Initial Version 1851 1819 ! 1852 1820 !> @param[in] td_file file structure … … 1911 1879 ! 1912 1880 !> @author J.Paul 1913 !> @date November, 2013- Initial Version1881 !> - November, 2013- Initial Version 1914 1882 ! 1915 1883 !> @param[in] td_file file structure … … 1938 1906 ! 1939 1907 !> @author J.Paul 1940 !> @date November, 2013- Initial Version1908 !> - November, 2013- Initial Version 1941 1909 ! 1942 1910 !> @param[in] td_file file structure … … 2051 2019 ! 2052 2020 !> @author J.Paul 2053 !> @date November, 2013- Initial Version2021 !> - November, 2013- Initial Version 2054 2022 ! 2055 2023 !> @param[in] td_file array of file structure … … 2089 2057 !> 2090 2058 !> @author J.Paul 2091 !> @date September, 2014- Initial Version2059 !> - September, 2014- Initial Version 2092 2060 ! 2093 2061 !> @param[in] td_file array of file
Note: See TracChangeset
for help on using the changeset viewer.