Tangent-linear Code for Shallow Water Model
We show the tangent linear code as well as the
driver code that is used to call the transformed
top-level routine correctly.
Tangent-linear Code
C ***********************************************************
C Fortran file translated from WHIRL Thu Sep 16 17:28:12 2004
C ***********************************************************
C ***********************************************************
MODULE adsize
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: ADXC(1 : 6200)
SAVE ADXC
INTEGER(w2f__i4) NC
SAVE NC
type(active) :: XC(1 : 6200)
SAVE XC
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) NCMAX
PARAMETER ( NCMAX = 6200)
C
C **** statements ****
C
END MODULE
MODULE size
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) NX
PARAMETER ( NX = 20)
INTEGER(w2f__i4) NY
PARAMETER ( NY = 20)
C
C **** statements ****
C
END MODULE
MODULE parms
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: AH
SAVE AH
type(active) :: BETA
SAVE BETA
LOGICAL(w2f__i4) CALC_HESS
SAVE CALC_HESS
LOGICAL(w2f__i4) CARTESIAN
SAVE CARTESIAN
CHARACTER(80) DEPTHFILE
SAVE DEPTHFILE
type(active) :: DT
SAVE DT
type(active) :: DT_DUMP
SAVE DT_DUMP
CHARACTER(80) ETAINIFILE
SAVE ETAINIFILE
type(active) :: F0
SAVE F0
CHARACTER(80) FORCINGFILE
SAVE FORCINGFILE
CHARACTER(80) FOUTNAME
SAVE FOUTNAME
LOGICAL(w2f__i4) FULLIO
SAVE FULLIO
LOGICAL(w2f__i4) GRAD_CHECK
SAVE GRAD_CHECK
LOGICAL(w2f__i4) INITIAL_GRAD
SAVE INITIAL_GRAD
INTEGER(w2f__i4) ITERATION
SAVE ITERATION
CHARACTER(80) NCDATAFILE
SAVE NCDATAFILE
CHARACTER(80) NCRESTARTFILE
SAVE NCRESTARTFILE
INTEGER(w2f__i4) NT
SAVE NT
INTEGER(w2f__i4) NTSPINUP
SAVE NTSPINUP
type(active) :: OM
SAVE OM
LOGICAL(w2f__i4) OPTIMIZE
SAVE OPTIMIZE
LOGICAL(w2f__i4) QUADFRIC
SAVE QUADFRIC
type(active) :: RINI
SAVE RINI
CHARACTER(80) RUNNAME
SAVE RUNNAME
LOGICAL(w2f__i4) SPHERICAL
SAVE SPHERICAL
type(active) :: START_TIME
SAVE START_TIME
LOGICAL(w2f__i4) SUPPRESSIO
SAVE SUPPRESSIO
CHARACTER(80) UINIFILE
SAVE UINIFILE
CHARACTER(80) VINIFILE
SAVE VINIFILE
LOGICAL(w2f__i4) XPERIODIC
SAVE XPERIODIC
type(active) :: XSTART
SAVE XSTART
LOGICAL(w2f__i4) YPERIODIC
SAVE YPERIODIC
type(active) :: YSTART
SAVE YSTART
C
C **** Local Variables and functions ****
C
REAL(w2f__4) DEG2RAD
PARAMETER ( DEG2RAD = 0.01745329)
REAL(w2f__4) EARTH
PARAMETER ( EARTH = 6371000.)
REAL(w2f__4) G
PARAMETER ( G = 9.810000)
REAL(w2f__4) INVRHO0
PARAMETER ( INVRHO0 = 0.0009727626)
REAL(w2f__4) PI
PARAMETER ( PI = 3.141593)
REAL(w2f__4) RHO0
PARAMETER ( RHO0 = 1028.000)
C
C **** statements ****
C
END MODULE
MODULE vars
use w2f__types
use active_module
use size
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: ETA(0 : 21, 0 : 21)
SAVE ETA
type(active) :: U(0 : 21, 0 : 21)
SAVE U
type(active) :: V(0 : 21, 0 : 21)
SAVE V
C
C **** statements ****
C
END MODULE
MODULE pfields
use w2f__types
use active_module
use size
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: DEPTH(0 : 21, 0 : 21)
SAVE DEPTH
type(active) :: DX(0 : 20)
SAVE DX
type(active) :: DY(0 : 20)
SAVE DY
type(active) :: ETAINI(1 : 20, 1 : 20)
SAVE ETAINI
type(active) :: ETAMASK(0 : 21, 0 : 21)
SAVE ETAMASK
type(active) :: FCORIU(1 : 20, 1 : 20)
SAVE FCORIU
type(active) :: FCORIV(1 : 20, 1 : 20)
SAVE FCORIV
type(active) :: FRICT(0 : 21, 0 : 21)
SAVE FRICT
type(active) :: HU(0 : 21, 0 : 21)
SAVE HU
type(active) :: HV(0 : 21, 0 : 21)
SAVE HV
type(active) :: HY(0 : 21)
SAVE HY
type(active) :: INIDEPTH(1 : 20, 1 : 20)
SAVE INIDEPTH
type(active) :: INVHU(0 : 21, 0 : 21)
SAVE INVHU
type(active) :: INVHV(0 : 21, 0 : 21)
SAVE INVHV
type(active) :: RX(0 : 21)
SAVE RX
type(active) :: RY
SAVE RY
type(active) :: SCALEDEPTH(1 : 20, 1 : 20)
SAVE SCALEDEPTH
type(active) :: SCALEETA(1 : 20, 1 : 20)
SAVE SCALEETA
type(active) :: SCALEU(1 : 20, 1 : 20)
SAVE SCALEU
type(active) :: SCALEV(1 : 20, 1 : 20)
SAVE SCALEV
type(active) :: UINI(1 : 20, 1 : 20)
SAVE UINI
type(active) :: UMASK(0 : 21, 0 : 21)
SAVE UMASK
type(active) :: VINI(1 : 20, 1 : 20)
SAVE VINI
type(active) :: VMASK(0 : 21, 0 : 21)
SAVE VMASK
type(active) :: X(0 : 21)
SAVE X
type(active) :: Y(0 : 21)
SAVE Y
C
C **** statements ****
C
END MODULE
MODULE force
use w2f__types
use active_module
use size
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: UFORCE(1 : 20, 1 : 20)
SAVE UFORCE
type(active) :: VFORCE(1 : 20, 1 : 20)
SAVE VFORCE
C
C **** statements ****
C
END MODULE
MODULE data
use w2f__types
use active_module
use size
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: DEPTH_DATA(1 : 20, 1 : 20)
SAVE DEPTH_DATA
type(active) :: ETA_DATA(1 : 20, 1 : 20)
SAVE ETA_DATA
type(active) :: ETA_DATA_TIME(1 : 1000)
SAVE ETA_DATA_TIME
INTEGER(w2f__i4) NEDT
SAVE NEDT
type(active) :: U_DATA(1 : 20, 1 : 20)
SAVE U_DATA
type(active) :: V_DATA(1 : 20, 1 : 20)
SAVE V_DATA
type(active) :: ZONAL_TRANSPORT_DATA
SAVE ZONAL_TRANSPORT_DATA
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) NEDTMAX
PARAMETER ( NEDTMAX = 1000)
C
C **** statements ****
C
END MODULE
MODULE weights
use w2f__types
use active_module
use size
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: WEIGHT_DEPTH(1 : 20, 1 : 20, 1 : 20, 1 : 20)
SAVE WEIGHT_DEPTH
type(active) :: WEIGHT_ETA(1 : 20, 1 : 20)
SAVE WEIGHT_ETA
type(active) :: WEIGHT_GRADDEPTH(1 : 20, 1 : 20)
SAVE WEIGHT_GRADDEPTH
type(active) :: WEIGHT_LAPLDEPTH(1 : 20, 1 : 20)
SAVE WEIGHT_LAPLDEPTH
type(active) :: WEIGHT_U(1 : 20, 1 : 20)
SAVE WEIGHT_U
type(active) :: WEIGHT_V(1 : 20, 1 : 20)
SAVE WEIGHT_V
type(active) :: WEIGHT_ZONAL_TRANSPORT
SAVE WEIGHT_ZONAL_TRANSPORT
type(active) :: WF_DEPTH
SAVE WF_DEPTH
type(active) :: WF_ETA
SAVE WF_ETA
type(active) :: WF_GRADDEPTH
SAVE WF_GRADDEPTH
type(active) :: WF_LAPLDEPTH
SAVE WF_LAPLDEPTH
type(active) :: WF_U
SAVE WF_U
type(active) :: WF_V
SAVE WF_V
type(active) :: WF_ZONAL_TRANSPORT
SAVE WF_ZONAL_TRANSPORT
C
C **** statements ****
C
END MODULE
MODULE mini
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Global Variables ****
C
type(active) :: DF1
SAVE DF1
type(active) :: DXMIN
SAVE DXMIN
type(active) :: EPSG
SAVE EPSG
type(active) :: EPS_GRAD
SAVE EPS_GRAD
type(active) :: FACTR
SAVE FACTR
INTEGER(w2f__i4) IMPRES
SAVE IMPRES
INTEGER(w2f__i4) IPRINT
SAVE IPRINT
INTEGER(w2f__i4) MODE
SAVE MODE
INTEGER(w2f__i4) NITER
SAVE NITER
INTEGER(w2f__i4) NSIM
SAVE NSIM
type(active) :: PGTOL
SAVE PGTOL
C
C **** statements ****
C
END MODULE
MODULE size_small
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) NX
PARAMETER ( NX = 20)
INTEGER(w2f__i4) NY
PARAMETER ( NY = 8)
C
C **** statements ****
C
END MODULE
SUBROUTINE inifields()
use w2f__types
use active_module
use size
use parms
use vars
use pfields
use force
use data
use weights
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IX2
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) IY2
C
C **** statements ****
C
NT = 0
NTSPINUP = 0
DT%v = 0.0D00
START_TIME%v = 0.0D00
DT_DUMP%v = 0.0D00
CALL zero_deriv(DT)
CALL zero_deriv(START_TIME)
CALL zero_deriv(DT_DUMP)
ITERATION = -9999
RINI%v = 0.0D00
OM%v = 0.0D00
F0%v = 0.0D00
BETA%v = 0.0D00
XSTART%v = 0.0D00
YSTART%v = 0.0D00
CALL zero_deriv(RINI)
CALL zero_deriv(OM)
CALL zero_deriv(F0)
CALL zero_deriv(BETA)
CALL zero_deriv(XSTART)
CALL zero_deriv(YSTART)
XPERIODIC = .FALSE.
YPERIODIC = .FALSE.
SPHERICAL = .FALSE.
CARTESIAN = .FALSE.
QUADFRIC = .FALSE.
SUPPRESSIO = .FALSE.
FULLIO = .FALSE.
INITIAL_GRAD = .FALSE.
GRAD_CHECK = .FALSE.
OPTIMIZE = .FALSE.
CALC_HESS = .FALSE.
FOUTNAME = ' '
RUNNAME = ' '
DEPTHFILE = ' '
FORCINGFILE = ' '
UINIFILE = ' '
VINIFILE = ' '
ETAINIFILE = ' '
NCDATAFILE = ' '
WF_DEPTH%v = 0.0D00
WF_ETA%v = 0.0D00
WF_U%v = 0.0D00
WF_V%v = 0.0D00
WF_ZONAL_TRANSPORT%v = 0.0D00
WF_LAPLDEPTH%v = 0.0D00
WF_GRADDEPTH%v = 0.0D00
CALL zero_deriv(WF_DEPTH)
CALL zero_deriv(WF_ETA)
CALL zero_deriv(WF_U)
CALL zero_deriv(WF_V)
CALL zero_deriv(WF_ZONAL_TRANSPORT)
CALL zero_deriv(WF_LAPLDEPTH)
CALL zero_deriv(WF_GRADDEPTH)
DO IX = 0, 21, 1
X(INT(IX))%v = 0.0D00
CALL zero_deriv(X(INT(IX)))
END DO
DO IY = 0, 21, 1
Y(INT(IY))%v = 0.0D00
CALL zero_deriv(Y(INT(IY)))
END DO
DO IX = 0, 20, 1
DX(INT(IX))%v = 0.0D00
CALL zero_deriv(DX(INT(IX)))
END DO
DO IY = 0, 20, 1
DY(INT(IY))%v = 0.0D00
CALL zero_deriv(DY(INT(IY)))
END DO
DO IY = 0, 21, 1
RX(INT(IY))%v = 0.0D00
CALL zero_deriv(RX(INT(IY)))
END DO
RY%v = 0.0D00
CALL zero_deriv(RY)
DO IY = 0, 21, 1
HY(INT(IY))%v = 0.0D00
CALL zero_deriv(HY(INT(IY)))
END DO
DT%v = 0.0D00
CALL zero_deriv(DT)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
UFORCE(INT(IX),INT(IY))%v = 0.0D00
VFORCE(INT(IX),INT(IY))%v = 0.0D00
FCORIU(INT(IX),INT(IY))%v = 0.0D00
FCORIV(INT(IX),INT(IY))%v = 0.0D00
INIDEPTH(INT(IX),INT(IY))%v = 0.0D00
UINI(INT(IX),INT(IY))%v = 0.0D00
VINI(INT(IX),INT(IY))%v = 0.0D00
ETAINI(INT(IX),INT(IY))%v = 0.0D00
SCALEDEPTH(INT(IX),INT(IY))%v = 0.0D00
U_DATA(INT(IX),INT(IY))%v = 0.0D00
V_DATA(INT(IX),INT(IY))%v = 0.0D00
ETA_DATA(INT(IX),INT(IY))%v = 0.0D00
DEPTH_DATA(INT(IX),INT(IY))%v = 0.0D00
WEIGHT_U(INT(IX),INT(IY))%v = 0.0D00
WEIGHT_V(INT(IX),INT(IY))%v = 0.0D00
WEIGHT_ETA(INT(IX),INT(IY))%v = 0.0D00
WEIGHT_LAPLDEPTH(INT(IX),INT(IY))%v = 0.0D00
WEIGHT_GRADDEPTH(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(UFORCE(INT(IX),INT(IY)))
CALL zero_deriv(VFORCE(INT(IX),INT(IY)))
CALL zero_deriv(FCORIU(INT(IX),INT(IY)))
CALL zero_deriv(FCORIV(INT(IX),INT(IY)))
CALL zero_deriv(INIDEPTH(INT(IX),INT(IY)))
CALL zero_deriv(UINI(INT(IX),INT(IY)))
CALL zero_deriv(VINI(INT(IX),INT(IY)))
CALL zero_deriv(ETAINI(INT(IX),INT(IY)))
CALL zero_deriv(SCALEDEPTH(INT(IX),INT(IY)))
CALL zero_deriv(U_DATA(INT(IX),INT(IY)))
CALL zero_deriv(V_DATA(INT(IX),INT(IY)))
CALL zero_deriv(ETA_DATA(INT(IX),INT(IY)))
CALL zero_deriv(DEPTH_DATA(INT(IX),INT(IY)))
CALL zero_deriv(WEIGHT_U(INT(IX),INT(IY)))
CALL zero_deriv(WEIGHT_V(INT(IX),INT(IY)))
CALL zero_deriv(WEIGHT_ETA(INT(IX),INT(IY)))
CALL zero_deriv(WEIGHT_LAPLDEPTH(INT(IX),INT(IY)))
CALL zero_deriv(WEIGHT_GRADDEPTH(INT(IX),INT(IY)))
END DO
END DO
DO IY = 1, 20, 1
DO IY2 = 1, 20, 1
DO IX = 1, 20, 1
DO IX2 = 1, 20, 1
WEIGHT_DEPTH(INT(IX),INT(IX2),INT(IY),INT(IY2))%v = 0.0D00
CALL zero_deriv(WEIGHT_DEPTH(INT(IX),INT(IX2),INT(IY),INT(
+IY2)))
END DO
END DO
END DO
END DO
ZONAL_TRANSPORT_DATA%v = 0.0D00
WEIGHT_ZONAL_TRANSPORT%v = 0.0D00
CALL zero_deriv(ZONAL_TRANSPORT_DATA)
CALL zero_deriv(WEIGHT_ZONAL_TRANSPORT)
DO IX = 0, 21, 1
DO IY = 0, 21, 1
DEPTH(INT(IX),INT(IY))%v = 0.0D00
FRICT(INT(IX),INT(IY))%v = 0.0D00
U(INT(IX),INT(IY))%v = 0.0D00
V(INT(IX),INT(IY))%v = 0.0D00
ETA(INT(IX),INT(IY))%v = 0.0D00
UMASK(INT(IX),INT(IY))%v = 0.0D00
VMASK(INT(IX),INT(IY))%v = 0.0D00
ETAMASK(INT(IX),INT(IY))%v = 0.0D00
HU(INT(IX),INT(IY))%v = 0.0D00
HV(INT(IX),INT(IY))%v = 0.0D00
INVHU(INT(IX),INT(IY))%v = 0.0D00
INVHV(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(DEPTH(INT(IX),INT(IY)))
CALL zero_deriv(FRICT(INT(IX),INT(IY)))
CALL zero_deriv(U(INT(IX),INT(IY)))
CALL zero_deriv(V(INT(IX),INT(IY)))
CALL zero_deriv(ETA(INT(IX),INT(IY)))
CALL zero_deriv(UMASK(INT(IX),INT(IY)))
CALL zero_deriv(VMASK(INT(IX),INT(IY)))
CALL zero_deriv(ETAMASK(INT(IX),INT(IY)))
CALL zero_deriv(HU(INT(IX),INT(IY)))
CALL zero_deriv(HV(INT(IX),INT(IY)))
CALL zero_deriv(INVHU(INT(IX),INT(IY)))
CALL zero_deriv(INVHV(INT(IX),INT(IY)))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE readparms()
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL check_cfl
EXTERNAL ini_scales
EXTERNAL make_masks
EXTERNAL prep_coriolis
EXTERNAL prep_depth
EXTERNAL read_data_fields
EXTERNAL read_data_file
C
C **** statements ****
C
CALL read_data_file()
CALL read_data_fields()
CALL prep_depth()
CALL check_cfl()
CALL make_masks()
CALL ini_scales()
CALL prep_coriolis()
RETURN
END SUBROUTINE
SUBROUTINE read_data_file()
use w2f__types
use active_module
use size
use parms
use pfields
use mini
use weights
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_0
REAL(w2f__8) OpenAD_Symbol_1
REAL(w2f__8) OpenAD_Symbol_2
REAL(w2f__8) OpenAD_Symbol_3
REAL(w2f__8) OpenAD_Symbol_5
REAL(w2f__8) OpenAD_Symbol_6
REAL(w2f__8) OpenAD_Symbol_7
REAL(w2f__8) OpenAD_Symbol_9
REAL(w2f__8) OpenAD_Symbol_11
REAL(w2f__8) OpenAD_Symbol_12
REAL(w2f__8) OpenAD_Symbol_13
REAL(w2f__8) OpenAD_Symbol_14
REAL(w2f__8) OpenAD_Symbol_15
REAL(w2f__8) OpenAD_Symbol_21
REAL(w2f__8) OpenAD_Symbol_17
REAL(w2f__8) OpenAD_Symbol_18
REAL(w2f__8) OpenAD_Symbol_23
REAL(w2f__8) OpenAD_Symbol_19
REAL(w2f__8) OpenAD_Symbol_24
REAL(w2f__8) OpenAD_Symbol_25
REAL(w2f__8) OpenAD_Symbol_26
REAL(w2f__8) OpenAD_Symbol_31
REAL(w2f__8) OpenAD_Symbol_27
REAL(w2f__8) OpenAD_Symbol_32
REAL(w2f__8) OpenAD_Symbol_28
REAL(w2f__8) OpenAD_Symbol_29
REAL(w2f__8) OpenAD_Symbol_34
REAL(w2f__8) OpenAD_Symbol_35
REAL(w2f__8) OpenAD_Symbol_40
REAL(w2f__8) OpenAD_Symbol_36
REAL(w2f__8) OpenAD_Symbol_37
REAL(w2f__8) OpenAD_Symbol_42
REAL(w2f__8) OpenAD_Symbol_43
REAL(w2f__8) OpenAD_Symbol_39
REAL(w2f__8) OpenAD_Symbol_44
REAL(w2f__8) OpenAD_Symbol_45
REAL(w2f__8) OpenAD_Symbol_50
REAL(w2f__8) OpenAD_Symbol_46
REAL(w2f__8) OpenAD_Symbol_52
REAL(w2f__8) OpenAD_Symbol_48
REAL(w2f__8) OpenAD_Symbol_53
REAL(w2f__8) OpenAD_Symbol_49
REAL(w2f__8) OpenAD_Symbol_54
REAL(w2f__8) OpenAD_Symbol_56
REAL(w2f__8) OpenAD_Symbol_720
type(active) :: OpenAD_Symbol_721
REAL(w2f__8) OpenAD_Symbol_722
REAL(w2f__8) OpenAD_Symbol_718
type(active) :: OpenAD_Symbol_723
REAL(w2f__8) OpenAD_Symbol_719
REAL(w2f__8) OpenAD_Symbol_724
REAL(w2f__8) OpenAD_Symbol_725
REAL(w2f__8) OpenAD_Symbol_730
REAL(w2f__8) OpenAD_Symbol_726
type(active) :: OpenAD_Symbol_731
type(active) :: OpenAD_Symbol_727
REAL(w2f__8) OpenAD_Symbol_732
REAL(w2f__8) OpenAD_Symbol_728
type(active) :: OpenAD_Symbol_733
type(active) :: OpenAD_Symbol_729
REAL(w2f__8) OpenAD_Symbol_734
type(active) :: OpenAD_Symbol_735
REAL(w2f__8) OpenAD_Symbol_740
REAL(w2f__8) OpenAD_Symbol_736
REAL(w2f__8) OpenAD_Symbol_741
type(active) :: OpenAD_Symbol_737
REAL(w2f__8) OpenAD_Symbol_742
REAL(w2f__8) OpenAD_Symbol_738
type(active) :: OpenAD_Symbol_743
REAL(w2f__8) OpenAD_Symbol_739
REAL(w2f__8) OpenAD_Symbol_744
type(active) :: OpenAD_Symbol_745
REAL(w2f__8) OpenAD_Symbol_750
REAL(w2f__8) OpenAD_Symbol_746
type(active) :: OpenAD_Symbol_751
type(active) :: OpenAD_Symbol_747
REAL(w2f__8) OpenAD_Symbol_748
type(active) :: OpenAD_Symbol_749
C
C **** Local Variables and functions ****
C
type(active) :: DELX
type(active) :: DELY
EXTERNAL determine_data_time
INTEGER(w2f__i4) IADRH0
INTEGER(w2f__i4) IADRH1
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
EXTERNAL readhack
CHARACTER(4) t__15
C
C **** statements ****
C
C open(20,file='data',form='formatted',status='old')
t__15 = 'OLD '
OPEN(UNIT = 20, FORM = 'FORMATTED', STATUS = t__15(1_w2f__i8 : 3)
> , FILE = 'data')
READ(20, *)
read(20,*) nt,ntspinup,dt%v,start_time%v,dt_dump%v
READ(20, *)
read(20,*) rini%v,f0%v,beta%v
READ(20, *)
read(20,*) xstart%v,ystart%v
READ(20, *)
read(20,*) delx%v,dely%v
READ(20, *)
read(20,*)xperiodic,yperiodic,spherical,cartesian
READ(20, *)
read(20,*)fullio,suppressio
READ(20, *)
read(20,*)initial_grad,grad_check,optimize,calc_hess
READ(20, *)
read(20,'(A80)')ncdatafile
READ(20, *)
read(20,'(A80)')ncrestartfile
READ(20, *)
read(20,'(A80)')foutname
READ(20, *)
read(20,'(A80)')runname
READ(20, *)
read(20,*) wf_depth%v,wf_eta%v,wf_u%v,wf_v%v,wf_zonal_transport%v,
+wf_lapldepth%v,wf_graddepth%v
READ(20, *)
read(20,*)nsim
READ(20, *)
read(20,*) epsg%v,df1%v,dxmin%v,niter,impres,mode
READ(20, *)
read(20,*) eps_grad%v,pgtol%v,factr%v,iprint
C close(20)
CLOSE(UNIT = 20)
IF(CARTESIAN .AND. SPHERICAL) THEN
WRITE(*, *) 'grid specification is ambiguous'
ELSE
IF(.NOT.(CARTESIAN .OR. SPHERICAL)) THEN
WRITE(*, *) 'grid specification is ambiguous'
ENDIF
ENDIF
IF(SPHERICAL .AND. YPERIODIC) THEN
WRITE(*, *) 'spherical grid and periodic boundary conditions'
WRITE(*, *) 'in latitude do not make sense'
ENDIF
IF (YPERIODIC .AND. (SPHERICAL .OR. (CARTESIAN .AND. (BETA%v .ne.
+0.0D00)))) THEN
WRITE(*, *) 'yperiodic boundaries only make sense on an f-pla'
> // 'ne'
ENDIF
IF(SPHERICAL) THEN
DO IY = 0, 21, 1
OpenAD_Symbol_5 = (DELY%v/6.371D+06)
OpenAD_Symbol_6 = (REAL(IY) +(-5.0D-01))
OpenAD_Symbol_2 = (OpenAD_Symbol_5 * OpenAD_Symbol_6)
OpenAD_Symbol_11 = (YSTART%v+(OpenAD_Symbol_2/1.74533000000000
+014518D-02))
OpenAD_Symbol_0 = 1_w2f__i8
OpenAD_Symbol_9 = (INT(1_w2f__i8) / 6.371D+06)
OpenAD_Symbol_7 = OpenAD_Symbol_6
OpenAD_Symbol_3 = (INT(1_w2f__i8) /
> 1.74533000000000014518D-02)
OpenAD_Symbol_1 = 1_w2f__i8
Y(INT(IY))%v = OpenAD_Symbol_11
OpenAD_Symbol_718 = (OpenAD_Symbol_9 * OpenAD_Symbol_7)
OpenAD_Symbol_719 = (OpenAD_Symbol_718 * OpenAD_Symbol_3)
OpenAD_Symbol_720 = (OpenAD_Symbol_719 * OpenAD_Symbol_1)
OpenAD_Symbol_722 = OpenAD_Symbol_0
CALL setderiv(OpenAD_Symbol_723,YSTART)
CALL setderiv(OpenAD_Symbol_721,DELY)
CALL sax(OpenAD_Symbol_720,OpenAD_Symbol_721,Y(IY))
CALL saxpy(OpenAD_Symbol_722,OpenAD_Symbol_723,Y(IY))
END DO
DO IX = 0, 21, 1
OpenAD_Symbol_17 = (DELX%v/6.371D+06)
OpenAD_Symbol_18 = (REAL(IX) +(-5.0D-01))
OpenAD_Symbol_14 = (OpenAD_Symbol_17 * OpenAD_Symbol_18)
OpenAD_Symbol_23 = (XSTART%v+(OpenAD_Symbol_14/1.7453300000000
+0014518D-02))
OpenAD_Symbol_12 = 1_w2f__i8
OpenAD_Symbol_21 = (INT(1_w2f__i8) / 6.371D+06)
OpenAD_Symbol_19 = OpenAD_Symbol_18
OpenAD_Symbol_15 = (INT(1_w2f__i8) /
> 1.74533000000000014518D-02)
OpenAD_Symbol_13 = 1_w2f__i8
X(INT(IX))%v = OpenAD_Symbol_23
OpenAD_Symbol_724 = (OpenAD_Symbol_21 * OpenAD_Symbol_19)
OpenAD_Symbol_725 = (OpenAD_Symbol_724 * OpenAD_Symbol_15)
OpenAD_Symbol_726 = (OpenAD_Symbol_725 * OpenAD_Symbol_13)
OpenAD_Symbol_728 = OpenAD_Symbol_12
CALL setderiv(OpenAD_Symbol_729,XSTART)
CALL setderiv(OpenAD_Symbol_727,DELX)
CALL sax(OpenAD_Symbol_726,OpenAD_Symbol_727,X(IX))
CALL saxpy(OpenAD_Symbol_728,OpenAD_Symbol_729,X(IX))
END DO
ELSE
IF(CARTESIAN) THEN
DO IX = 0, 21, 1
OpenAD_Symbol_49 = (REAL(IX) +(-5.0D-01))
OpenAD_Symbol_52 = (DELX%v*OpenAD_Symbol_49)
OpenAD_Symbol_50 = OpenAD_Symbol_49
X(INT(IX))%v = OpenAD_Symbol_52
OpenAD_Symbol_748 = OpenAD_Symbol_50
CALL setderiv(OpenAD_Symbol_749,DELX)
CALL sax(OpenAD_Symbol_748,OpenAD_Symbol_749,X(IX))
END DO
DO IY = 0, 21, 1
OpenAD_Symbol_53 = (REAL(IY) +(-5.0D-01))
OpenAD_Symbol_56 = (DELY%v*OpenAD_Symbol_53)
OpenAD_Symbol_54 = OpenAD_Symbol_53
Y(INT(IY))%v = OpenAD_Symbol_56
OpenAD_Symbol_750 = OpenAD_Symbol_54
CALL setderiv(OpenAD_Symbol_751,DELY)
CALL sax(OpenAD_Symbol_750,OpenAD_Symbol_751,Y(IY))
END DO
ENDIF
ENDIF
DO IX = 0, 20, 1
DX(INT(IX))%v = (X(IX+1)%v-X(IX)%v)
OpenAD_Symbol_24 = 1_w2f__i8
OpenAD_Symbol_25 = (-1_w2f__i8)
OpenAD_Symbol_730 = OpenAD_Symbol_24
OpenAD_Symbol_732 = OpenAD_Symbol_25
CALL setderiv(OpenAD_Symbol_733,X(IX))
CALL setderiv(OpenAD_Symbol_731,X(IX+1))
CALL sax(OpenAD_Symbol_730,OpenAD_Symbol_731,DX(IX))
CALL saxpy(OpenAD_Symbol_732,OpenAD_Symbol_733,DX(IX))
END DO
DO IY = 0, 20, 1
DY(INT(IY))%v = (Y(IY+1)%v-Y(IY)%v)
OpenAD_Symbol_26 = 1_w2f__i8
OpenAD_Symbol_27 = (-1_w2f__i8)
OpenAD_Symbol_734 = OpenAD_Symbol_26
OpenAD_Symbol_736 = OpenAD_Symbol_27
CALL setderiv(OpenAD_Symbol_737,Y(IY))
CALL setderiv(OpenAD_Symbol_735,Y(IY+1))
CALL sax(OpenAD_Symbol_734,OpenAD_Symbol_735,DY(IY))
CALL saxpy(OpenAD_Symbol_736,OpenAD_Symbol_737,DY(IY))
END DO
DO IY = 1, 20, 1
IF(SPHERICAL) THEN
OpenAD_Symbol_39 = (Y(IY)%v+Y(IY+1)%v)
OpenAD_Symbol_36 = (OpenAD_Symbol_39 * 5.0D-01)
OpenAD_Symbol_34 = (OpenAD_Symbol_36 *
> 1.74533000000000014518D-02)
OpenAD_Symbol_31 = COS(OpenAD_Symbol_34)
OpenAD_Symbol_28 = (OpenAD_Symbol_31 * 6.371D+06)
RX(INT(IY))%v = (OpenAD_Symbol_28*1.74533000000000014518D-02)
OpenAD_Symbol_42 = 1_w2f__i8
OpenAD_Symbol_43 = 1_w2f__i8
OpenAD_Symbol_40 = 5.0D-01
OpenAD_Symbol_37 = 1.74533000000000014518D-02
OpenAD_Symbol_35 = (- SIN(OpenAD_Symbol_34))
OpenAD_Symbol_32 = 6.371D+06
OpenAD_Symbol_29 = 1.74533000000000014518D-02
OpenAD_Symbol_738 = (OpenAD_Symbol_32 * OpenAD_Symbol_29)
OpenAD_Symbol_739 = (OpenAD_Symbol_35 * OpenAD_Symbol_738)
OpenAD_Symbol_740 = (OpenAD_Symbol_37 * OpenAD_Symbol_739)
OpenAD_Symbol_741 = (OpenAD_Symbol_40 * OpenAD_Symbol_740)
OpenAD_Symbol_742 = (OpenAD_Symbol_42 * OpenAD_Symbol_741)
OpenAD_Symbol_744 = (OpenAD_Symbol_43 * OpenAD_Symbol_741)
CALL setderiv(OpenAD_Symbol_745,Y(IY+1))
CALL setderiv(OpenAD_Symbol_743,Y(IY))
CALL sax(OpenAD_Symbol_742,OpenAD_Symbol_743,RX(IY))
CALL saxpy(OpenAD_Symbol_744,OpenAD_Symbol_745,RX(IY))
ELSE
IF(CARTESIAN) THEN
RX(INT(IY))%v = 1.0D00
CALL zero_deriv(RX(INT(IY)))
ENDIF
ENDIF
END DO
IF(SPHERICAL) THEN
RY%v = 1.11195D+05
CALL zero_deriv(RY)
ELSE
IF(CARTESIAN) THEN
RY%v = 1.0D00
CALL zero_deriv(RY)
ENDIF
ENDIF
DO IY = 1, 21, 1
IF(SPHERICAL) THEN
OpenAD_Symbol_44 = (Y(IY)%v*1.74533000000000014518D-02)
OpenAD_Symbol_48 = COS(OpenAD_Symbol_44)
OpenAD_Symbol_46 = 1.74533000000000014518D-02
OpenAD_Symbol_45 = (- SIN(OpenAD_Symbol_44))
HY(INT(IY))%v = OpenAD_Symbol_48
OpenAD_Symbol_746 = (OpenAD_Symbol_46 * OpenAD_Symbol_45)
CALL setderiv(OpenAD_Symbol_747,Y(IY))
CALL sax(OpenAD_Symbol_746,OpenAD_Symbol_747,HY(IY))
ELSE
IF(CARTESIAN) THEN
HY(INT(IY))%v = 1.0D00
CALL zero_deriv(HY(INT(IY)))
ENDIF
ENDIF
END DO
CALL determine_data_time(NCDATAFILE)
RETURN
END SUBROUTINE
SUBROUTINE read_data_fields()
use w2f__types
use active_module
use size
use parms
use pfields
use force
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL boundary_conditions
LOGICAL(w2f__i4) EXISTS
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
type(active) :: MYTIME
EXTERNAL read_extended_field
EXTERNAL read_field
CHARACTER(80) STR1
CHARACTER(80) STR2
CHARACTER(80) STR3
type(active) :: X_IN(1 : 20)
type(active) :: Y_IN(1 : 20)
C
C **** statements ****
C
MYNX = 20
MYNY = 20
MYTIME%v = (-1.0D00)
CALL zero_deriv(MYTIME)
DO IX = 1, 20, 1
X_IN(INT(IX))%v = 0.0D00
CALL zero_deriv(X_IN(INT(IX)))
END DO
DO IY = 1, 20, 1
Y_IN(INT(IY))%v = 0.0D00
CALL zero_deriv(Y_IN(INT(IY)))
END DO
C inquire(file=ncdatafile,exist=exists)
INQUIRE(EXIST = EXISTS, FILE = NCDATAFILE)
IF(.NOT. EXISTS) THEN
WRITE(*, *) NCDATAFILE, ' not found, cannot continue'
ELSE
STR1 = 'depth'
STR2 = 'frict'
CALL read_field(NCDATAFILE,MYTIME,STR1,INIDEPTH)
CALL read_extended_field(NCDATAFILE,STR2,FRICT)
IF (RINI%v .ne. 0.0D00) THEN
WRITE(*,*)'rini = ',RINI%v
WRITE(*, *) 'will overwrite frict with rini'
DO IX = 1, 20, 1
DO IY = 1, 20, 1
FRICT(INT(IX),INT(IY))%v = RINI%v
CALL setderiv(FRICT(IX,IY),RINI)
END DO
END DO
ENDIF
CALL boundary_conditions(MYNX,MYNY,FRICT,XPERIODIC,YPERIODIC)
STR1 = 'uforce'
STR2 = 'vforce'
CALL read_field(NCDATAFILE,MYTIME,STR1,UFORCE)
CALL read_field(NCDATAFILE,MYTIME,STR2,VFORCE)
IF (START_TIME%v .eq. 0.0D00) THEN
WRITE(*, *) 'cold start from initial fields'
STR1 = 'uini'
STR2 = 'vini'
STR3 = 'etaini'
CALL read_field(NCDATAFILE,START_TIME,STR1,UINI)
CALL read_field(NCDATAFILE,START_TIME,STR2,VINI)
CALL read_field(NCDATAFILE,START_TIME,STR3,ETAINI)
ELSE
WRITE(*,*)'warm restart from time ',START_TIME%v
WRITE(*, *) 'in restart file ', NCRESTARTFILE
C inquire( file = ncrestartfile, exist = exists )
INQUIRE(EXIST = EXISTS, FILE = NCRESTARTFILE)
IF(.NOT. EXISTS) THEN
WRITE(*, *) NCRESTARTFILE, ' not found'
ELSE
STR1 = 'U'
STR2 = 'V'
STR3 = 'ETA'
CALL read_field(NCRESTARTFILE,START_TIME,STR1,UINI)
CALL read_field(NCRESTARTFILE,START_TIME,STR2,VINI)
CALL read_field(NCRESTARTFILE,START_TIME,STR3,ETAINI)
ENDIF
ENDIF
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE prep_depth()
use w2f__types
use active_module
use size
use parms
use pfields
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL boundary_conditions
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
type(active) :: MAXDEPTH
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
EXTERNAL read_depth_data
C
C **** statements ****
C
MYNX = 20
MYNY = 20
MAXDEPTH%v = 0.0D00
CALL zero_deriv(MAXDEPTH)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
IF (INIDEPTH(IX,IY)%v .GT. MAXDEPTH%v) THEN
MAXDEPTH%v = INIDEPTH(IX,IY)%v
CALL setderiv(MAXDEPTH,INIDEPTH(IX,IY))
ENDIF
END DO
END DO
DO IX = 1, 20, 1
DO IY = 1, 20, 1
DEPTH(INT(IX),INT(IY))%v = INIDEPTH(IX,IY)%v
CALL setderiv(DEPTH(IX,IY),INIDEPTH(IX,IY))
SCALEDEPTH(INT(IX),INT(IY))%v = INIDEPTH(IX,IY)%v
CALL setderiv(SCALEDEPTH(IX,IY),INIDEPTH(IX,IY))
IF (DEPTH(IX,IY)%v .LT. MAXDEPTH%v) THEN
ENDIF
END DO
END DO
CALL read_depth_data()
CALL boundary_conditions(MYNX,MYNY,DEPTH,XPERIODIC,YPERIODIC)
RETURN
END SUBROUTINE
SUBROUTINE ini_scales()
use w2f__types
use active_module
use size
use pfields
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_73
REAL(w2f__8) OpenAD_Symbol_74
REAL(w2f__8) OpenAD_Symbol_75
REAL(w2f__8) OpenAD_Symbol_80
REAL(w2f__8) OpenAD_Symbol_76
REAL(w2f__8) OpenAD_Symbol_81
REAL(w2f__8) OpenAD_Symbol_77
REAL(w2f__8) OpenAD_Symbol_82
REAL(w2f__8) OpenAD_Symbol_78
REAL(w2f__8) OpenAD_Symbol_83
REAL(w2f__8) OpenAD_Symbol_79
REAL(w2f__8) OpenAD_Symbol_84
REAL(w2f__8) OpenAD_Symbol_85
REAL(w2f__8) OpenAD_Symbol_86
REAL(w2f__8) OpenAD_Symbol_87
REAL(w2f__8) OpenAD_Symbol_765
type(active) :: OpenAD_Symbol_770
type(active) :: OpenAD_Symbol_766
REAL(w2f__8) OpenAD_Symbol_771
REAL(w2f__8) OpenAD_Symbol_767
type(active) :: OpenAD_Symbol_772
type(active) :: OpenAD_Symbol_768
REAL(w2f__8) OpenAD_Symbol_773
REAL(w2f__8) OpenAD_Symbol_769
type(active) :: OpenAD_Symbol_774
REAL(w2f__8) OpenAD_Symbol_775
type(active) :: OpenAD_Symbol_776
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
type(active) :: VARETA
EXTERNAL variance
type(active) :: VARU
type(active) :: VARV
C
C **** statements ****
C
MYNX = 20
MYNY = 20
CALL variance(MYNX,MYNY,UINI,UMASK,VARU)
IF (VARU%v .eq. 0.0D00) THEN
VARU%v = 1.0D00
CALL zero_deriv(VARU)
ENDIF
CALL variance(MYNX,MYNY,VINI,VMASK,VARV)
IF (VARU%v .eq. 0.0D00) THEN
VARV%v = 1.0D00
CALL zero_deriv(VARV)
ENDIF
CALL variance(MYNX,MYNY,ETAINI,ETAMASK,VARETA)
IF (VARU%v .eq. 0.0D00) THEN
VARETA%v = 1.0D00
CALL zero_deriv(VARETA)
ENDIF
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_73 = SQRT(VARU%v)
OpenAD_Symbol_77 = (UMASK(IX,IY)%v*OpenAD_Symbol_73)
OpenAD_Symbol_74 = OpenAD_Symbol_73
OpenAD_Symbol_76 = (5.0D-01 / OpenAD_Symbol_73)
OpenAD_Symbol_75 = UMASK(IX,IY)%v
SCALEU(INT(IX),INT(IY))%v = OpenAD_Symbol_77
OpenAD_Symbol_765 = (OpenAD_Symbol_76 * OpenAD_Symbol_75)
OpenAD_Symbol_767 = OpenAD_Symbol_74
CALL setderiv(OpenAD_Symbol_768,UMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_766,VARU)
CALL sax(OpenAD_Symbol_765,OpenAD_Symbol_766,SCALEU(IX,IY))
CALL saxpy(OpenAD_Symbol_767,OpenAD_Symbol_768,SCALEU(IX,IY))
OpenAD_Symbol_78 = SQRT(VARV%v)
OpenAD_Symbol_82 = (VMASK(IX,IY)%v*OpenAD_Symbol_78)
OpenAD_Symbol_79 = OpenAD_Symbol_78
OpenAD_Symbol_81 = (5.0D-01 / OpenAD_Symbol_78)
OpenAD_Symbol_80 = VMASK(IX,IY)%v
SCALEV(INT(IX),INT(IY))%v = OpenAD_Symbol_82
OpenAD_Symbol_769 = (OpenAD_Symbol_81 * OpenAD_Symbol_80)
OpenAD_Symbol_771 = OpenAD_Symbol_79
CALL setderiv(OpenAD_Symbol_772,VMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_770,VARV)
CALL sax(OpenAD_Symbol_769,OpenAD_Symbol_770,SCALEV(IX,IY))
CALL saxpy(OpenAD_Symbol_771,OpenAD_Symbol_772,SCALEV(IX,IY))
OpenAD_Symbol_83 = SQRT(VARETA%v)
OpenAD_Symbol_87 = (ETAMASK(IX,IY)%v*OpenAD_Symbol_83)
OpenAD_Symbol_84 = OpenAD_Symbol_83
OpenAD_Symbol_86 = (5.0D-01 / OpenAD_Symbol_83)
OpenAD_Symbol_85 = ETAMASK(IX,IY)%v
SCALEETA(INT(IX),INT(IY))%v = OpenAD_Symbol_87
OpenAD_Symbol_773 = (OpenAD_Symbol_86 * OpenAD_Symbol_85)
OpenAD_Symbol_775 = OpenAD_Symbol_84
CALL setderiv(OpenAD_Symbol_776,ETAMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_774,VARETA)
CALL sax(OpenAD_Symbol_773,OpenAD_Symbol_774,SCALEETA(IX,IY))
CALL saxpy(OpenAD_Symbol_775,OpenAD_Symbol_776,SCALEETA(IX,IY)
+)
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE prep_coriolis()
use w2f__types
use active_module
use size
use parms
use pfields
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_90
REAL(w2f__8) OpenAD_Symbol_91
REAL(w2f__8) OpenAD_Symbol_92
REAL(w2f__8) OpenAD_Symbol_88
REAL(w2f__8) OpenAD_Symbol_93
REAL(w2f__8) OpenAD_Symbol_89
REAL(w2f__8) OpenAD_Symbol_94
REAL(w2f__8) OpenAD_Symbol_96
REAL(w2f__8) OpenAD_Symbol_98
REAL(w2f__8) OpenAD_Symbol_99
REAL(w2f__8) OpenAD_Symbol_100
REAL(w2f__8) OpenAD_Symbol_101
REAL(w2f__8) OpenAD_Symbol_102
REAL(w2f__8) OpenAD_Symbol_103
REAL(w2f__8) OpenAD_Symbol_104
REAL(w2f__8) OpenAD_Symbol_105
REAL(w2f__8) OpenAD_Symbol_110
REAL(w2f__8) OpenAD_Symbol_106
REAL(w2f__8) OpenAD_Symbol_111
REAL(w2f__8) OpenAD_Symbol_107
REAL(w2f__8) OpenAD_Symbol_112
REAL(w2f__8) OpenAD_Symbol_108
REAL(w2f__8) OpenAD_Symbol_113
REAL(w2f__8) OpenAD_Symbol_109
REAL(w2f__8) OpenAD_Symbol_114
REAL(w2f__8) OpenAD_Symbol_115
REAL(w2f__8) OpenAD_Symbol_120
REAL(w2f__8) OpenAD_Symbol_116
REAL(w2f__8) OpenAD_Symbol_121
REAL(w2f__8) OpenAD_Symbol_117
REAL(w2f__8) OpenAD_Symbol_122
REAL(w2f__8) OpenAD_Symbol_123
REAL(w2f__8) OpenAD_Symbol_119
REAL(w2f__8) OpenAD_Symbol_124
REAL(w2f__8) OpenAD_Symbol_125
REAL(w2f__8) OpenAD_Symbol_130
REAL(w2f__8) OpenAD_Symbol_126
REAL(w2f__8) OpenAD_Symbol_131
REAL(w2f__8) OpenAD_Symbol_127
REAL(w2f__8) OpenAD_Symbol_132
REAL(w2f__8) OpenAD_Symbol_128
REAL(w2f__8) OpenAD_Symbol_129
REAL(w2f__8) OpenAD_Symbol_134
REAL(w2f__8) OpenAD_Symbol_135
REAL(w2f__8) OpenAD_Symbol_140
REAL(w2f__8) OpenAD_Symbol_136
REAL(w2f__8) OpenAD_Symbol_137
REAL(w2f__8) OpenAD_Symbol_142
REAL(w2f__8) OpenAD_Symbol_139
REAL(w2f__8) OpenAD_Symbol_800
REAL(w2f__8) OpenAD_Symbol_801
type(active) :: OpenAD_Symbol_802
REAL(w2f__8) OpenAD_Symbol_803
type(active) :: OpenAD_Symbol_804
REAL(w2f__8) OpenAD_Symbol_805
REAL(w2f__8) OpenAD_Symbol_810
type(active) :: OpenAD_Symbol_806
type(active) :: OpenAD_Symbol_811
REAL(w2f__8) OpenAD_Symbol_807
REAL(w2f__8) OpenAD_Symbol_812
type(active) :: OpenAD_Symbol_808
type(active) :: OpenAD_Symbol_813
REAL(w2f__8) OpenAD_Symbol_809
REAL(w2f__8) OpenAD_Symbol_814
type(active) :: OpenAD_Symbol_815
type(active) :: OpenAD_Symbol_820
REAL(w2f__8) OpenAD_Symbol_816
REAL(w2f__8) OpenAD_Symbol_821
REAL(w2f__8) OpenAD_Symbol_817
type(active) :: OpenAD_Symbol_822
type(active) :: OpenAD_Symbol_818
REAL(w2f__8) OpenAD_Symbol_823
REAL(w2f__8) OpenAD_Symbol_819
type(active) :: OpenAD_Symbol_824
REAL(w2f__8) OpenAD_Symbol_780
REAL(w2f__8) OpenAD_Symbol_825
type(active) :: OpenAD_Symbol_781
type(active) :: OpenAD_Symbol_826
REAL(w2f__8) OpenAD_Symbol_777
REAL(w2f__8) OpenAD_Symbol_782
REAL(w2f__8) OpenAD_Symbol_778
type(active) :: OpenAD_Symbol_783
type(active) :: OpenAD_Symbol_779
REAL(w2f__8) OpenAD_Symbol_784
REAL(w2f__8) OpenAD_Symbol_785
type(active) :: OpenAD_Symbol_790
type(active) :: OpenAD_Symbol_786
REAL(w2f__8) OpenAD_Symbol_791
REAL(w2f__8) OpenAD_Symbol_787
type(active) :: OpenAD_Symbol_792
type(active) :: OpenAD_Symbol_788
REAL(w2f__8) OpenAD_Symbol_793
REAL(w2f__8) OpenAD_Symbol_789
REAL(w2f__8) OpenAD_Symbol_794
type(active) :: OpenAD_Symbol_795
REAL(w2f__8) OpenAD_Symbol_796
type(active) :: OpenAD_Symbol_797
REAL(w2f__8) OpenAD_Symbol_798
type(active) :: OpenAD_Symbol_799
C
C **** Local Variables and functions ****
C
type(active) :: FAUX
type(active) :: FCORI(0 : 21, 0 : 21)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MY
C
C **** statements ****
C
MY = NINT(REAL(20) * 5.0E-01)
DO IY = 0, 21, 1
IF(SPHERICAL) THEN
OpenAD_Symbol_92 = (Y(IY)%v*1.74533000000000014518D-02)
OpenAD_Symbol_88 = SIN(OpenAD_Symbol_92)
OpenAD_Symbol_89 = (OM%v*2.0D00)
OpenAD_Symbol_98 = (OpenAD_Symbol_88 * OpenAD_Symbol_89)
OpenAD_Symbol_94 = 1.74533000000000014518D-02
OpenAD_Symbol_93 = COS(OpenAD_Symbol_92)
OpenAD_Symbol_90 = OpenAD_Symbol_89
OpenAD_Symbol_96 = 2.0D00
OpenAD_Symbol_91 = OpenAD_Symbol_88
FAUX%v = OpenAD_Symbol_98
OpenAD_Symbol_777 = (OpenAD_Symbol_94 * OpenAD_Symbol_93)
OpenAD_Symbol_778 = (OpenAD_Symbol_96 * OpenAD_Symbol_91)
OpenAD_Symbol_780 = (OpenAD_Symbol_777 * OpenAD_Symbol_90)
CALL setderiv(OpenAD_Symbol_781,Y(IY))
CALL setderiv(OpenAD_Symbol_779,OM)
CALL sax(OpenAD_Symbol_778,OpenAD_Symbol_779,FAUX)
CALL saxpy(OpenAD_Symbol_780,OpenAD_Symbol_781,FAUX)
ELSE
IF(CARTESIAN) THEN
OpenAD_Symbol_101 = (Y(IY)%v-Y(MY)%v)
OpenAD_Symbol_106 = (F0%v+BETA%v*OpenAD_Symbol_101)
OpenAD_Symbol_99 = 1_w2f__i8
OpenAD_Symbol_102 = OpenAD_Symbol_101
OpenAD_Symbol_104 = 1_w2f__i8
OpenAD_Symbol_105 = (-1_w2f__i8)
OpenAD_Symbol_103 = BETA%v
OpenAD_Symbol_100 = 1_w2f__i8
FAUX%v = OpenAD_Symbol_106
OpenAD_Symbol_782 = (OpenAD_Symbol_102 * OpenAD_Symbol_100)
OpenAD_Symbol_784 = (OpenAD_Symbol_103 * OpenAD_Symbol_100)
OpenAD_Symbol_785 = (OpenAD_Symbol_104 * OpenAD_Symbol_784)
OpenAD_Symbol_787 = (OpenAD_Symbol_105 * OpenAD_Symbol_784)
OpenAD_Symbol_789 = OpenAD_Symbol_99
CALL setderiv(OpenAD_Symbol_790,F0)
CALL setderiv(OpenAD_Symbol_788,Y(MY))
CALL setderiv(OpenAD_Symbol_786,Y(IY))
CALL setderiv(OpenAD_Symbol_783,BETA)
CALL sax(OpenAD_Symbol_782,OpenAD_Symbol_783,FAUX)
CALL saxpy(OpenAD_Symbol_785,OpenAD_Symbol_786,FAUX)
CALL saxpy(OpenAD_Symbol_787,OpenAD_Symbol_788,FAUX)
CALL saxpy(OpenAD_Symbol_789,OpenAD_Symbol_790,FAUX)
ENDIF
ENDIF
DO IX = 0, 21, 1
FCORI(INT(IX),INT(IY))%v = FAUX%v
CALL setderiv(FCORI(IX,IY),FAUX)
END DO
END DO
DO IX = 1, 20, 1
DO IY = 1, 20, 1
FAUX%v = (VMASK(IX+(-1),IY+1)%v+VMASK(IX,IY+1)%v+VMASK(IX,IY)%
+v+VMASK(IX+(-1),IY)%v)
OpenAD_Symbol_107 = 1_w2f__i8
OpenAD_Symbol_109 = 1_w2f__i8
OpenAD_Symbol_111 = 1_w2f__i8
OpenAD_Symbol_112 = 1_w2f__i8
OpenAD_Symbol_110 = 1_w2f__i8
OpenAD_Symbol_108 = 1_w2f__i8
OpenAD_Symbol_791 = (OpenAD_Symbol_109 * OpenAD_Symbol_108)
OpenAD_Symbol_793 = (OpenAD_Symbol_110 * OpenAD_Symbol_108)
OpenAD_Symbol_794 = (OpenAD_Symbol_111 * OpenAD_Symbol_793)
OpenAD_Symbol_796 = (OpenAD_Symbol_112 * OpenAD_Symbol_793)
OpenAD_Symbol_798 = OpenAD_Symbol_107
CALL setderiv(OpenAD_Symbol_799,VMASK(IX+(-1),IY+1))
CALL setderiv(OpenAD_Symbol_797,VMASK(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_795,VMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_792,VMASK(IX,IY+1))
CALL sax(OpenAD_Symbol_791,OpenAD_Symbol_792,FAUX)
CALL saxpy(OpenAD_Symbol_794,OpenAD_Symbol_795,FAUX)
CALL saxpy(OpenAD_Symbol_796,OpenAD_Symbol_797,FAUX)
CALL saxpy(OpenAD_Symbol_798,OpenAD_Symbol_799,FAUX)
IF (FAUX%v .eq. 0.0D00) THEN
FAUX%v = 0.0D00
CALL zero_deriv(FAUX)
ELSE
OpenAD_Symbol_142 = (UMASK(IX,IY)%v*2.5D-01)
OpenAD_Symbol_140 = 2.5D-01
FAUX%v = OpenAD_Symbol_142
OpenAD_Symbol_825 = OpenAD_Symbol_140
CALL setderiv(OpenAD_Symbol_826,UMASK(IX,IY))
CALL sax(OpenAD_Symbol_825,OpenAD_Symbol_826,FAUX)
ENDIF
OpenAD_Symbol_116 = (FCORI(IX,IY)%v+FCORI(IX+(-1),IY)%v)
OpenAD_Symbol_113 = (OpenAD_Symbol_116 * 5.0D-01)
OpenAD_Symbol_121 = (FAUX%v*OpenAD_Symbol_113)
OpenAD_Symbol_114 = OpenAD_Symbol_113
OpenAD_Symbol_119 = 1_w2f__i8
OpenAD_Symbol_120 = 1_w2f__i8
OpenAD_Symbol_117 = 5.0D-01
OpenAD_Symbol_115 = FAUX%v
FCORIU(INT(IX),INT(IY))%v = OpenAD_Symbol_121
OpenAD_Symbol_800 = (OpenAD_Symbol_117 * OpenAD_Symbol_115)
OpenAD_Symbol_801 = (OpenAD_Symbol_119 * OpenAD_Symbol_800)
OpenAD_Symbol_803 = (OpenAD_Symbol_120 * OpenAD_Symbol_800)
OpenAD_Symbol_805 = OpenAD_Symbol_114
CALL setderiv(OpenAD_Symbol_806,FAUX)
CALL setderiv(OpenAD_Symbol_804,FCORI(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_802,FCORI(IX,IY))
CALL sax(OpenAD_Symbol_801,OpenAD_Symbol_802,FCORIU(IX,IY))
CALL saxpy(OpenAD_Symbol_803,OpenAD_Symbol_804,FCORIU(IX,IY))
CALL saxpy(OpenAD_Symbol_805,OpenAD_Symbol_806,FCORIU(IX,IY))
FAUX%v = (UMASK(IX+1,IY+(-1))%v+UMASK(IX,IY+(-1))%v+UMASK(IX,I
+Y)%v+UMASK(IX+1,IY)%v)
OpenAD_Symbol_122 = 1_w2f__i8
OpenAD_Symbol_124 = 1_w2f__i8
OpenAD_Symbol_126 = 1_w2f__i8
OpenAD_Symbol_127 = 1_w2f__i8
OpenAD_Symbol_125 = 1_w2f__i8
OpenAD_Symbol_123 = 1_w2f__i8
OpenAD_Symbol_807 = (OpenAD_Symbol_124 * OpenAD_Symbol_123)
OpenAD_Symbol_809 = (OpenAD_Symbol_125 * OpenAD_Symbol_123)
OpenAD_Symbol_810 = (OpenAD_Symbol_126 * OpenAD_Symbol_809)
OpenAD_Symbol_812 = (OpenAD_Symbol_127 * OpenAD_Symbol_809)
OpenAD_Symbol_814 = OpenAD_Symbol_122
CALL setderiv(OpenAD_Symbol_815,UMASK(IX+1,IY+(-1)))
CALL setderiv(OpenAD_Symbol_813,UMASK(IX+1,IY))
CALL setderiv(OpenAD_Symbol_811,UMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_808,UMASK(IX,IY+(-1)))
CALL sax(OpenAD_Symbol_807,OpenAD_Symbol_808,FAUX)
CALL saxpy(OpenAD_Symbol_810,OpenAD_Symbol_811,FAUX)
CALL saxpy(OpenAD_Symbol_812,OpenAD_Symbol_813,FAUX)
CALL saxpy(OpenAD_Symbol_814,OpenAD_Symbol_815,FAUX)
IF (FAUX%v .eq. 0.0D00) THEN
FAUX%v = 0.0D00
CALL zero_deriv(FAUX)
ELSE
OpenAD_Symbol_139 = (VMASK(IX,IY)%v*2.5D-01)
OpenAD_Symbol_137 = 2.5D-01
FAUX%v = OpenAD_Symbol_139
OpenAD_Symbol_823 = OpenAD_Symbol_137
CALL setderiv(OpenAD_Symbol_824,VMASK(IX,IY))
CALL sax(OpenAD_Symbol_823,OpenAD_Symbol_824,FAUX)
ENDIF
OpenAD_Symbol_131 = (FCORI(IX,IY)%v+FCORI(IX,IY+(-1))%v)
OpenAD_Symbol_128 = (OpenAD_Symbol_131 * 5.0D-01)
OpenAD_Symbol_136 = (FAUX%v*OpenAD_Symbol_128)
OpenAD_Symbol_129 = OpenAD_Symbol_128
OpenAD_Symbol_134 = 1_w2f__i8
OpenAD_Symbol_135 = 1_w2f__i8
OpenAD_Symbol_132 = 5.0D-01
OpenAD_Symbol_130 = FAUX%v
FCORIV(INT(IX),INT(IY))%v = OpenAD_Symbol_136
OpenAD_Symbol_816 = (OpenAD_Symbol_132 * OpenAD_Symbol_130)
OpenAD_Symbol_817 = (OpenAD_Symbol_134 * OpenAD_Symbol_816)
OpenAD_Symbol_819 = (OpenAD_Symbol_135 * OpenAD_Symbol_816)
OpenAD_Symbol_821 = OpenAD_Symbol_129
CALL setderiv(OpenAD_Symbol_822,FAUX)
CALL setderiv(OpenAD_Symbol_820,FCORI(IX,IY+(-1)))
CALL setderiv(OpenAD_Symbol_818,FCORI(IX,IY))
CALL sax(OpenAD_Symbol_817,OpenAD_Symbol_818,FCORIV(IX,IY))
CALL saxpy(OpenAD_Symbol_819,OpenAD_Symbol_820,FCORIV(IX,IY))
CALL saxpy(OpenAD_Symbol_821,OpenAD_Symbol_822,FCORIV(IX,IY))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE make_masks()
use w2f__types
use active_module
use size
use parms
use pfields
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL boundary_conditions
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
type(active) :: MINDEPTH
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
C
C **** statements ****
C
MYNX = 20
MYNY = 20
DO IX = 1, 20, 1
DO IY = 1, 20, 1
IF (DEPTH(IX,IY)%v .LT. DEPTH(IX+(-1),IY)%v) THEN
MINDEPTH%v = DEPTH(IX,IY)%v
CALL setderiv(MINDEPTH,DEPTH(IX,IY))
ELSE
MINDEPTH%v = DEPTH(IX+(-1),IY)%v
CALL setderiv(MINDEPTH,DEPTH(IX+(-1),IY))
ENDIF
IF (MINDEPTH%v .ne. 0.0D00) THEN
UMASK(INT(IX),INT(IY))%v = 1.0D00
CALL zero_deriv(UMASK(INT(IX),INT(IY)))
ELSE
UMASK(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(UMASK(INT(IX),INT(IY)))
ENDIF
END DO
END DO
DO IX = 1, 20, 1
DO IY = 1, 20, 1
IF (DEPTH(IX,IY)%v .LT. DEPTH(IX,IY+(-1))%v) THEN
MINDEPTH%v = DEPTH(IX,IY)%v
CALL setderiv(MINDEPTH,DEPTH(IX,IY))
ELSE
MINDEPTH%v = DEPTH(IX,IY+(-1))%v
CALL setderiv(MINDEPTH,DEPTH(IX,IY+(-1)))
ENDIF
IF (MINDEPTH%v .ne. 0.0D00) THEN
VMASK(INT(IX),INT(IY))%v = 1.0D00
CALL zero_deriv(VMASK(INT(IX),INT(IY)))
ELSE
VMASK(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(VMASK(INT(IX),INT(IY)))
ENDIF
END DO
END DO
DO IX = 1, 20, 1
DO IY = 1, 20, 1
IF (DEPTH(IX,IY)%v .ne. 0.0D00) THEN
ETAMASK(INT(IX),INT(IY))%v = 1.0D00
CALL zero_deriv(ETAMASK(INT(IX),INT(IY)))
ELSE
ETAMASK(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(ETAMASK(INT(IX),INT(IY)))
ENDIF
END DO
END DO
CALL boundary_conditions(MYNX,MYNY,UMASK,XPERIODIC,YPERIODIC)
CALL boundary_conditions(MYNX,MYNY,VMASK,XPERIODIC,YPERIODIC)
RETURN
END SUBROUTINE
SUBROUTINE variance(NX, NY, F, FMASK, VARF)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_143
REAL(w2f__8) OpenAD_Symbol_144
REAL(w2f__8) OpenAD_Symbol_145
REAL(w2f__8) OpenAD_Symbol_150
REAL(w2f__8) OpenAD_Symbol_146
REAL(w2f__8) OpenAD_Symbol_151
REAL(w2f__8) OpenAD_Symbol_152
REAL(w2f__8) OpenAD_Symbol_148
REAL(w2f__8) OpenAD_Symbol_153
REAL(w2f__8) OpenAD_Symbol_149
REAL(w2f__8) OpenAD_Symbol_154
REAL(w2f__8) OpenAD_Symbol_155
REAL(w2f__8) OpenAD_Symbol_160
REAL(w2f__8) OpenAD_Symbol_161
REAL(w2f__8) OpenAD_Symbol_157
REAL(w2f__8) OpenAD_Symbol_158
REAL(w2f__8) OpenAD_Symbol_163
REAL(w2f__8) OpenAD_Symbol_159
type(active) :: OpenAD_Symbol_830
REAL(w2f__8) OpenAD_Symbol_831
REAL(w2f__8) OpenAD_Symbol_827
type(active) :: OpenAD_Symbol_832
type(active) :: OpenAD_Symbol_828
REAL(w2f__8) OpenAD_Symbol_833
REAL(w2f__8) OpenAD_Symbol_829
type(active) :: OpenAD_Symbol_834
REAL(w2f__8) OpenAD_Symbol_835
type(active) :: OpenAD_Symbol_840
REAL(w2f__8) OpenAD_Symbol_836
REAL(w2f__8) OpenAD_Symbol_841
REAL(w2f__8) OpenAD_Symbol_837
type(active) :: OpenAD_Symbol_842
type(active) :: OpenAD_Symbol_838
REAL(w2f__8) OpenAD_Symbol_843
REAL(w2f__8) OpenAD_Symbol_839
type(active) :: OpenAD_Symbol_844
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
type(active) :: F(1 : NX, 1 : NY)
type(active) :: FMASK(0 : INT((NX + 1)), 0 : INT((NY + 1)) )
type(active) :: VARF
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__20
INTEGER(w2f__i8) t__24
INTEGER(w2f__i8) t__21
INTEGER(w2f__i8) t__26
INTEGER(w2f__i8) t__22
INTEGER(w2f__i8) t__29
INTEGER(w2f__i8) t__23
INTEGER(w2f__i8) t__32
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) K
type(active) :: MEANF
INTEGER(w2f__i8) t__25
INTEGER(w2f__i8) t__27
INTEGER(w2f__i8) t__28
INTEGER(w2f__i8) t__30
INTEGER(w2f__i8) t__31
INTEGER(w2f__i8) t__33
C
C **** Temporary variables ****
C
INTEGER(w2f__i4) doloop_ub
INTEGER(w2f__i4) doloop_ub0
INTEGER(w2f__i4) doloop_ub1
INTEGER(w2f__i4) doloop_ub2
C
C **** statements ****
C
t__20 = NX
t__21 = NY
t__24 = MAX(t__20, 0_w2f__i8)
t__25 = t__24
t__26 = MAX(t__21, 0_w2f__i8)
t__27 = t__24 * t__26
t__22 = INT(NX + 1)
t__23 = INT(NY + 1)
t__28 = t__22 + 1_w2f__i8
t__29 = MAX(t__28, 0_w2f__i8)
t__30 = t__29
t__31 = t__23 + 1_w2f__i8
t__32 = MAX(t__31, 0_w2f__i8)
t__33 = t__29 * t__32
VARF%v = 0.0D00
MEANF%v = 0.0D00
CALL zero_deriv(VARF)
CALL zero_deriv(MEANF)
K = 0
doloop_ub = NY
DO IY = 1, doloop_ub, 1
doloop_ub0 = NX
DO IX = 1, doloop_ub0, 1
IF (FMASK(IX,IY)%v .ne. 0.0D00) THEN
MEANF%v = (F(IX,IY)%v+MEANF%v)
OpenAD_Symbol_143 = 1_w2f__i8
OpenAD_Symbol_144 = 1_w2f__i8
OpenAD_Symbol_827 = OpenAD_Symbol_143
OpenAD_Symbol_829 = OpenAD_Symbol_144
CALL setderiv(OpenAD_Symbol_830,MEANF)
CALL setderiv(OpenAD_Symbol_828,F(IX,IY))
CALL sax(OpenAD_Symbol_827,OpenAD_Symbol_828,MEANF)
CALL saxpy(OpenAD_Symbol_829,OpenAD_Symbol_830,MEANF)
K = K + 1
ENDIF
END DO
END DO
IF(K .ne. INT(0_w2f__i8)) THEN
OpenAD_Symbol_145 = REAL(K)
OpenAD_Symbol_148 = (MEANF%v/OpenAD_Symbol_145)
OpenAD_Symbol_146 = (INT(1_w2f__i8) / OpenAD_Symbol_145)
MEANF%v = OpenAD_Symbol_148
OpenAD_Symbol_831 = OpenAD_Symbol_146
CALL setderiv(OpenAD_Symbol_832,MEANF)
CALL sax(OpenAD_Symbol_831,OpenAD_Symbol_832,MEANF)
ENDIF
doloop_ub1 = NY
DO IY = 1, doloop_ub1, 1
doloop_ub2 = NX
DO IX = 1, doloop_ub2, 1
OpenAD_Symbol_154 = (F(IX,IY)%v-MEANF%v)
OpenAD_Symbol_151 = (OpenAD_Symbol_154 ** INT(2_w2f__i8))
OpenAD_Symbol_159 = (VARF%v+FMASK(IX,IY)%v*OpenAD_Symbol_151)
OpenAD_Symbol_149 = 1_w2f__i8
OpenAD_Symbol_152 = OpenAD_Symbol_151
OpenAD_Symbol_157 = 1_w2f__i8
OpenAD_Symbol_158 = (-1_w2f__i8)
OpenAD_Symbol_155 = (INT(2_w2f__i8) *(OpenAD_Symbol_154 **(
> INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_153 = FMASK(IX,IY)%v
OpenAD_Symbol_150 = 1_w2f__i8
VARF%v = OpenAD_Symbol_159
OpenAD_Symbol_833 = (OpenAD_Symbol_152 * OpenAD_Symbol_150)
OpenAD_Symbol_835 = (OpenAD_Symbol_153 * OpenAD_Symbol_150)
OpenAD_Symbol_836 = (OpenAD_Symbol_155 * OpenAD_Symbol_835)
OpenAD_Symbol_837 = (OpenAD_Symbol_157 * OpenAD_Symbol_836)
OpenAD_Symbol_839 = (OpenAD_Symbol_158 * OpenAD_Symbol_836)
OpenAD_Symbol_841 = OpenAD_Symbol_149
CALL setderiv(OpenAD_Symbol_842,VARF)
CALL setderiv(OpenAD_Symbol_840,MEANF)
CALL setderiv(OpenAD_Symbol_838,F(IX,IY))
CALL setderiv(OpenAD_Symbol_834,FMASK(IX,IY))
CALL sax(OpenAD_Symbol_833,OpenAD_Symbol_834,VARF)
CALL saxpy(OpenAD_Symbol_837,OpenAD_Symbol_838,VARF)
CALL saxpy(OpenAD_Symbol_839,OpenAD_Symbol_840,VARF)
CALL saxpy(OpenAD_Symbol_841,OpenAD_Symbol_842,VARF)
END DO
END DO
IF(K .GT. INT(1_w2f__i8)) THEN
OpenAD_Symbol_160 = REAL(K + INT((-1_w2f__i8)))
OpenAD_Symbol_163 = (VARF%v/OpenAD_Symbol_160)
OpenAD_Symbol_161 = (INT(1_w2f__i8) / OpenAD_Symbol_160)
VARF%v = OpenAD_Symbol_163
OpenAD_Symbol_843 = OpenAD_Symbol_161
CALL setderiv(OpenAD_Symbol_844,VARF)
CALL sax(OpenAD_Symbol_843,OpenAD_Symbol_844,VARF)
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE check_cfl()
use w2f__types
use active_module
use size
use parms
use pfields
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_61
REAL(w2f__8) OpenAD_Symbol_57
REAL(w2f__8) OpenAD_Symbol_62
REAL(w2f__8) OpenAD_Symbol_58
REAL(w2f__8) OpenAD_Symbol_63
REAL(w2f__8) OpenAD_Symbol_59
REAL(w2f__8) OpenAD_Symbol_64
REAL(w2f__8) OpenAD_Symbol_65
REAL(w2f__8) OpenAD_Symbol_70
REAL(w2f__8) OpenAD_Symbol_66
REAL(w2f__8) OpenAD_Symbol_71
REAL(w2f__8) OpenAD_Symbol_67
REAL(w2f__8) OpenAD_Symbol_72
REAL(w2f__8) OpenAD_Symbol_68
REAL(w2f__8) OpenAD_Symbol_69
REAL(w2f__8) OpenAD_Symbol_752
type(active) :: OpenAD_Symbol_753
REAL(w2f__8) OpenAD_Symbol_754
REAL(w2f__8) OpenAD_Symbol_755
REAL(w2f__8) OpenAD_Symbol_760
REAL(w2f__8) OpenAD_Symbol_756
REAL(w2f__8) OpenAD_Symbol_761
REAL(w2f__8) OpenAD_Symbol_757
type(active) :: OpenAD_Symbol_762
type(active) :: OpenAD_Symbol_758
REAL(w2f__8) OpenAD_Symbol_763
REAL(w2f__8) OpenAD_Symbol_759
type(active) :: OpenAD_Symbol_764
C
C **** Local Variables and functions ****
C
type(active) :: CFLX
type(active) :: CFLY
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
type(active) :: MAXIMUM
type(active) :: MDEP
type(active) :: MDX
type(active) :: MDY
type(active) :: MINIMUM
type(active) :: WAVESPEED
C
C **** statements ****
C
MDEP%v = 0.0D00
MDX%v = 9.99999999999999916114D+22
MDY%v = 9.99999999999999916114D+22
CALL zero_deriv(MDEP)
CALL zero_deriv(MDX)
CALL zero_deriv(MDY)
DO IX = 1, 20, 1
IF (DX(IX)%v .GT. MDX%v) THEN
MINIMUM%v = MDX%v
CALL setderiv(MINIMUM,MDX)
ELSE
MINIMUM%v = DX(IX)%v
CALL setderiv(MINIMUM,DX(IX))
ENDIF
MDX%v = MINIMUM%v
CALL setderiv(MDX,MINIMUM)
END DO
DO IY = 1, 20, 1
IF (DY(IY)%v .GT. MDY%v) THEN
MINIMUM%v = MDY%v
CALL setderiv(MINIMUM,MDY)
ELSE
MINIMUM%v = DY(IY)%v
CALL setderiv(MINIMUM,DY(IY))
ENDIF
MDY%v = MINIMUM%v
CALL setderiv(MDY,MINIMUM)
END DO
DO IX = 1, 20, 1
DO IY = 1, 20, 1
IF (DEPTH(IX,IY)%v .LT. MDEP%v) THEN
MAXIMUM%v = MDEP%v
CALL setderiv(MAXIMUM,MDEP)
ELSE
MAXIMUM%v = DEPTH(IX,IY)%v
CALL setderiv(MAXIMUM,DEPTH(IX,IY))
ENDIF
MDEP%v = MAXIMUM%v
CALL setderiv(MDEP,MAXIMUM)
END DO
END DO
OpenAD_Symbol_57 = SQRT(MDEP%v*9.81000000000000049738D00)
OpenAD_Symbol_59 = 9.81000000000000049738D00
OpenAD_Symbol_58 = (5.0D-01 / OpenAD_Symbol_57)
WAVESPEED%v = OpenAD_Symbol_57
OpenAD_Symbol_61 = (WAVESPEED%v*DT%v)
OpenAD_Symbol_66 = (OpenAD_Symbol_61/MDX%v)
OpenAD_Symbol_64 = DT%v
OpenAD_Symbol_65 = WAVESPEED%v
OpenAD_Symbol_62 = (INT(1 _w2f__i8)/MDX%v)
OpenAD_Symbol_63 = (-(OpenAD_Symbol_61/(MDX%v*MDX%v)))
CFLX%v = OpenAD_Symbol_66
OpenAD_Symbol_67 = (WAVESPEED%v*DT%v)
OpenAD_Symbol_72 = (OpenAD_Symbol_67/MDY%v)
OpenAD_Symbol_70 = DT%v
OpenAD_Symbol_71 = WAVESPEED%v
OpenAD_Symbol_68 = (INT(1 _w2f__i8)/MDY%v)
OpenAD_Symbol_69 = (-(OpenAD_Symbol_67/(MDY%v*MDY%v)))
CFLY%v = OpenAD_Symbol_72
OpenAD_Symbol_752 = (OpenAD_Symbol_59 * OpenAD_Symbol_58)
OpenAD_Symbol_754 = (OpenAD_Symbol_752 * OpenAD_Symbol_64)
OpenAD_Symbol_755 = (OpenAD_Symbol_752 * OpenAD_Symbol_70)
OpenAD_Symbol_756 = (OpenAD_Symbol_754 * OpenAD_Symbol_62)
OpenAD_Symbol_757 = (OpenAD_Symbol_65 * OpenAD_Symbol_62)
OpenAD_Symbol_759 = (OpenAD_Symbol_755 * OpenAD_Symbol_68)
OpenAD_Symbol_760 = (OpenAD_Symbol_71 * OpenAD_Symbol_68)
OpenAD_Symbol_761 = OpenAD_Symbol_63
OpenAD_Symbol_763 = OpenAD_Symbol_69
CALL setderiv(OpenAD_Symbol_764,MDY)
CALL setderiv(OpenAD_Symbol_762,MDX)
CALL setderiv(OpenAD_Symbol_758,DT)
CALL setderiv(OpenAD_Symbol_753,MDEP)
CALL sax(OpenAD_Symbol_752,OpenAD_Symbol_753,WAVESPEED)
CALL sax(OpenAD_Symbol_756,OpenAD_Symbol_753,CFLX)
CALL saxpy(OpenAD_Symbol_757,OpenAD_Symbol_758,CFLX)
CALL sax(OpenAD_Symbol_759,OpenAD_Symbol_753,CFLY)
CALL saxpy(OpenAD_Symbol_760,OpenAD_Symbol_758,CFLY)
CALL saxpy(OpenAD_Symbol_761,OpenAD_Symbol_762,CFLX)
CALL saxpy(OpenAD_Symbol_763,OpenAD_Symbol_764,CFLY)
WRITE(*, *) 'rough check of CLF criterion:'
IF ((CFLX%v .GE. 1.0D00) .OR. (CFLY%v .GE. 1.0D00)) THEN
WRITE(*, *) 'warning: CLF criterion not met'
WRITE(*,*)'sqrt(g*max(depth))*dt/min(dx) = ',CFLX%v
WRITE(*,*)'sqrt(g*max(depth))*dt/min(dy) = ',CFLY%v
ELSE
WRITE(*, *) 'OK'
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE read_extended_field(NCDATAFILE, FNAME, FIELD)
use w2f__types
use active_module
use size
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) NCDATAFILE
CHARACTER(80) FNAME
type(active) :: FIELD(0 : 21, 0 : 21)
C
C **** Local Variables and functions ****
C
type(active) :: F_IN(1 : 20, 1 : 20)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
EXTERNAL read_field_netcdf
C
C **** statements ****
C
MYNX = 20
MYNY = 20
DO IX = 1, 20, 1
DO IY = 1, 20, 1
F_IN(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(F_IN(INT(IX),INT(IY)))
END DO
END DO
CALL read_field_netcdf(NCDATAFILE,FNAME,MYNX,MYNY,F_IN)
DO IX = 1, 20, 1
DO IY = 1, 20, 1
FIELD(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(FIELD(IX,IY),F_IN(IX,IY))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE read_field(NCDATAFILE, START_TIME, FNAME, FIELD)
use w2f__types
use active_module
use size
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) NCDATAFILE
type(active) :: START_TIME
CHARACTER(80) FNAME
type(active) :: FIELD(1 : 20, 1 : 20)
C
C **** Local Variables and functions ****
C
type(active) :: F_IN(1 : 20, 1 : 20)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MYNX
SAVE MYNX
INTEGER(w2f__i4) MYNY
SAVE MYNY
EXTERNAL read_field_netcdf
EXTERNAL read_snap_netcdf
C
C **** Initializers ****
C
DATA MYNX / 20 /
DATA MYNY / 20 /
C
C **** statements ****
C
DO IX = 1, 20, 1
DO IY = 1, 20, 1
F_IN(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(F_IN(INT(IX),INT(IY)))
END DO
END DO
IF (START_TIME%v .LE. 0.0D00) THEN
CALL read_field_netcdf(NCDATAFILE,FNAME,MYNX,MYNY,F_IN)
ELSE
CALL read_snap_netcdf(NCDATAFILE,START_TIME,MYNX,MYNY,FNAME,F_IN
+)
ENDIF
DO IX = 1, 20, 1
DO IY = 1, 20, 1
FIELD(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(FIELD(IX,IY),F_IN(IX,IY))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE boundary_conditions(NX, NY, FIELD, XPERIODIC,
> YPERIODIC)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
type(active) :: FIELD(0 : INT((NX + 1)), 0 : INT((NY + 1)) )
LOGICAL(w2f__i4) XPERIODIC
LOGICAL(w2f__i4) YPERIODIC
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__40
INTEGER(w2f__i8) t__43
INTEGER(w2f__i8) t__41
INTEGER(w2f__i8) t__46
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i8) t__42
INTEGER(w2f__i8) t__44
INTEGER(w2f__i8) t__45
INTEGER(w2f__i8) t__47
C
C **** Temporary variables ****
C
INTEGER(w2f__i4) doloop_ub
INTEGER(w2f__i4) doloop_ub0
INTEGER(w2f__i4) doloop_ub1
INTEGER(w2f__i4) doloop_ub2
C
C **** statements ****
C
t__40 = INT(NX + 1)
t__41 = INT(NY + 1)
t__42 = t__40 + 1_w2f__i8
t__43 = MAX(t__42, 0_w2f__i8)
t__44 = t__43
t__45 = t__41 + 1_w2f__i8
t__46 = MAX(t__45, 0_w2f__i8)
t__47 = t__43 * t__46
IF(XPERIODIC) THEN
doloop_ub = NY + 1
DO IY = 0, doloop_ub, 1
FIELD(0,INT(IY))%v = FIELD(NX,IY)%v
CALL setderiv(FIELD(0,IY),FIELD(NX,IY))
FIELD(INT(NX+1),INT(IY))%v = FIELD(1,IY)%v
CALL setderiv(FIELD(NX+1,IY),FIELD(1,IY))
END DO
ELSE
doloop_ub0 = NY + 1
DO IY = 0, doloop_ub0, 1
FIELD(0,INT(IY))%v = 0.0D00
FIELD(INT(NX+1),INT(IY))%v = 0.0D00
CALL zero_deriv(FIELD(0,INT(IY)))
CALL zero_deriv(FIELD(INT(NX+1),INT(IY)))
END DO
ENDIF
IF(YPERIODIC) THEN
doloop_ub1 = NX + 1
DO IX = 0, doloop_ub1, 1
FIELD(INT(IX),0)%v = FIELD(IX,NY)%v
CALL setderiv(FIELD(IX,0),FIELD(IX,NY))
FIELD(INT(IX),INT(NY+1))%v = FIELD(IX,1)%v
CALL setderiv(FIELD(IX,NY+1),FIELD(IX,1))
END DO
ELSE
doloop_ub2 = NX + 1
DO IX = 0, doloop_ub2, 1
FIELD(INT(IX),0)%v = 0.0D00
FIELD(INT(IX),INT(NY+1))%v = 0.0D00
CALL zero_deriv(FIELD(INT(IX),0))
CALL zero_deriv(FIELD(INT(IX),INT(NY+1)))
END DO
ENDIF
IF(XPERIODIC .AND. YPERIODIC) THEN
WRITE(*, *) 'boundary_conditions: ',
> 'make sure that the corners are handled correctly'
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE ini_io()
use w2f__types
use active_module
use size
use parms
use pfields
use weights
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL add_coordinates_netcdf
EXTERNAL add_gatta_netcdf
EXTERNAL add_gatti_netcdf
EXTERNAL add_gattr_netcdf
EXTERNAL add_recvar_netcdf
EXTERNAL create_netcdf
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
type(active) :: MYEARTH
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
CHARACTER(80) STR1
CHARACTER(80) STR2
CHARACTER(80) STR3
CHARACTER(80) STR4
type(active) :: XOUT(1 : 20)
type(active) :: YOUT(1 : 20)
C
C **** statements ****
C
MYNX = 20
MYNY = 20
MYEARTH%v = 6.371D+06
CALL zero_deriv(MYEARTH)
IF(FULLIO) THEN
WRITE(*, *) 'initializing I/O'
ENDIF
CALL create_netcdf(FOUTNAME, RUNNAME, MYNX, MYNY)
IF(SPHERICAL) THEN
STR1 = 'grid_type'
STR2 = 'spherical'
STR3 = 'earth_radius'
STR4 = 'Omega'
CALL add_gatta_netcdf(FOUTNAME, STR1, STR2)
CALL add_gattr_netcdf(FOUTNAME,STR3,MYEARTH)
CALL add_gattr_netcdf(FOUTNAME,STR4,OM)
ELSE
IF(CARTESIAN) THEN
STR1 = 'grid_type'
STR2 = 'cartesian'
STR3 = 'f0'
STR4 = 'beta'
CALL add_gatta_netcdf(FOUTNAME, STR1, STR2)
CALL add_gattr_netcdf(FOUTNAME,STR3,F0)
CALL add_gattr_netcdf(FOUTNAME,STR4,BETA)
ENDIF
ENDIF
STR1 = 'r_ini'
STR2 = 'time_step'
CALL add_gattr_netcdf(FOUTNAME,STR1,RINI)
CALL add_gattr_netcdf(FOUTNAME,STR2,DT)
IF(XPERIODIC) THEN
STR1 = 'zonal_boundary_conditions'
STR2 = 'periodic'
CALL add_gatta_netcdf(FOUTNAME, STR1, STR2)
ENDIF
IF(YPERIODIC) THEN
STR1 = 'meridional_boundary_conditions'
STR2 = 'periodic'
CALL add_gatta_netcdf(FOUTNAME, STR1, STR2)
ENDIF
STR1 = 'data_files'
STR2 = NCDATAFILE // ' ' // DEPTHFILE // ' ' // FORCINGFILE //
> ' ' // UINIFILE // ' ' // VINIFILE // ' ' // ETAINIFILE
CALL add_gatta_netcdf(FOUTNAME, STR1, STR2)
IF (START_TIME%v .ne. 0.0D00) THEN
STR1 = 'restart_file'
CALL add_gatta_netcdf(FOUTNAME, STR1, NCRESTARTFILE)
ENDIF
STR1 = 'ntspinup'
STR2 = 'wf_depth'
STR3 = 'wf_eta'
STR4 = 'wf_u'
CALL add_gatti_netcdf(FOUTNAME, STR1, NTSPINUP)
CALL add_gattr_netcdf(FOUTNAME,STR2,WF_DEPTH)
CALL add_gattr_netcdf(FOUTNAME,STR3,WF_ETA)
CALL add_gattr_netcdf(FOUTNAME,STR4,WF_U)
STR1 = 'wf_v'
STR2 = 'wf_lapldepth'
STR3 = 'wf_graddepth'
STR4 = 'wf_zonal_transport'
CALL add_gattr_netcdf(FOUTNAME,STR1,WF_V)
CALL add_gattr_netcdf(FOUTNAME,STR2,WF_LAPLDEPTH)
CALL add_gattr_netcdf(FOUTNAME,STR3,WF_GRADDEPTH)
CALL add_gattr_netcdf(FOUTNAME,STR4,WF_ZONAL_TRANSPORT)
DO IX = 1, 20, 1
XOUT(INT(IX))%v = X(IX)%v
CALL setderiv(XOUT(IX),X(IX))
END DO
DO IY = 1, 20, 1
YOUT(INT(IY))%v = Y(IY)%v
CALL setderiv(YOUT(IY),Y(IY))
END DO
IF(SPHERICAL) THEN
STR1 = 'deg'
CALL add_coordinates_netcdf(FOUTNAME,MYNX,XOUT,MYNY,YOUT,STR1)
ELSE
IF(CARTESIAN) THEN
STR1 = 'meters'
CALL add_coordinates_netcdf(FOUTNAME,MYNX,XOUT,MYNY,YOUT,STR1)
ENDIF
ENDIF
STR1 = 'U'
STR2 = 'zonal velocity'
STR3 = 'meters/seconds'
CALL add_recvar_netcdf(FOUTNAME, STR1, STR2, STR3)
STR1 = 'V'
STR2 = 'meridional velocity'
CALL add_recvar_netcdf(FOUTNAME, STR1, STR2, STR3)
STR1 = 'ETA'
STR2 = 'sea-surface elevation'
STR3 = 'meters'
CALL add_recvar_netcdf(FOUTNAME, STR1, STR2, STR3)
RETURN
END SUBROUTINE
SUBROUTINE state_io(TIME, NIO)
use w2f__types
use active_module
use size
use parms
use pfields
use vars
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_164
REAL(w2f__8) OpenAD_Symbol_166
REAL(w2f__8) OpenAD_Symbol_168
REAL(w2f__8) OpenAD_Symbol_845
type(active) :: OpenAD_Symbol_850
type(active) :: OpenAD_Symbol_846
REAL(w2f__8) OpenAD_Symbol_847
type(active) :: OpenAD_Symbol_848
REAL(w2f__8) OpenAD_Symbol_849
C
C **** Parameters and Result ****
C
type(active) :: TIME
INTEGER(w2f__i4) NIO
C
C **** Local Variables and functions ****
C
type(active) :: ETAOUT(1 : 20, 1 : 20)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
CHARACTER(80) STR1
CHARACTER(80) STR2
type(active) :: UOUT(1 : 20, 1 : 20)
type(active) :: VOUT(1 : 20, 1 : 20)
EXTERNAL write_state_netcdf
C
C **** statements ****
C
MYNX = 20
MYNY = 20
DO IX = 1, 20, 1
DO IY = 1, 20, 1
UOUT(INT(IX),INT(IY))%v = (U(IX,IY)%v+REAL(INT(INT(UMASK(IX,IY
+)%v))+INT((-1 _w2f__i8)))*9.9D+01)
OpenAD_Symbol_164 = 1_w2f__i8
OpenAD_Symbol_845 = OpenAD_Symbol_164
CALL setderiv(OpenAD_Symbol_846,U(IX,IY))
CALL sax(OpenAD_Symbol_845,OpenAD_Symbol_846,UOUT(IX,IY))
VOUT(INT(IX),INT(IY))%v = (V(IX,IY)%v+REAL(INT(INT(VMASK(IX,IY
+)%v))+INT((-1 _w2f__i8)))*9.9D+01)
OpenAD_Symbol_166 = 1_w2f__i8
OpenAD_Symbol_847 = OpenAD_Symbol_166
CALL setderiv(OpenAD_Symbol_848,V(IX,IY))
CALL sax(OpenAD_Symbol_847,OpenAD_Symbol_848,VOUT(IX,IY))
ETAOUT(INT(IX),INT(IY))%v = (ETA(IX,IY)%v+REAL(INT(INT(ETAMASK
+(IX,IY)%v))+INT((-1 _w2f__i8)))*9.9D+01)
OpenAD_Symbol_168 = 1_w2f__i8
OpenAD_Symbol_849 = OpenAD_Symbol_168
CALL setderiv(OpenAD_Symbol_850,ETA(IX,IY))
CALL sax(OpenAD_Symbol_849,OpenAD_Symbol_850,ETAOUT(IX,IY))
END DO
END DO
STR1 = 'TIME'
STR2 = 'U'
CALL write_state_netcdf(FOUTNAME,MYNX,MYNY,NIO,STR1,TIME)
CALL write_state_netcdf(FOUTNAME,MYNX,MYNY,NIO,STR2,UOUT)
STR1 = 'V'
STR2 = 'ETA'
CALL write_state_netcdf(FOUTNAME,MYNX,MYNY,NIO,STR1,VOUT)
CALL write_state_netcdf(FOUTNAME,MYNX,MYNY,NIO,STR2,ETAOUT)
RETURN
END SUBROUTINE
SUBROUTINE pfields_io()
use w2f__types
use active_module
use size
use parms
use pfields
use force
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL add_pfield_netcdf
type(active) :: AUX(1 : 20, 1 : 20)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
CHARACTER(80) STR1
CHARACTER(80) STR2
CHARACTER(80) STR3
C
C **** statements ****
C
MYNX = 20
MYNY = 20
DO IX = 1, 20, 1
DO IY = 1, 20, 1
AUX(INT(IX),INT(IY))%v = DEPTH(IX,IY)%v
CALL setderiv(AUX(IX,IY),DEPTH(IX,IY))
END DO
END DO
STR1 = 'depth'
STR2 = 'water depth'
STR3 = 'meters'
CALL add_pfield_netcdf(FOUTNAME,MYNX,MYNY,AUX,STR1,STR2,STR3)
DO IX = 1, 20, 1
DO IY = 1, 20, 1
AUX(INT(IX),INT(IY))%v = UFORCE(IX,IY)%v
CALL setderiv(AUX(IX,IY),UFORCE(IX,IY))
END DO
END DO
STR1 = 'uforce'
STR2 = 'zonal forcing'
STR3 = 'forcing units'
CALL add_pfield_netcdf(FOUTNAME,MYNX,MYNY,AUX,STR1,STR2,STR3)
DO IX = 1, 20, 1
DO IY = 1, 20, 1
AUX(INT(IX),INT(IY))%v = VFORCE(IX,IY)%v
CALL setderiv(AUX(IX,IY),VFORCE(IX,IY))
END DO
END DO
STR1 = 'vforce'
STR2 = 'meridional forcing'
STR3 = 'forcing units'
CALL add_pfield_netcdf(FOUTNAME,MYNX,MYNY,AUX,STR1,STR2,STR3)
DO IX = 1, 20, 1
DO IY = 1, 20, 1
AUX(INT(IX),INT(IY))%v = FRICT(IX,IY)%v
CALL setderiv(AUX(IX,IY),FRICT(IX,IY))
END DO
END DO
STR1 = 'frict'
STR2 = 'linear bottom friction coefficient'
STR3 = '1/seconds'
CALL add_pfield_netcdf(FOUTNAME,MYNX,MYNY,AUX,STR1,STR2,STR3)
RETURN
END SUBROUTINE
SUBROUTINE save_gradient_io(N, ADXC, GNAME)
use w2f__types
use active_module
use size
use parms
use pfields
IMPLICIT NONE
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) N
type(active) :: ADXC(1 : N)
CHARACTER(80) GNAME
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__54
INTEGER(w2f__i8) t__57
EXTERNAL add_pfield_netcdf
type(active) :: GRAD(1 : 20, 1 : 20)
EXTERNAL map_gradient
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
CHARACTER(80) STR1
CHARACTER(80) STR2
C
C **** statements ****
C
t__54 = N
t__57 = MAX(t__54, 0_w2f__i8)
MYNX = 20
MYNY = 20
CALL map_gradient(N,ADXC,GRAD)
STR1 = 'gradient of cost function with respect to depth'
STR2 = 'cost function units/m'
CALL add_pfield_netcdf(FOUTNAME,MYNX,MYNY,GRAD,GNAME,STR1,STR2)
SUPPRESSIO = .TRUE.
RETURN
END SUBROUTINE
SUBROUTINE save_depth_io(N, XC, DNAME)
use w2f__types
use active_module
use size
use parms
use pfields
IMPLICIT NONE
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) N
type(active) :: XC(1 : N)
CHARACTER(80) DNAME
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__58
INTEGER(w2f__i8) t__61
EXTERNAL add_pfield_netcdf
type(active) :: AUX(1 : 20, 1 : 20)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
EXTERNAL map_from_control_vector
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
CHARACTER(80) STR1
CHARACTER(80) STR2
C
C **** statements ****
C
t__58 = N
t__61 = MAX(t__58, 0_w2f__i8)
MYNX = 20
MYNY = 20
CALL map_from_control_vector(N,XC)
DO IX = 1, 20, 1
DO IY = 1, 20, 1
AUX(INT(IX),INT(IY))%v = DEPTH(IX,IY)%v
CALL setderiv(AUX(IX,IY),DEPTH(IX,IY))
END DO
END DO
STR1 = 'water depth after optimization'
STR2 = 'm'
CALL add_pfield_netcdf(FOUTNAME,MYNX,MYNY,AUX,DNAME,STR1,STR2)
SUPPRESSIO = .TRUE.
RETURN
END SUBROUTINE
SUBROUTINE inimini_io()
use w2f__types
use active_module
IMPLICIT NONE
C
C **** statements ****
C
RETURN
END SUBROUTINE
SUBROUTINE save_weights_io()
use w2f__types
use active_module
use size
use parms
use weights
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL add_gattr_netcdf
CHARACTER(80) STR1
C
C **** statements ****
C
STR1 = 'wf_depth'
CALL add_gattr_netcdf(FOUTNAME,STR1,WF_DEPTH)
STR1 = 'wf_eta'
CALL add_gattr_netcdf(FOUTNAME,STR1,WF_ETA)
STR1 = 'wf_zonal_transport'
CALL add_gattr_netcdf(FOUTNAME,STR1,WF_ZONAL_TRANSPORT)
RETURN
END SUBROUTINE
SUBROUTINE create_netcdf(FNAME, TNAME, NX, NY)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) TNAME
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) DID
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
EXTERNAL lastchar
INTEGER(w2f__i4) lastchar
INTEGER(w2f__i4) LCHAR
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
EXTERNAL nf_create
INTEGER(w2f__i4) nf_create
EXTERNAL nf_def_dim
INTEGER(w2f__i4) nf_def_dim
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
EXTERNAL nf_enddef
INTEGER(w2f__i4) nf_enddef
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_put_att_text
INTEGER(w2f__i4) nf_put_att_text
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
CHARACTER(80) STR1
CHARACTER(80) STR2
C
C **** statements ****
C
ERRMSG = nf_create(FNAME, (0), FID)
STR1 = 'nf_create'
CALL handle_err(ERRMSG, STR1)
LCHAR = lastchar(TNAME)
STR1 = 'title'
ERRMSG = nf_put_att_text(FID, (0), STR1, LCHAR, TNAME(1_w2f__i8 :
> MAX(LCHAR, 0)))
STR1 = 'nf_put_att_text: title'
CALL handle_err(ERRMSG, STR1)
STR1 = 'TIME'
STR2 = 'nf_def_dim: TIME'
ERRMSG = nf_def_dim(FID, STR1, (0), DID)
CALL handle_err(ERRMSG, STR2)
STR1 = 'X'
STR2 = 'nf_def_dim: X'
ERRMSG = nf_def_dim(FID, STR1, NX, DID)
CALL handle_err(ERRMSG, STR2)
STR1 = 'Y'
STR2 = 'nf_def_dim: Y'
ERRMSG = nf_def_dim(FID, STR1, NY, DID)
CALL handle_err(ERRMSG, STR2)
STR1 = 'nf_enddef'
ERRMSG = nf_enddef(FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_close'
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE add_gatta_netcdf(FNAME, ANAME, A)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) ANAME
CHARACTER(80) A
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
EXTERNAL lastchar
INTEGER(w2f__i4) lastchar
INTEGER(w2f__i4) LCHAR
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
EXTERNAL nf_put_att_text
INTEGER(w2f__i4) nf_put_att_text
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
EXTERNAL nf_redef
INTEGER(w2f__i4) nf_redef
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
CHARACTER(80) STR1
C
C **** statements ****
C
STR1 = 'nf_open'
ERRMSG = nf_open(FNAME, (1), FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_redef'
ERRMSG = nf_redef(FID)
CALL handle_err(ERRMSG, STR1)
LCHAR = lastchar(A)
IF(LCHAR .eq. INT(0_w2f__i8)) THEN
LCHAR = 1
ENDIF
STR1 = 'nf_put_att_text: ' // ANAME
ERRMSG = nf_put_att_text(FID, (0), ANAME, LCHAR, A(1_w2f__i8 :
> MAX(LCHAR, 0)))
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_close'
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE add_gatti_netcdf(FNAME, ANAME, A)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) ANAME
INTEGER(w2f__i4) A
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
EXTERNAL nf_put_att_int
INTEGER(w2f__i4) nf_put_att_int
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
EXTERNAL nf_redef
INTEGER(w2f__i4) nf_redef
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
CHARACTER(80) STR1
C
C **** statements ****
C
STR1 = 'nf_open'
ERRMSG = nf_open(FNAME, (1), FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_redef'
ERRMSG = nf_redef(FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_put_att_int ' // ANAME
ERRMSG = nf_put_att_int(FID, (0), ANAME, (4), (1), A)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_close'
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE add_gattr_netcdf(FNAME, ANAME, A)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) ANAME
type(active) :: A
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
EXTERNAL nf_put_att_double
INTEGER(w2f__i4) nf_put_att_double
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
EXTERNAL nf_redef
INTEGER(w2f__i4) nf_redef
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_TYPE
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
EXTERNAL set_nf_real_type
CHARACTER(80) STR1
C
C **** statements ****
C
CALL set_nf_real_type(NF_TYPE)
STR1 = 'nf_open'
ERRMSG = nf_open(FNAME, (1), FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_redef'
ERRMSG = nf_redef(FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_put_att_double ' // ANAME
ERRMSG = nf_put_att_double(FID, (0), ANAME, NF_TYPE, (1), A)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_close'
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE add_coordinates_netcdf(FNAME, NX, X, NY, Y, UNITS)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
INTEGER(w2f__i4) NX
type(active) :: X(1 : NX)
INTEGER(w2f__i4) NY
type(active) :: Y(1 : NY)
CHARACTER(80) UNITS
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__62
INTEGER(w2f__i8) t__64
INTEGER(w2f__i8) t__63
INTEGER(w2f__i8) t__65
INTEGER(w2f__i4) DID
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
CHARACTER(1) GRID
EXTERNAL handle_err
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
EXTERNAL nf_def_var
INTEGER(w2f__i4) nf_def_var
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
EXTERNAL nf_enddef
INTEGER(w2f__i4) nf_enddef
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_dimid
INTEGER(w2f__i4) nf_inq_dimid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
EXTERNAL nf_put_att_double
INTEGER(w2f__i4) nf_put_att_double
EXTERNAL nf_put_att_text
INTEGER(w2f__i4) nf_put_att_text
EXTERNAL nf_put_var_double_ad1
INTEGER(w2f__i4) nf_put_var_double_ad1
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
EXTERNAL nf_redef
INTEGER(w2f__i4) nf_redef
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_TYPE
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
type(active) :: RANGE(1 : 2)
EXTERNAL set_nf_real_type
CHARACTER(80) STR1
CHARACTER(80) STR2
INTEGER(w2f__i4) TID
INTEGER(w2f__i4) XID
INTEGER(w2f__i4) YID
C
C **** Temporary variables ****
C
INTEGER(w2f__i4) doloop_ub
INTEGER(w2f__i4) doloop_ub0
C
C **** statements ****
C
t__62 = NX
t__64 = MAX(t__62, 0_w2f__i8)
t__63 = NY
t__65 = MAX(t__63, 0_w2f__i8)
IF(UNITS .EQ. 'deg') THEN
GRID = 's'
ELSE
IF(UNITS .EQ. 'meters') THEN
GRID = 'c'
ELSE
WRITE(*, *) ' no propery x/y units specified'
ENDIF
ENDIF
CALL set_nf_real_type(NF_TYPE)
STR1 = 'nf_open'
ERRMSG = nf_open(FNAME, (1), FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_redef'
ERRMSG = nf_redef(FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'TIME'
STR2 = 'nf_inq_dimid: TIME'
ERRMSG = nf_inq_dimid(FID, STR1, DID)
CALL handle_err(ERRMSG, STR2)
STR1 = 'TIME'
STR2 = 'nf_def_var: TIME'
ERRMSG = nf_def_var(FID, STR1, NF_TYPE, (1), DID, TID)
CALL handle_err(ERRMSG, STR2)
STR1 = 'nf_put_att_text: TIME: long_name'
STR2 = 'nf_put_att_text: TIME: units'
ERRMSG = nf_put_att_text(FID, TID, 'long_name', (19),
> 'time of integration')
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_att_text(FID, TID, 'units', (7), 'seconds')
CALL handle_err(ERRMSG, STR2)
STR1 = 'nf_inq_dimid: X'
ERRMSG = nf_inq_dimid(FID, 'X', DID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_def_var: X'
ERRMSG = nf_def_var(FID, 'X', NF_TYPE, (1), DID, XID)
CALL handle_err(ERRMSG, STR1)
IF(GRID .EQ. 's') THEN
ERRMSG = nf_put_att_text(FID, XID, 'long_name', (9),
> 'longitude')
ELSE
IF(GRID .EQ. 'c') THEN
ERRMSG = nf_put_att_text(FID, XID, 'long_name', (12),
> 'X-coordinate')
ENDIF
ENDIF
STR1 = 'nf_put_att_text: X: long_name'
CALL handle_err(ERRMSG, STR1)
IF(GRID .EQ. 's') THEN
ERRMSG = nf_put_att_text((FID), (XID), 'units', LEN(UNITS) + 1,
> (UNITS // 'E'))
ELSE
IF(GRID .EQ. 'c') THEN
ERRMSG = nf_put_att_text(FID, XID, 'units', LEN(UNITS), UNITS
> )
ENDIF
ENDIF
STR1 = 'nf_put_att_text: X: units'
CALL handle_err(ERRMSG, STR1)
RANGE(1)%v = 9.99999999999999916114D+22
RANGE(2)%v = (-9.99999999999999916114D+22)
CALL zero_deriv(RANGE(1))
CALL zero_deriv(RANGE(2))
doloop_ub = NX
DO IX = 1, doloop_ub, 1
IF (X(IX)%v .LT. RANGE(1)%v) THEN
RANGE(1)%v = X(IX)%v
CALL setderiv(RANGE(1),X(IX))
ENDIF
IF (X(IX)%v .GT. RANGE(2)%v) THEN
RANGE(2)%v = X(IX)%v
CALL setderiv(RANGE(2),X(IX))
ENDIF
END DO
ERRMSG = nf_put_att_double(FID, XID, 'valid_range', NF_TYPE, (2),
> RANGE)
STR1 = 'nf_put_att_text: X: valid_range'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_dimid(FID, 'Y', DID)
STR1 = 'nf_inq_dimid: Y'
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_def_var: Y'
ERRMSG = nf_def_var(FID, 'Y', NF_TYPE, (1), DID, YID)
CALL handle_err(ERRMSG, STR1)
IF(GRID .EQ. 's') THEN
ERRMSG = nf_put_att_text(FID, YID, 'long_name', (8), 'latitude'
> )
ELSE
IF(GRID .EQ. 'c') THEN
ERRMSG = nf_put_att_text(FID, YID, 'long_name', (12),
> 'Y-coordinate')
ENDIF
ENDIF
STR1 = 'nf_put_att_text: Y: long_name'
CALL handle_err(ERRMSG, STR1)
IF(GRID .EQ. 's') THEN
ERRMSG = nf_put_att_text((FID), (YID), 'units', LEN(UNITS) + 1,
> (UNITS // 'N'))
ELSE
IF(GRID .EQ. 'c') THEN
ERRMSG = nf_put_att_text(FID, YID, 'units', LEN(UNITS), UNITS
> )
ENDIF
ENDIF
STR1 = 'nf_put_att_text: Y: units'
CALL handle_err(ERRMSG, STR1)
RANGE(1)%v = 9.99999999999999916114D+22
RANGE(2)%v = (-9.99999999999999916114D+22)
CALL zero_deriv(RANGE(1))
CALL zero_deriv(RANGE(2))
doloop_ub0 = NY
DO IY = 1, doloop_ub0, 1
IF (Y(IY)%v .LT. RANGE(1)%v) THEN
RANGE(1)%v = Y(IY)%v
CALL setderiv(RANGE(1),Y(IY))
ENDIF
IF (Y(IY)%v .GT. RANGE(2)%v) THEN
RANGE(2)%v = Y(IY)%v
CALL setderiv(RANGE(2),Y(IY))
ENDIF
END DO
ERRMSG = nf_put_att_double(FID, YID, 'valid_range', NF_TYPE, (2),
> RANGE)
ERRMSG = nf_enddef(FID)
STR1 = 'nf_enddef'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_var_double_ad1(FID, XID, X, NX)
STR1 = 'nf_put_var_double: X'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_var_double_ad1(FID, YID, Y, NY)
STR1 = 'nf_put_var_double: Y'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_close(FID)
STR1 = 'nf_close'
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE add_pfield_netcdf(FNAME, NX, NY, U, UNAME, ULONGNAME,
> UUNITS)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
type(active) :: U
CHARACTER(80) UNAME
CHARACTER(80) ULONGNAME
CHARACTER(80) UUNITS
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) DID(1 : 2)
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
EXTERNAL nf_def_var
INTEGER(w2f__i4) nf_def_var
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
EXTERNAL nf_enddef
INTEGER(w2f__i4) nf_enddef
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_dimid
INTEGER(w2f__i4) nf_inq_dimid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
EXTERNAL nf_put_att_double
INTEGER(w2f__i4) nf_put_att_double
EXTERNAL nf_put_att_text
INTEGER(w2f__i4) nf_put_att_text
EXTERNAL nf_put_var_double_ad0
INTEGER(w2f__i4) nf_put_var_double_ad0
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
EXTERNAL nf_redef
INTEGER(w2f__i4) nf_redef
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_TYPE
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
EXTERNAL set_nf_real_type
CHARACTER(80) STR1
INTEGER(w2f__i4) UID
C
C **** statements ****
C
CALL set_nf_real_type(NF_TYPE)
STR1 = 'nf_open'
ERRMSG = nf_open(FNAME, (1), FID)
CALL handle_err(ERRMSG, STR1)
STR1 = 'nf_redef'
ERRMSG = nf_redef(FID)
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_dimid(FID, 'X', DID(1))
STR1 = 'nf_inq_dimid: X'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_dimid(FID, 'Y', DID(2))
STR1 = 'nf_inq_dimid: Y'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_def_var(FID, UNAME, NF_TYPE, (2), DID, UID)
STR1 = 'nf_def_var: ' // UNAME
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_att_text(FID, UID, 'long_name', LEN(ULONGNAME),
> ULONGNAME)
STR1 = 'nf_put_att_double: ' // UNAME // ': long_name'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_att_text(FID, UID, 'units', LEN(UUNITS), UUNITS)
STR1 = 'nf_put_att_double: ' // UNAME // ': units'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_att_double(FID, UID, 'missing_value', NF_TYPE, (1
> ), (-9.9E+01))
STR1 = 'nf_put_att_double: ' // UNAME // ': missing_value'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_enddef(FID)
STR1 = 'nf_enddef'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_var_double_ad0(FID, UID, U, (1))
STR1 = 'nf_put_var_double: ' // UNAME
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_close(FID)
STR1 = 'nf_close'
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE add_recvar_netcdf(FNAME, UNAME, ULONGNAME, UUNITS)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) UNAME
CHARACTER(80) ULONGNAME
CHARACTER(80) UUNITS
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) DID(1 : 3)
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
EXTERNAL nf_def_var
INTEGER(w2f__i4) nf_def_var
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
EXTERNAL nf_enddef
INTEGER(w2f__i4) nf_enddef
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_dimid
INTEGER(w2f__i4) nf_inq_dimid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
EXTERNAL nf_put_att_double
INTEGER(w2f__i4) nf_put_att_double
EXTERNAL nf_put_att_text
INTEGER(w2f__i4) nf_put_att_text
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
EXTERNAL nf_redef
INTEGER(w2f__i4) nf_redef
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_TYPE
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
EXTERNAL set_nf_real_type
CHARACTER(80) STR1
INTEGER(w2f__i4) UID
C
C **** statements ****
C
CALL set_nf_real_type(NF_TYPE)
ERRMSG = nf_open(FNAME, (1), FID)
STR1 = 'nf_open'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_redef(FID)
STR1 = 'nf_redef'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_dimid(FID, 'X', DID(1))
STR1 = 'nf_inq_dimid: X'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_dimid(FID, 'Y', DID(2))
STR1 = 'nf_inq_dimid: Y'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_dimid(FID, 'TIME', DID(3))
STR1 = 'nf_inq_dimid: TIME'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_def_var(FID, UNAME, NF_TYPE, (3), DID, UID)
STR1 = 'nf_def_var: ' // UNAME
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_att_text(FID, UID, 'long_name', LEN(ULONGNAME),
> ULONGNAME)
STR1 = 'nf_put_att_double: ' // UNAME // ': ' // ULONGNAME
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_att_text(FID, UID, 'units', LEN(UUNITS), UUNITS)
STR1 = 'nf_put_att_double: ' // UNAME // ': ' // UUNITS
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_put_att_double(FID, UID, 'missing_value', NF_TYPE, (1
> ), (-9.9E+01))
STR1 = 'nf_put_att_double: ' // UNAME // ': missing_value'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_enddef(FID)
STR1 = 'nf_enddef'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_close(FID)
STR1 = 'nf_close'
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE write_state_netcdf(FNAME, NX, NY, IT, UNAME, U)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
INTEGER(w2f__i4) IT
CHARACTER(80) UNAME
type(active) :: U(1 : NX, 1 : NY)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__66
INTEGER(w2f__i8) t__68
INTEGER(w2f__i8) t__67
INTEGER(w2f__i8) t__70
INTEGER(w2f__i4) COUNT(1 : 3)
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_varid
INTEGER(w2f__i4) nf_inq_varid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
EXTERNAL nf_put_vara_double
INTEGER(w2f__i4) nf_put_vara_double
EXTERNAL nf_put_vara_double_ad2
INTEGER(w2f__i4) nf_put_vara_double_ad2
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
INTEGER(w2f__i4) START(1 : 3)
CHARACTER(80) STR1
INTEGER(w2f__i4) UID
INTEGER(w2f__i8) t__69
INTEGER(w2f__i8) t__71
C
C **** statements ****
C
t__66 = NX
t__67 = NY
t__68 = MAX(t__66, 0_w2f__i8)
t__69 = t__68
t__70 = MAX(t__67, 0_w2f__i8)
t__71 = t__68 * t__70
START(1) = 1
START(2) = 1
START(3) = IT
COUNT(1) = NX
COUNT(2) = NY
COUNT(3) = 1
ERRMSG = nf_open(FNAME, (1), FID)
STR1 = 'nf_open'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_varid(FID, UNAME, UID)
STR1 = 'nf_inq_varid: ' // UNAME
CALL handle_err(ERRMSG, STR1)
IF(UNAME .EQ. 'TIME') THEN
ERRMSG = nf_put_vara_double(FID, UID, IT, (1), U(1, 1))
ELSE
ERRMSG = nf_put_vara_double_ad2(FID, UID, START, COUNT, U, NX,
> NY)
ENDIF
STR1 = 'nf_put_vara_double: ' // UNAME
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_close(FID)
STR1 = 'nf_close'
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE read_vector_netcdf(FNAME, ANAME, N, A)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) ANAME
INTEGER(w2f__i4) N
type(active) :: A(1 : N)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__72
INTEGER(w2f__i8) t__73
INTEGER(w2f__i4) AID
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) K
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
EXTERNAL nf_get_var_double_ad1
INTEGER(w2f__i4) nf_get_var_double_ad1
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_varid
INTEGER(w2f__i4) nf_inq_varid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
CHARACTER(80) STR1
C
C **** Temporary variables ****
C
INTEGER(w2f__i4) doloop_ub
C
C **** statements ****
C
t__72 = N
t__73 = MAX(t__72, 0_w2f__i8)
ERRMSG = nf_open(FNAME, (0), FID)
STR1 = 'nf_open'
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_inq_varid(FID, ANAME, AID)
IF(ERRMSG .eq. INT((-49_w2f__i8))) THEN
WRITE(*, *) 'variable "' // ANAME // '" not found in ' // FNAME
WRITE(*, *) 'set to zero'
doloop_ub = N
DO K = 1, doloop_ub, 1
A(INT(K))%v = 0.0D00
CALL zero_deriv(A(INT(K)))
END DO
ELSE
STR1 = 'nf_inq_varid: ' // ANAME
CALL handle_err(ERRMSG, STR1)
ERRMSG = nf_get_var_double_ad1(FID, AID, A, N)
STR1 = 'nf_get_var_double: ' // ANAME
CALL handle_err(ERRMSG, STR1)
ENDIF
ERRMSG = nf_close(FID)
STR1 = 'nf_close'
CALL handle_err(ERRMSG, STR1)
RETURN
END SUBROUTINE
SUBROUTINE read_field_netcdf(FNAME, ANAME, NX, NY, A)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) ANAME
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
type(active) :: A(1 : NX, 1 : NY)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__74
INTEGER(w2f__i8) t__76
INTEGER(w2f__i8) t__75
INTEGER(w2f__i8) t__78
INTEGER(w2f__i4) AID
INTEGER(w2f__i4) DIMLEN
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
EXTERNAL lastchar
INTEGER(w2f__i4) lastchar
INTEGER(w2f__i4) LCHAR
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NDIMS
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
EXTERNAL nf_get_var_double_ad2
INTEGER(w2f__i4) nf_get_var_double_ad2
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_dimlen
INTEGER(w2f__i4) nf_inq_dimlen
EXTERNAL nf_inq_varid
INTEGER(w2f__i4) nf_inq_varid
EXTERNAL nf_inq_varndims
INTEGER(w2f__i4) nf_inq_varndims
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
CHARACTER(80) STRBOGUS
INTEGER(w2f__i8) t__77
INTEGER(w2f__i8) t__79
C
C **** Temporary variables ****
C
INTEGER(w2f__i4) doloop_ub
INTEGER(w2f__i4) doloop_ub0
INTEGER(w2f__i4) doloop_ub1
INTEGER(w2f__i4) doloop_ub2
C
C **** statements ****
C
t__74 = NX
t__75 = NY
t__76 = MAX(t__74, 0_w2f__i8)
t__77 = t__76
t__78 = MAX(t__75, 0_w2f__i8)
t__79 = t__76 * t__78
STRBOGUS = 'nf_bogusstring'
NDIMS = 0
DIMLEN = 0
ERRMSG = nf_open(FNAME, (0), FID)
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_varid(FID, ANAME, AID)
IF(ERRMSG .eq. INT((-49_w2f__i8))) THEN
LCHAR = lastchar(FNAME)
WRITE(*, *) 'variable "' // ANAME // '" not found in ' // FNAME
> (1_w2f__i8 : MAX(LCHAR, 0))
WRITE(*, *) 'set to zero'
doloop_ub = NX
DO IX = 1, doloop_ub, 1
doloop_ub0 = NY
DO IY = 1, doloop_ub0, 1
A(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(A(INT(IX),INT(IY)))
END DO
END DO
ELSE
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_varndims(FID, AID, NDIMS)
CALL handle_err(ERRMSG, STRBOGUS)
IF(NDIMS .eq. INT(3_w2f__i8)) THEN
ERRMSG = nf_inq_dimlen(FID, (1), DIMLEN)
CALL handle_err(ERRMSG, STRBOGUS)
IF(DIMLEN .eq. INT(1_w2f__i8)) THEN
ERRMSG = nf_get_var_double_ad2(FID, AID, A, NX, NY)
CALL handle_err(ERRMSG, STRBOGUS)
ELSE
WRITE(*, *) 'read_field_netcdf: "', ANAME, '" in ' // FNAME
> (1_w2f__i8 : MAX(LCHAR, 0)) // ' has too many dimensions'
WRITE(*, *) 'setting "', ANAME, '" to zero'
doloop_ub1 = NX
DO IX = 1, doloop_ub1, 1
doloop_ub2 = NY
DO IY = 1, doloop_ub2, 1
A(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(A(INT(IX),INT(IY)))
END DO
END DO
ENDIF
ELSE
ERRMSG = nf_get_var_double_ad2(FID, AID, A, NX, NY)
CALL handle_err(ERRMSG, STRBOGUS)
ENDIF
ENDIF
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STRBOGUS)
RETURN
END SUBROUTINE
SUBROUTINE read_snap_netcdf(FNAME, SNAP_TIME, NX, NY, ANAME, A)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
type(active) :: SNAP_TIME
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
CHARACTER(80) ANAME
type(active) :: A(1 : NX, 1 : NY)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__80
INTEGER(w2f__i8) t__82
INTEGER(w2f__i8) t__81
INTEGER(w2f__i8) t__84
INTEGER(w2f__i4) AID
INTEGER(w2f__i4) COUNT(1 : 3)
INTEGER(w2f__i4) DID
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
EXTERNAL lastchar
INTEGER(w2f__i4) lastchar
INTEGER(w2f__i4) LCHAR
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
type(active) :: MISVAL
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
EXTERNAL nf_get_att_double
INTEGER(w2f__i4) nf_get_att_double
EXTERNAL nf_get_var1_double_ad0
INTEGER(w2f__i4) nf_get_var1_double_ad0
EXTERNAL nf_get_vara_double_ad2
INTEGER(w2f__i4) nf_get_vara_double_ad2
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_dimlen
INTEGER(w2f__i4) nf_inq_dimlen
EXTERNAL nf_inq_vardimid
INTEGER(w2f__i4) nf_inq_vardimid
EXTERNAL nf_inq_varid
INTEGER(w2f__i4) nf_inq_varid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
INTEGER(w2f__i4) NT
type(active) :: RECTIME
INTEGER(w2f__i4) START(1 : 3)
CHARACTER(80) STRBOGUS
INTEGER(w2f__i4) TID
INTEGER(w2f__i8) t__83
INTEGER(w2f__i8) t__85
C
C **** Temporary variables ****
C
INTEGER(w2f__i4) doloop_ub
INTEGER(w2f__i4) doloop_ub0
INTEGER(w2f__i4) doloop_ub1
INTEGER(w2f__i4) doloop_ub2
C
C **** statements ****
C
t__80 = NX
t__81 = NY
t__82 = MAX(t__80, 0_w2f__i8)
t__83 = t__82
t__84 = MAX(t__81, 0_w2f__i8)
t__85 = t__82 * t__84
STRBOGUS = 'nf_bogusstring'
START(1) = 1
START(2) = 1
COUNT(1) = NX
COUNT(2) = NY
COUNT(3) = 1
LCHAR = lastchar(FNAME)
ERRMSG = nf_open(FNAME, (0), FID)
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_varid(FID, 'TIME', TID)
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_vardimid(FID, TID, DID)
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_dimlen(FID, DID, NT)
CALL handle_err(ERRMSG, STRBOGUS)
START(3) = NT
ERRMSG = nf_get_var1_double_ad0(FID, TID, START(3), RECTIME)
CALL handle_err(ERRMSG, STRBOGUS)
IF (ABS(RECTIME%v-SNAP_TIME%v) .GT. 1.00000000000000002092D-08) TH
+EN
START(3) = (START(3) +(-1))
IF(START(3) .GT. INT(0_w2f__i8)) THEN
CALL handle_err(ERRMSG, STRBOGUS)
ELSE
WRITE(*, *) 'snap_time does not exist in ' // FNAME(1_w2f__i8
> : MAX(LCHAR, 0))
ENDIF
ENDIF
ERRMSG = nf_inq_varid(FID, ANAME, AID)
IF(ERRMSG .eq. INT((-49_w2f__i8))) THEN
LCHAR = lastchar(FNAME)
WRITE(*, *) 'variable "' // ANAME // '" not found in ' // FNAME
> (1_w2f__i8 : MAX(LCHAR, 0))
WRITE(*, *) 'set to zero'
doloop_ub = NX
DO IX = 1, doloop_ub, 1
doloop_ub0 = NY
DO IY = 1, doloop_ub0, 1
A(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(A(INT(IX),INT(IY)))
END DO
END DO
ELSE
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_get_att_double(FID, AID, 'missing_value', MISVAL)
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_get_vara_double_ad2(FID, AID, START, COUNT, A, NX,
> NY)
CALL handle_err(ERRMSG, STRBOGUS)
doloop_ub1 = NX
DO IX = 1, doloop_ub1, 1
doloop_ub2 = NY
DO IY = 1, doloop_ub2, 1
IF (A(IX,IY)%v .eq. MISVAL%v) THEN
A(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(A(INT(IX),INT(IY)))
ENDIF
END DO
END DO
ENDIF
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STRBOGUS)
RETURN
END SUBROUTINE
SUBROUTINE read_weight_depth_netcdf(FNAME, ANAME, A, NX, NY, N)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) ANAME
INTEGER(w2f__i4) NX
INTEGER(w2f__i4) NY
INTEGER(w2f__i4) N
type(active) :: A(1 : NX, 1 : NX, 1 : NY, 1 : NY)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__86
INTEGER(w2f__i8) t__88
INTEGER(w2f__i8) t__87
INTEGER(w2f__i8) t__91
INTEGER(w2f__i4) AID
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
EXTERNAL lastchar
INTEGER(w2f__i4) lastchar
INTEGER(w2f__i4) LCHAR
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
EXTERNAL nf_get_var_double_ad4
INTEGER(w2f__i4) nf_get_var_double_ad4
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_varid
INTEGER(w2f__i4) nf_inq_varid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
CHARACTER(80) STRBOGUS
INTEGER(w2f__i8) t__89
INTEGER(w2f__i8) t__90
INTEGER(w2f__i8) t__92
INTEGER(w2f__i8) t__93
C
C **** statements ****
C
t__86 = NX
t__87 = NY
t__88 = MAX(t__86, 0_w2f__i8)
t__89 = t__88
t__90 = t__88 * t__89
t__91 = MAX(t__87, 0_w2f__i8)
t__92 = t__91 * t__90
t__93 = t__88 * t__88 * t__91 * t__91
STRBOGUS = 'nf_bogusstring'
N = 0
LCHAR = lastchar(FNAME)
ERRMSG = nf_open(FNAME, (0), FID)
IF(ERRMSG .ne. INT(0_w2f__i8)) THEN
WRITE(*, *) 'netcdf function nf_open: ' // FNAME(1_w2f__i8 :
> MAX(LCHAR, 0))
WRITE(*, *) 'n is set to -1, and "' // ANAME //
> '" is not changed'
N = -1
ELSE
ERRMSG = nf_inq_varid(FID, ANAME, AID)
IF(ERRMSG .eq. INT((-49_w2f__i8))) THEN
LCHAR = lastchar(FNAME)
WRITE(*, *) 'variable "' // ANAME // '" not found in ' //
> FNAME(1_w2f__i8 : MAX(LCHAR, 0))
WRITE(*, *) 'n is set to -1, and "' // ANAME //
> '" is not changed'
N = -1
ELSE
ERRMSG = nf_get_var_double_ad4(FID, AID, A, NX, NX, NY, NY)
CALL handle_err(ERRMSG, STRBOGUS)
ENDIF
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STRBOGUS)
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE get_length_netcdf(FNAME, VNAME, N)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) FNAME
CHARACTER(80) VNAME
INTEGER(w2f__i4) N
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) DID
INTEGER(w2f__i4) ERRMSG
INTEGER(w2f__i4) FID
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
EXTERNAL handle_err
EXTERNAL lastchar
INTEGER(w2f__i4) lastchar
INTEGER(w2f__i4) LCHAR
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
EXTERNAL nf_close
INTEGER(w2f__i4) nf_close
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
EXTERNAL nf_inq_dimlen
INTEGER(w2f__i4) nf_inq_dimlen
EXTERNAL nf_inq_vardimid
INTEGER(w2f__i4) nf_inq_vardimid
EXTERNAL nf_inq_varid
INTEGER(w2f__i4) nf_inq_varid
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
EXTERNAL nf_open
INTEGER(w2f__i4) nf_open
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
CHARACTER(80) STRBOGUS
INTEGER(w2f__i4) VID
C
C **** statements ****
C
STRBOGUS = 'nf_bogusstring'
LCHAR = lastchar(FNAME)
ERRMSG = nf_open(FNAME, (0), FID)
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_varid(FID, VNAME, VID)
IF(ERRMSG .eq. INT((-49_w2f__i8))) THEN
LCHAR = lastchar(FNAME)
WRITE(*, *) 'variable "' // VNAME // '" not found in ' // FNAME
> (1_w2f__i8 : MAX(LCHAR, 0))
WRITE(*, *) 'n is set to -1'
N = -1
ELSE
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_vardimid(FID, VID, DID)
CALL handle_err(ERRMSG, STRBOGUS)
ERRMSG = nf_inq_dimlen(FID, DID, N)
CALL handle_err(ERRMSG, STRBOGUS)
ENDIF
ERRMSG = nf_close(FID)
CALL handle_err(ERRMSG, STRBOGUS)
RETURN
END SUBROUTINE
SUBROUTINE set_nf_real_type(NF_TYPE)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) NF_TYPE
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
C
C **** statements ****
C
NF_TYPE = 6
RETURN
END SUBROUTINE
SUBROUTINE handle_err(ERRMSG, FUNCNAME)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) ERRMSG
CHARACTER(80) FUNCNAME
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) FILBYTE
PARAMETER ( FILBYTE = -127)
INTEGER(w2f__i4) FILCHAR
PARAMETER ( FILCHAR = 0)
REAL(w2f__8) FILDOUB
PARAMETER ( FILDOUB = 9.969209968386869d+36)
REAL(w2f__4) FILFLOAT
PARAMETER ( FILFLOAT = 9.969210d+36)
INTEGER(w2f__i4) FILLONG
PARAMETER ( FILLONG = -2147483647)
INTEGER(w2f__i4) FILSHORT
PARAMETER ( FILSHORT = -32767)
INTEGER(w2f__i4) MAXNCATT
PARAMETER ( MAXNCATT = 2000)
INTEGER(w2f__i4) MAXNCDIM
PARAMETER ( MAXNCDIM = 100)
INTEGER(w2f__i4) MAXNCNAM
PARAMETER ( MAXNCNAM = 128)
INTEGER(w2f__i4) MAXNCOP
PARAMETER ( MAXNCOP = 32)
INTEGER(w2f__i4) MAXNCVAR
PARAMETER ( MAXNCVAR = 2000)
INTEGER(w2f__i4) MAXVDIMS
PARAMETER ( MAXVDIMS = 100)
INTEGER(w2f__i4) NCBYTE
PARAMETER ( NCBYTE = 1)
INTEGER(w2f__i4) NCCHAR
PARAMETER ( NCCHAR = 2)
INTEGER(w2f__i4) NCCLOB
PARAMETER ( NCCLOB = 0)
INTEGER(w2f__i4) NCCREAT
PARAMETER ( NCCREAT = 2)
INTEGER(w2f__i4) NCDOUBLE
PARAMETER ( NCDOUBLE = 6)
INTEGER(w2f__i4) NCEBADD
PARAMETER ( NCEBADD = -46)
INTEGER(w2f__i4) NCEBADID
PARAMETER ( NCEBADID = -33)
INTEGER(w2f__i4) NCEBADTY
PARAMETER ( NCEBADTY = -45)
INTEGER(w2f__i4) NCECOORD
PARAMETER ( NCECOORD = -40)
INTEGER(w2f__i4) NCEEXIST
PARAMETER ( NCEEXIST = -35)
INTEGER(w2f__i4) NCEGLOB
PARAMETER ( NCEGLOB = -50)
INTEGER(w2f__i4) NCEINDEF
PARAMETER ( NCEINDEF = -39)
INTEGER(w2f__i4) NCEINVAL
PARAMETER ( NCEINVAL = -36)
INTEGER(w2f__i4) NCEMAXAT
PARAMETER ( NCEMAXAT = -44)
INTEGER(w2f__i4) NCEMAXDS
PARAMETER ( NCEMAXDS = -41)
INTEGER(w2f__i4) NCEMAXVS
PARAMETER ( NCEMAXVS = -48)
INTEGER(w2f__i4) NCENAME
PARAMETER ( NCENAME = -42)
INTEGER(w2f__i4) NCENFILE
PARAMETER ( NCENFILE = -31)
INTEGER(w2f__i4) NCENOATT
PARAMETER ( NCENOATT = -43)
INTEGER(w2f__i4) NCENOTIN
PARAMETER ( NCENOTIN = -38)
INTEGER(w2f__i4) NCENOTNC
PARAMETER ( NCENOTNC = -51)
INTEGER(w2f__i4) NCENOTVR
PARAMETER ( NCENOTVR = -49)
INTEGER(w2f__i4) NCENTOOL
PARAMETER ( NCENTOOL = -53)
INTEGER(w2f__i4) NCEPERM
PARAMETER ( NCEPERM = -37)
INTEGER(w2f__i4) NCESTS
PARAMETER ( NCESTS = -52)
INTEGER(w2f__i4) NCEUNLIM
PARAMETER ( NCEUNLIM = -47)
INTEGER(w2f__i4) NCEXCL
PARAMETER ( NCEXCL = 4)
INTEGER(w2f__i4) NCFATAL
PARAMETER ( NCFATAL = 1)
INTEGER(w2f__i4) NCFILL
PARAMETER ( NCFILL = 0)
INTEGER(w2f__i4) NCFLOAT
PARAMETER ( NCFLOAT = 5)
INTEGER(w2f__i4) NCFOOBAR
PARAMETER ( NCFOOBAR = 32)
INTEGER(w2f__i4) NCGLOBAL
PARAMETER ( NCGLOBAL = 0)
INTEGER(w2f__i4) NCHDIRTY
PARAMETER ( NCHDIRTY = 128)
INTEGER(w2f__i4) NCHSYNC
PARAMETER ( NCHSYNC = 32)
INTEGER(w2f__i4) NCINDEF
PARAMETER ( NCINDEF = 8)
INTEGER(w2f__i4) NCLINK
PARAMETER ( NCLINK = 32768)
INTEGER(w2f__i4) NCLONG
PARAMETER ( NCLONG = 4)
INTEGER(w2f__i4) NCNDIRTY
PARAMETER ( NCNDIRTY = 64)
INTEGER(w2f__i4) NCNOCLOB
PARAMETER ( NCNOCLOB = 4)
INTEGER(w2f__i4) NCNOERR
PARAMETER ( NCNOERR = 0)
INTEGER(w2f__i4) NCNOFILL
PARAMETER ( NCNOFILL = 256)
INTEGER(w2f__i4) NCNOWRIT
PARAMETER ( NCNOWRIT = 0)
INTEGER(w2f__i4) NCNSYNC
PARAMETER ( NCNSYNC = 16)
INTEGER(w2f__i4) NCRDWR
PARAMETER ( NCRDWR = 1)
INTEGER(w2f__i4) NCSHORT
PARAMETER ( NCSHORT = 3)
INTEGER(w2f__i4) NCSYSERR
PARAMETER ( NCSYSERR = -31)
INTEGER(w2f__i4) NCUNLIM
PARAMETER ( NCUNLIM = 0)
INTEGER(w2f__i4) NCVERBOS
PARAMETER ( NCVERBOS = 2)
INTEGER(w2f__i4) NCWRITE
PARAMETER ( NCWRITE = 1)
INTEGER(w2f__i4) NF_ALIGN_CHUNK
PARAMETER ( NF_ALIGN_CHUNK = -1)
INTEGER(w2f__i4) NF_BYTE
PARAMETER ( NF_BYTE = 1)
INTEGER(w2f__i4) NF_CHAR
PARAMETER ( NF_CHAR = 2)
INTEGER(w2f__i4) NF_CLOBBER
PARAMETER ( NF_CLOBBER = 0)
INTEGER(w2f__i4) NF_DOUBLE
PARAMETER ( NF_DOUBLE = 6)
INTEGER(w2f__i4) NF_EBADDIM
PARAMETER ( NF_EBADDIM = -46)
INTEGER(w2f__i4) NF_EBADID
PARAMETER ( NF_EBADID = -33)
INTEGER(w2f__i4) NF_EBADNAME
PARAMETER ( NF_EBADNAME = -59)
INTEGER(w2f__i4) NF_EBADTYPE
PARAMETER ( NF_EBADTYPE = -45)
INTEGER(w2f__i4) NF_ECHAR
PARAMETER ( NF_ECHAR = -56)
INTEGER(w2f__i4) NF_EEDGE
PARAMETER ( NF_EEDGE = -57)
INTEGER(w2f__i4) NF_EEXIST
PARAMETER ( NF_EEXIST = -35)
INTEGER(w2f__i4) NF_EGLOBAL
PARAMETER ( NF_EGLOBAL = -50)
INTEGER(w2f__i4) NF_EINDEFINE
PARAMETER ( NF_EINDEFINE = -39)
INTEGER(w2f__i4) NF_EINVAL
PARAMETER ( NF_EINVAL = -36)
INTEGER(w2f__i4) NF_EINVALCOORDS
PARAMETER ( NF_EINVALCOORDS = -40)
INTEGER(w2f__i4) NF_EMAXATTS
PARAMETER ( NF_EMAXATTS = -44)
INTEGER(w2f__i4) NF_EMAXDIMS
PARAMETER ( NF_EMAXDIMS = -41)
INTEGER(w2f__i4) NF_EMAXNAME
PARAMETER ( NF_EMAXNAME = -53)
INTEGER(w2f__i4) NF_EMAXVARS
PARAMETER ( NF_EMAXVARS = -48)
INTEGER(w2f__i4) NF_ENAMEINUSE
PARAMETER ( NF_ENAMEINUSE = -42)
INTEGER(w2f__i4) NF_ENOMEM
PARAMETER ( NF_ENOMEM = -61)
INTEGER(w2f__i4) NF_ENORECVARS
PARAMETER ( NF_ENORECVARS = -55)
INTEGER(w2f__i4) NF_ENOTATT
PARAMETER ( NF_ENOTATT = -43)
INTEGER(w2f__i4) NF_ENOTINDEFINE
PARAMETER ( NF_ENOTINDEFINE = -38)
INTEGER(w2f__i4) NF_ENOTNC
PARAMETER ( NF_ENOTNC = -51)
INTEGER(w2f__i4) NF_ENOTVAR
PARAMETER ( NF_ENOTVAR = -49)
INTEGER(w2f__i4) NF_EPERM
PARAMETER ( NF_EPERM = -37)
INTEGER(w2f__i4) NF_ERANGE
PARAMETER ( NF_ERANGE = -60)
INTEGER(w2f__i4) NF_ESTRIDE
PARAMETER ( NF_ESTRIDE = -58)
INTEGER(w2f__i4) NF_ESTS
PARAMETER ( NF_ESTS = -52)
INTEGER(w2f__i4) NF_EUNLIMIT
PARAMETER ( NF_EUNLIMIT = -54)
INTEGER(w2f__i4) NF_EUNLIMPOS
PARAMETER ( NF_EUNLIMPOS = -47)
INTEGER(w2f__i4) NF_FATAL
PARAMETER ( NF_FATAL = 1)
INTEGER(w2f__i4) NF_FILL
PARAMETER ( NF_FILL = 0)
INTEGER(w2f__i4) NF_FILL_BYTE
PARAMETER ( NF_FILL_BYTE = -127)
INTEGER(w2f__i4) NF_FILL_CHAR
PARAMETER ( NF_FILL_CHAR = 0)
REAL(w2f__8) NF_FILL_DOUBLE
PARAMETER ( NF_FILL_DOUBLE = 9.969209968386869d+36)
REAL(w2f__4) NF_FILL_FLOAT
PARAMETER ( NF_FILL_FLOAT = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_INT
PARAMETER ( NF_FILL_INT = -2147483647)
INTEGER(w2f__i4) NF_FILL_INT1
PARAMETER ( NF_FILL_INT1 = -127)
INTEGER(w2f__i4) NF_FILL_INT2
PARAMETER ( NF_FILL_INT2 = -32767)
REAL(w2f__4) NF_FILL_REAL
PARAMETER ( NF_FILL_REAL = 9.969210d+36)
INTEGER(w2f__i4) NF_FILL_SHORT
PARAMETER ( NF_FILL_SHORT = -32767)
INTEGER(w2f__i4) NF_FLOAT
PARAMETER ( NF_FLOAT = 5)
INTEGER(w2f__i4) NF_GLOBAL
PARAMETER ( NF_GLOBAL = 0)
INTEGER(w2f__i4) NF_INT
PARAMETER ( NF_INT = 4)
INTEGER(w2f__i4) NF_INT1
PARAMETER ( NF_INT1 = 1)
INTEGER(w2f__i4) NF_INT2
PARAMETER ( NF_INT2 = 3)
INTEGER(w2f__i4) NF_LOCK
PARAMETER ( NF_LOCK = 1024)
INTEGER(w2f__i4) NF_MAX_ATTRS
PARAMETER ( NF_MAX_ATTRS = 4096)
INTEGER(w2f__i4) NF_MAX_DIMS
PARAMETER ( NF_MAX_DIMS = 512)
INTEGER(w2f__i4) NF_MAX_NAME
PARAMETER ( NF_MAX_NAME = 128)
INTEGER(w2f__i4) NF_MAX_VARS
PARAMETER ( NF_MAX_VARS = 4096)
INTEGER(w2f__i4) NF_MAX_VAR_DIMS
PARAMETER ( NF_MAX_VAR_DIMS = 512)
INTEGER(w2f__i4) NF_NOCLOBBER
PARAMETER ( NF_NOCLOBBER = 4)
INTEGER(w2f__i4) NF_NOERR
PARAMETER ( NF_NOERR = 0)
INTEGER(w2f__i4) NF_NOFILL
PARAMETER ( NF_NOFILL = 256)
INTEGER(w2f__i4) NF_NOWRITE
PARAMETER ( NF_NOWRITE = 0)
INTEGER(w2f__i4) NF_REAL
PARAMETER ( NF_REAL = 5)
INTEGER(w2f__i4) NF_SHARE
PARAMETER ( NF_SHARE = 2048)
INTEGER(w2f__i4) NF_SHORT
PARAMETER ( NF_SHORT = 3)
INTEGER(w2f__i4) NF_SIZEHINT_DEFAULT
PARAMETER ( NF_SIZEHINT_DEFAULT = 0)
INTEGER(w2f__i4) NF_UNLIMITED
PARAMETER ( NF_UNLIMITED = 0)
INTEGER(w2f__i4) NF_VERBOSE
PARAMETER ( NF_VERBOSE = 2)
INTEGER(w2f__i4) NF_WRITE
PARAMETER ( NF_WRITE = 1)
C
C **** statements ****
C
IF(ERRMSG .ne. INT(0_w2f__i8)) THEN
WRITE(*, *) 'error in netcdf function ', FUNCNAME
ENDIF
RETURN
END SUBROUTINE
Function lastchar(NAME)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) NAME
INTEGER(w2f__i4) lastchar
C
C **** statements ****
C
lastchar = INDEX(NAME, ' ', .FALSE.)
RETURN
RETURN
END FUNCTION
SUBROUTINE read_data(TIME)
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Parameters and Result ****
C
type(active) :: TIME
C
C **** statements ****
C
RETURN
END SUBROUTINE
SUBROUTINE read_eta_data(TIME)
use w2f__types
use active_module
use size
use data
use parms
IMPLICIT NONE
C
C **** Parameters and Result ****
C
type(active) :: TIME
C
C **** Local Variables and functions ****
C
type(active) :: F_IN(1 : 20, 1 : 20)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
CHARACTER(80) MYETA
CHARACTER(80) MYETADATA
INTEGER(w2f__i4) MYNX
INTEGER(w2f__i4) MYNY
EXTERNAL read_field_netcdf
EXTERNAL read_snap_netcdf
C
C **** statements ****
C
MYNX = 20
MYNY = 20
MYETADATA = 'etadata'
MYETA = 'eta'
IF (TIME%v .eq. 0.0D00) THEN
CALL read_field_netcdf(NCDATAFILE,MYETADATA,MYNX,MYNY,F_IN)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
ETA_DATA(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(ETA_DATA(IX,IY),F_IN(IX,IY))
END DO
END DO
ELSE
IF (TIME%v .GT. 0.0D00) THEN
CALL read_snap_netcdf(NCDATAFILE,TIME,MYNX,MYNY,MYETA,F_IN)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
ETA_DATA(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(ETA_DATA(IX,IY),F_IN(IX,IY))
END DO
END DO
ELSE
DO IY = 1, 20, 1
DO IX = 1, 20, 1
ETA_DATA(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(ETA_DATA(INT(IX),INT(IY)))
END DO
END DO
ENDIF
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE read_uv_data(TIME)
use w2f__types
use active_module
use size
use data
use parms
IMPLICIT NONE
C
C **** Parameters and Result ****
C
type(active) :: TIME
C
C **** Local Variables and functions ****
C
type(active) :: F_IN(1 : 20, 1 : 20)
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) MYNX
SAVE MYNX
INTEGER(w2f__i4) MYNY
SAVE MYNY
EXTERNAL read_field_netcdf
EXTERNAL read_snap_netcdf
CHARACTER(80) STRU
CHARACTER(80) STRUDATA
CHARACTER(80) STRV
CHARACTER(80) STRVDATA
C
C **** Initializers ****
C
DATA MYNX / 20 /
DATA MYNY / 20 /
C
C **** statements ****
C
STRUDATA = 'udata'
STRVDATA = 'vdata'
STRU = 'U'
STRV = 'V'
IF (TIME%v .eq. 0.0D00) THEN
CALL read_field_netcdf(NCDATAFILE,STRUDATA,MYNX,MYNY,F_IN)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
U_DATA(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(U_DATA(IX,IY),F_IN(IX,IY))
END DO
END DO
CALL read_field_netcdf(NCDATAFILE,STRVDATA,MYNX,MYNY,F_IN)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
V_DATA(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(V_DATA(IX,IY),F_IN(IX,IY))
END DO
END DO
ELSE
IF (TIME%v .GT. 0.0D00) THEN
CALL read_snap_netcdf(NCDATAFILE,TIME,MYNX,MYNY,STRU,F_IN)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
U_DATA(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(U_DATA(IX,IY),F_IN(IX,IY))
END DO
END DO
CALL read_snap_netcdf(NCDATAFILE,TIME,MYNX,MYNY,STRV,F_IN)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
V_DATA(INT(IX),INT(IY))%v = F_IN(IX,IY)%v
CALL setderiv(V_DATA(IX,IY),F_IN(IX,IY))
END DO
END DO
ELSE
DO IY = 1, 20, 1
DO IX = 1, 20, 1
U_DATA(INT(IX),INT(IY))%v = 0.0D00
V_DATA(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(U_DATA(INT(IX),INT(IY)))
CALL zero_deriv(V_DATA(INT(IX),INT(IY)))
END DO
END DO
ENDIF
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE read_zonal_transport_data(TIME)
use w2f__types
use active_module
use size
use data
use pfields
use vars
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_180
REAL(w2f__8) OpenAD_Symbol_181
REAL(w2f__8) OpenAD_Symbol_182
REAL(w2f__8) OpenAD_Symbol_183
REAL(w2f__8) OpenAD_Symbol_179
REAL(w2f__8) OpenAD_Symbol_184
REAL(w2f__8) OpenAD_Symbol_185
REAL(w2f__8) OpenAD_Symbol_186
type(active) :: OpenAD_Symbol_860
REAL(w2f__8) OpenAD_Symbol_861
REAL(w2f__8) OpenAD_Symbol_862
type(active) :: OpenAD_Symbol_863
REAL(w2f__8) OpenAD_Symbol_859
REAL(w2f__8) OpenAD_Symbol_864
type(active) :: OpenAD_Symbol_865
REAL(w2f__8) OpenAD_Symbol_866
type(active) :: OpenAD_Symbol_867
C
C **** Parameters and Result ****
C
type(active) :: TIME
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
type(active) :: ZONAL_TRANSPORT
C
C **** statements ****
C
IF (TIME%v .eq. 0.0D00) THEN
ZONAL_TRANSPORT_DATA%v = 5.26265D+07
CALL zero_deriv(ZONAL_TRANSPORT_DATA)
ELSE
IX = 6
ZONAL_TRANSPORT%v = 0.0D00
CALL zero_deriv(ZONAL_TRANSPORT)
DO IY = 1, 20, 1
OpenAD_Symbol_181 = (DY(IY)%v*U(IX,IY)%v)
OpenAD_Symbol_186 = (ZONAL_TRANSPORT%v+HU(IX,IY)%v*OpenAD_Symb
+ol_181)
OpenAD_Symbol_179 = 1_w2f__i8
OpenAD_Symbol_182 = OpenAD_Symbol_181
OpenAD_Symbol_184 = U(IX,IY)%v
OpenAD_Symbol_185 = DY(IY)%v
OpenAD_Symbol_183 = HU(IX,IY)%v
OpenAD_Symbol_180 = 1_w2f__i8
ZONAL_TRANSPORT%v = OpenAD_Symbol_186
OpenAD_Symbol_859 = (OpenAD_Symbol_182 * OpenAD_Symbol_180)
OpenAD_Symbol_861 = (OpenAD_Symbol_183 * OpenAD_Symbol_180)
OpenAD_Symbol_862 = (OpenAD_Symbol_184 * OpenAD_Symbol_861)
OpenAD_Symbol_864 = (OpenAD_Symbol_185 * OpenAD_Symbol_861)
OpenAD_Symbol_866 = OpenAD_Symbol_179
CALL setderiv(OpenAD_Symbol_867,ZONAL_TRANSPORT)
CALL setderiv(OpenAD_Symbol_865,U(IX,IY))
CALL setderiv(OpenAD_Symbol_863,DY(IY))
CALL setderiv(OpenAD_Symbol_860,HU(IX,IY))
CALL sax(OpenAD_Symbol_859,OpenAD_Symbol_860,ZONAL_TRANSPORT)
CALL saxpy(OpenAD_Symbol_862,OpenAD_Symbol_863,ZONAL_TRANSPORT
+)
CALL saxpy(OpenAD_Symbol_864,OpenAD_Symbol_865,ZONAL_TRANSPORT
+)
CALL saxpy(OpenAD_Symbol_866,OpenAD_Symbol_867,ZONAL_TRANSPORT
+)
END DO
ZONAL_TRANSPORT_DATA%v = ZONAL_TRANSPORT%v
CALL setderiv(ZONAL_TRANSPORT_DATA,ZONAL_TRANSPORT)
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE read_depth_data()
use w2f__types
use active_module
use size
use pfields
use data
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
C
C **** statements ****
C
DO IY = 1, 20, 1
DO IX = 1, 20, 1
DEPTH_DATA(INT(IX),INT(IY))%v = INIDEPTH(IX,IY)%v
CALL setderiv(DEPTH_DATA(IX,IY),INIDEPTH(IX,IY))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE determine_data_time(NCDATAFILE)
use w2f__types
use active_module
use size
use data
IMPLICIT NONE
C
C **** Parameters and Result ****
C
CHARACTER(80) NCDATAFILE
C
C **** Local Variables and functions ****
C
EXTERNAL get_length_netcdf
INTEGER(w2f__i4) K
EXTERNAL read_vector_netcdf
CHARACTER(80) STRTIME
C
C **** statements ****
C
STRTIME = 'TIME'
CALL get_length_netcdf(NCDATAFILE, STRTIME, NEDT)
IF(NEDT .GT. INT(1000_w2f__i8)) THEN
WRITE(*, *) 'determine_data_time: too many data,;'
WRITE(*, *) 'increase nedtmax to ', NEDT
ELSE
IF(NEDT .LE. INT(0_w2f__i8)) THEN
WRITE(*, *) 'no time dependent data found in ' // NCDATAFILE
ELSE
CALL read_vector_netcdf(NCDATAFILE,STRTIME,NEDT,ETA_DATA_TIME)
WRITE(*, *) 'determine_data_time: # of data times = ', NEDT
ENDIF
ENDIF
WRITE(*, *)(ETA_DATA_TIME(K), K = 1, NEDT, 1)
RETURN
END SUBROUTINE
SUBROUTINE is_eta_data_time(TIME, RESULT)
use w2f__types
use active_module
use size
use data
IMPLICIT NONE
C
C **** Parameters and Result ****
C
type(active) :: TIME
LOGICAL(w2f__i4) RESULT
C
C **** Local Variables and functions ****
C
LOGICAL(w2f__i4) ALLDONE
INTEGER(w2f__i4) IT
LOGICAL(w2f__i4) t__98
C
C **** statements ****
C
ALLDONE = .FALSE.
RESULT = .FALSE.
IT = 1
t__98 = .NOT. ALLDONE
DO WHILE(t__98)
IF (ABS(ETA_DATA_TIME(IT)%v-TIME%v) .LT. 1.00000000000000002092D
+-08) THEN
RESULT = .TRUE.
ALLDONE = .TRUE.
ELSE
IF(IT .LT. NEDT) THEN
IT = IT + 1
ELSE
ALLDONE = .TRUE.
ENDIF
ENDIF
t__98 = .NOT. ALLDONE
END DO
RETURN
END SUBROUTINE
SUBROUTINE make_weights()
use w2f__types
use active_module
IMPLICIT NONE
C
C **** Local Variables and functions ****
C
EXTERNAL make_weights_depth
EXTERNAL make_weights_eta
EXTERNAL make_weights_graddepth
EXTERNAL make_weights_lapldepth
EXTERNAL make_weights_uv
EXTERNAL make_weights_zonal_transport
C
C **** statements ****
C
CALL make_weights_depth()
CALL make_weights_eta()
CALL make_weights_uv()
CALL make_weights_zonal_transport()
CALL make_weights_lapldepth()
CALL make_weights_graddepth()
RETURN
END SUBROUTINE
SUBROUTINE make_weights_depth()
use w2f__types
use active_module
use size
use pfields
use weights
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_201
REAL(w2f__8) OpenAD_Symbol_202
REAL(w2f__8) OpenAD_Symbol_203
REAL(w2f__8) OpenAD_Symbol_204
REAL(w2f__8) OpenAD_Symbol_190
REAL(w2f__8) OpenAD_Symbol_191
REAL(w2f__8) OpenAD_Symbol_187
REAL(w2f__8) OpenAD_Symbol_192
REAL(w2f__8) OpenAD_Symbol_188
REAL(w2f__8) OpenAD_Symbol_193
REAL(w2f__8) OpenAD_Symbol_189
REAL(w2f__8) OpenAD_Symbol_194
REAL(w2f__8) OpenAD_Symbol_195
REAL(w2f__8) OpenAD_Symbol_196
REAL(w2f__8) OpenAD_Symbol_197
REAL(w2f__8) OpenAD_Symbol_198
REAL(w2f__8) OpenAD_Symbol_870
REAL(w2f__8) OpenAD_Symbol_871
REAL(w2f__8) OpenAD_Symbol_872
REAL(w2f__8) OpenAD_Symbol_868
REAL(w2f__8) OpenAD_Symbol_873
type(active) :: OpenAD_Symbol_869
type(active) :: OpenAD_Symbol_874
REAL(w2f__8) OpenAD_Symbol_875
REAL(w2f__8) OpenAD_Symbol_880
type(active) :: OpenAD_Symbol_876
type(active) :: OpenAD_Symbol_881
REAL(w2f__8) OpenAD_Symbol_877
REAL(w2f__8) OpenAD_Symbol_878
type(active) :: OpenAD_Symbol_879
C
C **** Local Variables and functions ****
C
type(active) :: ERROR_DEPTH
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) JX
INTEGER(w2f__i4) JY
INTEGER(w2f__i4) MYNX
SAVE MYNX
INTEGER(w2f__i4) MYNY
SAVE MYNY
INTEGER(w2f__i4) NFLAG
type(active) :: OFFDIAG
EXTERNAL read_weight_depth_netcdf
CHARACTER(80) STRW
CHARACTER(80) STRWD
C
C **** Initializers ****
C
DATA MYNX / 20 /
DATA MYNY / 20 /
C
C **** statements ****
C
STRWD = 'weights_depth.nc'
STRW = 'W'
NFLAG = 0
CALL read_weight_depth_netcdf(STRWD,STRW,WEIGHT_DEPTH,MYNX,MYNY,NF
+LAG)
IF(NFLAG .LT. INT(0_w2f__i8)) THEN
OFFDIAG%v = 0.0D00
CALL zero_deriv(OFFDIAG)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
WEIGHT_DEPTH(INT(IX),INT(IX),INT(IY),INT(IY))%v = 1.0D00
CALL zero_deriv(WEIGHT_DEPTH(INT(IX),INT(IX),INT(IY),INT(IY)
+))
IF(IX .GT. INT(1_w2f__i8)) THEN
WEIGHT_DEPTH(INT(IX),INT(IX+(-1)),INT(IY),INT(IY))%v = OFF
+DIAG%v
CALL setderiv(WEIGHT_DEPTH(IX,IX+(-1),IY,IY),OFFDIAG)
ENDIF
IF(IX .LT. INT(20_w2f__i8)) THEN
WEIGHT_DEPTH(INT(IX),INT(IX+1),INT(IY),INT(IY))%v = OFFDIA
+G%v
CALL setderiv(WEIGHT_DEPTH(IX,IX+1,IY,IY),OFFDIAG)
ENDIF
IF(IY .GT. INT(1_w2f__i8)) THEN
WEIGHT_DEPTH(INT(IX),INT(IX),INT(IY),INT(IY+(-1)))%v = OFF
+DIAG%v
CALL setderiv(WEIGHT_DEPTH(IX,IX,IY,IY+(-1)),OFFDIAG)
ENDIF
IF(IY .LT. INT(20_w2f__i8)) THEN
WEIGHT_DEPTH(INT(IX),INT(IX),INT(IY),INT(IY+1))%v = OFFDIA
+G%v
CALL setderiv(WEIGHT_DEPTH(IX,IX,IY,IY+1),OFFDIAG)
ENDIF
END DO
END DO
ENDIF
ERROR_DEPTH%v = 1.0D00
CALL zero_deriv(ERROR_DEPTH)
DO IY = 1, 20, 1
DO JY = 1, 20, 1
DO IX = 1, 20, 1
DO JX = 1, 20, 1
OpenAD_Symbol_197 = (1.0D00/ERROR_DEPTH%v)
OpenAD_Symbol_193 = (OpenAD_Symbol_197 ** INT(2_w2f__i8))
OpenAD_Symbol_194 = (WEIGHT_DEPTH(IX,JX,IY,JY)%v*WF_DEPTH%
+v)
OpenAD_Symbol_190 = (OpenAD_Symbol_193 *
> OpenAD_Symbol_194)
OpenAD_Symbol_187 = (ETAMASK(IX,IY)%v*OpenAD_Symbol_190)
OpenAD_Symbol_204 = (ETAMASK(JX,JY)%v*OpenAD_Symbol_187)
OpenAD_Symbol_188 = OpenAD_Symbol_187
OpenAD_Symbol_191 = OpenAD_Symbol_190
OpenAD_Symbol_201 = (-(1.0D00/(ERROR_DEPTH%v*ERROR_DEPTH%v
+)))
OpenAD_Symbol_198 = (INT(2_w2f__i8) *(OpenAD_Symbol_197
> **(INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_195 = OpenAD_Symbol_194
OpenAD_Symbol_202 = WF_DEPTH%v
OpenAD_Symbol_203 = WEIGHT_DEPTH(IX,JX,IY,JY)%v
OpenAD_Symbol_196 = OpenAD_Symbol_193
OpenAD_Symbol_192 = ETAMASK(IX,IY)%v
OpenAD_Symbol_189 = ETAMASK(JX,JY)%v
WEIGHT_DEPTH(INT(IX),INT(JX),INT(IY),INT(JY))%v = OpenAD_S
+ymbol_204
OpenAD_Symbol_868 = (OpenAD_Symbol_191 *
> OpenAD_Symbol_189)
OpenAD_Symbol_870 = (OpenAD_Symbol_192 *
> OpenAD_Symbol_189)
OpenAD_Symbol_871 = (OpenAD_Symbol_195 *
> OpenAD_Symbol_870)
OpenAD_Symbol_872 = (OpenAD_Symbol_196 *
> OpenAD_Symbol_870)
OpenAD_Symbol_873 = (OpenAD_Symbol_202 *
> OpenAD_Symbol_872)
OpenAD_Symbol_875 = (OpenAD_Symbol_203 *
> OpenAD_Symbol_872)
OpenAD_Symbol_877 = (OpenAD_Symbol_198 *
> OpenAD_Symbol_871)
OpenAD_Symbol_878 = (OpenAD_Symbol_201 *
> OpenAD_Symbol_877)
OpenAD_Symbol_880 = OpenAD_Symbol_188
CALL setderiv(OpenAD_Symbol_881,ETAMASK(JX,JY))
CALL setderiv(OpenAD_Symbol_879,ERROR_DEPTH)
CALL setderiv(OpenAD_Symbol_876,WF_DEPTH)
CALL setderiv(OpenAD_Symbol_874,WEIGHT_DEPTH(IX,JX,IY,JY))
CALL setderiv(OpenAD_Symbol_869,ETAMASK(IX,IY))
CALL sax(OpenAD_Symbol_868,OpenAD_Symbol_869,WEIGHT_DEPTH(
+IX,JX,IY,JY))
CALL saxpy(OpenAD_Symbol_873,OpenAD_Symbol_874,WEIGHT_DEPT
+H(IX,JX,IY,JY))
CALL saxpy(OpenAD_Symbol_875,OpenAD_Symbol_876,WEIGHT_DEPT
+H(IX,JX,IY,JY))
CALL saxpy(OpenAD_Symbol_878,OpenAD_Symbol_879,WEIGHT_DEPT
+H(IX,JX,IY,JY))
CALL saxpy(OpenAD_Symbol_880,OpenAD_Symbol_881,WEIGHT_DEPT
+H(IX,JX,IY,JY))
END DO
END DO
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE make_weights_eta()
use w2f__types
use active_module
use size
use pfields
use weights
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_205
REAL(w2f__8) OpenAD_Symbol_210
REAL(w2f__8) OpenAD_Symbol_206
REAL(w2f__8) OpenAD_Symbol_211
REAL(w2f__8) OpenAD_Symbol_207
REAL(w2f__8) OpenAD_Symbol_212
REAL(w2f__8) OpenAD_Symbol_208
REAL(w2f__8) OpenAD_Symbol_209
REAL(w2f__8) OpenAD_Symbol_215
REAL(w2f__8) OpenAD_Symbol_216
REAL(w2f__8) OpenAD_Symbol_882
REAL(w2f__8) OpenAD_Symbol_883
REAL(w2f__8) OpenAD_Symbol_884
type(active) :: OpenAD_Symbol_885
REAL(w2f__8) OpenAD_Symbol_886
type(active) :: OpenAD_Symbol_887
REAL(w2f__8) OpenAD_Symbol_888
type(active) :: OpenAD_Symbol_889
C
C **** Local Variables and functions ****
C
type(active) :: ERROR_ETA
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
C
C **** statements ****
C
ERROR_ETA%v = 1.0D00
CALL zero_deriv(ERROR_ETA)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_211 = (1.0D00/ERROR_ETA%v)
OpenAD_Symbol_208 = (OpenAD_Symbol_211 ** INT(2_w2f__i8))
OpenAD_Symbol_205 = (WF_ETA%v*OpenAD_Symbol_208)
OpenAD_Symbol_216 = (ETAMASK(IX,IY)%v*OpenAD_Symbol_205)
OpenAD_Symbol_206 = OpenAD_Symbol_205
OpenAD_Symbol_209 = OpenAD_Symbol_208
OpenAD_Symbol_215 = (-(1.0D00/(ERROR_ETA%v*ERROR_ETA%v)))
OpenAD_Symbol_212 = (INT(2_w2f__i8) *(OpenAD_Symbol_211 **(
> INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_210 = WF_ETA%v
OpenAD_Symbol_207 = ETAMASK(IX,IY)%v
WEIGHT_ETA(INT(IX),INT(IY))%v = OpenAD_Symbol_216
OpenAD_Symbol_882 = (OpenAD_Symbol_215 * OpenAD_Symbol_212)
OpenAD_Symbol_883 = (OpenAD_Symbol_882 * OpenAD_Symbol_210)
OpenAD_Symbol_884 = (OpenAD_Symbol_209 * OpenAD_Symbol_207)
OpenAD_Symbol_886 = (OpenAD_Symbol_883 * OpenAD_Symbol_207)
OpenAD_Symbol_888 = OpenAD_Symbol_206
CALL setderiv(OpenAD_Symbol_889,ETAMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_887,ERROR_ETA)
CALL setderiv(OpenAD_Symbol_885,WF_ETA)
CALL sax(OpenAD_Symbol_884,OpenAD_Symbol_885,WEIGHT_ETA(IX,IY)
+)
CALL saxpy(OpenAD_Symbol_886,OpenAD_Symbol_887,WEIGHT_ETA(IX,I
+Y))
CALL saxpy(OpenAD_Symbol_888,OpenAD_Symbol_889,WEIGHT_ETA(IX,I
+Y))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE make_weights_uv()
use w2f__types
use active_module
use size
use pfields
use weights
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_220
REAL(w2f__8) OpenAD_Symbol_221
REAL(w2f__8) OpenAD_Symbol_217
REAL(w2f__8) OpenAD_Symbol_222
REAL(w2f__8) OpenAD_Symbol_218
REAL(w2f__8) OpenAD_Symbol_223
REAL(w2f__8) OpenAD_Symbol_219
REAL(w2f__8) OpenAD_Symbol_224
REAL(w2f__8) OpenAD_Symbol_230
REAL(w2f__8) OpenAD_Symbol_231
REAL(w2f__8) OpenAD_Symbol_227
REAL(w2f__8) OpenAD_Symbol_232
REAL(w2f__8) OpenAD_Symbol_228
REAL(w2f__8) OpenAD_Symbol_233
REAL(w2f__8) OpenAD_Symbol_229
REAL(w2f__8) OpenAD_Symbol_234
REAL(w2f__8) OpenAD_Symbol_235
REAL(w2f__8) OpenAD_Symbol_240
REAL(w2f__8) OpenAD_Symbol_236
REAL(w2f__8) OpenAD_Symbol_239
REAL(w2f__8) OpenAD_Symbol_900
type(active) :: OpenAD_Symbol_901
REAL(w2f__8) OpenAD_Symbol_902
type(active) :: OpenAD_Symbol_903
REAL(w2f__8) OpenAD_Symbol_904
type(active) :: OpenAD_Symbol_905
REAL(w2f__8) OpenAD_Symbol_890
REAL(w2f__8) OpenAD_Symbol_891
REAL(w2f__8) OpenAD_Symbol_892
type(active) :: OpenAD_Symbol_893
REAL(w2f__8) OpenAD_Symbol_894
type(active) :: OpenAD_Symbol_895
REAL(w2f__8) OpenAD_Symbol_896
type(active) :: OpenAD_Symbol_897
REAL(w2f__8) OpenAD_Symbol_898
REAL(w2f__8) OpenAD_Symbol_899
C
C **** Local Variables and functions ****
C
type(active) :: ERROR_U
type(active) :: ERROR_V
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
C
C **** statements ****
C
ERROR_U%v = 1.0D00
ERROR_V%v = 1.0D00
CALL zero_deriv(ERROR_U)
CALL zero_deriv(ERROR_V)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_223 = (1.0D00/ERROR_U%v)
OpenAD_Symbol_220 = (OpenAD_Symbol_223 ** INT(2_w2f__i8))
OpenAD_Symbol_217 = (WF_U%v*OpenAD_Symbol_220)
OpenAD_Symbol_228 = (UMASK(IX,IY)%v*OpenAD_Symbol_217)
OpenAD_Symbol_218 = OpenAD_Symbol_217
OpenAD_Symbol_221 = OpenAD_Symbol_220
OpenAD_Symbol_227 = (-(1.0D00/(ERROR_U%v*ERROR_U%v)))
OpenAD_Symbol_224 = (INT(2_w2f__i8) *(OpenAD_Symbol_223 **(
> INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_222 = WF_U%v
OpenAD_Symbol_219 = UMASK(IX,IY)%v
WEIGHT_U(INT(IX),INT(IY))%v = OpenAD_Symbol_228
OpenAD_Symbol_890 = (OpenAD_Symbol_227 * OpenAD_Symbol_224)
OpenAD_Symbol_891 = (OpenAD_Symbol_890 * OpenAD_Symbol_222)
OpenAD_Symbol_892 = (OpenAD_Symbol_221 * OpenAD_Symbol_219)
OpenAD_Symbol_894 = (OpenAD_Symbol_891 * OpenAD_Symbol_219)
OpenAD_Symbol_896 = OpenAD_Symbol_218
CALL setderiv(OpenAD_Symbol_897,UMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_895,ERROR_U)
CALL setderiv(OpenAD_Symbol_893,WF_U)
CALL sax(OpenAD_Symbol_892,OpenAD_Symbol_893,WEIGHT_U(IX,IY))
CALL saxpy(OpenAD_Symbol_894,OpenAD_Symbol_895,WEIGHT_U(IX,IY)
+)
CALL saxpy(OpenAD_Symbol_896,OpenAD_Symbol_897,WEIGHT_U(IX,IY)
+)
OpenAD_Symbol_235 = (1.0D00/ERROR_V%v)
OpenAD_Symbol_232 = (OpenAD_Symbol_235 ** INT(2_w2f__i8))
OpenAD_Symbol_229 = (WF_V%v*OpenAD_Symbol_232)
OpenAD_Symbol_240 = (VMASK(IX,IY)%v*OpenAD_Symbol_229)
OpenAD_Symbol_230 = OpenAD_Symbol_229
OpenAD_Symbol_233 = OpenAD_Symbol_232
OpenAD_Symbol_239 = (-(1.0D00/(ERROR_V%v*ERROR_V%v)))
OpenAD_Symbol_236 = (INT(2_w2f__i8) *(OpenAD_Symbol_235 **(
> INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_234 = WF_V%v
OpenAD_Symbol_231 = VMASK(IX,IY)%v
WEIGHT_V(INT(IX),INT(IY))%v = OpenAD_Symbol_240
OpenAD_Symbol_898 = (OpenAD_Symbol_239 * OpenAD_Symbol_236)
OpenAD_Symbol_899 = (OpenAD_Symbol_898 * OpenAD_Symbol_234)
OpenAD_Symbol_900 = (OpenAD_Symbol_233 * OpenAD_Symbol_231)
OpenAD_Symbol_902 = (OpenAD_Symbol_899 * OpenAD_Symbol_231)
OpenAD_Symbol_904 = OpenAD_Symbol_230
CALL setderiv(OpenAD_Symbol_905,VMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_903,ERROR_V)
CALL setderiv(OpenAD_Symbol_901,WF_V)
CALL sax(OpenAD_Symbol_900,OpenAD_Symbol_901,WEIGHT_V(IX,IY))
CALL saxpy(OpenAD_Symbol_902,OpenAD_Symbol_903,WEIGHT_V(IX,IY)
+)
CALL saxpy(OpenAD_Symbol_904,OpenAD_Symbol_905,WEIGHT_V(IX,IY)
+)
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE make_weights_zonal_transport()
use w2f__types
use active_module
use size
use weights
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_241
REAL(w2f__8) OpenAD_Symbol_242
REAL(w2f__8) OpenAD_Symbol_243
REAL(w2f__8) OpenAD_Symbol_244
REAL(w2f__8) OpenAD_Symbol_245
REAL(w2f__8) OpenAD_Symbol_248
REAL(w2f__8) OpenAD_Symbol_249
type(active) :: OpenAD_Symbol_910
REAL(w2f__8) OpenAD_Symbol_906
REAL(w2f__8) OpenAD_Symbol_907
type(active) :: OpenAD_Symbol_908
REAL(w2f__8) OpenAD_Symbol_909
C
C **** Local Variables and functions ****
C
type(active) :: ERROR_ZONAL_TRANSPORT
C
C **** statements ****
C
ERROR_ZONAL_TRANSPORT%v = 1.0D+06
CALL zero_deriv(ERROR_ZONAL_TRANSPORT)
OpenAD_Symbol_244 = (1.0D00/ERROR_ZONAL_TRANSPORT%v)
OpenAD_Symbol_241 = (OpenAD_Symbol_244 ** INT(2_w2f__i8))
OpenAD_Symbol_249 = (WF_ZONAL_TRANSPORT%v*OpenAD_Symbol_241)
OpenAD_Symbol_242 = OpenAD_Symbol_241
OpenAD_Symbol_248 = (-(1.0D00/(ERROR_ZONAL_TRANSPORT%v*ERROR_ZONAL
+_TRANSPORT%v)))
OpenAD_Symbol_245 = (INT(2_w2f__i8) *(OpenAD_Symbol_244 **(INT(
> 2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_243 = WF_ZONAL_TRANSPORT%v
WEIGHT_ZONAL_TRANSPORT%v = OpenAD_Symbol_249
OpenAD_Symbol_906 = (OpenAD_Symbol_248 * OpenAD_Symbol_245)
OpenAD_Symbol_907 = (OpenAD_Symbol_906 * OpenAD_Symbol_243)
OpenAD_Symbol_909 = OpenAD_Symbol_242
CALL setderiv(OpenAD_Symbol_910,WF_ZONAL_TRANSPORT)
CALL setderiv(OpenAD_Symbol_908,ERROR_ZONAL_TRANSPORT)
CALL sax(OpenAD_Symbol_907,OpenAD_Symbol_908,WEIGHT_ZONAL_TRANSPOR
+T)
CALL saxpy(OpenAD_Symbol_909,OpenAD_Symbol_910,WEIGHT_ZONAL_TRANSP
+ORT)
RETURN
END SUBROUTINE
SUBROUTINE make_bounds_for_x(NC, LOWER_BOUND, UPPER_BOUND)
use w2f__types
use active_module
use size
use pfields
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_274
REAL(w2f__8) OpenAD_Symbol_275
REAL(w2f__8) OpenAD_Symbol_276
REAL(w2f__8) OpenAD_Symbol_277
REAL(w2f__8) OpenAD_Symbol_278
REAL(w2f__8) OpenAD_Symbol_279
type(active) :: OpenAD_Symbol_930
REAL(w2f__8) OpenAD_Symbol_931
REAL(w2f__8) OpenAD_Symbol_927
type(active) :: OpenAD_Symbol_932
type(active) :: OpenAD_Symbol_928
REAL(w2f__8) OpenAD_Symbol_933
REAL(w2f__8) OpenAD_Symbol_929
type(active) :: OpenAD_Symbol_934
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) NC
type(active) :: LOWER_BOUND(1 : NC)
type(active) :: UPPER_BOUND(1 : NC)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__99
INTEGER(w2f__i8) t__100
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) K
type(active) :: LB
type(active) :: UB
C
C **** statements ****
C
t__99 = NC
t__100 = MAX(t__99, 0_w2f__i8)
UB%v = 5.0D+01
LB%v = (-5.0D+01)
CALL zero_deriv(UB)
CALL zero_deriv(LB)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
IF (ETAMASK(IX,IY)%v .ne. 0.0D00) THEN
K = K + 1
OpenAD_Symbol_276 = (UB%v/INIDEPTH(IX,IY)%v)
OpenAD_Symbol_274 = (INT(1 _w2f__i8)/INIDEPTH(IX,IY)%v)
OpenAD_Symbol_275 = (-(UB%v/(INIDEPTH(IX,IY)%v*INIDEPTH(IX,I
+Y)%v)))
UPPER_BOUND(INT(K))%v = OpenAD_Symbol_276
OpenAD_Symbol_927 = OpenAD_Symbol_274
OpenAD_Symbol_929 = OpenAD_Symbol_275
CALL setderiv(OpenAD_Symbol_930,INIDEPTH(IX,IY))
CALL setderiv(OpenAD_Symbol_928,UB)
CALL sax(OpenAD_Symbol_927,OpenAD_Symbol_928,UPPER_BOUND(K))
CALL saxpy(OpenAD_Symbol_929,OpenAD_Symbol_930,UPPER_BOUND(K
+))
OpenAD_Symbol_279 = (LB%v/INIDEPTH(IX,IY)%v)
OpenAD_Symbol_277 = (INT(1 _w2f__i8)/INIDEPTH(IX,IY)%v)
OpenAD_Symbol_278 = (-(LB%v/(INIDEPTH(IX,IY)%v*INIDEPTH(IX,I
+Y)%v)))
LOWER_BOUND(INT(K))%v = OpenAD_Symbol_279
OpenAD_Symbol_931 = OpenAD_Symbol_277
OpenAD_Symbol_933 = OpenAD_Symbol_278
CALL setderiv(OpenAD_Symbol_934,INIDEPTH(IX,IY))
CALL setderiv(OpenAD_Symbol_932,LB)
CALL sax(OpenAD_Symbol_931,OpenAD_Symbol_932,LOWER_BOUND(K))
CALL saxpy(OpenAD_Symbol_933,OpenAD_Symbol_934,LOWER_BOUND(K
+))
ENDIF
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE make_weights_lapldepth()
use w2f__types
use active_module
use size
use pfields
use weights
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_250
REAL(w2f__8) OpenAD_Symbol_251
REAL(w2f__8) OpenAD_Symbol_252
REAL(w2f__8) OpenAD_Symbol_253
REAL(w2f__8) OpenAD_Symbol_254
REAL(w2f__8) OpenAD_Symbol_255
REAL(w2f__8) OpenAD_Symbol_260
REAL(w2f__8) OpenAD_Symbol_256
REAL(w2f__8) OpenAD_Symbol_261
REAL(w2f__8) OpenAD_Symbol_257
REAL(w2f__8) OpenAD_Symbol_911
REAL(w2f__8) OpenAD_Symbol_912
REAL(w2f__8) OpenAD_Symbol_913
type(active) :: OpenAD_Symbol_914
REAL(w2f__8) OpenAD_Symbol_915
type(active) :: OpenAD_Symbol_916
REAL(w2f__8) OpenAD_Symbol_917
type(active) :: OpenAD_Symbol_918
C
C **** Local Variables and functions ****
C
type(active) :: ERROR
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
C
C **** statements ****
C
ERROR%v = 1.0D00
CALL zero_deriv(ERROR)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_256 = (1.0D00/ERROR%v)
OpenAD_Symbol_253 = (OpenAD_Symbol_256 ** INT(2_w2f__i8))
OpenAD_Symbol_250 = (WF_LAPLDEPTH%v*OpenAD_Symbol_253)
OpenAD_Symbol_261 = (ETAMASK(IX,IY)%v*OpenAD_Symbol_250)
OpenAD_Symbol_251 = OpenAD_Symbol_250
OpenAD_Symbol_254 = OpenAD_Symbol_253
OpenAD_Symbol_260 = (-(1.0D00/(ERROR%v*ERROR%v)))
OpenAD_Symbol_257 = (INT(2_w2f__i8) *(OpenAD_Symbol_256 **(
> INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_255 = WF_LAPLDEPTH%v
OpenAD_Symbol_252 = ETAMASK(IX,IY)%v
WEIGHT_LAPLDEPTH(INT(IX),INT(IY))%v = OpenAD_Symbol_261
OpenAD_Symbol_911 = (OpenAD_Symbol_260 * OpenAD_Symbol_257)
OpenAD_Symbol_912 = (OpenAD_Symbol_911 * OpenAD_Symbol_255)
OpenAD_Symbol_913 = (OpenAD_Symbol_254 * OpenAD_Symbol_252)
OpenAD_Symbol_915 = (OpenAD_Symbol_912 * OpenAD_Symbol_252)
OpenAD_Symbol_917 = OpenAD_Symbol_251
CALL setderiv(OpenAD_Symbol_918,ETAMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_916,ERROR)
CALL setderiv(OpenAD_Symbol_914,WF_LAPLDEPTH)
CALL sax(OpenAD_Symbol_913,OpenAD_Symbol_914,WEIGHT_LAPLDEPTH(
+IX,IY))
CALL saxpy(OpenAD_Symbol_915,OpenAD_Symbol_916,WEIGHT_LAPLDEPT
+H(IX,IY))
CALL saxpy(OpenAD_Symbol_917,OpenAD_Symbol_918,WEIGHT_LAPLDEPT
+H(IX,IY))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE make_weights_graddepth()
use w2f__types
use active_module
use size
use pfields
use weights
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_262
REAL(w2f__8) OpenAD_Symbol_263
REAL(w2f__8) OpenAD_Symbol_264
REAL(w2f__8) OpenAD_Symbol_265
REAL(w2f__8) OpenAD_Symbol_266
REAL(w2f__8) OpenAD_Symbol_267
REAL(w2f__8) OpenAD_Symbol_272
REAL(w2f__8) OpenAD_Symbol_268
REAL(w2f__8) OpenAD_Symbol_273
REAL(w2f__8) OpenAD_Symbol_269
REAL(w2f__8) OpenAD_Symbol_920
REAL(w2f__8) OpenAD_Symbol_921
type(active) :: OpenAD_Symbol_922
REAL(w2f__8) OpenAD_Symbol_923
REAL(w2f__8) OpenAD_Symbol_919
type(active) :: OpenAD_Symbol_924
REAL(w2f__8) OpenAD_Symbol_925
type(active) :: OpenAD_Symbol_926
C
C **** Local Variables and functions ****
C
type(active) :: ERROR
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
C
C **** statements ****
C
ERROR%v = 1.0D00
CALL zero_deriv(ERROR)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_268 = (1.0D00/ERROR%v)
OpenAD_Symbol_265 = (OpenAD_Symbol_268 ** INT(2_w2f__i8))
OpenAD_Symbol_262 = (WF_GRADDEPTH%v*OpenAD_Symbol_265)
OpenAD_Symbol_273 = (ETAMASK(IX,IY)%v*OpenAD_Symbol_262)
OpenAD_Symbol_263 = OpenAD_Symbol_262
OpenAD_Symbol_266 = OpenAD_Symbol_265
OpenAD_Symbol_272 = (-(1.0D00/(ERROR%v*ERROR%v)))
OpenAD_Symbol_269 = (INT(2_w2f__i8) *(OpenAD_Symbol_268 **(
> INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_267 = WF_GRADDEPTH%v
OpenAD_Symbol_264 = ETAMASK(IX,IY)%v
WEIGHT_GRADDEPTH(INT(IX),INT(IY))%v = OpenAD_Symbol_273
OpenAD_Symbol_919 = (OpenAD_Symbol_272 * OpenAD_Symbol_269)
OpenAD_Symbol_920 = (OpenAD_Symbol_919 * OpenAD_Symbol_267)
OpenAD_Symbol_921 = (OpenAD_Symbol_266 * OpenAD_Symbol_264)
OpenAD_Symbol_923 = (OpenAD_Symbol_920 * OpenAD_Symbol_264)
OpenAD_Symbol_925 = OpenAD_Symbol_263
CALL setderiv(OpenAD_Symbol_926,ETAMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_924,ERROR)
CALL setderiv(OpenAD_Symbol_922,WF_GRADDEPTH)
CALL sax(OpenAD_Symbol_921,OpenAD_Symbol_922,WEIGHT_GRADDEPTH(
+IX,IY))
CALL saxpy(OpenAD_Symbol_923,OpenAD_Symbol_924,WEIGHT_GRADDEPT
+H(IX,IY))
CALL saxpy(OpenAD_Symbol_925,OpenAD_Symbol_926,WEIGHT_GRADDEPT
+H(IX,IY))
END DO
END DO
RETURN
END SUBROUTINE
SUBROUTINE map_from_control_vector(N, XC)
use w2f__types
use active_module
use size
use pfields
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_173
REAL(w2f__8) OpenAD_Symbol_174
REAL(w2f__8) OpenAD_Symbol_175
REAL(w2f__8) OpenAD_Symbol_176
REAL(w2f__8) OpenAD_Symbol_178
REAL(w2f__8) OpenAD_Symbol_855
type(active) :: OpenAD_Symbol_856
REAL(w2f__8) OpenAD_Symbol_857
type(active) :: OpenAD_Symbol_858
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) N
type(active) :: XC(1 : N)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__101
INTEGER(w2f__i8) t__102
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) K
REAL(w2f__4) ONE
PARAMETER ( ONE = 1.000000)
C
C **** statements ****
C
t__101 = N
t__102 = MAX(t__101, 0_w2f__i8)
K = 0
DO IY = 1, 20, 1
DO IX = 1, 20, 1
IF (ETAMASK(IX,IY)%v .ne. 0.0D00) THEN
K = K + 1
OpenAD_Symbol_173 = (XC(K)%v+1.0D00)
OpenAD_Symbol_178 = (SCALEDEPTH(IX,IY)%v*OpenAD_Symbol_173)
OpenAD_Symbol_174 = OpenAD_Symbol_173
OpenAD_Symbol_176 = 1_w2f__i8
OpenAD_Symbol_175 = SCALEDEPTH(IX,IY)%v
DEPTH(INT(IX),INT(IY))%v = OpenAD_Symbol_178
OpenAD_Symbol_855 = (OpenAD_Symbol_176 * OpenAD_Symbol_175)
OpenAD_Symbol_857 = OpenAD_Symbol_174
CALL setderiv(OpenAD_Symbol_858,SCALEDEPTH(IX,IY))
CALL setderiv(OpenAD_Symbol_856,XC(K))
CALL sax(OpenAD_Symbol_855,OpenAD_Symbol_856,DEPTH(IX,IY))
CALL saxpy(OpenAD_Symbol_857,OpenAD_Symbol_858,DEPTH(IX,IY))
ENDIF
END DO
END DO
IF(N .ne. K) THEN
WRITE(*, *) 'map_from_control_vector: ',
> 'dimensions of control vector are wrong'
WRITE(*, *) K, ' should be ', N
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE map_to_control_vector(N, XC)
use w2f__types
use active_module
use size
use pfields
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_280
REAL(w2f__8) OpenAD_Symbol_282
REAL(w2f__8) OpenAD_Symbol_283
REAL(w2f__8) OpenAD_Symbol_284
REAL(w2f__8) OpenAD_Symbol_935
type(active) :: OpenAD_Symbol_936
REAL(w2f__8) OpenAD_Symbol_937
type(active) :: OpenAD_Symbol_938
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) N
type(active) :: XC(1 : N)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__103
INTEGER(w2f__i8) t__104
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) K
REAL(w2f__4) ONE
PARAMETER ( ONE = 1.000000)
C
C **** statements ****
C
t__103 = N
t__104 = MAX(t__103, 0_w2f__i8)
K = 0
DO IY = 1, 20, 1
DO IX = 1, 20, 1
IF (ETAMASK(IX,IY)%v .ne. 0.0D00) THEN
K = K + 1
OpenAD_Symbol_284 = ((DEPTH(IX,IY)%v/SCALEDEPTH(IX,IY)%v)+(-
+1.0D00))
OpenAD_Symbol_282 = (INT(1 _w2f__i8)/SCALEDEPTH(IX,IY)%v)
OpenAD_Symbol_283 = (-(DEPTH(IX,IY)%v/(SCALEDEPTH(IX,IY)%v*S
+CALEDEPTH(IX,IY)%v)))
OpenAD_Symbol_280 = 1_w2f__i8
XC(INT(K))%v = OpenAD_Symbol_284
OpenAD_Symbol_935 = (OpenAD_Symbol_282 * OpenAD_Symbol_280)
OpenAD_Symbol_937 = (OpenAD_Symbol_283 * OpenAD_Symbol_280)
CALL setderiv(OpenAD_Symbol_938,SCALEDEPTH(IX,IY))
CALL setderiv(OpenAD_Symbol_936,DEPTH(IX,IY))
CALL sax(OpenAD_Symbol_935,OpenAD_Symbol_936,XC(K))
CALL saxpy(OpenAD_Symbol_937,OpenAD_Symbol_938,XC(K))
ENDIF
END DO
END DO
IF(N .ne. K) THEN
WRITE(*, *) 'map_to_control_vector: ',
> 'dimensions of control vector are wrong'
WRITE(*, *) K, ' should be ', N
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE map_gradient(N, ADXC, GRAD)
use w2f__types
use active_module
use size
use pfields
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_170
REAL(w2f__8) OpenAD_Symbol_171
REAL(w2f__8) OpenAD_Symbol_172
REAL(w2f__8) OpenAD_Symbol_851
type(active) :: OpenAD_Symbol_852
REAL(w2f__8) OpenAD_Symbol_853
type(active) :: OpenAD_Symbol_854
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) N
type(active) :: ADXC(1 : N)
type(active) :: GRAD(1 : 20, 1 : 20)
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__105
INTEGER(w2f__i8) t__108
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) K
C
C **** statements ****
C
t__105 = N
t__108 = MAX(t__105, 0_w2f__i8)
K = 0
DO IY = 1, 20, 1
DO IX = 1, 20, 1
IF (ETAMASK(IX,IY)%v .ne. 0.0D00) THEN
K = K + 1
OpenAD_Symbol_172 = (ADXC(K)%v/SCALEDEPTH(IX,IY)%v)
OpenAD_Symbol_170 = (INT(1 _w2f__i8)/SCALEDEPTH(IX,IY)%v)
OpenAD_Symbol_171 = (-(ADXC(K)%v/(SCALEDEPTH(IX,IY)%v*SCALED
+EPTH(IX,IY)%v)))
GRAD(INT(IX),INT(IY))%v = OpenAD_Symbol_172
OpenAD_Symbol_851 = OpenAD_Symbol_170
OpenAD_Symbol_853 = OpenAD_Symbol_171
CALL setderiv(OpenAD_Symbol_854,SCALEDEPTH(IX,IY))
CALL setderiv(OpenAD_Symbol_852,ADXC(K))
CALL sax(OpenAD_Symbol_851,OpenAD_Symbol_852,GRAD(IX,IY))
CALL saxpy(OpenAD_Symbol_853,OpenAD_Symbol_854,GRAD(IX,IY))
ENDIF
END DO
END DO
IF(N .ne. K) THEN
WRITE(*, *) 'map_from_control_vector: ',
> 'dimensions of control vector are wrong'
WRITE(*, *) K, ' should be ', N
ENDIF
RETURN
END SUBROUTINE
SUBROUTINE length_of_control_vector(N)
use w2f__types
use active_module
use size
use pfields
IMPLICIT NONE
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) N
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) K
C
C **** statements ****
C
K = 0
DO IY = 1, 20, 1
DO IX = 1, 20, 1
IF (ETAMASK(IX,IY)%v .ne. 0.0D00) THEN
K = K + 1
ENDIF
END DO
END DO
N = K
WRITE(*, *) 'dimensions of control vector = ', N
RETURN
END SUBROUTINE
SUBROUTINE forward_model(NCTRL, XC, COST_FINAL)
use w2f__types
use active_module
use size
use parms
use vars
use pfields
use weights
use data
use force
IMPLICIT NONE
C
C **** Global Variables ****
C
REAL(w2f__8) OpenAD_Symbol_301
REAL(w2f__8) OpenAD_Symbol_302
REAL(w2f__8) OpenAD_Symbol_303
REAL(w2f__8) OpenAD_Symbol_304
REAL(w2f__8) OpenAD_Symbol_305
REAL(w2f__8) OpenAD_Symbol_310
REAL(w2f__8) OpenAD_Symbol_306
REAL(w2f__8) OpenAD_Symbol_311
REAL(w2f__8) OpenAD_Symbol_307
REAL(w2f__8) OpenAD_Symbol_312
REAL(w2f__8) OpenAD_Symbol_308
REAL(w2f__8) OpenAD_Symbol_313
REAL(w2f__8) OpenAD_Symbol_309
REAL(w2f__8) OpenAD_Symbol_314
REAL(w2f__8) OpenAD_Symbol_315
REAL(w2f__8) OpenAD_Symbol_320
REAL(w2f__8) OpenAD_Symbol_316
REAL(w2f__8) OpenAD_Symbol_321
REAL(w2f__8) OpenAD_Symbol_317
REAL(w2f__8) OpenAD_Symbol_322
REAL(w2f__8) OpenAD_Symbol_318
REAL(w2f__8) OpenAD_Symbol_319
REAL(w2f__8) OpenAD_Symbol_324
REAL(w2f__8) OpenAD_Symbol_325
REAL(w2f__8) OpenAD_Symbol_330
REAL(w2f__8) OpenAD_Symbol_326
REAL(w2f__8) OpenAD_Symbol_327
REAL(w2f__8) OpenAD_Symbol_332
REAL(w2f__8) OpenAD_Symbol_328
REAL(w2f__8) OpenAD_Symbol_333
REAL(w2f__8) OpenAD_Symbol_329
REAL(w2f__8) OpenAD_Symbol_334
REAL(w2f__8) OpenAD_Symbol_285
REAL(w2f__8) OpenAD_Symbol_290
REAL(w2f__8) OpenAD_Symbol_335
REAL(w2f__8) OpenAD_Symbol_340
REAL(w2f__8) OpenAD_Symbol_286
REAL(w2f__8) OpenAD_Symbol_291
REAL(w2f__8) OpenAD_Symbol_341
REAL(w2f__8) OpenAD_Symbol_287
REAL(w2f__8) OpenAD_Symbol_292
REAL(w2f__8) OpenAD_Symbol_337
REAL(w2f__8) OpenAD_Symbol_342
REAL(w2f__8) OpenAD_Symbol_288
REAL(w2f__8) OpenAD_Symbol_293
REAL(w2f__8) OpenAD_Symbol_338
REAL(w2f__8) OpenAD_Symbol_343
REAL(w2f__8) OpenAD_Symbol_294
REAL(w2f__8) OpenAD_Symbol_339
REAL(w2f__8) OpenAD_Symbol_295
REAL(w2f__8) OpenAD_Symbol_345
REAL(w2f__8) OpenAD_Symbol_350
REAL(w2f__8) OpenAD_Symbol_400
REAL(w2f__8) OpenAD_Symbol_296
REAL(w2f__8) OpenAD_Symbol_346
REAL(w2f__8) OpenAD_Symbol_351
REAL(w2f__8) OpenAD_Symbol_401
REAL(w2f__8) OpenAD_Symbol_347
REAL(w2f__8) OpenAD_Symbol_352
REAL(w2f__8) OpenAD_Symbol_402
REAL(w2f__8) OpenAD_Symbol_298
REAL(w2f__8) OpenAD_Symbol_348
REAL(w2f__8) OpenAD_Symbol_353
REAL(w2f__8) OpenAD_Symbol_403
REAL(w2f__8) OpenAD_Symbol_299
REAL(w2f__8) OpenAD_Symbol_349
REAL(w2f__8) OpenAD_Symbol_354
REAL(w2f__8) OpenAD_Symbol_355
REAL(w2f__8) OpenAD_Symbol_360
REAL(w2f__8) OpenAD_Symbol_405
REAL(w2f__8) OpenAD_Symbol_410
REAL(w2f__8) OpenAD_Symbol_356
REAL(w2f__8) OpenAD_Symbol_361
REAL(w2f__8) OpenAD_Symbol_406
REAL(w2f__8) OpenAD_Symbol_411
REAL(w2f__8) OpenAD_Symbol_357
REAL(w2f__8) OpenAD_Symbol_362
REAL(w2f__8) OpenAD_Symbol_407
REAL(w2f__8) OpenAD_Symbol_412
REAL(w2f__8) OpenAD_Symbol_358
REAL(w2f__8) OpenAD_Symbol_363
REAL(w2f__8) OpenAD_Symbol_408
REAL(w2f__8) OpenAD_Symbol_413
REAL(w2f__8) OpenAD_Symbol_364
REAL(w2f__8) OpenAD_Symbol_414
REAL(w2f__8) OpenAD_Symbol_365
REAL(w2f__8) OpenAD_Symbol_370
REAL(w2f__8) OpenAD_Symbol_415
REAL(w2f__8) OpenAD_Symbol_420
REAL(w2f__8) OpenAD_Symbol_366
REAL(w2f__8) OpenAD_Symbol_371
REAL(w2f__8) OpenAD_Symbol_416
REAL(w2f__8) OpenAD_Symbol_367
REAL(w2f__8) OpenAD_Symbol_372
REAL(w2f__8) OpenAD_Symbol_417
REAL(w2f__8) OpenAD_Symbol_422
REAL(w2f__8) OpenAD_Symbol_368
REAL(w2f__8) OpenAD_Symbol_373
REAL(w2f__8) OpenAD_Symbol_418
REAL(w2f__8) OpenAD_Symbol_423
REAL(w2f__8) OpenAD_Symbol_369
REAL(w2f__8) OpenAD_Symbol_374
REAL(w2f__8) OpenAD_Symbol_419
REAL(w2f__8) OpenAD_Symbol_424
REAL(w2f__8) OpenAD_Symbol_375
REAL(w2f__8) OpenAD_Symbol_380
REAL(w2f__8) OpenAD_Symbol_425
REAL(w2f__8) OpenAD_Symbol_430
REAL(w2f__8) OpenAD_Symbol_376
REAL(w2f__8) OpenAD_Symbol_426
REAL(w2f__8) OpenAD_Symbol_431
REAL(w2f__8) OpenAD_Symbol_377
REAL(w2f__8) OpenAD_Symbol_382
REAL(w2f__8) OpenAD_Symbol_427
REAL(w2f__8) OpenAD_Symbol_432
REAL(w2f__8) OpenAD_Symbol_378
REAL(w2f__8) OpenAD_Symbol_383
REAL(w2f__8) OpenAD_Symbol_428
REAL(w2f__8) OpenAD_Symbol_433
REAL(w2f__8) OpenAD_Symbol_379
REAL(w2f__8) OpenAD_Symbol_384
REAL(w2f__8) OpenAD_Symbol_429
REAL(w2f__8) OpenAD_Symbol_434
REAL(w2f__8) OpenAD_Symbol_385
REAL(w2f__8) OpenAD_Symbol_390
REAL(w2f__8) OpenAD_Symbol_435
REAL(w2f__8) OpenAD_Symbol_440
REAL(w2f__8) OpenAD_Symbol_391
REAL(w2f__8) OpenAD_Symbol_441
REAL(w2f__8) OpenAD_Symbol_387
REAL(w2f__8) OpenAD_Symbol_392
REAL(w2f__8) OpenAD_Symbol_437
REAL(w2f__8) OpenAD_Symbol_442
REAL(w2f__8) OpenAD_Symbol_388
REAL(w2f__8) OpenAD_Symbol_393
REAL(w2f__8) OpenAD_Symbol_438
REAL(w2f__8) OpenAD_Symbol_443
REAL(w2f__8) OpenAD_Symbol_389
REAL(w2f__8) OpenAD_Symbol_394
REAL(w2f__8) OpenAD_Symbol_439
REAL(w2f__8) OpenAD_Symbol_444
REAL(w2f__8) OpenAD_Symbol_395
REAL(w2f__8) OpenAD_Symbol_445
REAL(w2f__8) OpenAD_Symbol_450
REAL(w2f__8) OpenAD_Symbol_500
REAL(w2f__8) OpenAD_Symbol_396
REAL(w2f__8) OpenAD_Symbol_446
REAL(w2f__8) OpenAD_Symbol_451
REAL(w2f__8) OpenAD_Symbol_501
REAL(w2f__8) OpenAD_Symbol_397
REAL(w2f__8) OpenAD_Symbol_447
REAL(w2f__8) OpenAD_Symbol_452
REAL(w2f__8) OpenAD_Symbol_502
REAL(w2f__8) OpenAD_Symbol_448
REAL(w2f__8) OpenAD_Symbol_453
REAL(w2f__8) OpenAD_Symbol_503
REAL(w2f__8) OpenAD_Symbol_399
REAL(w2f__8) OpenAD_Symbol_449
REAL(w2f__8) OpenAD_Symbol_454
REAL(w2f__8) OpenAD_Symbol_504
REAL(w2f__8) OpenAD_Symbol_455
REAL(w2f__8) OpenAD_Symbol_460
REAL(w2f__8) OpenAD_Symbol_505
REAL(w2f__8) OpenAD_Symbol_510
REAL(w2f__8) OpenAD_Symbol_456
REAL(w2f__8) OpenAD_Symbol_461
REAL(w2f__8) OpenAD_Symbol_506
REAL(w2f__8) OpenAD_Symbol_511
REAL(w2f__8) OpenAD_Symbol_457
REAL(w2f__8) OpenAD_Symbol_462
REAL(w2f__8) OpenAD_Symbol_507
REAL(w2f__8) OpenAD_Symbol_512
REAL(w2f__8) OpenAD_Symbol_508
REAL(w2f__8) OpenAD_Symbol_513
REAL(w2f__8) OpenAD_Symbol_459
REAL(w2f__8) OpenAD_Symbol_464
REAL(w2f__8) OpenAD_Symbol_509
REAL(w2f__8) OpenAD_Symbol_514
REAL(w2f__8) OpenAD_Symbol_465
REAL(w2f__8) OpenAD_Symbol_470
REAL(w2f__8) OpenAD_Symbol_515
REAL(w2f__8) OpenAD_Symbol_520
REAL(w2f__8) OpenAD_Symbol_466
REAL(w2f__8) OpenAD_Symbol_471
REAL(w2f__8) OpenAD_Symbol_516
REAL(w2f__8) OpenAD_Symbol_521
REAL(w2f__8) OpenAD_Symbol_467
REAL(w2f__8) OpenAD_Symbol_472
REAL(w2f__8) OpenAD_Symbol_517
REAL(w2f__8) OpenAD_Symbol_522
REAL(w2f__8) OpenAD_Symbol_468
REAL(w2f__8) OpenAD_Symbol_473
REAL(w2f__8) OpenAD_Symbol_518
REAL(w2f__8) OpenAD_Symbol_523
REAL(w2f__8) OpenAD_Symbol_469
REAL(w2f__8) OpenAD_Symbol_474
REAL(w2f__8) OpenAD_Symbol_519
REAL(w2f__8) OpenAD_Symbol_524
REAL(w2f__8) OpenAD_Symbol_475
REAL(w2f__8) OpenAD_Symbol_480
REAL(w2f__8) OpenAD_Symbol_525
REAL(w2f__8) OpenAD_Symbol_530
REAL(w2f__8) OpenAD_Symbol_476
REAL(w2f__8) OpenAD_Symbol_481
REAL(w2f__8) OpenAD_Symbol_526
REAL(w2f__8) OpenAD_Symbol_531
REAL(w2f__8) OpenAD_Symbol_477
REAL(w2f__8) OpenAD_Symbol_482
REAL(w2f__8) OpenAD_Symbol_527
REAL(w2f__8) OpenAD_Symbol_532
REAL(w2f__8) OpenAD_Symbol_483
REAL(w2f__8) OpenAD_Symbol_528
REAL(w2f__8) OpenAD_Symbol_533
REAL(w2f__8) OpenAD_Symbol_479
REAL(w2f__8) OpenAD_Symbol_529
REAL(w2f__8) OpenAD_Symbol_534
REAL(w2f__8) OpenAD_Symbol_485
REAL(w2f__8) OpenAD_Symbol_490
REAL(w2f__8) OpenAD_Symbol_535
REAL(w2f__8) OpenAD_Symbol_540
REAL(w2f__8) OpenAD_Symbol_486
REAL(w2f__8) OpenAD_Symbol_491
REAL(w2f__8) OpenAD_Symbol_536
REAL(w2f__8) OpenAD_Symbol_541
REAL(w2f__8) OpenAD_Symbol_487
REAL(w2f__8) OpenAD_Symbol_492
REAL(w2f__8) OpenAD_Symbol_537
REAL(w2f__8) OpenAD_Symbol_542
REAL(w2f__8) OpenAD_Symbol_488
REAL(w2f__8) OpenAD_Symbol_493
REAL(w2f__8) OpenAD_Symbol_538
REAL(w2f__8) OpenAD_Symbol_543
REAL(w2f__8) OpenAD_Symbol_494
REAL(w2f__8) OpenAD_Symbol_539
REAL(w2f__8) OpenAD_Symbol_544
REAL(w2f__8) OpenAD_Symbol_495
REAL(w2f__8) OpenAD_Symbol_545
REAL(w2f__8) OpenAD_Symbol_550
REAL(w2f__8) OpenAD_Symbol_600
REAL(w2f__8) OpenAD_Symbol_496
REAL(w2f__8) OpenAD_Symbol_546
REAL(w2f__8) OpenAD_Symbol_551
REAL(w2f__8) OpenAD_Symbol_601
REAL(w2f__8) OpenAD_Symbol_497
REAL(w2f__8) OpenAD_Symbol_547
REAL(w2f__8) OpenAD_Symbol_602
REAL(w2f__8) OpenAD_Symbol_498
REAL(w2f__8) OpenAD_Symbol_548
REAL(w2f__8) OpenAD_Symbol_553
REAL(w2f__8) OpenAD_Symbol_499
REAL(w2f__8) OpenAD_Symbol_554
REAL(w2f__8) OpenAD_Symbol_604
REAL(w2f__8) OpenAD_Symbol_555
REAL(w2f__8) OpenAD_Symbol_560
REAL(w2f__8) OpenAD_Symbol_605
REAL(w2f__8) OpenAD_Symbol_610
REAL(w2f__8) OpenAD_Symbol_556
REAL(w2f__8) OpenAD_Symbol_606
REAL(w2f__8) OpenAD_Symbol_611
REAL(w2f__8) OpenAD_Symbol_557
REAL(w2f__8) OpenAD_Symbol_562
REAL(w2f__8) OpenAD_Symbol_607
REAL(w2f__8) OpenAD_Symbol_612
REAL(w2f__8) OpenAD_Symbol_558
REAL(w2f__8) OpenAD_Symbol_563
REAL(w2f__8) OpenAD_Symbol_608
REAL(w2f__8) OpenAD_Symbol_613
REAL(w2f__8) OpenAD_Symbol_559
REAL(w2f__8) OpenAD_Symbol_564
REAL(w2f__8) OpenAD_Symbol_609
REAL(w2f__8) OpenAD_Symbol_614
REAL(w2f__8) OpenAD_Symbol_565
REAL(w2f__8) OpenAD_Symbol_570
REAL(w2f__8) OpenAD_Symbol_615
REAL(w2f__8) OpenAD_Symbol_620
REAL(w2f__8) OpenAD_Symbol_566
REAL(w2f__8) OpenAD_Symbol_571
REAL(w2f__8) OpenAD_Symbol_616
REAL(w2f__8) OpenAD_Symbol_621
REAL(w2f__8) OpenAD_Symbol_567
REAL(w2f__8) OpenAD_Symbol_572
REAL(w2f__8) OpenAD_Symbol_617
REAL(w2f__8) OpenAD_Symbol_622
REAL(w2f__8) OpenAD_Symbol_568
REAL(w2f__8) OpenAD_Symbol_573
REAL(w2f__8) OpenAD_Symbol_623
REAL(w2f__8) OpenAD_Symbol_569
REAL(w2f__8) OpenAD_Symbol_574
REAL(w2f__8) OpenAD_Symbol_619
REAL(w2f__8) OpenAD_Symbol_575
REAL(w2f__8) OpenAD_Symbol_580
REAL(w2f__8) OpenAD_Symbol_625
REAL(w2f__8) OpenAD_Symbol_630
REAL(w2f__8) OpenAD_Symbol_581
REAL(w2f__8) OpenAD_Symbol_626
REAL(w2f__8) OpenAD_Symbol_631
REAL(w2f__8) OpenAD_Symbol_577
REAL(w2f__8) OpenAD_Symbol_582
REAL(w2f__8) OpenAD_Symbol_627
REAL(w2f__8) OpenAD_Symbol_632
REAL(w2f__8) OpenAD_Symbol_578
REAL(w2f__8) OpenAD_Symbol_583
REAL(w2f__8) OpenAD_Symbol_628
REAL(w2f__8) OpenAD_Symbol_633
REAL(w2f__8) OpenAD_Symbol_579
REAL(w2f__8) OpenAD_Symbol_584
REAL(w2f__8) OpenAD_Symbol_634
REAL(w2f__8) OpenAD_Symbol_585
REAL(w2f__8) OpenAD_Symbol_590
REAL(w2f__8) OpenAD_Symbol_635
REAL(w2f__8) OpenAD_Symbol_640
REAL(w2f__8) OpenAD_Symbol_586
REAL(w2f__8) OpenAD_Symbol_591
REAL(w2f__8) OpenAD_Symbol_636
REAL(w2f__8) OpenAD_Symbol_641
REAL(w2f__8) OpenAD_Symbol_587
REAL(w2f__8) OpenAD_Symbol_592
REAL(w2f__8) OpenAD_Symbol_637
REAL(w2f__8) OpenAD_Symbol_642
REAL(w2f__8) OpenAD_Symbol_588
REAL(w2f__8) OpenAD_Symbol_593
REAL(w2f__8) OpenAD_Symbol_643
REAL(w2f__8) OpenAD_Symbol_589
REAL(w2f__8) OpenAD_Symbol_594
REAL(w2f__8) OpenAD_Symbol_639
REAL(w2f__8) OpenAD_Symbol_644
REAL(w2f__8) OpenAD_Symbol_595
REAL(w2f__8) OpenAD_Symbol_645
REAL(w2f__8) OpenAD_Symbol_650
REAL(w2f__8) OpenAD_Symbol_700
REAL(w2f__8) OpenAD_Symbol_596
REAL(w2f__8) OpenAD_Symbol_646
REAL(w2f__8) OpenAD_Symbol_651
REAL(w2f__8) OpenAD_Symbol_701
REAL(w2f__8) OpenAD_Symbol_597
REAL(w2f__8) OpenAD_Symbol_647
REAL(w2f__8) OpenAD_Symbol_652
REAL(w2f__8) OpenAD_Symbol_702
REAL(w2f__8) OpenAD_Symbol_648
REAL(w2f__8) OpenAD_Symbol_599
REAL(w2f__8) OpenAD_Symbol_649
REAL(w2f__8) OpenAD_Symbol_654
REAL(w2f__8) OpenAD_Symbol_704
REAL(w2f__8) OpenAD_Symbol_655
REAL(w2f__8) OpenAD_Symbol_660
REAL(w2f__8) OpenAD_Symbol_705
REAL(w2f__8) OpenAD_Symbol_710
REAL(w2f__8) OpenAD_Symbol_656
REAL(w2f__8) OpenAD_Symbol_661
REAL(w2f__8) OpenAD_Symbol_706
REAL(w2f__8) OpenAD_Symbol_711
REAL(w2f__8) OpenAD_Symbol_657
REAL(w2f__8) OpenAD_Symbol_662
REAL(w2f__8) OpenAD_Symbol_707
REAL(w2f__8) OpenAD_Symbol_712
REAL(w2f__8) OpenAD_Symbol_658
REAL(w2f__8) OpenAD_Symbol_663
REAL(w2f__8) OpenAD_Symbol_708
REAL(w2f__8) OpenAD_Symbol_713
REAL(w2f__8) OpenAD_Symbol_659
REAL(w2f__8) OpenAD_Symbol_664
REAL(w2f__8) OpenAD_Symbol_709
REAL(w2f__8) OpenAD_Symbol_714
REAL(w2f__8) OpenAD_Symbol_665
REAL(w2f__8) OpenAD_Symbol_670
REAL(w2f__8) OpenAD_Symbol_715
REAL(w2f__8) OpenAD_Symbol_666
REAL(w2f__8) OpenAD_Symbol_671
REAL(w2f__8) OpenAD_Symbol_716
REAL(w2f__8) OpenAD_Symbol_667
REAL(w2f__8) OpenAD_Symbol_672
REAL(w2f__8) OpenAD_Symbol_717
REAL(w2f__8) OpenAD_Symbol_668
REAL(w2f__8) OpenAD_Symbol_673
REAL(w2f__8) OpenAD_Symbol_669
REAL(w2f__8) OpenAD_Symbol_674
REAL(w2f__8) OpenAD_Symbol_676
REAL(w2f__8) OpenAD_Symbol_681
REAL(w2f__8) OpenAD_Symbol_677
REAL(w2f__8) OpenAD_Symbol_682
REAL(w2f__8) OpenAD_Symbol_678
REAL(w2f__8) OpenAD_Symbol_683
REAL(w2f__8) OpenAD_Symbol_679
REAL(w2f__8) OpenAD_Symbol_684
REAL(w2f__8) OpenAD_Symbol_685
REAL(w2f__8) OpenAD_Symbol_690
REAL(w2f__8) OpenAD_Symbol_686
REAL(w2f__8) OpenAD_Symbol_691
REAL(w2f__8) OpenAD_Symbol_687
REAL(w2f__8) OpenAD_Symbol_688
REAL(w2f__8) OpenAD_Symbol_693
REAL(w2f__8) OpenAD_Symbol_689
REAL(w2f__8) OpenAD_Symbol_694
REAL(w2f__8) OpenAD_Symbol_695
REAL(w2f__8) OpenAD_Symbol_696
REAL(w2f__8) OpenAD_Symbol_697
REAL(w2f__8) OpenAD_Symbol_699
type(active) :: OpenAD_Symbol_940
REAL(w2f__8) OpenAD_Symbol_941
type(active) :: OpenAD_Symbol_942
REAL(w2f__8) OpenAD_Symbol_943
REAL(w2f__8) OpenAD_Symbol_939
type(active) :: OpenAD_Symbol_944
REAL(w2f__8) OpenAD_Symbol_945
type(active) :: OpenAD_Symbol_950
type(active) :: OpenAD_Symbol_946
REAL(w2f__8) OpenAD_Symbol_951
REAL(w2f__8) OpenAD_Symbol_947
type(active) :: OpenAD_Symbol_952
type(active) :: OpenAD_Symbol_948
REAL(w2f__8) OpenAD_Symbol_953
REAL(w2f__8) OpenAD_Symbol_949
type(active) :: OpenAD_Symbol_954
REAL(w2f__8) OpenAD_Symbol_955
type(active) :: OpenAD_Symbol_960
type(active) :: OpenAD_Symbol_956
REAL(w2f__8) OpenAD_Symbol_961
REAL(w2f__8) OpenAD_Symbol_957
type(active) :: OpenAD_Symbol_962
type(active) :: OpenAD_Symbol_958
REAL(w2f__8) OpenAD_Symbol_963
REAL(w2f__8) OpenAD_Symbol_959
type(active) :: OpenAD_Symbol_964
REAL(w2f__8) OpenAD_Symbol_965
type(active) :: OpenAD_Symbol_970
type(active) :: OpenAD_Symbol_966
REAL(w2f__8) OpenAD_Symbol_971
REAL(w2f__8) OpenAD_Symbol_967
REAL(w2f__8) OpenAD_Symbol_972
REAL(w2f__8) OpenAD_Symbol_968
type(active) :: OpenAD_Symbol_973
REAL(w2f__8) OpenAD_Symbol_969
REAL(w2f__8) OpenAD_Symbol_974
type(active) :: OpenAD_Symbol_975
type(active) :: OpenAD_Symbol_980
REAL(w2f__8) OpenAD_Symbol_976
REAL(w2f__8) OpenAD_Symbol_981
REAL(w2f__8) OpenAD_Symbol_977
type(active) :: OpenAD_Symbol_982
type(active) :: OpenAD_Symbol_978
REAL(w2f__8) OpenAD_Symbol_983
REAL(w2f__8) OpenAD_Symbol_979
type(active) :: OpenAD_Symbol_984
REAL(w2f__8) OpenAD_Symbol_985
type(active) :: OpenAD_Symbol_990
type(active) :: OpenAD_Symbol_986
REAL(w2f__8) OpenAD_Symbol_991
REAL(w2f__8) OpenAD_Symbol_987
REAL(w2f__8) OpenAD_Symbol_992
type(active) :: OpenAD_Symbol_988
type(active) :: OpenAD_Symbol_993
REAL(w2f__8) OpenAD_Symbol_989
REAL(w2f__8) OpenAD_Symbol_994
type(active) :: OpenAD_Symbol_995
REAL(w2f__8) OpenAD_Symbol_996
type(active) :: OpenAD_Symbol_997
REAL(w2f__8) OpenAD_Symbol_998
REAL(w2f__8) OpenAD_Symbol_999
REAL(w2f__8) OpenAD_Symbol_1000
type(active) :: OpenAD_Symbol_1001
REAL(w2f__8) OpenAD_Symbol_1002
type(active) :: OpenAD_Symbol_1003
REAL(w2f__8) OpenAD_Symbol_1004
type(active) :: OpenAD_Symbol_1005
REAL(w2f__8) OpenAD_Symbol_1010
REAL(w2f__8) OpenAD_Symbol_1006
type(active) :: OpenAD_Symbol_1011
type(active) :: OpenAD_Symbol_1007
REAL(w2f__8) OpenAD_Symbol_1012
REAL(w2f__8) OpenAD_Symbol_1008
REAL(w2f__8) OpenAD_Symbol_1013
type(active) :: OpenAD_Symbol_1009
type(active) :: OpenAD_Symbol_1014
REAL(w2f__8) OpenAD_Symbol_1015
REAL(w2f__8) OpenAD_Symbol_1020
REAL(w2f__8) OpenAD_Symbol_1016
type(active) :: OpenAD_Symbol_1021
type(active) :: OpenAD_Symbol_1017
REAL(w2f__8) OpenAD_Symbol_1022
REAL(w2f__8) OpenAD_Symbol_1018
REAL(w2f__8) OpenAD_Symbol_1023
type(active) :: OpenAD_Symbol_1019
REAL(w2f__8) OpenAD_Symbol_1024
REAL(w2f__8) OpenAD_Symbol_1025
REAL(w2f__8) OpenAD_Symbol_1030
REAL(w2f__8) OpenAD_Symbol_1026
REAL(w2f__8) OpenAD_Symbol_1031
REAL(w2f__8) OpenAD_Symbol_1027
type(active) :: OpenAD_Symbol_1032
REAL(w2f__8) OpenAD_Symbol_1028
REAL(w2f__8) OpenAD_Symbol_1033
type(active) :: OpenAD_Symbol_1029
REAL(w2f__8) OpenAD_Symbol_1034
type(active) :: OpenAD_Symbol_1035
REAL(w2f__8) OpenAD_Symbol_1040
REAL(w2f__8) OpenAD_Symbol_1036
type(active) :: OpenAD_Symbol_1041
REAL(w2f__8) OpenAD_Symbol_1037
REAL(w2f__8) OpenAD_Symbol_1042
type(active) :: OpenAD_Symbol_1038
type(active) :: OpenAD_Symbol_1043
REAL(w2f__8) OpenAD_Symbol_1039
REAL(w2f__8) OpenAD_Symbol_1044
type(active) :: OpenAD_Symbol_1045
REAL(w2f__8) OpenAD_Symbol_1050
REAL(w2f__8) OpenAD_Symbol_1100
REAL(w2f__8) OpenAD_Symbol_1046
REAL(w2f__8) OpenAD_Symbol_1051
type(active) :: OpenAD_Symbol_1101
REAL(w2f__8) OpenAD_Symbol_1047
REAL(w2f__8) OpenAD_Symbol_1052
REAL(w2f__8) OpenAD_Symbol_1102
REAL(w2f__8) OpenAD_Symbol_1048
REAL(w2f__8) OpenAD_Symbol_1053
REAL(w2f__8) OpenAD_Symbol_1103
REAL(w2f__8) OpenAD_Symbol_1049
REAL(w2f__8) OpenAD_Symbol_1054
type(active) :: OpenAD_Symbol_1104
type(active) :: OpenAD_Symbol_1055
REAL(w2f__8) OpenAD_Symbol_1060
REAL(w2f__8) OpenAD_Symbol_1105
REAL(w2f__8) OpenAD_Symbol_1110
REAL(w2f__8) OpenAD_Symbol_1056
type(active) :: OpenAD_Symbol_1061
REAL(w2f__8) OpenAD_Symbol_1106
type(active) :: OpenAD_Symbol_1111
REAL(w2f__8) OpenAD_Symbol_1057
REAL(w2f__8) OpenAD_Symbol_1062
type(active) :: OpenAD_Symbol_1107
REAL(w2f__8) OpenAD_Symbol_1112
REAL(w2f__8) OpenAD_Symbol_1058
type(active) :: OpenAD_Symbol_1063
REAL(w2f__8) OpenAD_Symbol_1108
REAL(w2f__8) OpenAD_Symbol_1113
type(active) :: OpenAD_Symbol_1059
REAL(w2f__8) OpenAD_Symbol_1064
type(active) :: OpenAD_Symbol_1109
REAL(w2f__8) OpenAD_Symbol_1114
REAL(w2f__8) OpenAD_Symbol_1065
REAL(w2f__8) OpenAD_Symbol_1070
REAL(w2f__8) OpenAD_Symbol_1115
REAL(w2f__8) OpenAD_Symbol_1120
REAL(w2f__8) OpenAD_Symbol_1066
type(active) :: OpenAD_Symbol_1071
REAL(w2f__8) OpenAD_Symbol_1116
type(active) :: OpenAD_Symbol_1121
type(active) :: OpenAD_Symbol_1067
REAL(w2f__8) OpenAD_Symbol_1072
REAL(w2f__8) OpenAD_Symbol_1117
REAL(w2f__8) OpenAD_Symbol_1122
REAL(w2f__8) OpenAD_Symbol_1068
type(active) :: OpenAD_Symbol_1073
REAL(w2f__8) OpenAD_Symbol_1118
REAL(w2f__8) OpenAD_Symbol_1123
type(active) :: OpenAD_Symbol_1069
REAL(w2f__8) OpenAD_Symbol_1074
REAL(w2f__8) OpenAD_Symbol_1119
REAL(w2f__8) OpenAD_Symbol_1124
type(active) :: OpenAD_Symbol_1075
type(active) :: OpenAD_Symbol_1080
REAL(w2f__8) OpenAD_Symbol_1125
REAL(w2f__8) OpenAD_Symbol_1130
REAL(w2f__8) OpenAD_Symbol_1076
REAL(w2f__8) OpenAD_Symbol_1081
REAL(w2f__8) OpenAD_Symbol_1126
REAL(w2f__8) OpenAD_Symbol_1131
type(active) :: OpenAD_Symbol_1077
REAL(w2f__8) OpenAD_Symbol_1082
REAL(w2f__8) OpenAD_Symbol_1127
REAL(w2f__8) OpenAD_Symbol_1132
REAL(w2f__8) OpenAD_Symbol_1078
type(active) :: OpenAD_Symbol_1083
REAL(w2f__8) OpenAD_Symbol_1128
REAL(w2f__8) OpenAD_Symbol_1133
REAL(w2f__8) OpenAD_Symbol_1079
REAL(w2f__8) OpenAD_Symbol_1084
REAL(w2f__8) OpenAD_Symbol_1129
type(active) :: OpenAD_Symbol_1134
type(active) :: OpenAD_Symbol_1085
REAL(w2f__8) OpenAD_Symbol_1090
REAL(w2f__8) OpenAD_Symbol_1135
REAL(w2f__8) OpenAD_Symbol_1140
REAL(w2f__8) OpenAD_Symbol_1086
REAL(w2f__8) OpenAD_Symbol_1091
REAL(w2f__8) OpenAD_Symbol_1136
REAL(w2f__8) OpenAD_Symbol_1141
type(active) :: OpenAD_Symbol_1087
REAL(w2f__8) OpenAD_Symbol_1092
type(active) :: OpenAD_Symbol_1137
type(active) :: OpenAD_Symbol_1142
REAL(w2f__8) OpenAD_Symbol_1088
REAL(w2f__8) OpenAD_Symbol_1093
REAL(w2f__8) OpenAD_Symbol_1138
REAL(w2f__8) OpenAD_Symbol_1143
REAL(w2f__8) OpenAD_Symbol_1089
REAL(w2f__8) OpenAD_Symbol_1094
REAL(w2f__8) OpenAD_Symbol_1139
type(active) :: OpenAD_Symbol_1144
type(active) :: OpenAD_Symbol_1095
REAL(w2f__8) OpenAD_Symbol_1145
type(active) :: OpenAD_Symbol_1150
REAL(w2f__8) OpenAD_Symbol_1200
REAL(w2f__8) OpenAD_Symbol_1096
type(active) :: OpenAD_Symbol_1146
REAL(w2f__8) OpenAD_Symbol_1151
type(active) :: OpenAD_Symbol_1201
REAL(w2f__8) OpenAD_Symbol_1097
REAL(w2f__8) OpenAD_Symbol_1147
type(active) :: OpenAD_Symbol_1152
REAL(w2f__8) OpenAD_Symbol_1202
type(active) :: OpenAD_Symbol_1098
type(active) :: OpenAD_Symbol_1148
REAL(w2f__8) OpenAD_Symbol_1153
type(active) :: OpenAD_Symbol_1203
REAL(w2f__8) OpenAD_Symbol_1099
REAL(w2f__8) OpenAD_Symbol_1149
type(active) :: OpenAD_Symbol_1154
REAL(w2f__8) OpenAD_Symbol_1204
REAL(w2f__8) OpenAD_Symbol_1155
type(active) :: OpenAD_Symbol_1160
type(active) :: OpenAD_Symbol_1205
REAL(w2f__8) OpenAD_Symbol_1210
type(active) :: OpenAD_Symbol_1156
REAL(w2f__8) OpenAD_Symbol_1161
REAL(w2f__8) OpenAD_Symbol_1206
type(active) :: OpenAD_Symbol_1211
REAL(w2f__8) OpenAD_Symbol_1157
type(active) :: OpenAD_Symbol_1162
type(active) :: OpenAD_Symbol_1207
REAL(w2f__8) OpenAD_Symbol_1212
type(active) :: OpenAD_Symbol_1158
REAL(w2f__8) OpenAD_Symbol_1163
REAL(w2f__8) OpenAD_Symbol_1208
REAL(w2f__8) OpenAD_Symbol_1213
REAL(w2f__8) OpenAD_Symbol_1159
type(active) :: OpenAD_Symbol_1164
type(active) :: OpenAD_Symbol_1209
type(active) :: OpenAD_Symbol_1214
REAL(w2f__8) OpenAD_Symbol_1165
type(active) :: OpenAD_Symbol_1170
REAL(w2f__8) OpenAD_Symbol_1215
REAL(w2f__8) OpenAD_Symbol_1220
type(active) :: OpenAD_Symbol_1166
REAL(w2f__8) OpenAD_Symbol_1171
REAL(w2f__8) OpenAD_Symbol_1216
type(active) :: OpenAD_Symbol_1221
REAL(w2f__8) OpenAD_Symbol_1167
type(active) :: OpenAD_Symbol_1172
type(active) :: OpenAD_Symbol_1217
REAL(w2f__8) OpenAD_Symbol_1222
type(active) :: OpenAD_Symbol_1168
REAL(w2f__8) OpenAD_Symbol_1173
REAL(w2f__8) OpenAD_Symbol_1218
REAL(w2f__8) OpenAD_Symbol_1223
REAL(w2f__8) OpenAD_Symbol_1169
REAL(w2f__8) OpenAD_Symbol_1174
type(active) :: OpenAD_Symbol_1219
REAL(w2f__8) OpenAD_Symbol_1224
type(active) :: OpenAD_Symbol_1175
REAL(w2f__8) OpenAD_Symbol_1180
REAL(w2f__8) OpenAD_Symbol_1225
REAL(w2f__8) OpenAD_Symbol_1230
REAL(w2f__8) OpenAD_Symbol_1176
type(active) :: OpenAD_Symbol_1181
REAL(w2f__8) OpenAD_Symbol_1226
REAL(w2f__8) OpenAD_Symbol_1231
type(active) :: OpenAD_Symbol_1177
REAL(w2f__8) OpenAD_Symbol_1182
REAL(w2f__8) OpenAD_Symbol_1227
type(active) :: OpenAD_Symbol_1232
REAL(w2f__8) OpenAD_Symbol_1178
REAL(w2f__8) OpenAD_Symbol_1183
REAL(w2f__8) OpenAD_Symbol_1228
REAL(w2f__8) OpenAD_Symbol_1233
type(active) :: OpenAD_Symbol_1179
REAL(w2f__8) OpenAD_Symbol_1184
type(active) :: OpenAD_Symbol_1229
REAL(w2f__8) OpenAD_Symbol_1234
REAL(w2f__8) OpenAD_Symbol_1185
type(active) :: OpenAD_Symbol_1190
type(active) :: OpenAD_Symbol_1235
REAL(w2f__8) OpenAD_Symbol_1240
type(active) :: OpenAD_Symbol_1186
REAL(w2f__8) OpenAD_Symbol_1191
REAL(w2f__8) OpenAD_Symbol_1236
type(active) :: OpenAD_Symbol_1241
REAL(w2f__8) OpenAD_Symbol_1187
REAL(w2f__8) OpenAD_Symbol_1192
REAL(w2f__8) OpenAD_Symbol_1237
REAL(w2f__8) OpenAD_Symbol_1242
type(active) :: OpenAD_Symbol_1188
type(active) :: OpenAD_Symbol_1193
type(active) :: OpenAD_Symbol_1238
type(active) :: OpenAD_Symbol_1243
REAL(w2f__8) OpenAD_Symbol_1189
REAL(w2f__8) OpenAD_Symbol_1194
REAL(w2f__8) OpenAD_Symbol_1239
REAL(w2f__8) OpenAD_Symbol_1244
type(active) :: OpenAD_Symbol_1195
type(active) :: OpenAD_Symbol_1245
REAL(w2f__8) OpenAD_Symbol_1250
REAL(w2f__8) OpenAD_Symbol_1300
REAL(w2f__8) OpenAD_Symbol_1196
REAL(w2f__8) OpenAD_Symbol_1246
REAL(w2f__8) OpenAD_Symbol_1251
type(active) :: OpenAD_Symbol_1301
type(active) :: OpenAD_Symbol_1197
REAL(w2f__8) OpenAD_Symbol_1247
REAL(w2f__8) OpenAD_Symbol_1252
REAL(w2f__8) OpenAD_Symbol_1302
REAL(w2f__8) OpenAD_Symbol_1198
REAL(w2f__8) OpenAD_Symbol_1248
REAL(w2f__8) OpenAD_Symbol_1253
REAL(w2f__8) OpenAD_Symbol_1303
REAL(w2f__8) OpenAD_Symbol_1199
REAL(w2f__8) OpenAD_Symbol_1249
REAL(w2f__8) OpenAD_Symbol_1254
type(active) :: OpenAD_Symbol_1304
REAL(w2f__8) OpenAD_Symbol_1310
REAL(w2f__8) OpenAD_Symbol_1305
type(active) :: OpenAD_Symbol_1255
REAL(w2f__8) OpenAD_Symbol_1260
type(active) :: OpenAD_Symbol_1311
REAL(w2f__8) OpenAD_Symbol_1306
REAL(w2f__8) OpenAD_Symbol_1256
type(active) :: OpenAD_Symbol_1261
REAL(w2f__8) OpenAD_Symbol_1312
type(active) :: OpenAD_Symbol_1307
REAL(w2f__8) OpenAD_Symbol_1257
REAL(w2f__8) OpenAD_Symbol_1262
REAL(w2f__8) OpenAD_Symbol_1313
REAL(w2f__8) OpenAD_Symbol_1308
REAL(w2f__8) OpenAD_Symbol_1258
type(active) :: OpenAD_Symbol_1263
REAL(w2f__8) OpenAD_Symbol_1314
type(active) :: OpenAD_Symbol_1309
type(active) :: OpenAD_Symbol_1259
REAL(w2f__8) OpenAD_Symbol_1264
REAL(w2f__8) OpenAD_Symbol_1320
REAL(w2f__8) OpenAD_Symbol_1315
REAL(w2f__8) OpenAD_Symbol_1265
REAL(w2f__8) OpenAD_Symbol_1270
type(active) :: OpenAD_Symbol_1321
REAL(w2f__8) OpenAD_Symbol_1316
REAL(w2f__8) OpenAD_Symbol_1266
type(active) :: OpenAD_Symbol_1271
REAL(w2f__8) OpenAD_Symbol_1322
REAL(w2f__8) OpenAD_Symbol_1317
type(active) :: OpenAD_Symbol_1267
REAL(w2f__8) OpenAD_Symbol_1272
REAL(w2f__8) OpenAD_Symbol_1323
REAL(w2f__8) OpenAD_Symbol_1318
REAL(w2f__8) OpenAD_Symbol_1268
type(active) :: OpenAD_Symbol_1273
type(active) :: OpenAD_Symbol_1324
REAL(w2f__8) OpenAD_Symbol_1319
type(active) :: OpenAD_Symbol_1269
REAL(w2f__8) OpenAD_Symbol_1274
REAL(w2f__8) OpenAD_Symbol_1330
REAL(w2f__8) OpenAD_Symbol_1325
type(active) :: OpenAD_Symbol_1275
type(active) :: OpenAD_Symbol_1280
type(active) :: OpenAD_Symbol_1331
REAL(w2f__8) OpenAD_Symbol_1326
REAL(w2f__8) OpenAD_Symbol_1276
REAL(w2f__8) OpenAD_Symbol_1281
type(active) :: OpenAD_Symbol_1327
type(active) :: OpenAD_Symbol_1277
REAL(w2f__8) OpenAD_Symbol_1282
REAL(w2f__8) OpenAD_Symbol_1328
REAL(w2f__8) OpenAD_Symbol_1278
type(active) :: OpenAD_Symbol_1283
type(active) :: OpenAD_Symbol_1329
REAL(w2f__8) OpenAD_Symbol_1279
REAL(w2f__8) OpenAD_Symbol_1284
type(active) :: OpenAD_Symbol_1285
REAL(w2f__8) OpenAD_Symbol_1290
REAL(w2f__8) OpenAD_Symbol_1286
REAL(w2f__8) OpenAD_Symbol_1291
type(active) :: OpenAD_Symbol_1287
REAL(w2f__8) OpenAD_Symbol_1292
REAL(w2f__8) OpenAD_Symbol_1288
REAL(w2f__8) OpenAD_Symbol_1293
REAL(w2f__8) OpenAD_Symbol_1289
REAL(w2f__8) OpenAD_Symbol_1294
type(active) :: OpenAD_Symbol_1295
REAL(w2f__8) OpenAD_Symbol_1296
REAL(w2f__8) OpenAD_Symbol_1297
type(active) :: OpenAD_Symbol_1298
REAL(w2f__8) OpenAD_Symbol_1299
C
C **** Parameters and Result ****
C
INTEGER(w2f__i4) NCTRL
type(active) :: XC(1 : NCTRL)
type(active) :: COST_FINAL
C
C **** Local Variables and functions ****
C
INTEGER(w2f__i8) t__109
INTEGER(w2f__i8) t__110
LOGICAL(w2f__i4) CALC_COST
type(active) :: COST
type(active) :: COST_D
type(active) :: COST_GD
type(active) :: COST_SD
type(active) :: FRICTU
type(active) :: FRICTV
type(active) :: FU
type(active) :: FV
type(active) :: GRADETAU
type(active) :: GRADETAV
EXTERNAL ini_io
EXTERNAL is_eta_data_time
INTEGER(w2f__i4) IT
INTEGER(w2f__i4) IX
INTEGER(w2f__i4) IY
INTEGER(w2f__i4) JT
INTEGER(w2f__i4) JX
INTEGER(w2f__i4) JY
INTEGER(w2f__i4) K
INTEGER(w2f__i4) NINNER
PARAMETER ( NINNER = 1000)
INTEGER(w2f__i4) NIO
INTEGER(w2f__i4) NOUTER
INTEGER(w2f__i4) NTOTAL
REAL(w2f__4) ONE
PARAMETER ( ONE = 1.000000)
EXTERNAL pfields_io
type(active) :: ROUTIN
LOGICAL(w2f__i4) TESTRESULT
type(active) :: TIME
INTEGER(w2f__i4) TIME_INDEX
type(active) :: ZONAL_TRANSPORT
C
C **** Temporary variables ****
C
INTEGER(w2f__i4) doloop_ub
C
C **** statements ****
C
t__109 = NCTRL
t__110 = MAX(t__109, 0_w2f__i8)
IF(CALC_HESS .OR.(OPTIMIZE .OR.(GRAD_CHECK .OR. INITIAL_GRAD)))
> THEN
CALC_COST = .TRUE.
ELSE
CALC_COST = .FALSE.
ENDIF
COST_D%v = 0.0D00
COST_SD%v = 0.0D00
COST_GD%v = 0.0D00
COST%v = 0.0D00
CALL zero_deriv(COST_D)
CALL zero_deriv(COST_SD)
CALL zero_deriv(COST_GD)
CALL zero_deriv(COST)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
DEPTH(INT(IX),INT(IY))%v = 0.0D00
INVHU(INT(IX),INT(IY))%v = 0.0D00
INVHV(INT(IX),INT(IY))%v = 0.0D00
CALL zero_deriv(DEPTH(INT(IX),INT(IY)))
CALL zero_deriv(INVHU(INT(IX),INT(IY)))
CALL zero_deriv(INVHV(INT(IX),INT(IY)))
END DO
END DO
K = 0
DO IY = 1, 20, 1
DO IX = 1, 20, 1
IF (ETAMASK(IX,IY)%v .ne. 0.0D00) THEN
K = K + 1
OpenAD_Symbol_285 = (XC(K)%v+1.0D00)
OpenAD_Symbol_290 = (SCALEDEPTH(IX,IY)%v*OpenAD_Symbol_285)
OpenAD_Symbol_286 = OpenAD_Symbol_285
OpenAD_Symbol_288 = 1_w2f__i8
OpenAD_Symbol_287 = SCALEDEPTH(IX,IY)%v
DEPTH(INT(IX),INT(IY))%v = OpenAD_Symbol_290
OpenAD_Symbol_939 = (OpenAD_Symbol_288 * OpenAD_Symbol_287)
OpenAD_Symbol_941 = OpenAD_Symbol_286
CALL setderiv(OpenAD_Symbol_942,SCALEDEPTH(IX,IY))
CALL setderiv(OpenAD_Symbol_940,XC(K))
CALL sax(OpenAD_Symbol_939,OpenAD_Symbol_940,DEPTH(IX,IY))
CALL saxpy(OpenAD_Symbol_941,OpenAD_Symbol_942,DEPTH(IX,IY))
ENDIF
END DO
END DO
IF(NCTRL .ne. K) THEN
WRITE(*, *) 'map_from_control_vector: ',
> 'dimensions of control vector are wrong'
WRITE(*, *) K, ' should be ', NCTRL
ENDIF
DO IY = 1, 21, 1
DO IX = 1, 21, 1
OpenAD_Symbol_293 = (DEPTH(IX,IY)%v*UMASK(IX,IY)%v)
OpenAD_Symbol_291 = UMASK(IX,IY)%v
OpenAD_Symbol_292 = DEPTH(IX,IY)%v
HU(INT(IX),INT(IY))%v = OpenAD_Symbol_293
OpenAD_Symbol_943 = OpenAD_Symbol_291
OpenAD_Symbol_945 = OpenAD_Symbol_292
CALL setderiv(OpenAD_Symbol_946,UMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_944,DEPTH(IX,IY))
CALL sax(OpenAD_Symbol_943,OpenAD_Symbol_944,HU(IX,IY))
CALL saxpy(OpenAD_Symbol_945,OpenAD_Symbol_946,HU(IX,IY))
OpenAD_Symbol_296 = (DEPTH(IX,IY)%v*VMASK(IX,IY)%v)
OpenAD_Symbol_294 = VMASK(IX,IY)%v
OpenAD_Symbol_295 = DEPTH(IX,IY)%v
HV(INT(IX),INT(IY))%v = OpenAD_Symbol_296
OpenAD_Symbol_947 = OpenAD_Symbol_294
OpenAD_Symbol_949 = OpenAD_Symbol_295
CALL setderiv(OpenAD_Symbol_950,VMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_948,DEPTH(IX,IY))
CALL sax(OpenAD_Symbol_947,OpenAD_Symbol_948,HV(IX,IY))
CALL saxpy(OpenAD_Symbol_949,OpenAD_Symbol_950,HV(IX,IY))
IF (HU(IX,IY)%v .ne. 0.0D00) THEN
OpenAD_Symbol_299 = (1.0D00/HU(IX,IY)%v)
OpenAD_Symbol_298 = (-(1.0D00/(HU(IX,IY)%v*HU(IX,IY)%v)))
INVHU(INT(IX),INT(IY))%v = OpenAD_Symbol_299
OpenAD_Symbol_951 = OpenAD_Symbol_298
CALL setderiv(OpenAD_Symbol_952,HU(IX,IY))
CALL sax(OpenAD_Symbol_951,OpenAD_Symbol_952,INVHU(IX,IY))
ENDIF
IF (HV(IX,IY)%v .ne. 0.0D00) THEN
OpenAD_Symbol_302 = (1.0D00/HV(IX,IY)%v)
OpenAD_Symbol_301 = (-(1.0D00/(HV(IX,IY)%v*HV(IX,IY)%v)))
INVHV(INT(IX),INT(IY))%v = OpenAD_Symbol_302
OpenAD_Symbol_953 = OpenAD_Symbol_301
CALL setderiv(OpenAD_Symbol_954,HV(IX,IY))
CALL sax(OpenAD_Symbol_953,OpenAD_Symbol_954,INVHV(IX,IY))
ENDIF
END DO
END DO
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_305 = (UINI(IX,IY)%v*UMASK(IX,IY)%v)
OpenAD_Symbol_303 = UMASK(IX,IY)%v
OpenAD_Symbol_304 = UINI(IX,IY)%v
U(INT(IX),INT(IY))%v = OpenAD_Symbol_305
OpenAD_Symbol_955 = OpenAD_Symbol_303
OpenAD_Symbol_957 = OpenAD_Symbol_304
CALL setderiv(OpenAD_Symbol_958,UMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_956,UINI(IX,IY))
CALL sax(OpenAD_Symbol_955,OpenAD_Symbol_956,U(IX,IY))
CALL saxpy(OpenAD_Symbol_957,OpenAD_Symbol_958,U(IX,IY))
OpenAD_Symbol_308 = (VINI(IX,IY)%v*VMASK(IX,IY)%v)
OpenAD_Symbol_306 = VMASK(IX,IY)%v
OpenAD_Symbol_307 = VINI(IX,IY)%v
V(INT(IX),INT(IY))%v = OpenAD_Symbol_308
OpenAD_Symbol_959 = OpenAD_Symbol_306
OpenAD_Symbol_961 = OpenAD_Symbol_307
CALL setderiv(OpenAD_Symbol_962,VMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_960,VINI(IX,IY))
CALL sax(OpenAD_Symbol_959,OpenAD_Symbol_960,V(IX,IY))
CALL saxpy(OpenAD_Symbol_961,OpenAD_Symbol_962,V(IX,IY))
OpenAD_Symbol_311 = (ETAINI(IX,IY)%v*ETAMASK(IX,IY)%v)
OpenAD_Symbol_309 = ETAMASK(IX,IY)%v
OpenAD_Symbol_310 = ETAINI(IX,IY)%v
ETA(INT(IX),INT(IY))%v = OpenAD_Symbol_311
OpenAD_Symbol_963 = OpenAD_Symbol_309
OpenAD_Symbol_965 = OpenAD_Symbol_310
CALL setderiv(OpenAD_Symbol_966,ETAMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_964,ETAINI(IX,IY))
CALL sax(OpenAD_Symbol_963,OpenAD_Symbol_964,ETA(IX,IY))
CALL saxpy(OpenAD_Symbol_965,OpenAD_Symbol_966,ETA(IX,IY))
END DO
END DO
IF(XPERIODIC) THEN
DO IY = 0, 21, 1
U(21,INT(IY))%v = U(1,IY)%v
CALL setderiv(U(21,IY),U(1,IY))
V(0,INT(IY))%v = V(20,IY)%v
CALL setderiv(V(0,IY),V(20,IY))
ETA(0,INT(IY))%v = ETA(20,IY)%v
CALL setderiv(ETA(0,IY),ETA(20,IY))
END DO
ENDIF
IF(YPERIODIC) THEN
DO IX = 0, 21, 1
U(INT(IX),0)%v = U(IX,20)%v
CALL setderiv(U(IX,0),U(IX,20))
V(INT(IX),21)%v = V(IX,1)%v
CALL setderiv(V(IX,21),V(IX,1))
ETA(INT(IX),0)%v = ETA(IX,0)%v
CALL setderiv(ETA(IX,0),ETA(IX,0))
END DO
ENDIF
IF(.NOT. SUPPRESSIO) THEN
CALL ini_io()
CALL pfields_io()
ENDIF
IF(CALC_COST) THEN
DO IY = 1, 20, 1
DO JY = 1, 20, 1
DO IX = 1, 20, 1
DO JX = 1, 20, 1
OpenAD_Symbol_321 = (DEPTH(IX,IY)%v-DEPTH_DATA(IX,IY)%v)
OpenAD_Symbol_318 = (OpenAD_Symbol_321 * 5.0D-01)
OpenAD_Symbol_314 = (WEIGHT_DEPTH(IX,JX,IY,JY)%v*OpenAD_
+Symbol_318)
OpenAD_Symbol_315 = (DEPTH(JX,JY)%v-DEPTH_DATA(JX,JY)%v)
OpenAD_Symbol_328 = (COST_D%v+OpenAD_Symbol_314*OpenAD_S
+ymbol_315)
OpenAD_Symbol_312 = 1_w2f__i8
OpenAD_Symbol_319 = OpenAD_Symbol_318
OpenAD_Symbol_324 = 1_w2f__i8
OpenAD_Symbol_325 = (-1_w2f__i8)
OpenAD_Symbol_322 = 5.0D-01
OpenAD_Symbol_320 = WEIGHT_DEPTH(IX,JX,IY,JY)%v
OpenAD_Symbol_316 = OpenAD_Symbol_315
OpenAD_Symbol_326 = 1_w2f__i8
OpenAD_Symbol_327 = (-1_w2f__i8)
OpenAD_Symbol_317 = OpenAD_Symbol_314
OpenAD_Symbol_313 = 1_w2f__i8
COST_D%v = OpenAD_Symbol_328
OpenAD_Symbol_967 = (OpenAD_Symbol_316 *
> OpenAD_Symbol_313)
OpenAD_Symbol_968 = (OpenAD_Symbol_317 *
> OpenAD_Symbol_313)
OpenAD_Symbol_969 = (OpenAD_Symbol_319 *
> OpenAD_Symbol_967)
OpenAD_Symbol_971 = (OpenAD_Symbol_320 *
> OpenAD_Symbol_967)
OpenAD_Symbol_972 = (OpenAD_Symbol_326 *
> OpenAD_Symbol_968)
OpenAD_Symbol_974 = (OpenAD_Symbol_327 *
> OpenAD_Symbol_968)
OpenAD_Symbol_976 = (OpenAD_Symbol_322 *
> OpenAD_Symbol_971)
OpenAD_Symbol_977 = (OpenAD_Symbol_324 *
> OpenAD_Symbol_976)
OpenAD_Symbol_979 = (OpenAD_Symbol_325 *
> OpenAD_Symbol_976)
OpenAD_Symbol_981 = OpenAD_Symbol_312
CALL setderiv(OpenAD_Symbol_982,COST_D)
CALL setderiv(OpenAD_Symbol_980,DEPTH_DATA(IX,IY))
CALL setderiv(OpenAD_Symbol_978,DEPTH(IX,IY))
CALL setderiv(OpenAD_Symbol_975,DEPTH_DATA(JX,JY))
CALL setderiv(OpenAD_Symbol_973,DEPTH(JX,JY))
CALL setderiv(OpenAD_Symbol_970,WEIGHT_DEPTH(IX,JX,IY,JY
+))
CALL sax(OpenAD_Symbol_969,OpenAD_Symbol_970,COST_D)
CALL saxpy(OpenAD_Symbol_972,OpenAD_Symbol_973,COST_D)
CALL saxpy(OpenAD_Symbol_974,OpenAD_Symbol_975,COST_D)
CALL saxpy(OpenAD_Symbol_977,OpenAD_Symbol_978,COST_D)
CALL saxpy(OpenAD_Symbol_979,OpenAD_Symbol_980,COST_D)
CALL saxpy(OpenAD_Symbol_981,OpenAD_Symbol_982,COST_D)
END DO
END DO
END DO
END DO
ENDIF
NIO = 0
TIME_INDEX = 0
TIME%v = 0.0D00
CALL zero_deriv(TIME)
NTOTAL = NT + NTSPINUP
ROUTIN%v = (REAL(NTOTAL)/REAL(INT(1000 _w2f__i8)))
CALL zero_deriv(ROUTIN)
IF ((NTOTAL/INT(1000 _w2f__i8)) .ne. ROUTIN%v) THEN
NOUTER = INT(ROUTIN%v)+1
ELSE
NOUTER = INT(ROUTIN%v)
ENDIF
IF(FULLIO .AND.(.NOT. SUPPRESSIO)) THEN
WRITE(*, *) 'number of outer loops',
> ' = number of tape records = ', NOUTER
ENDIF
TIME_INDEX = 0
OpenAD_Symbol_333 = (START_TIME%v+TIME_INDEX*DT%v)
OpenAD_Symbol_329 = 1_w2f__i8
OpenAD_Symbol_332 = TIME_INDEX
OpenAD_Symbol_330 = 1_w2f__i8
TIME%v = OpenAD_Symbol_333
OpenAD_Symbol_983 = (OpenAD_Symbol_332 * OpenAD_Symbol_330)
OpenAD_Symbol_985 = OpenAD_Symbol_329
CALL setderiv(OpenAD_Symbol_986,START_TIME)
CALL setderiv(OpenAD_Symbol_984,DT)
CALL sax(OpenAD_Symbol_983,OpenAD_Symbol_984,TIME)
CALL saxpy(OpenAD_Symbol_985,OpenAD_Symbol_986,TIME)
IF(.NOT. SUPPRESSIO) THEN
NIO = NIO + 1
WRITE(*, *) 'Writing Time Step ', TIME_INDEX
ENDIF
doloop_ub = NOUTER
DO IT = 1, doloop_ub, 1
DO JT = 1, 1000, 1
TIME_INDEX = JT + IT * 1000 +(-1000)
OpenAD_Symbol_338 = (START_TIME%v+TIME_INDEX*DT%v)
OpenAD_Symbol_334 = 1_w2f__i8
OpenAD_Symbol_337 = TIME_INDEX
OpenAD_Symbol_335 = 1_w2f__i8
TIME%v = OpenAD_Symbol_338
OpenAD_Symbol_987 = (OpenAD_Symbol_337 * OpenAD_Symbol_335)
OpenAD_Symbol_989 = OpenAD_Symbol_334
CALL setderiv(OpenAD_Symbol_990,START_TIME)
CALL setderiv(OpenAD_Symbol_988,DT)
CALL sax(OpenAD_Symbol_987,OpenAD_Symbol_988,TIME)
CALL saxpy(OpenAD_Symbol_989,OpenAD_Symbol_990,TIME)
IF(NTOTAL .GE. TIME_INDEX) THEN
IF(MOD(TIME_INDEX, INT(2_w2f__i8)) .ne. INT(0_w2f__i8))
> THEN
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_342 = (FRICT(IX,IY)%v+FRICT(IX+(-1),IY)%
+v)
OpenAD_Symbol_339 = (OpenAD_Symbol_342 * 5.0D-01)
OpenAD_Symbol_347 = (INVHU(IX,IY)%v*OpenAD_Symbol_339)
OpenAD_Symbol_340 = OpenAD_Symbol_339
OpenAD_Symbol_345 = 1_w2f__i8
OpenAD_Symbol_346 = 1_w2f__i8
OpenAD_Symbol_343 = 5.0D-01
OpenAD_Symbol_341 = INVHU(IX,IY)%v
FRICTU%v = OpenAD_Symbol_347
OpenAD_Symbol_991 = (OpenAD_Symbol_343 *
> OpenAD_Symbol_341)
OpenAD_Symbol_992 = (OpenAD_Symbol_345 *
> OpenAD_Symbol_991)
OpenAD_Symbol_994 = (OpenAD_Symbol_346 *
> OpenAD_Symbol_991)
OpenAD_Symbol_996 = OpenAD_Symbol_340
CALL setderiv(OpenAD_Symbol_997,INVHU(IX,IY))
CALL setderiv(OpenAD_Symbol_995,FRICT(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_993,FRICT(IX,IY))
CALL sax(OpenAD_Symbol_992,OpenAD_Symbol_993,FRICTU)
CALL saxpy(OpenAD_Symbol_994,OpenAD_Symbol_995,FRICTU)
CALL saxpy(OpenAD_Symbol_996,OpenAD_Symbol_997,FRICTU)
OpenAD_Symbol_348 = (ETA(IX,IY)%v-ETA(IX+(-1),IY)%v)
OpenAD_Symbol_354 = (RX(IY)%v*5.0D-01)
OpenAD_Symbol_355 = (DX(IX)%v+DX(IX+(-1))%v)
OpenAD_Symbol_349 = (OpenAD_Symbol_354 *
> OpenAD_Symbol_355)
OpenAD_Symbol_362 = (OpenAD_Symbol_348 /
> OpenAD_Symbol_349)
OpenAD_Symbol_352 = 1_w2f__i8
OpenAD_Symbol_353 = (-1_w2f__i8)
OpenAD_Symbol_350 = (INT(1_w2f__i8) /
> OpenAD_Symbol_349)
OpenAD_Symbol_358 = 5.0D-01
OpenAD_Symbol_356 = OpenAD_Symbol_355
OpenAD_Symbol_360 = 1_w2f__i8
OpenAD_Symbol_361 = 1_w2f__i8
OpenAD_Symbol_357 = OpenAD_Symbol_354
OpenAD_Symbol_351 = (-(OpenAD_Symbol_348 /(
> OpenAD_Symbol_349 * OpenAD_Symbol_349)))
GRADETAU%v = OpenAD_Symbol_362
OpenAD_Symbol_998 = (OpenAD_Symbol_356 *
> OpenAD_Symbol_351)
OpenAD_Symbol_999 = (OpenAD_Symbol_357 *
> OpenAD_Symbol_351)
OpenAD_Symbol_1000 = (OpenAD_Symbol_360 *
> OpenAD_Symbol_999)
OpenAD_Symbol_1002 = (OpenAD_Symbol_361 *
> OpenAD_Symbol_999)
OpenAD_Symbol_1004 = (OpenAD_Symbol_352 *
> OpenAD_Symbol_350)
OpenAD_Symbol_1006 = (OpenAD_Symbol_353 *
> OpenAD_Symbol_350)
OpenAD_Symbol_1008 = (OpenAD_Symbol_358 *
> OpenAD_Symbol_998)
CALL setderiv(OpenAD_Symbol_1009,RX(IY))
CALL setderiv(OpenAD_Symbol_1007,ETA(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_1005,ETA(IX,IY))
CALL setderiv(OpenAD_Symbol_1003,DX(IX+(-1)))
CALL setderiv(OpenAD_Symbol_1001,DX(IX))
CALL sax(OpenAD_Symbol_1000,OpenAD_Symbol_1001,GRADETA
+U)
CALL saxpy(OpenAD_Symbol_1002,OpenAD_Symbol_1003,GRADE
+TAU)
CALL saxpy(OpenAD_Symbol_1004,OpenAD_Symbol_1005,GRADE
+TAU)
CALL saxpy(OpenAD_Symbol_1006,OpenAD_Symbol_1007,GRADE
+TAU)
CALL saxpy(OpenAD_Symbol_1008,OpenAD_Symbol_1009,GRADE
+TAU)
OpenAD_Symbol_363 = (V(IX+(-1),IY+1)%v+V(IX,IY+1)%v+V(
+IX,IY)%v+V(IX+(-1),IY)%v)
OpenAD_Symbol_372 = (FCORIU(IX,IY)%v*OpenAD_Symbol_363
+)
OpenAD_Symbol_364 = OpenAD_Symbol_363
OpenAD_Symbol_366 = 1_w2f__i8
OpenAD_Symbol_368 = 1_w2f__i8
OpenAD_Symbol_370 = 1_w2f__i8
OpenAD_Symbol_371 = 1_w2f__i8
OpenAD_Symbol_369 = 1_w2f__i8
OpenAD_Symbol_367 = 1_w2f__i8
OpenAD_Symbol_365 = FCORIU(IX,IY)%v
FV%v = OpenAD_Symbol_372
OpenAD_Symbol_1010 = (OpenAD_Symbol_366 *
> OpenAD_Symbol_365)
OpenAD_Symbol_1012 = (OpenAD_Symbol_367 *
> OpenAD_Symbol_365)
OpenAD_Symbol_1013 = (OpenAD_Symbol_368 *
> OpenAD_Symbol_1012)
OpenAD_Symbol_1015 = (OpenAD_Symbol_369 *
> OpenAD_Symbol_1012)
OpenAD_Symbol_1016 = (OpenAD_Symbol_370 *
> OpenAD_Symbol_1015)
OpenAD_Symbol_1018 = (OpenAD_Symbol_371 *
> OpenAD_Symbol_1015)
OpenAD_Symbol_1020 = OpenAD_Symbol_364
CALL setderiv(OpenAD_Symbol_1021,FCORIU(IX,IY))
CALL setderiv(OpenAD_Symbol_1019,V(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_1017,V(IX,IY))
CALL setderiv(OpenAD_Symbol_1014,V(IX,IY+1))
CALL setderiv(OpenAD_Symbol_1011,V(IX+(-1),IY+1))
CALL sax(OpenAD_Symbol_1010,OpenAD_Symbol_1011,FV)
CALL saxpy(OpenAD_Symbol_1013,OpenAD_Symbol_1014,FV)
CALL saxpy(OpenAD_Symbol_1016,OpenAD_Symbol_1017,FV)
CALL saxpy(OpenAD_Symbol_1018,OpenAD_Symbol_1019,FV)
CALL saxpy(OpenAD_Symbol_1020,OpenAD_Symbol_1021,FV)
OpenAD_Symbol_382 = (FRICTU%v*5.0D-01)
OpenAD_Symbol_377 = (DT%v*OpenAD_Symbol_382+1.0D00)
OpenAD_Symbol_373 = (UMASK(IX,IY)%v/OpenAD_Symbol_377)
OpenAD_Symbol_400 = (FRICTU%v*5.0D-01)
OpenAD_Symbol_395 = (1.0D00-DT%v*OpenAD_Symbol_400)
OpenAD_Symbol_405 = (DT%v*9.81000000000000049738D00)
OpenAD_Symbol_410 = (UFORCE(IX,IY)%v*DT%v)
OpenAD_Symbol_374 = (FV%v*DT%v+U(IX,IY)%v*OpenAD_Symbo
+l_395-GRADETAU%v*OpenAD_Symbol_405+INVHU(IX,IY)%v*OpenAD_Symbol_41
+0)
OpenAD_Symbol_415 = (OpenAD_Symbol_373 *
> OpenAD_Symbol_374)
OpenAD_Symbol_378 = (INT(1_w2f__i8) /
> OpenAD_Symbol_377)
OpenAD_Symbol_383 = OpenAD_Symbol_382
OpenAD_Symbol_385 = 5.0D-01
OpenAD_Symbol_384 = DT%v
OpenAD_Symbol_380 = 1_w2f__i8
OpenAD_Symbol_379 = (-(UMASK(IX,IY)%v/(OpenAD_Symbol_3
+77*OpenAD_Symbol_377)))
OpenAD_Symbol_375 = OpenAD_Symbol_374
OpenAD_Symbol_391 = DT%v
OpenAD_Symbol_392 = FV%v
OpenAD_Symbol_389 = 1_w2f__i8
OpenAD_Symbol_396 = OpenAD_Symbol_395
OpenAD_Symbol_401 = OpenAD_Symbol_400
OpenAD_Symbol_403 = 5.0D-01
OpenAD_Symbol_402 = DT%v
OpenAD_Symbol_399 = (-1_w2f__i8)
OpenAD_Symbol_397 = U(IX,IY)%v
OpenAD_Symbol_393 = 1_w2f__i8
OpenAD_Symbol_406 = OpenAD_Symbol_405
OpenAD_Symbol_408 = 9.81000000000000049738D00
OpenAD_Symbol_407 = GRADETAU%v
OpenAD_Symbol_394 = (-1_w2f__i8)
OpenAD_Symbol_390 = 1_w2f__i8
OpenAD_Symbol_387 = 1_w2f__i8
OpenAD_Symbol_411 = OpenAD_Symbol_410
OpenAD_Symbol_413 = DT%v
OpenAD_Symbol_414 = UFORCE(IX,IY)%v
OpenAD_Symbol_412 = INVHU(IX,IY)%v
OpenAD_Symbol_388 = 1_w2f__i8
OpenAD_Symbol_376 = OpenAD_Symbol_373
U(INT(IX),INT(IY))%v = OpenAD_Symbol_415
OpenAD_Symbol_1022 = (OpenAD_Symbol_387 *
> OpenAD_Symbol_376)
OpenAD_Symbol_1023 = (OpenAD_Symbol_388 *
> OpenAD_Symbol_376)
OpenAD_Symbol_1024 = (OpenAD_Symbol_389 *
> OpenAD_Symbol_1022)
OpenAD_Symbol_1025 = (OpenAD_Symbol_390 *
> OpenAD_Symbol_1022)
OpenAD_Symbol_1026 = (OpenAD_Symbol_393 *
> OpenAD_Symbol_1025)
OpenAD_Symbol_1027 = (OpenAD_Symbol_394 *
> OpenAD_Symbol_1025)
OpenAD_Symbol_1028 = (OpenAD_Symbol_396 *
> OpenAD_Symbol_1026)
OpenAD_Symbol_1030 = (OpenAD_Symbol_397 *
> OpenAD_Symbol_1026)
OpenAD_Symbol_1031 = (OpenAD_Symbol_378 *
> OpenAD_Symbol_375)
OpenAD_Symbol_1033 = (OpenAD_Symbol_379 *
> OpenAD_Symbol_375)
OpenAD_Symbol_1034 = (OpenAD_Symbol_411 *
> OpenAD_Symbol_1023)
OpenAD_Symbol_1036 = (OpenAD_Symbol_412 *
> OpenAD_Symbol_1023)
OpenAD_Symbol_1037 = (OpenAD_Symbol_406 *
> OpenAD_Symbol_1027)
OpenAD_Symbol_1039 = (OpenAD_Symbol_407 *
> OpenAD_Symbol_1027)
OpenAD_Symbol_1040 = (OpenAD_Symbol_413 *
> OpenAD_Symbol_1036)
OpenAD_Symbol_1042 = (OpenAD_Symbol_414 *
> OpenAD_Symbol_1036)
OpenAD_Symbol_1044 = (OpenAD_Symbol_391 *
> OpenAD_Symbol_1024)
OpenAD_Symbol_1046 = (OpenAD_Symbol_392 *
> OpenAD_Symbol_1024)
OpenAD_Symbol_1047 = (OpenAD_Symbol_399 *
> OpenAD_Symbol_1030)
OpenAD_Symbol_1048 = (OpenAD_Symbol_401 *
> OpenAD_Symbol_1047)
OpenAD_Symbol_1049 = (OpenAD_Symbol_402 *
> OpenAD_Symbol_1047)
OpenAD_Symbol_1050 = (OpenAD_Symbol_380 *
> OpenAD_Symbol_1033)
OpenAD_Symbol_1051 = (OpenAD_Symbol_383 *
> OpenAD_Symbol_1050)
OpenAD_Symbol_1052 = (OpenAD_Symbol_384 *
> OpenAD_Symbol_1050)
OpenAD_Symbol_1053 = (OpenAD_Symbol_408 *
> OpenAD_Symbol_1039)
OpenAD_Symbol_1054 = (OpenAD_Symbol_403 *
> OpenAD_Symbol_1049)
OpenAD_Symbol_1056 = (OpenAD_Symbol_385 *
> OpenAD_Symbol_1052)
CALL setderiv(OpenAD_Symbol_1055,FRICTU)
CALL setderiv(OpenAD_Symbol_1045,FV)
CALL setderiv(OpenAD_Symbol_1043,DT)
CALL setderiv(OpenAD_Symbol_1041,UFORCE(IX,IY))
CALL setderiv(OpenAD_Symbol_1038,GRADETAU)
CALL setderiv(OpenAD_Symbol_1035,INVHU(IX,IY))
CALL setderiv(OpenAD_Symbol_1032,UMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_1029,U(IX,IY))
CALL sax(OpenAD_Symbol_1028,OpenAD_Symbol_1029,U(IX,IY
+))
CALL saxpy(OpenAD_Symbol_1031,OpenAD_Symbol_1032,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1034,OpenAD_Symbol_1035,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1037,OpenAD_Symbol_1038,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1040,OpenAD_Symbol_1041,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1042,OpenAD_Symbol_1043,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1044,OpenAD_Symbol_1045,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1046,OpenAD_Symbol_1043,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1048,OpenAD_Symbol_1043,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1051,OpenAD_Symbol_1043,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1053,OpenAD_Symbol_1043,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1054,OpenAD_Symbol_1055,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1056,OpenAD_Symbol_1055,U(IX,
+IY))
END DO
END DO
IF(XPERIODIC) THEN
DO IY = 0, 21, 1
U(21,INT(IY))%v = U(1,IY)%v
CALL setderiv(U(21,IY),U(1,IY))
END DO
ENDIF
IF(YPERIODIC) THEN
DO IX = 0, 21, 1
U(INT(IX),0)%v = U(IX,20)%v
CALL setderiv(U(IX,0),U(IX,20))
END DO
ENDIF
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_419 = (FRICT(IX,IY)%v+FRICT(IX,IY+(-1))%
+v)
OpenAD_Symbol_416 = (OpenAD_Symbol_419 * 5.0D-01)
OpenAD_Symbol_424 = (INVHV(IX,IY)%v*OpenAD_Symbol_416)
OpenAD_Symbol_417 = OpenAD_Symbol_416
OpenAD_Symbol_422 = 1_w2f__i8
OpenAD_Symbol_423 = 1_w2f__i8
OpenAD_Symbol_420 = 5.0D-01
OpenAD_Symbol_418 = INVHV(IX,IY)%v
FRICTV%v = OpenAD_Symbol_424
OpenAD_Symbol_1057 = (OpenAD_Symbol_420 *
> OpenAD_Symbol_418)
OpenAD_Symbol_1058 = (OpenAD_Symbol_422 *
> OpenAD_Symbol_1057)
OpenAD_Symbol_1060 = (OpenAD_Symbol_423 *
> OpenAD_Symbol_1057)
OpenAD_Symbol_1062 = OpenAD_Symbol_417
CALL setderiv(OpenAD_Symbol_1063,INVHV(IX,IY))
CALL setderiv(OpenAD_Symbol_1061,FRICT(IX,IY+(-1)))
CALL setderiv(OpenAD_Symbol_1059,FRICT(IX,IY))
CALL sax(OpenAD_Symbol_1058,OpenAD_Symbol_1059,FRICTV)
CALL saxpy(OpenAD_Symbol_1060,OpenAD_Symbol_1061,FRICT
+V)
CALL saxpy(OpenAD_Symbol_1062,OpenAD_Symbol_1063,FRICT
+V)
OpenAD_Symbol_425 = (ETA(IX,IY)%v-ETA(IX,IY+(-1))%v)
OpenAD_Symbol_431 = (RY%v*5.0D-01)
OpenAD_Symbol_432 = (DY(IY)%v+DY(IY+(-1))%v)
OpenAD_Symbol_426 = (OpenAD_Symbol_431 *
> OpenAD_Symbol_432)
OpenAD_Symbol_439 = (OpenAD_Symbol_425 /
> OpenAD_Symbol_426)
OpenAD_Symbol_429 = 1_w2f__i8
OpenAD_Symbol_430 = (-1_w2f__i8)
OpenAD_Symbol_427 = (INT(1_w2f__i8) /
> OpenAD_Symbol_426)
OpenAD_Symbol_435 = 5.0D-01
OpenAD_Symbol_433 = OpenAD_Symbol_432
OpenAD_Symbol_437 = 1_w2f__i8
OpenAD_Symbol_438 = 1_w2f__i8
OpenAD_Symbol_434 = OpenAD_Symbol_431
OpenAD_Symbol_428 = (-(OpenAD_Symbol_425 /(
> OpenAD_Symbol_426 * OpenAD_Symbol_426)))
GRADETAV%v = OpenAD_Symbol_439
OpenAD_Symbol_1064 = (OpenAD_Symbol_433 *
> OpenAD_Symbol_428)
OpenAD_Symbol_1065 = (OpenAD_Symbol_434 *
> OpenAD_Symbol_428)
OpenAD_Symbol_1066 = (OpenAD_Symbol_437 *
> OpenAD_Symbol_1065)
OpenAD_Symbol_1068 = (OpenAD_Symbol_438 *
> OpenAD_Symbol_1065)
OpenAD_Symbol_1070 = (OpenAD_Symbol_429 *
> OpenAD_Symbol_427)
OpenAD_Symbol_1072 = (OpenAD_Symbol_430 *
> OpenAD_Symbol_427)
OpenAD_Symbol_1074 = (OpenAD_Symbol_435 *
> OpenAD_Symbol_1064)
CALL setderiv(OpenAD_Symbol_1075,RY)
CALL setderiv(OpenAD_Symbol_1073,ETA(IX,IY+(-1)))
CALL setderiv(OpenAD_Symbol_1071,ETA(IX,IY))
CALL setderiv(OpenAD_Symbol_1069,DY(IY+(-1)))
CALL setderiv(OpenAD_Symbol_1067,DY(IY))
CALL sax(OpenAD_Symbol_1066,OpenAD_Symbol_1067,GRADETA
+V)
CALL saxpy(OpenAD_Symbol_1068,OpenAD_Symbol_1069,GRADE
+TAV)
CALL saxpy(OpenAD_Symbol_1070,OpenAD_Symbol_1071,GRADE
+TAV)
CALL saxpy(OpenAD_Symbol_1072,OpenAD_Symbol_1073,GRADE
+TAV)
CALL saxpy(OpenAD_Symbol_1074,OpenAD_Symbol_1075,GRADE
+TAV)
OpenAD_Symbol_440 = (U(IX+1,IY+(-1))%v+U(IX,IY+(-1))%v
++U(IX,IY)%v+U(IX+1,IY)%v)
OpenAD_Symbol_449 = (FCORIV(IX,IY)%v*OpenAD_Symbol_440
+)
OpenAD_Symbol_441 = OpenAD_Symbol_440
OpenAD_Symbol_443 = 1_w2f__i8
OpenAD_Symbol_445 = 1_w2f__i8
OpenAD_Symbol_447 = 1_w2f__i8
OpenAD_Symbol_448 = 1_w2f__i8
OpenAD_Symbol_446 = 1_w2f__i8
OpenAD_Symbol_444 = 1_w2f__i8
OpenAD_Symbol_442 = FCORIV(IX,IY)%v
FU%v = OpenAD_Symbol_449
OpenAD_Symbol_1076 = (OpenAD_Symbol_443 *
> OpenAD_Symbol_442)
OpenAD_Symbol_1078 = (OpenAD_Symbol_444 *
> OpenAD_Symbol_442)
OpenAD_Symbol_1079 = (OpenAD_Symbol_445 *
> OpenAD_Symbol_1078)
OpenAD_Symbol_1081 = (OpenAD_Symbol_446 *
> OpenAD_Symbol_1078)
OpenAD_Symbol_1082 = (OpenAD_Symbol_447 *
> OpenAD_Symbol_1081)
OpenAD_Symbol_1084 = (OpenAD_Symbol_448 *
> OpenAD_Symbol_1081)
OpenAD_Symbol_1086 = OpenAD_Symbol_441
CALL setderiv(OpenAD_Symbol_1087,FCORIV(IX,IY))
CALL setderiv(OpenAD_Symbol_1085,U(IX+1,IY))
CALL setderiv(OpenAD_Symbol_1083,U(IX,IY))
CALL setderiv(OpenAD_Symbol_1080,U(IX,IY+(-1)))
CALL setderiv(OpenAD_Symbol_1077,U(IX+1,IY+(-1)))
CALL sax(OpenAD_Symbol_1076,OpenAD_Symbol_1077,FU)
CALL saxpy(OpenAD_Symbol_1079,OpenAD_Symbol_1080,FU)
CALL saxpy(OpenAD_Symbol_1082,OpenAD_Symbol_1083,FU)
CALL saxpy(OpenAD_Symbol_1084,OpenAD_Symbol_1085,FU)
CALL saxpy(OpenAD_Symbol_1086,OpenAD_Symbol_1087,FU)
OpenAD_Symbol_459 = (FRICTV%v*5.0D-01)
OpenAD_Symbol_454 = (DT%v*OpenAD_Symbol_459+1.0D00)
OpenAD_Symbol_450 = (VMASK(IX,IY)%v/OpenAD_Symbol_454)
OpenAD_Symbol_466 = (VFORCE(IX,IY)%v*DT%v)
OpenAD_Symbol_480 = (FRICTV%v*5.0D-01)
OpenAD_Symbol_475 = (1.0D00-DT%v*OpenAD_Symbol_480)
OpenAD_Symbol_485 = (DT%v*9.81000000000000049738D00)
OpenAD_Symbol_451 = (INVHV(IX,IY)%v*OpenAD_Symbol_466+
+V(IX,IY)%v*OpenAD_Symbol_475-GRADETAV%v*OpenAD_Symbol_485-FU%v*DT%
+v)
OpenAD_Symbol_492 = (OpenAD_Symbol_450 *
> OpenAD_Symbol_451)
OpenAD_Symbol_455 = (INT(1_w2f__i8) /
> OpenAD_Symbol_454)
OpenAD_Symbol_460 = OpenAD_Symbol_459
OpenAD_Symbol_462 = 5.0D-01
OpenAD_Symbol_461 = DT%v
OpenAD_Symbol_457 = 1_w2f__i8
OpenAD_Symbol_456 = (-(VMASK(IX,IY)%v/(OpenAD_Symbol_4
+54*OpenAD_Symbol_454)))
OpenAD_Symbol_452 = OpenAD_Symbol_451
OpenAD_Symbol_467 = OpenAD_Symbol_466
OpenAD_Symbol_469 = DT%v
OpenAD_Symbol_470 = VFORCE(IX,IY)%v
OpenAD_Symbol_468 = INVHV(IX,IY)%v
OpenAD_Symbol_464 = 1_w2f__i8
OpenAD_Symbol_476 = OpenAD_Symbol_475
OpenAD_Symbol_481 = OpenAD_Symbol_480
OpenAD_Symbol_483 = 5.0D-01
OpenAD_Symbol_482 = DT%v
OpenAD_Symbol_479 = (-1_w2f__i8)
OpenAD_Symbol_477 = V(IX,IY)%v
OpenAD_Symbol_473 = 1_w2f__i8
OpenAD_Symbol_486 = OpenAD_Symbol_485
OpenAD_Symbol_488 = 9.81000000000000049738D00
OpenAD_Symbol_487 = GRADETAV%v
OpenAD_Symbol_474 = (-1_w2f__i8)
OpenAD_Symbol_471 = 1_w2f__i8
OpenAD_Symbol_490 = DT%v
OpenAD_Symbol_491 = FU%v
OpenAD_Symbol_472 = (-1_w2f__i8)
OpenAD_Symbol_465 = 1_w2f__i8
OpenAD_Symbol_453 = OpenAD_Symbol_450
V(INT(IX),INT(IY))%v = OpenAD_Symbol_492
OpenAD_Symbol_1088 = (OpenAD_Symbol_464 *
> OpenAD_Symbol_453)
OpenAD_Symbol_1089 = (OpenAD_Symbol_465 *
> OpenAD_Symbol_453)
OpenAD_Symbol_1090 = (OpenAD_Symbol_471 *
> OpenAD_Symbol_1089)
OpenAD_Symbol_1091 = (OpenAD_Symbol_472 *
> OpenAD_Symbol_1089)
OpenAD_Symbol_1092 = (OpenAD_Symbol_473 *
> OpenAD_Symbol_1090)
OpenAD_Symbol_1093 = (OpenAD_Symbol_474 *
> OpenAD_Symbol_1090)
OpenAD_Symbol_1094 = (OpenAD_Symbol_476 *
> OpenAD_Symbol_1092)
OpenAD_Symbol_1096 = (OpenAD_Symbol_477 *
> OpenAD_Symbol_1092)
OpenAD_Symbol_1097 = (OpenAD_Symbol_455 *
> OpenAD_Symbol_452)
OpenAD_Symbol_1099 = (OpenAD_Symbol_456 *
> OpenAD_Symbol_452)
OpenAD_Symbol_1100 = (OpenAD_Symbol_486 *
> OpenAD_Symbol_1093)
OpenAD_Symbol_1102 = (OpenAD_Symbol_487 *
> OpenAD_Symbol_1093)
OpenAD_Symbol_1103 = (OpenAD_Symbol_467 *
> OpenAD_Symbol_1088)
OpenAD_Symbol_1105 = (OpenAD_Symbol_468 *
> OpenAD_Symbol_1088)
OpenAD_Symbol_1106 = (OpenAD_Symbol_490 *
> OpenAD_Symbol_1091)
OpenAD_Symbol_1108 = (OpenAD_Symbol_491 *
> OpenAD_Symbol_1091)
OpenAD_Symbol_1110 = (OpenAD_Symbol_469 *
> OpenAD_Symbol_1105)
OpenAD_Symbol_1112 = (OpenAD_Symbol_470 *
> OpenAD_Symbol_1105)
OpenAD_Symbol_1113 = (OpenAD_Symbol_479 *
> OpenAD_Symbol_1096)
OpenAD_Symbol_1114 = (OpenAD_Symbol_481 *
> OpenAD_Symbol_1113)
OpenAD_Symbol_1115 = (OpenAD_Symbol_482 *
> OpenAD_Symbol_1113)
OpenAD_Symbol_1116 = (OpenAD_Symbol_457 *
> OpenAD_Symbol_1099)
OpenAD_Symbol_1117 = (OpenAD_Symbol_460 *
> OpenAD_Symbol_1116)
OpenAD_Symbol_1118 = (OpenAD_Symbol_461 *
> OpenAD_Symbol_1116)
OpenAD_Symbol_1119 = (OpenAD_Symbol_488 *
> OpenAD_Symbol_1102)
OpenAD_Symbol_1120 = (OpenAD_Symbol_483 *
> OpenAD_Symbol_1115)
OpenAD_Symbol_1122 = (OpenAD_Symbol_462 *
> OpenAD_Symbol_1118)
CALL setderiv(OpenAD_Symbol_1121,FRICTV)
CALL setderiv(OpenAD_Symbol_1111,VFORCE(IX,IY))
CALL setderiv(OpenAD_Symbol_1109,DT)
CALL setderiv(OpenAD_Symbol_1107,FU)
CALL setderiv(OpenAD_Symbol_1104,INVHV(IX,IY))
CALL setderiv(OpenAD_Symbol_1101,GRADETAV)
CALL setderiv(OpenAD_Symbol_1098,VMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_1095,V(IX,IY))
CALL sax(OpenAD_Symbol_1094,OpenAD_Symbol_1095,V(IX,IY
+))
CALL saxpy(OpenAD_Symbol_1097,OpenAD_Symbol_1098,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1100,OpenAD_Symbol_1101,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1103,OpenAD_Symbol_1104,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1106,OpenAD_Symbol_1107,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1108,OpenAD_Symbol_1109,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1110,OpenAD_Symbol_1111,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1112,OpenAD_Symbol_1109,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1114,OpenAD_Symbol_1109,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1117,OpenAD_Symbol_1109,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1119,OpenAD_Symbol_1109,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1120,OpenAD_Symbol_1121,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1122,OpenAD_Symbol_1121,V(IX,
+IY))
END DO
END DO
IF(XPERIODIC) THEN
DO IY = 0, 21, 1
V(0,INT(IY))%v = V(20,IY)%v
CALL setderiv(V(0,IY),V(20,IY))
END DO
ENDIF
IF(YPERIODIC) THEN
DO IX = 0, 21, 1
V(INT(IX),21)%v = V(IX,1)%v
CALL setderiv(V(IX,21),V(IX,1))
END DO
ENDIF
ELSE
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_559 = (FRICT(IX,IY)%v+FRICT(IX,IY+(-1))%
+v)
OpenAD_Symbol_556 = (OpenAD_Symbol_559 * 5.0D-01)
OpenAD_Symbol_564 = (INVHV(IX,IY)%v*OpenAD_Symbol_556)
OpenAD_Symbol_557 = OpenAD_Symbol_556
OpenAD_Symbol_562 = 1_w2f__i8
OpenAD_Symbol_563 = 1_w2f__i8
OpenAD_Symbol_560 = 5.0D-01
OpenAD_Symbol_558 = INVHV(IX,IY)%v
FRICTV%v = OpenAD_Symbol_564
OpenAD_Symbol_1191 = (OpenAD_Symbol_560 *
> OpenAD_Symbol_558)
OpenAD_Symbol_1192 = (OpenAD_Symbol_562 *
> OpenAD_Symbol_1191)
OpenAD_Symbol_1194 = (OpenAD_Symbol_563 *
> OpenAD_Symbol_1191)
OpenAD_Symbol_1196 = OpenAD_Symbol_557
CALL setderiv(OpenAD_Symbol_1197,INVHV(IX,IY))
CALL setderiv(OpenAD_Symbol_1195,FRICT(IX,IY+(-1)))
CALL setderiv(OpenAD_Symbol_1193,FRICT(IX,IY))
CALL sax(OpenAD_Symbol_1192,OpenAD_Symbol_1193,FRICTV)
CALL saxpy(OpenAD_Symbol_1194,OpenAD_Symbol_1195,FRICT
+V)
CALL saxpy(OpenAD_Symbol_1196,OpenAD_Symbol_1197,FRICT
+V)
OpenAD_Symbol_565 = (ETA(IX,IY)%v-ETA(IX,IY+(-1))%v)
OpenAD_Symbol_571 = (RY%v*5.0D-01)
OpenAD_Symbol_572 = (DY(IY)%v+DY(IY+(-1))%v)
OpenAD_Symbol_566 = (OpenAD_Symbol_571 *
> OpenAD_Symbol_572)
OpenAD_Symbol_579 = (OpenAD_Symbol_565 /
> OpenAD_Symbol_566)
OpenAD_Symbol_569 = 1_w2f__i8
OpenAD_Symbol_570 = (-1_w2f__i8)
OpenAD_Symbol_567 = (INT(1_w2f__i8) /
> OpenAD_Symbol_566)
OpenAD_Symbol_575 = 5.0D-01
OpenAD_Symbol_573 = OpenAD_Symbol_572
OpenAD_Symbol_577 = 1_w2f__i8
OpenAD_Symbol_578 = 1_w2f__i8
OpenAD_Symbol_574 = OpenAD_Symbol_571
OpenAD_Symbol_568 = (-(OpenAD_Symbol_565 /(
> OpenAD_Symbol_566 * OpenAD_Symbol_566)))
GRADETAV%v = OpenAD_Symbol_579
OpenAD_Symbol_1198 = (OpenAD_Symbol_573 *
> OpenAD_Symbol_568)
OpenAD_Symbol_1199 = (OpenAD_Symbol_574 *
> OpenAD_Symbol_568)
OpenAD_Symbol_1200 = (OpenAD_Symbol_577 *
> OpenAD_Symbol_1199)
OpenAD_Symbol_1202 = (OpenAD_Symbol_578 *
> OpenAD_Symbol_1199)
OpenAD_Symbol_1204 = (OpenAD_Symbol_569 *
> OpenAD_Symbol_567)
OpenAD_Symbol_1206 = (OpenAD_Symbol_570 *
> OpenAD_Symbol_567)
OpenAD_Symbol_1208 = (OpenAD_Symbol_575 *
> OpenAD_Symbol_1198)
CALL setderiv(OpenAD_Symbol_1209,RY)
CALL setderiv(OpenAD_Symbol_1207,ETA(IX,IY+(-1)))
CALL setderiv(OpenAD_Symbol_1205,ETA(IX,IY))
CALL setderiv(OpenAD_Symbol_1203,DY(IY+(-1)))
CALL setderiv(OpenAD_Symbol_1201,DY(IY))
CALL sax(OpenAD_Symbol_1200,OpenAD_Symbol_1201,GRADETA
+V)
CALL saxpy(OpenAD_Symbol_1202,OpenAD_Symbol_1203,GRADE
+TAV)
CALL saxpy(OpenAD_Symbol_1204,OpenAD_Symbol_1205,GRADE
+TAV)
CALL saxpy(OpenAD_Symbol_1206,OpenAD_Symbol_1207,GRADE
+TAV)
CALL saxpy(OpenAD_Symbol_1208,OpenAD_Symbol_1209,GRADE
+TAV)
OpenAD_Symbol_580 = (U(IX+1,IY+(-1))%v+U(IX,IY+(-1))%v
++U(IX,IY)%v+U(IX+1,IY)%v)
OpenAD_Symbol_589 = (FCORIV(IX,IY)%v*OpenAD_Symbol_580
+)
OpenAD_Symbol_581 = OpenAD_Symbol_580
OpenAD_Symbol_583 = 1_w2f__i8
OpenAD_Symbol_585 = 1_w2f__i8
OpenAD_Symbol_587 = 1_w2f__i8
OpenAD_Symbol_588 = 1_w2f__i8
OpenAD_Symbol_586 = 1_w2f__i8
OpenAD_Symbol_584 = 1_w2f__i8
OpenAD_Symbol_582 = FCORIV(IX,IY)%v
FU%v = OpenAD_Symbol_589
OpenAD_Symbol_1210 = (OpenAD_Symbol_583 *
> OpenAD_Symbol_582)
OpenAD_Symbol_1212 = (OpenAD_Symbol_584 *
> OpenAD_Symbol_582)
OpenAD_Symbol_1213 = (OpenAD_Symbol_585 *
> OpenAD_Symbol_1212)
OpenAD_Symbol_1215 = (OpenAD_Symbol_586 *
> OpenAD_Symbol_1212)
OpenAD_Symbol_1216 = (OpenAD_Symbol_587 *
> OpenAD_Symbol_1215)
OpenAD_Symbol_1218 = (OpenAD_Symbol_588 *
> OpenAD_Symbol_1215)
OpenAD_Symbol_1220 = OpenAD_Symbol_581
CALL setderiv(OpenAD_Symbol_1221,FCORIV(IX,IY))
CALL setderiv(OpenAD_Symbol_1219,U(IX+1,IY))
CALL setderiv(OpenAD_Symbol_1217,U(IX,IY))
CALL setderiv(OpenAD_Symbol_1214,U(IX,IY+(-1)))
CALL setderiv(OpenAD_Symbol_1211,U(IX+1,IY+(-1)))
CALL sax(OpenAD_Symbol_1210,OpenAD_Symbol_1211,FU)
CALL saxpy(OpenAD_Symbol_1213,OpenAD_Symbol_1214,FU)
CALL saxpy(OpenAD_Symbol_1216,OpenAD_Symbol_1217,FU)
CALL saxpy(OpenAD_Symbol_1218,OpenAD_Symbol_1219,FU)
CALL saxpy(OpenAD_Symbol_1220,OpenAD_Symbol_1221,FU)
OpenAD_Symbol_599 = (FRICTV%v*5.0D-01)
OpenAD_Symbol_594 = (DT%v*OpenAD_Symbol_599+1.0D00)
OpenAD_Symbol_590 = (VMASK(IX,IY)%v/OpenAD_Symbol_594)
OpenAD_Symbol_606 = (VFORCE(IX,IY)%v*DT%v)
OpenAD_Symbol_620 = (FRICTV%v*5.0D-01)
OpenAD_Symbol_615 = (1.0D00-DT%v*OpenAD_Symbol_620)
OpenAD_Symbol_625 = (DT%v*9.81000000000000049738D00)
OpenAD_Symbol_591 = (INVHV(IX,IY)%v*OpenAD_Symbol_606+
+V(IX,IY)%v*OpenAD_Symbol_615-GRADETAV%v*OpenAD_Symbol_625-FU%v*DT%
+v)
OpenAD_Symbol_632 = (OpenAD_Symbol_590 *
> OpenAD_Symbol_591)
OpenAD_Symbol_595 = (INT(1_w2f__i8) /
> OpenAD_Symbol_594)
OpenAD_Symbol_600 = OpenAD_Symbol_599
OpenAD_Symbol_602 = 5.0D-01
OpenAD_Symbol_601 = DT%v
OpenAD_Symbol_597 = 1_w2f__i8
OpenAD_Symbol_596 = (-(VMASK(IX,IY)%v/(OpenAD_Symbol_5
+94*OpenAD_Symbol_594)))
OpenAD_Symbol_592 = OpenAD_Symbol_591
OpenAD_Symbol_607 = OpenAD_Symbol_606
OpenAD_Symbol_609 = DT%v
OpenAD_Symbol_610 = VFORCE(IX,IY)%v
OpenAD_Symbol_608 = INVHV(IX,IY)%v
OpenAD_Symbol_604 = 1_w2f__i8
OpenAD_Symbol_616 = OpenAD_Symbol_615
OpenAD_Symbol_621 = OpenAD_Symbol_620
OpenAD_Symbol_623 = 5.0D-01
OpenAD_Symbol_622 = DT%v
OpenAD_Symbol_619 = (-1_w2f__i8)
OpenAD_Symbol_617 = V(IX,IY)%v
OpenAD_Symbol_613 = 1_w2f__i8
OpenAD_Symbol_626 = OpenAD_Symbol_625
OpenAD_Symbol_628 = 9.81000000000000049738D00
OpenAD_Symbol_627 = GRADETAV%v
OpenAD_Symbol_614 = (-1_w2f__i8)
OpenAD_Symbol_611 = 1_w2f__i8
OpenAD_Symbol_630 = DT%v
OpenAD_Symbol_631 = FU%v
OpenAD_Symbol_612 = (-1_w2f__i8)
OpenAD_Symbol_605 = 1_w2f__i8
OpenAD_Symbol_593 = OpenAD_Symbol_590
V(INT(IX),INT(IY))%v = OpenAD_Symbol_632
OpenAD_Symbol_1222 = (OpenAD_Symbol_604 *
> OpenAD_Symbol_593)
OpenAD_Symbol_1223 = (OpenAD_Symbol_605 *
> OpenAD_Symbol_593)
OpenAD_Symbol_1224 = (OpenAD_Symbol_611 *
> OpenAD_Symbol_1223)
OpenAD_Symbol_1225 = (OpenAD_Symbol_612 *
> OpenAD_Symbol_1223)
OpenAD_Symbol_1226 = (OpenAD_Symbol_613 *
> OpenAD_Symbol_1224)
OpenAD_Symbol_1227 = (OpenAD_Symbol_614 *
> OpenAD_Symbol_1224)
OpenAD_Symbol_1228 = (OpenAD_Symbol_616 *
> OpenAD_Symbol_1226)
OpenAD_Symbol_1230 = (OpenAD_Symbol_617 *
> OpenAD_Symbol_1226)
OpenAD_Symbol_1231 = (OpenAD_Symbol_595 *
> OpenAD_Symbol_592)
OpenAD_Symbol_1233 = (OpenAD_Symbol_596 *
> OpenAD_Symbol_592)
OpenAD_Symbol_1234 = (OpenAD_Symbol_626 *
> OpenAD_Symbol_1227)
OpenAD_Symbol_1236 = (OpenAD_Symbol_627 *
> OpenAD_Symbol_1227)
OpenAD_Symbol_1237 = (OpenAD_Symbol_607 *
> OpenAD_Symbol_1222)
OpenAD_Symbol_1239 = (OpenAD_Symbol_608 *
> OpenAD_Symbol_1222)
OpenAD_Symbol_1240 = (OpenAD_Symbol_630 *
> OpenAD_Symbol_1225)
OpenAD_Symbol_1242 = (OpenAD_Symbol_631 *
> OpenAD_Symbol_1225)
OpenAD_Symbol_1244 = (OpenAD_Symbol_609 *
> OpenAD_Symbol_1239)
OpenAD_Symbol_1246 = (OpenAD_Symbol_610 *
> OpenAD_Symbol_1239)
OpenAD_Symbol_1247 = (OpenAD_Symbol_619 *
> OpenAD_Symbol_1230)
OpenAD_Symbol_1248 = (OpenAD_Symbol_621 *
> OpenAD_Symbol_1247)
OpenAD_Symbol_1249 = (OpenAD_Symbol_622 *
> OpenAD_Symbol_1247)
OpenAD_Symbol_1250 = (OpenAD_Symbol_597 *
> OpenAD_Symbol_1233)
OpenAD_Symbol_1251 = (OpenAD_Symbol_600 *
> OpenAD_Symbol_1250)
OpenAD_Symbol_1252 = (OpenAD_Symbol_601 *
> OpenAD_Symbol_1250)
OpenAD_Symbol_1253 = (OpenAD_Symbol_628 *
> OpenAD_Symbol_1236)
OpenAD_Symbol_1254 = (OpenAD_Symbol_623 *
> OpenAD_Symbol_1249)
OpenAD_Symbol_1256 = (OpenAD_Symbol_602 *
> OpenAD_Symbol_1252)
CALL setderiv(OpenAD_Symbol_1255,FRICTV)
CALL setderiv(OpenAD_Symbol_1245,VFORCE(IX,IY))
CALL setderiv(OpenAD_Symbol_1243,DT)
CALL setderiv(OpenAD_Symbol_1241,FU)
CALL setderiv(OpenAD_Symbol_1238,INVHV(IX,IY))
CALL setderiv(OpenAD_Symbol_1235,GRADETAV)
CALL setderiv(OpenAD_Symbol_1232,VMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_1229,V(IX,IY))
CALL sax(OpenAD_Symbol_1228,OpenAD_Symbol_1229,V(IX,IY
+))
CALL saxpy(OpenAD_Symbol_1231,OpenAD_Symbol_1232,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1234,OpenAD_Symbol_1235,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1237,OpenAD_Symbol_1238,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1240,OpenAD_Symbol_1241,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1242,OpenAD_Symbol_1243,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1244,OpenAD_Symbol_1245,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1246,OpenAD_Symbol_1243,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1248,OpenAD_Symbol_1243,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1251,OpenAD_Symbol_1243,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1253,OpenAD_Symbol_1243,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1254,OpenAD_Symbol_1255,V(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1256,OpenAD_Symbol_1255,V(IX,
+IY))
END DO
END DO
IF(XPERIODIC) THEN
DO IY = 0, 21, 1
V(0,INT(IY))%v = V(20,IY)%v
CALL setderiv(V(0,IY),V(20,IY))
END DO
ENDIF
IF(YPERIODIC) THEN
DO IX = 0, 21, 1
V(INT(IX),21)%v = V(IX,1)%v
CALL setderiv(V(IX,21),V(IX,1))
END DO
ENDIF
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_636 = (FRICT(IX,IY)%v+FRICT(IX+(-1),IY)%
+v)
OpenAD_Symbol_633 = (OpenAD_Symbol_636 * 5.0D-01)
OpenAD_Symbol_641 = (INVHU(IX,IY)%v*OpenAD_Symbol_633)
OpenAD_Symbol_634 = OpenAD_Symbol_633
OpenAD_Symbol_639 = 1_w2f__i8
OpenAD_Symbol_640 = 1_w2f__i8
OpenAD_Symbol_637 = 5.0D-01
OpenAD_Symbol_635 = INVHU(IX,IY)%v
FRICTU%v = OpenAD_Symbol_641
OpenAD_Symbol_1257 = (OpenAD_Symbol_637 *
> OpenAD_Symbol_635)
OpenAD_Symbol_1258 = (OpenAD_Symbol_639 *
> OpenAD_Symbol_1257)
OpenAD_Symbol_1260 = (OpenAD_Symbol_640 *
> OpenAD_Symbol_1257)
OpenAD_Symbol_1262 = OpenAD_Symbol_634
CALL setderiv(OpenAD_Symbol_1263,INVHU(IX,IY))
CALL setderiv(OpenAD_Symbol_1261,FRICT(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_1259,FRICT(IX,IY))
CALL sax(OpenAD_Symbol_1258,OpenAD_Symbol_1259,FRICTU)
CALL saxpy(OpenAD_Symbol_1260,OpenAD_Symbol_1261,FRICT
+U)
CALL saxpy(OpenAD_Symbol_1262,OpenAD_Symbol_1263,FRICT
+U)
OpenAD_Symbol_642 = (ETA(IX,IY)%v-ETA(IX+(-1),IY)%v)
OpenAD_Symbol_648 = (RX(IY)%v*5.0D-01)
OpenAD_Symbol_649 = (DX(IX)%v+DX(IX+(-1))%v)
OpenAD_Symbol_643 = (OpenAD_Symbol_648 *
> OpenAD_Symbol_649)
OpenAD_Symbol_656 = (OpenAD_Symbol_642 /
> OpenAD_Symbol_643)
OpenAD_Symbol_646 = 1_w2f__i8
OpenAD_Symbol_647 = (-1_w2f__i8)
OpenAD_Symbol_644 = (INT(1_w2f__i8) /
> OpenAD_Symbol_643)
OpenAD_Symbol_652 = 5.0D-01
OpenAD_Symbol_650 = OpenAD_Symbol_649
OpenAD_Symbol_654 = 1_w2f__i8
OpenAD_Symbol_655 = 1_w2f__i8
OpenAD_Symbol_651 = OpenAD_Symbol_648
OpenAD_Symbol_645 = (-(OpenAD_Symbol_642 /(
> OpenAD_Symbol_643 * OpenAD_Symbol_643)))
GRADETAU%v = OpenAD_Symbol_656
OpenAD_Symbol_1264 = (OpenAD_Symbol_650 *
> OpenAD_Symbol_645)
OpenAD_Symbol_1265 = (OpenAD_Symbol_651 *
> OpenAD_Symbol_645)
OpenAD_Symbol_1266 = (OpenAD_Symbol_654 *
> OpenAD_Symbol_1265)
OpenAD_Symbol_1268 = (OpenAD_Symbol_655 *
> OpenAD_Symbol_1265)
OpenAD_Symbol_1270 = (OpenAD_Symbol_646 *
> OpenAD_Symbol_644)
OpenAD_Symbol_1272 = (OpenAD_Symbol_647 *
> OpenAD_Symbol_644)
OpenAD_Symbol_1274 = (OpenAD_Symbol_652 *
> OpenAD_Symbol_1264)
CALL setderiv(OpenAD_Symbol_1275,RX(IY))
CALL setderiv(OpenAD_Symbol_1273,ETA(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_1271,ETA(IX,IY))
CALL setderiv(OpenAD_Symbol_1269,DX(IX+(-1)))
CALL setderiv(OpenAD_Symbol_1267,DX(IX))
CALL sax(OpenAD_Symbol_1266,OpenAD_Symbol_1267,GRADETA
+U)
CALL saxpy(OpenAD_Symbol_1268,OpenAD_Symbol_1269,GRADE
+TAU)
CALL saxpy(OpenAD_Symbol_1270,OpenAD_Symbol_1271,GRADE
+TAU)
CALL saxpy(OpenAD_Symbol_1272,OpenAD_Symbol_1273,GRADE
+TAU)
CALL saxpy(OpenAD_Symbol_1274,OpenAD_Symbol_1275,GRADE
+TAU)
OpenAD_Symbol_657 = (V(IX+(-1),IY+1)%v+V(IX,IY+1)%v+V(
+IX,IY)%v+V(IX+(-1),IY)%v)
OpenAD_Symbol_666 = (FCORIU(IX,IY)%v*OpenAD_Symbol_657
+)
OpenAD_Symbol_658 = OpenAD_Symbol_657
OpenAD_Symbol_660 = 1_w2f__i8
OpenAD_Symbol_662 = 1_w2f__i8
OpenAD_Symbol_664 = 1_w2f__i8
OpenAD_Symbol_665 = 1_w2f__i8
OpenAD_Symbol_663 = 1_w2f__i8
OpenAD_Symbol_661 = 1_w2f__i8
OpenAD_Symbol_659 = FCORIU(IX,IY)%v
FV%v = OpenAD_Symbol_666
OpenAD_Symbol_1276 = (OpenAD_Symbol_660 *
> OpenAD_Symbol_659)
OpenAD_Symbol_1278 = (OpenAD_Symbol_661 *
> OpenAD_Symbol_659)
OpenAD_Symbol_1279 = (OpenAD_Symbol_662 *
> OpenAD_Symbol_1278)
OpenAD_Symbol_1281 = (OpenAD_Symbol_663 *
> OpenAD_Symbol_1278)
OpenAD_Symbol_1282 = (OpenAD_Symbol_664 *
> OpenAD_Symbol_1281)
OpenAD_Symbol_1284 = (OpenAD_Symbol_665 *
> OpenAD_Symbol_1281)
OpenAD_Symbol_1286 = OpenAD_Symbol_658
CALL setderiv(OpenAD_Symbol_1287,FCORIU(IX,IY))
CALL setderiv(OpenAD_Symbol_1285,V(IX+(-1),IY))
CALL setderiv(OpenAD_Symbol_1283,V(IX,IY))
CALL setderiv(OpenAD_Symbol_1280,V(IX,IY+1))
CALL setderiv(OpenAD_Symbol_1277,V(IX+(-1),IY+1))
CALL sax(OpenAD_Symbol_1276,OpenAD_Symbol_1277,FV)
CALL saxpy(OpenAD_Symbol_1279,OpenAD_Symbol_1280,FV)
CALL saxpy(OpenAD_Symbol_1282,OpenAD_Symbol_1283,FV)
CALL saxpy(OpenAD_Symbol_1284,OpenAD_Symbol_1285,FV)
CALL saxpy(OpenAD_Symbol_1286,OpenAD_Symbol_1287,FV)
OpenAD_Symbol_676 = (FRICTU%v*5.0D-01)
OpenAD_Symbol_671 = (DT%v*OpenAD_Symbol_676+1.0D00)
OpenAD_Symbol_667 = (UMASK(IX,IY)%v/OpenAD_Symbol_671)
OpenAD_Symbol_694 = (FRICTU%v*5.0D-01)
OpenAD_Symbol_689 = (1.0D00-DT%v*OpenAD_Symbol_694)
OpenAD_Symbol_699 = (DT%v*9.81000000000000049738D00)
OpenAD_Symbol_704 = (UFORCE(IX,IY)%v*DT%v)
OpenAD_Symbol_668 = (FV%v*DT%v+U(IX,IY)%v*OpenAD_Symbo
+l_689-GRADETAU%v*OpenAD_Symbol_699+INVHU(IX,IY)%v*OpenAD_Symbol_70
+4)
OpenAD_Symbol_709 = (OpenAD_Symbol_667 *
> OpenAD_Symbol_668)
OpenAD_Symbol_672 = (INT(1_w2f__i8) /
> OpenAD_Symbol_671)
OpenAD_Symbol_677 = OpenAD_Symbol_676
OpenAD_Symbol_679 = 5.0D-01
OpenAD_Symbol_678 = DT%v
OpenAD_Symbol_674 = 1_w2f__i8
OpenAD_Symbol_673 = (-(UMASK(IX,IY)%v/(OpenAD_Symbol_6
+71*OpenAD_Symbol_671)))
OpenAD_Symbol_669 = OpenAD_Symbol_668
OpenAD_Symbol_685 = DT%v
OpenAD_Symbol_686 = FV%v
OpenAD_Symbol_683 = 1_w2f__i8
OpenAD_Symbol_690 = OpenAD_Symbol_689
OpenAD_Symbol_695 = OpenAD_Symbol_694
OpenAD_Symbol_697 = 5.0D-01
OpenAD_Symbol_696 = DT%v
OpenAD_Symbol_693 = (-1_w2f__i8)
OpenAD_Symbol_691 = U(IX,IY)%v
OpenAD_Symbol_687 = 1_w2f__i8
OpenAD_Symbol_700 = OpenAD_Symbol_699
OpenAD_Symbol_702 = 9.81000000000000049738D00
OpenAD_Symbol_701 = GRADETAU%v
OpenAD_Symbol_688 = (-1_w2f__i8)
OpenAD_Symbol_684 = 1_w2f__i8
OpenAD_Symbol_681 = 1_w2f__i8
OpenAD_Symbol_705 = OpenAD_Symbol_704
OpenAD_Symbol_707 = DT%v
OpenAD_Symbol_708 = UFORCE(IX,IY)%v
OpenAD_Symbol_706 = INVHU(IX,IY)%v
OpenAD_Symbol_682 = 1_w2f__i8
OpenAD_Symbol_670 = OpenAD_Symbol_667
U(INT(IX),INT(IY))%v = OpenAD_Symbol_709
OpenAD_Symbol_1288 = (OpenAD_Symbol_681 *
> OpenAD_Symbol_670)
OpenAD_Symbol_1289 = (OpenAD_Symbol_682 *
> OpenAD_Symbol_670)
OpenAD_Symbol_1290 = (OpenAD_Symbol_683 *
> OpenAD_Symbol_1288)
OpenAD_Symbol_1291 = (OpenAD_Symbol_684 *
> OpenAD_Symbol_1288)
OpenAD_Symbol_1292 = (OpenAD_Symbol_687 *
> OpenAD_Symbol_1291)
OpenAD_Symbol_1293 = (OpenAD_Symbol_688 *
> OpenAD_Symbol_1291)
OpenAD_Symbol_1294 = (OpenAD_Symbol_690 *
> OpenAD_Symbol_1292)
OpenAD_Symbol_1296 = (OpenAD_Symbol_691 *
> OpenAD_Symbol_1292)
OpenAD_Symbol_1297 = (OpenAD_Symbol_672 *
> OpenAD_Symbol_669)
OpenAD_Symbol_1299 = (OpenAD_Symbol_673 *
> OpenAD_Symbol_669)
OpenAD_Symbol_1300 = (OpenAD_Symbol_705 *
> OpenAD_Symbol_1289)
OpenAD_Symbol_1302 = (OpenAD_Symbol_706 *
> OpenAD_Symbol_1289)
OpenAD_Symbol_1303 = (OpenAD_Symbol_700 *
> OpenAD_Symbol_1293)
OpenAD_Symbol_1305 = (OpenAD_Symbol_701 *
> OpenAD_Symbol_1293)
OpenAD_Symbol_1306 = (OpenAD_Symbol_707 *
> OpenAD_Symbol_1302)
OpenAD_Symbol_1308 = (OpenAD_Symbol_708 *
> OpenAD_Symbol_1302)
OpenAD_Symbol_1310 = (OpenAD_Symbol_685 *
> OpenAD_Symbol_1290)
OpenAD_Symbol_1312 = (OpenAD_Symbol_686 *
> OpenAD_Symbol_1290)
OpenAD_Symbol_1313 = (OpenAD_Symbol_693 *
> OpenAD_Symbol_1296)
OpenAD_Symbol_1314 = (OpenAD_Symbol_695 *
> OpenAD_Symbol_1313)
OpenAD_Symbol_1315 = (OpenAD_Symbol_696 *
> OpenAD_Symbol_1313)
OpenAD_Symbol_1316 = (OpenAD_Symbol_674 *
> OpenAD_Symbol_1299)
OpenAD_Symbol_1317 = (OpenAD_Symbol_677 *
> OpenAD_Symbol_1316)
OpenAD_Symbol_1318 = (OpenAD_Symbol_678 *
> OpenAD_Symbol_1316)
OpenAD_Symbol_1319 = (OpenAD_Symbol_702 *
> OpenAD_Symbol_1305)
OpenAD_Symbol_1320 = (OpenAD_Symbol_697 *
> OpenAD_Symbol_1315)
OpenAD_Symbol_1322 = (OpenAD_Symbol_679 *
> OpenAD_Symbol_1318)
CALL setderiv(OpenAD_Symbol_1321,FRICTU)
CALL setderiv(OpenAD_Symbol_1311,FV)
CALL setderiv(OpenAD_Symbol_1309,DT)
CALL setderiv(OpenAD_Symbol_1307,UFORCE(IX,IY))
CALL setderiv(OpenAD_Symbol_1304,GRADETAU)
CALL setderiv(OpenAD_Symbol_1301,INVHU(IX,IY))
CALL setderiv(OpenAD_Symbol_1298,UMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_1295,U(IX,IY))
CALL sax(OpenAD_Symbol_1294,OpenAD_Symbol_1295,U(IX,IY
+))
CALL saxpy(OpenAD_Symbol_1297,OpenAD_Symbol_1298,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1300,OpenAD_Symbol_1301,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1303,OpenAD_Symbol_1304,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1306,OpenAD_Symbol_1307,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1308,OpenAD_Symbol_1309,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1310,OpenAD_Symbol_1311,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1312,OpenAD_Symbol_1309,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1314,OpenAD_Symbol_1309,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1317,OpenAD_Symbol_1309,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1319,OpenAD_Symbol_1309,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1320,OpenAD_Symbol_1321,U(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1322,OpenAD_Symbol_1321,U(IX,
+IY))
END DO
END DO
IF(XPERIODIC) THEN
DO IY = 0, 21, 1
U(21,INT(IY))%v = U(1,IY)%v
CALL setderiv(U(21,IY),U(1,IY))
END DO
ENDIF
IF(YPERIODIC) THEN
DO IX = 0, 21, 1
U(INT(IX),0)%v = U(IX,20)%v
CALL setderiv(U(IX,0),U(IX,20))
END DO
ENDIF
ENDIF
DO IY = 1, 20, 1
DO IX = 1, 20, 1
OpenAD_Symbol_495 = (ETAMASK(IX,IY)%v*DT%v)
OpenAD_Symbol_503 = (HU(IX+1,IY)%v*U(IX+1,IY)%v-HU(IX,IY
+)%v*U(IX,IY)%v)
OpenAD_Symbol_504 = (DX(IX)%v*RX(IY)%v)
OpenAD_Symbol_521 = (HY(IY+1)%v*HV(IX,IY+1)%v)
OpenAD_Symbol_526 = (HY(IY)%v*HV(IX,IY)%v)
OpenAD_Symbol_515 = (V(IX,IY+1)%v*OpenAD_Symbol_521-V(IX
+,IY)%v*OpenAD_Symbol_526)
OpenAD_Symbol_516 = (DY(IY)%v*RY%v)
OpenAD_Symbol_496 = ((OpenAD_Symbol_503 /
> OpenAD_Symbol_504) +(OpenAD_Symbol_515 / OpenAD_Symbol_516))
OpenAD_Symbol_533 = (ETA(IX,IY)%v-OpenAD_Symbol_495*Open
+AD_Symbol_496)
OpenAD_Symbol_493 = 1_w2f__i8
OpenAD_Symbol_499 = DT%v
OpenAD_Symbol_500 = ETAMASK(IX,IY)%v
OpenAD_Symbol_497 = OpenAD_Symbol_496
OpenAD_Symbol_509 = U(IX+1,IY)%v
OpenAD_Symbol_510 = HU(IX+1,IY)%v
OpenAD_Symbol_507 = 1_w2f__i8
OpenAD_Symbol_511 = U(IX,IY)%v
OpenAD_Symbol_512 = HU(IX,IY)%v
OpenAD_Symbol_508 = (-1_w2f__i8)
OpenAD_Symbol_505 = (INT(1_w2f__i8) / OpenAD_Symbol_504
> )
OpenAD_Symbol_513 = RX(IY)%v
OpenAD_Symbol_514 = DX(IX)%v
OpenAD_Symbol_506 = (-(OpenAD_Symbol_503 /(
> OpenAD_Symbol_504 * OpenAD_Symbol_504)))
OpenAD_Symbol_501 = 1_w2f__i8
OpenAD_Symbol_522 = OpenAD_Symbol_521
OpenAD_Symbol_524 = HV(IX,IY+1)%v
OpenAD_Symbol_525 = HY(IY+1)%v
OpenAD_Symbol_523 = V(IX,IY+1)%v
OpenAD_Symbol_519 = 1_w2f__i8
OpenAD_Symbol_527 = OpenAD_Symbol_526
OpenAD_Symbol_529 = HV(IX,IY)%v
OpenAD_Symbol_530 = HY(IY)%v
OpenAD_Symbol_528 = V(IX,IY)%v
OpenAD_Symbol_520 = (-1_w2f__i8)
OpenAD_Symbol_517 = (INT(1_w2f__i8) / OpenAD_Symbol_516
> )
OpenAD_Symbol_531 = RY%v
OpenAD_Symbol_532 = DY(IY)%v
OpenAD_Symbol_518 = (-(OpenAD_Symbol_515 /(
> OpenAD_Symbol_516 * OpenAD_Symbol_516)))
OpenAD_Symbol_502 = 1_w2f__i8
OpenAD_Symbol_498 = OpenAD_Symbol_495
OpenAD_Symbol_494 = (-1_w2f__i8)
ETA(INT(IX),INT(IY))%v = OpenAD_Symbol_533
OpenAD_Symbol_1123 = (OpenAD_Symbol_497 *
> OpenAD_Symbol_494)
OpenAD_Symbol_1124 = (OpenAD_Symbol_498 *
> OpenAD_Symbol_494)
OpenAD_Symbol_1125 = (OpenAD_Symbol_501 *
> OpenAD_Symbol_1124)
OpenAD_Symbol_1126 = (OpenAD_Symbol_502 *
> OpenAD_Symbol_1124)
OpenAD_Symbol_1127 = (OpenAD_Symbol_517 *
> OpenAD_Symbol_1126)
OpenAD_Symbol_1128 = (OpenAD_Symbol_518 *
> OpenAD_Symbol_1126)
OpenAD_Symbol_1129 = (OpenAD_Symbol_519 *
> OpenAD_Symbol_1127)
OpenAD_Symbol_1130 = (OpenAD_Symbol_520 *
> OpenAD_Symbol_1127)
OpenAD_Symbol_1131 = (OpenAD_Symbol_505 *
> OpenAD_Symbol_1125)
OpenAD_Symbol_1132 = (OpenAD_Symbol_506 *
> OpenAD_Symbol_1125)
OpenAD_Symbol_1133 = (OpenAD_Symbol_527 *
> OpenAD_Symbol_1130)
OpenAD_Symbol_1135 = (OpenAD_Symbol_528 *
> OpenAD_Symbol_1130)
OpenAD_Symbol_1136 = (OpenAD_Symbol_522 *
> OpenAD_Symbol_1129)
OpenAD_Symbol_1138 = (OpenAD_Symbol_523 *
> OpenAD_Symbol_1129)
OpenAD_Symbol_1139 = (OpenAD_Symbol_507 *
> OpenAD_Symbol_1131)
OpenAD_Symbol_1140 = (OpenAD_Symbol_508 *
> OpenAD_Symbol_1131)
OpenAD_Symbol_1141 = (OpenAD_Symbol_531 *
> OpenAD_Symbol_1128)
OpenAD_Symbol_1143 = (OpenAD_Symbol_532 *
> OpenAD_Symbol_1128)
OpenAD_Symbol_1145 = (OpenAD_Symbol_529 *
> OpenAD_Symbol_1135)
OpenAD_Symbol_1147 = (OpenAD_Symbol_530 *
> OpenAD_Symbol_1135)
OpenAD_Symbol_1149 = (OpenAD_Symbol_524 *
> OpenAD_Symbol_1138)
OpenAD_Symbol_1151 = (OpenAD_Symbol_525 *
> OpenAD_Symbol_1138)
OpenAD_Symbol_1153 = (OpenAD_Symbol_513 *
> OpenAD_Symbol_1132)
OpenAD_Symbol_1155 = (OpenAD_Symbol_514 *
> OpenAD_Symbol_1132)
OpenAD_Symbol_1157 = (OpenAD_Symbol_511 *
> OpenAD_Symbol_1140)
OpenAD_Symbol_1159 = (OpenAD_Symbol_512 *
> OpenAD_Symbol_1140)
OpenAD_Symbol_1161 = (OpenAD_Symbol_509 *
> OpenAD_Symbol_1139)
OpenAD_Symbol_1163 = (OpenAD_Symbol_510 *
> OpenAD_Symbol_1139)
OpenAD_Symbol_1165 = (OpenAD_Symbol_499 *
> OpenAD_Symbol_1123)
OpenAD_Symbol_1167 = (OpenAD_Symbol_500 *
> OpenAD_Symbol_1123)
OpenAD_Symbol_1169 = OpenAD_Symbol_493
CALL setderiv(OpenAD_Symbol_1170,ETA(IX,IY))
CALL setderiv(OpenAD_Symbol_1168,DT)
CALL setderiv(OpenAD_Symbol_1166,ETAMASK(IX,IY))
CALL setderiv(OpenAD_Symbol_1164,U(IX+1,IY))
CALL setderiv(OpenAD_Symbol_1162,HU(IX+1,IY))
CALL setderiv(OpenAD_Symbol_1160,U(IX,IY))
CALL setderiv(OpenAD_Symbol_1158,HU(IX,IY))
CALL setderiv(OpenAD_Symbol_1156,RX(IY))
CALL setderiv(OpenAD_Symbol_1154,DX(IX))
CALL setderiv(OpenAD_Symbol_1152,HV(IX,IY+1))
CALL setderiv(OpenAD_Symbol_1150,HY(IY+1))
CALL setderiv(OpenAD_Symbol_1148,HV(IX,IY))
CALL setderiv(OpenAD_Symbol_1146,HY(IY))
CALL setderiv(OpenAD_Symbol_1144,RY)
CALL setderiv(OpenAD_Symbol_1142,DY(IY))
CALL setderiv(OpenAD_Symbol_1137,V(IX,IY+1))
CALL setderiv(OpenAD_Symbol_1134,V(IX,IY))
CALL sax(OpenAD_Symbol_1133,OpenAD_Symbol_1134,ETA(IX,IY
+))
CALL saxpy(OpenAD_Symbol_1136,OpenAD_Symbol_1137,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1141,OpenAD_Symbol_1142,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1143,OpenAD_Symbol_1144,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1145,OpenAD_Symbol_1146,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1147,OpenAD_Symbol_1148,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1149,OpenAD_Symbol_1150,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1151,OpenAD_Symbol_1152,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1153,OpenAD_Symbol_1154,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1155,OpenAD_Symbol_1156,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1157,OpenAD_Symbol_1158,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1159,OpenAD_Symbol_1160,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1161,OpenAD_Symbol_1162,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1163,OpenAD_Symbol_1164,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1165,OpenAD_Symbol_1166,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1167,OpenAD_Symbol_1168,ETA(IX,
+IY))
CALL saxpy(OpenAD_Symbol_1169,OpenAD_Symbol_1170,ETA(IX,
+IY))
END DO
END DO
IF(XPERIODIC) THEN
DO IY = 0, 21, 1
ETA(0,INT(IY))%v = ETA(20,IY)%v
CALL setderiv(ETA(0,IY),ETA(20,IY))
END DO
ENDIF
IF(YPERIODIC) THEN
DO IX = 0, 21, 1
ETA(INT(IX),0)%v = ETA(IX,20)%v
CALL setderiv(ETA(IX,0),ETA(IX,20))
END DO
ENDIF
IF((TIME_INDEX .GT. NTSPINUP) .AND. CALC_COST) THEN
CALL is_eta_data_time(TIME,TESTRESULT)
IF(TESTRESULT) THEN
ENDIF
CALL is_eta_data_time(TIME,TESTRESULT)
IF((NEDT .eq. INT((-1_w2f__i8))) .OR. TESTRESULT) THEN
IX = 6
ZONAL_TRANSPORT%v = 0.0D00
CALL zero_deriv(ZONAL_TRANSPORT)
DO IY = 1, 20, 1
OpenAD_Symbol_536 = (DY(IY)%v*U(IX,IY)%v)
OpenAD_Symbol_541 = (ZONAL_TRANSPORT%v+HU(IX,IY)%v*Ope
+nAD_Symbol_536)
OpenAD_Symbol_534 = 1_w2f__i8
OpenAD_Symbol_537 = OpenAD_Symbol_536
OpenAD_Symbol_539 = U(IX,IY)%v
OpenAD_Symbol_540 = DY(IY)%v
OpenAD_Symbol_538 = HU(IX,IY)%v
OpenAD_Symbol_535 = 1_w2f__i8
ZONAL_TRANSPORT%v = OpenAD_Symbol_541
OpenAD_Symbol_1171 = (OpenAD_Symbol_537 *
> OpenAD_Symbol_535)
OpenAD_Symbol_1173 = (OpenAD_Symbol_538 *
> OpenAD_Symbol_535)
OpenAD_Symbol_1174 = (OpenAD_Symbol_539 *
> OpenAD_Symbol_1173)
OpenAD_Symbol_1176 = (OpenAD_Symbol_540 *
> OpenAD_Symbol_1173)
OpenAD_Symbol_1178 = OpenAD_Symbol_534
CALL setderiv(OpenAD_Symbol_1179,ZONAL_TRANSPORT)
CALL setderiv(OpenAD_Symbol_1177,U(IX,IY))
CALL setderiv(OpenAD_Symbol_1175,DY(IY))
CALL setderiv(OpenAD_Symbol_1172,HU(IX,IY))
CALL sax(OpenAD_Symbol_1171,OpenAD_Symbol_1172,ZONAL_T
+RANSPORT)
CALL saxpy(OpenAD_Symbol_1174,OpenAD_Symbol_1175,ZONAL
+_TRANSPORT)
CALL saxpy(OpenAD_Symbol_1176,OpenAD_Symbol_1177,ZONAL
+_TRANSPORT)
CALL saxpy(OpenAD_Symbol_1178,OpenAD_Symbol_1179,ZONAL
+_TRANSPORT)
END DO
OpenAD_Symbol_550 = (ZONAL_TRANSPORT%v-ZONAL_TRANSPORT_D
+ATA%v)
OpenAD_Symbol_547 = (OpenAD_Symbol_550 ** INT(2_w2f__i8
> ))
OpenAD_Symbol_544 = (OpenAD_Symbol_547 * 5.0D-01)
OpenAD_Symbol_555 = (COST%v+WEIGHT_ZONAL_TRANSPORT%v*Ope
+nAD_Symbol_544)
OpenAD_Symbol_542 = 1_w2f__i8
OpenAD_Symbol_545 = OpenAD_Symbol_544
OpenAD_Symbol_553 = 1_w2f__i8
OpenAD_Symbol_554 = (-1_w2f__i8)
OpenAD_Symbol_551 = (INT(2_w2f__i8) *(OpenAD_Symbol_550
> **(INT(2_w2f__i8) - INT(1_w2f__i8))))
OpenAD_Symbol_548 = 5.0D-01
OpenAD_Symbol_546 = WEIGHT_ZONAL_TRANSPORT%v
OpenAD_Symbol_543 = 1_w2f__i8
COST%v = OpenAD_Symbol_555
OpenAD_Symbol_1180 = (OpenAD_Symbol_545 *
> OpenAD_Symbol_543)
OpenAD_Symbol_1182 = (OpenAD_Symbol_546 *
> OpenAD_Symbol_543)
OpenAD_Symbol_1183 = (OpenAD_Symbol_548 *
> OpenAD_Symbol_1182)
OpenAD_Symbol_1184 = (OpenAD_Symbol_551 *
> OpenAD_Symbol_1183)
OpenAD_Symbol_1185 = (OpenAD_Symbol_553 *
> OpenAD_Symbol_1184)
OpenAD_Symbol_1187 = (OpenAD_Symbol_554 *
> OpenAD_Symbol_1184)
OpenAD_Symbol_1189 = OpenAD_Symbol_542
CALL setderiv(OpenAD_Symbol_1190,COST)
CALL setderiv(OpenAD_Symbol_1188,ZONAL_TRANSPORT_DATA)
CALL setderiv(OpenAD_Symbol_1186,ZONAL_TRANSPORT)
CALL setderiv(OpenAD_Symbol_1181,WEIGHT_ZONAL_TRANSPORT)
CALL sax(OpenAD_Symbol_1180,OpenAD_Symbol_1181,COST)
CALL saxpy(OpenAD_Symbol_1185,OpenAD_Symbol_1186,COST)
CALL saxpy(OpenAD_Symbol_1187,OpenAD_Symbol_1188,COST)
CALL saxpy(OpenAD_Symbol_1189,OpenAD_Symbol_1190,COST)
DO IY = 1, 20, 1
DO IX = 1, 20, 1
END DO
END DO
ENDIF
ENDIF
IF ((INT(MOD(DT%v*REAL(TIME_INDEX),DT_DUMP%v)) .eq. 0.0D00)
+.AND. (FULLIO .AND. ( .NOT. SUPPRESSIO))) THEN
NIO = NIO + 1
WRITE(*, *) 'Writing Time Step ', TIME_INDEX
ENDIF
ENDIF
END DO
END DO
ZONAL_TRANSPORT%v = 0.0D00
CALL zero_deriv(ZONAL_TRANSPORT)
IX = 6
ZONAL_TRANSPORT%v = 0.0D00
CALL zero_deriv(ZONAL_TRANSPORT)
DO IY = 1, 20, 1
OpenAD_Symbol_712 = (DY(IY)%v*U(IX,IY)%v)
OpenAD_Symbol_717 = (ZONAL_TRANSPORT%v+HU(IX,IY)%v*OpenAD_Symbol
+_712)
OpenAD_Symbol_710 = 1_w2f__i8
OpenAD_Symbol_713 = OpenAD_Symbol_712
OpenAD_Symbol_715 = U(IX,IY)%v
OpenAD_Symbol_716 = DY(IY)%v
OpenAD_Symbol_714 = HU(IX,IY)%v
OpenAD_Symbol_711 = 1_w2f__i8
ZONAL_TRANSPORT%v = OpenAD_Symbol_717
OpenAD_Symbol_1323 = (OpenAD_Symbol_713 * OpenAD_Symbol_711)
OpenAD_Symbol_1325 = (OpenAD_Symbol_714 * OpenAD_Symbol_711)
OpenAD_Symbol_1326 = (OpenAD_Symbol_715 * OpenAD_Symbol_1325)
OpenAD_Symbol_1328 = (OpenAD_Symbol_716 * OpenAD_Symbol_1325)
OpenAD_Symbol_1330 = OpenAD_Symbol_710
CALL setderiv(OpenAD_Symbol_1331,ZONAL_TRANSPORT)
CALL setderiv(OpenAD_Symbol_1329,U(IX,IY))
CALL setderiv(OpenAD_Symbol_1327,DY(IY))
CALL setderiv(OpenAD_Symbol_1324,HU(IX,IY))
CALL sax(OpenAD_Symbol_1323,OpenAD_Symbol_1324,ZONAL_TRANSPORT)
CALL saxpy(OpenAD_Symbol_1326,OpenAD_Symbol_1327,ZONAL_TRANSPORT
+)
CALL saxpy(OpenAD_Symbol_1328,OpenAD_Symbol_1329,ZONAL_TRANSPORT
+)
CALL saxpy(OpenAD_Symbol_1330,OpenAD_Symbol_1331,ZONAL_TRANSPORT
+)
END DO
WRITE(*,*)'zonal volume transport = ',(ZONAL_TRANSPORT%v*9.9999999
+748E-07),' Sv'
COST_FINAL%v = ZONAL_TRANSPORT%v
CALL setderiv(COST_FINAL,ZONAL_TRANSPORT)
C open(10,file='cost.txt',form='formatted',position='append')
OPEN(UNIT = 10, POSITION = 'APPEND', FORM = 'FORMATTED', FILE =
> 'cost.txt')
WRITE(10,'(I5,5E15.8)') ITERATION,COST_D%v,COST_SD%v,COST_GD%v,COS
+T%v,COST_FINAL%v
C close(10)
CLOSE(UNIT = 10)
ITERATION = ITERATION + 1
RETURN
END SUBROUTINE
Driver Code
program shallow_water
use active_module
c this module is extracted as adsize from head.* and renamed
use adsize_OpenAD
implicit none
type(active) cost
real myzero
integer i,j
print *, 'inifields:'
call inifields
print *, 'readparms:'
call readparms
cost%v = 0.
print *, 'forward_model:'
call make_weights
c
c for time dependent data this should be done in time stepping!
c
myzero = 0.
call read_eta_data( myzero )
call length_of_control_vector( nc )
print *, 'calculate intial gradient of cost function'
call map_to_control_vector( nc, xc )
c
c #############
do i=1,nc
do j=1,nc
if (j==i) then
xc(j)%d(i)=1.
else
xc(j)%d(i)=0.
end if
end do
end do
call forward_model( nc, xc, cost )
do i=1,nc
print*, "grad(", i, ")=", cost%d(i)
end do
print *, 'cost function = ', cost%v
c #############
cph(
c call gradient_check( nc, xc, adxc, cost )
c print *, 'suppress adjoint_calculations for now'
cph)
print *,'normal in shallow_water'
stop 'normal in shallow_water'
end !program shallow_water