Changeset 3785 for palm/trunk/UTIL/inifor/src/inifor_io.f90
- Timestamp:
- Mar 6, 2019 10:41:14 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/UTIL/inifor/src/inifor_io.f90
r3779 r3785 177 177 CALL inifor_abort('get_netcdf_variable', message) 178 178 179 END 179 ENDIF 180 180 181 181 CALL check(nf90_close(ncid)) … … 221 221 CALL inifor_abort('get_netcdf_variable', message) 222 222 223 END 223 ENDIF 224 224 225 225 CALL check(nf90_close(ncid)) … … 259 259 CALL inifor_abort('get_netcdf_dim_vector', message) 260 260 261 END 261 ENDIF 262 262 263 263 END SUBROUTINE get_netcdf_dim_vector … … 291 291 name = in_var % dimname(i), & 292 292 len = in_var % dimlen(i) )) 293 END 293 ENDDO 294 294 295 295 END SUBROUTINE get_input_dimensions … … 318 318 CALL inifor_abort('get_netcdf_start_and_count', message) 319 319 320 END 320 ENDIF 321 321 322 322 start = (/ 1, 1, 1 /) … … 329 329 !-- Start reading from second level, e.g. depth = 0.005 instead of 0.0 330 330 start(3) = 2 331 END 331 ENDIF 332 332 333 333 IF (in_var % ndim .EQ. 2) THEN … … 358 358 IF ( var % lod .GE. 0 ) THEN 359 359 CALL check(nf90_put_att(ncid, var % varid, "lod", var % lod)) 360 END 360 ENDIF 361 361 CALL check(nf90_put_att(ncid, var % varid, "source", var % source)) 362 362 CALL check(nf90_put_att(ncid, var % varid, "_FillValue", NF90_FILL_REAL)) … … 383 383 name = null, & 384 384 len = var % dimlen(i) ) ) 385 END 385 ENDDO 386 386 387 387 END SUBROUTINE netcdf_get_dimensions … … 538 538 i = i + 1 539 539 540 END 540 ENDDO 541 541 542 542 ELSE … … 545 545 CALL report('parse_command_line_arguments', message) 546 546 547 END 547 ENDIF 548 548 549 549 END SUBROUTINE parse_command_line_arguments … … 574 574 TRIM(date_string) // TRIM(suffix) // '.nc' 575 575 576 END 576 ENDDO 577 577 578 578 END SUBROUTINE get_datetime_file_list … … 594 594 LOGICAL, OPTIONAL, INTENT(IN) :: nocheck 595 595 596 INTEGER :: number_of_intervals, hour, i 597 CHARACTER(LEN=DATE) :: date_string 598 CHARACTER(LEN=PATH) :: file_name 599 LOGICAL :: check_files 596 INTEGER :: i 597 LOGICAL :: check_files 600 598 601 599 CALL get_datetime_file_list( start_date_string, start_hour, end_hour, & … … 606 604 IF ( PRESENT ( nocheck ) ) THEN 607 605 IF ( nocheck ) check_files = .FALSE. 608 END 606 ENDIF 609 607 610 608 IF ( check_files ) THEN … … 615 613 DO i = 1, SIZE(file_list) 616 614 CALL verify_file(file_list(i), 'input', tip) 617 END 618 619 END 615 ENDDO 616 617 ENDIF 620 618 621 619 END SUBROUTINE get_input_file_list … … 645 643 IF (PRESENT(tip)) THEN 646 644 message = TRIM(message) // " " // TRIM(tip) 647 END 648 649 END 645 ENDIF 646 647 ENDIF 650 648 651 649 CALL inifor_abort('verify_file', message) 652 650 653 END 651 ENDIF 654 652 655 653 message = "Set up input file name '" // TRIM(file_name) // "'" … … 691 689 IF (TRIM(cfg % static_driver_file) .NE. '') THEN 692 690 CALL verify_file(cfg % static_driver_file, 'static driver') 693 END 691 ENDIF 694 692 695 693 SELECT CASE( TRIM(cfg % ic_mode) ) … … 739 737 "wind. Please specify either both or none." 740 738 CALL inifor_abort( 'validate_config', message ) 741 END 739 ENDIF 742 740 743 741 END SUBROUTINE validate_config … … 958 956 !> Defines the netCDF variables to be written to the dynamic driver file 959 957 !------------------------------------------------------------------------------! 960 SUBROUTINE setup_netcdf_variables(filename, output_variable_table , debug)958 SUBROUTINE setup_netcdf_variables(filename, output_variable_table) 961 959 962 960 CHARACTER (LEN=*), INTENT(IN) :: filename 963 961 TYPE(nc_var), INTENT(INOUT), TARGET :: output_variable_table(:) 964 LOGICAL, INTENT(IN) :: debug965 962 966 963 TYPE(nc_var), POINTER :: var … … 988 985 CALL netcdf_define_variable(var, ncid) 989 986 CALL netcdf_get_dimensions(var, ncid) 990 END 987 ENDIF 991 988 992 END 989 ENDDO 993 990 994 991 CALL check(nf90_enddef(ncid)) … … 1043 1040 TRIM( str(SIZE(group % in_var_list)) ) // "." 1044 1041 CALL inifor_abort('read_input_variables | accumulation', message) 1045 END 1042 ENDIF 1046 1043 1047 1044 ! … … 1095 1092 input_var % name = TRIM( get_pressure_varname(input_file) ) 1096 1093 CALL run_control('time', 'read') 1097 END 1094 ENDIF 1098 1095 1099 1096 CALL get_netcdf_variable(input_file, input_var, buffer(ivar) % array) … … 1102 1099 CALL run_control('time', 'comp') 1103 1100 1104 END 1105 END 1101 ENDDO 1102 ENDIF 1106 1103 1107 1104 END SUBROUTINE read_input_variables … … 1159 1156 CALL inifor_abort('get_pressure_var', message) 1160 1157 1161 END 1158 ENDIF 1162 1159 1163 1160 CALL check(nf90_close(ncid)) … … 1189 1186 CALL inifor_abort('get_netcdf_attribute', message) 1190 1187 1191 END 1188 ENDIF 1192 1189 1193 1190 END FUNCTION get_netcdf_attribute … … 1252 1249 SIZE(array, 2), ")." 1253 1250 STOP 1254 END 1251 ENDIF 1255 1252 1256 1253 … … 1303 1300 start=start(1:ndim+1), & 1304 1301 count=count(1:ndim) ) ) 1305 END 1302 ENDIF 1306 1303 1307 1304 CASE ( 'large-scale scalar forcing', 'large-scale w forcing' ) … … 1336 1333 TRIM( nf90_strerror(status) ) 1337 1334 CALL inifor_abort('io.check', message) 1338 END 1335 ENDIF 1339 1336 1340 1337 END SUBROUTINE check
Note: See TracChangeset
for help on using the changeset viewer.