The only thing the user need to do to use EFDC_Explorer to plot and otherwise visualize arrays from within EFDC is to modify the EEXPORT subroutine in the section of code listed in the following textbox. To turn on the feature, use the following statement:
IF(.TRUE..AND.JSEXPLORER.EQ.0)THEN
To turn off the feature, use
IF(.FALSE..AND.JSEXPLORER.EQ.0)THEN
There are basic two types of output, one for time static arrays and one for those that vary as the model progresses (the standard case). Depending on the temporal nature of the array, the user must code the loops inside the IF/THEN block for time static arrays and outside/below the IF/THEN block for time variable arrays. The basic code for outputting the arrays is very simple and examples for both are shown in the text box. The user must make sure the flags are set right in order for EFDC_Explorer to correctly handle the arrays. The EFDC_INT.OUT file is a binary file for efficient reads and disk storage. The following is the basic structure:
DimFlag, TimeFlagTwo Integer*4 flags
ArrayNameOne Character*8 name to identify the array
The arrayLoop over the appropriate dimensions and output the array.
Remember to recompile after any changes to the source code.
INTEGER*4 VER
CHARACTER*8 ARRAYNAME
C**********************************************************C
C
! *** INTERNAL ARRAYS
IF(.TRUE..AND.JSEXPLORER.EQ.0)THEN
! *** TIME STATIC ARRAYS
IF(N.LT.(2*NTSPTC/NPSPH(8)))THEN
OPEN(97,FILE='EFDC_INT.OUT',STATUS='UNKNOWN')
CLOSE(97,STATUS='DELETE')
OPEN(97,FILE='EFDC_INT.OUT',STATUS='UNKNOWN',
& ACCESS='SEQUENTIAL',FORM='BINARY')
WRITE(97)VER ! FILE FORMAT VERSION #
WRITE(97)1 ! # OF TIME VARYING ARRAYS
! FLAGS: ARRAY TYPE, TIME VARIABLE
! ARRAY TYPE: 0 = L DIM'D
! 1 = L,KC DIM'D
! 2 = L,0:KC DIM'D
! 3 = L,KB DIM'D
! 4 = L,KC,NCLASS DIM'D
! TIME VARIABLE: 0 = NOT CHANGING
! 1 = TIME VARYING
WRITE(97)0,0
ARRAYNAME='WVKHV'
WRITE(97)ARRAYNAME
DO L=2,LA
WRITE(97)WVKHV(L)
ENDDO
ENDIF
! *** TIME VARYING ARRAYS
WRITE(97)2,1
ARRAYNAME='QQ'
WRITE(97)ARRAYNAME
DO L=2,LA
DO K=0,KC
WRITE(97)QQ(L,K) ! Turbulent Intensity (
ENDDO
ENDDO
ENDIF
C
C*********************************************************C
C
RETURN
ENDA section of code from the EEXPOUT subroutine in EFDC.
Skip to end of banner
Go to start of banner
Appendix A - EFDC Internal Array Visualization Instructions
General
Content
Integrations