Extraction Utility Help

Hello,

I’ve tried to set up and use the Fortran extraction utility currently available on this website but to no avail. I’ve correctly specified the location of the appropriate efdc.inp file, and have set the appropriate codes for my particular needs. When running the getefdc.exe as an administrator on our server a “DOS” window briefly flashes (opens and closes), but no output files are created in the appropriate folder. Any thoughts about what may be going wrong? Does the getefdc.inp file need to be in a specific folder in the utility folder or the efdc model folder? I’m in urgent need to extracting data from the model output binary files. Below is my sample getefdc.inp file:

** COMMENT LINES START WITH “*”
** GETEFDC IS USED TO:
** EXTRACT EFDC BINARY FILES *.OUT TO ASCII FILES FOR:
** 1.TIME SERIES AT SOME LOCATIONS DETERMINED BY (I,J) OR (X,Y)
** 2.TECPLOT OF ONE LAYER (K>=0) AT OME SPECIFIC SNAPSHOT
** 3.ARRAYS OF DATA
**
** OBLIGATORY INPUT FILES:
** 0.GETEFDC.INP: THIS FILE
** 1.EFDC.INP
** 2.LXLY.INP
** 3.DXDY.INP
** 4.CELL.INP
** 5.CORNERS.INP
** 6.MAPPGNS.INP
**
** THE FOLLOWING BINARY FILES WILL BE READ ACCORDING TO SELECTED ITEMS
** 1.EE_WS.OUT
** 2.EE_VEL.OUT
** 3.EE_WC.OUT
** 4.EE_WQ.OUT
**
** OUPUT OF GETEFDC IS STORED IN RESULT FOLDER
**
*****************************************************************************
** THE FULL PATH OF INP FILES is determined by the file efdc.inp:
**
D:4-ProjectsTracerStudiesModelsEFDCKS_5610RUN7_71713efdc.inp
** E:ProjectsRT_1521_39efdc.inp
** E:ProjectsEFDC_Testinghfroutcells-chkEFDC.INP
**
*****************************************************************************
** NETCDF ATTRIBUTE: THIS TASK IS NOT DONE YET
** NCDFOUT = 1: EXPORT NETCDF FILE(THIS TASK IS NOT DONE YET)
** 0: NO NETCDF FILE
** DEFLEV : LEVEL OF COMPRESSION FOR NETCDF FILE FROM 0 TO 9
** BASEDATE : YYYY-MM-DD (NO BLANK)
** BASETIME : HH:MM:SS (NO BLANK)
** PROJ : PROJECT NAME IS A STRING OF MAXIMUM LENGTH 20
** CHARACTERS WITHOUT ANY BLANKS
** UTMZ : UTM ZONE (>=0:Northern; <0 Southern)
**
** NCDFOUT DEFLEV UTMZ YYYY-MM-DD HH:MN:SS PROJ
0 2 5 1995-01-01 00:00:00 WLAKE
**
*****************************************************************************
** OPTIONS FOR OUTPUT:
** LAYK = K>0: DATA AT LAYER NUMBER K TO BE EXPORTED AT TIME=JULTIME
** 0: DEPTH-AVERAGED DATA IS EXPORTED
** -1: Get High Frequency output FOR CELLS
** -2: Extract data for Time series at a height above bed (m)
**
** ZOPT = 1: FOR THE DEPTH UNDER WATER SURFACE IF LAYK=-2
** 2: FOR THE HEIGHT ABOVE BOTTOM IF LAYK=-2
**
** JULTIME : JULIAN TIME FOR SELECTED LAYER
** > MAXTIME THEN JULTIME=MAXTIME
** 0 DATA FOR ALL SNAPSHOT
** NLOC : NUMBER OF CELLS TO EXTRACT TIMESERIES
** ROTA = 1: (U,V) AT CELL CENTER ROTATED TO TRUE EAST AND TRUE NORTH
** 0: (U,V) AT CELL FACES WITHOUT ROTATION
** INDEX = 1: (I,J) OF CELLS ARE GIVEN
** 0: (X,Y) OF CELLS ARE GIVEN
** VPROF = 1: EXPORT VERTICAL PROFILE
** = 0: NO EXPORTATION
**
** TECPLOT = 1: EXPORT DATA FOR TECPLOT
** = 0: NO TECPLOT EXPORTATION
**
*****************************************************************************
** LAYK JULTIME NLOC ROTA INDEX VPROF TECPLOT ZOPT
0 0 2 1 1 0 0 1
*****************************************************************************
** I/X : I Index or X of cell
**
** J/Y : J Index or Y of cell
**
** ZINT : THE DEPTH UNDER WS OR HEIGHT ABOVE BED (m)
** FOR TIME SERIES EXTRACTION IF LAYK=-2
**
*****************************************************************************
** I/X J/Y ZINT(m)

In order to run the FORTRAN version of GetEFDC you need to supply getefdc.inp as an argument to run getefdc, a so called “command argument.” So you should type the command:
getefdc getefdc.inp

Or in the FORTRAN Visual Studio environment you need the following steps:
project->Getefdc properties->Debugging->Command Arguments:
type: getefdc.inp

Thank you for the quick reply. I’ve followed your suggestion and have successfully executed the utility with a pointer to the correct getefdc.inp file. The command window after starting up throws the following error when trying to create the Result folder: “Cannot change to the Result folder”. Does this have to do with file permissions?

The reason would seem to be that either you have deleted the “RESULT” folder or the path that you have given in getefdc.inp is not correct. If you look at the source code of getefdc you can follow the command line in getefdc.f90 line 144 to see why the folder “RESULT” is not available:

IF (.NOT.RES) THEN
PRINT*, ‘CANNOT CHANGE TO THE RESULT FOLDER’
STOP
ENDIF

where RES = CHANGEDIRQQ(TRIM(OUTFOLDER)//‘RESULT’)

So you need to check the value of the variable: OUTFOLDER

If this folder is not correct the program will stop and print the error you have.

Thank you for the quick reply. I’ve checked the path and other possibilities and still encounter this problem. Perhaps there is an issue with the code? Can you provide me with a detailed step-by-step example of how to use the utility? Where should the getefdc.inp file reside? Currently, I am running the utility from the folder it was unzipped into. The getefdc.inp file I am using is stored in the release folder. Is this incorrect?

To run GetEFDC you should carry out the following steps:
1. If the user runs getefdc.exe outside the compiler environment of FORTRAN:
• Copy the getefdc.inp file into the same folder containing efdc.inp
• Edit getefdc.inp to show the full path of efdc.inp
• Generate a bat file, such as getefdc.bat with content as follows:
E:GetEFDCtEFDCReleasegetefdc.exe getefdc.inp
In which E:GetEFDCtEFDCRelease is the full path containing getefdc.exe.
• Double-click on getefdc.bat

2. If the user uses the Intel FORTRAN compiler to compile and run getefdc:
• Copy getefdc.inp into the folder of GetEFDC source code, such as:
E:Getefdcgetefdc
• Edit getefdc.inp to show the full path of efdc.inp
• From Intel FORTRAN environment select:
Project --> GetEfdc properties --> Debugging:
• Fill the dialog box of Command Arguments with: getefdc.inp
• Compile and Run