bedload_evol.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\sisyphe\bedload_evol.f
00002 !
00079                      SUBROUTINE BEDLOAD_EVOL
00080 !                    ***********************
00081 !
00082      &(HN,Q,S,ELAY,ACLADM,AVA,COEFPN,CALFA,SALFA,LIMTEC,EBOR,
00083      & MASKEL,MASK,V2DPAR,UNSV2D,DEBUG,NPOIN,NPTFR,
00084      & IELMT,KENT,KDIR,KDDL,LOADMETH,
00085      & DTS,DM,D90,HMIN,LS0,GRAV,XMVS,XMVE,VCE,
00086      & VF,ENTET,MSK,CONST_ALAYER,LCONDIS,MESH,
00087      & QS,T1,T2,T3,T4,T5,T6,T7,T8,T9,
00088      & T10,T11,T12,T13,CSF_SABLE,BREACH,QSX,QSY,ZFCL,SLOPEFF,ICLA,
00089      & FLBCLA,LIQBOR,QBOR,MAXADV)
00090 !
00091 !***********************************************************************
00092 ! SISYPHE   V7P0                                    03/06/2014
00093 !***********************************************************************
00094 !
00095 !
00096 !
00097 !
00098 !
00099 !
00100 !
00101 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00102 !| ACLADM         |-->| MEAN DIAMETER OF SEDIMENT
00103 !| AVA            |-->| PERCENT AVAILABLE
00104 !| BREACH         |<->| INDICATOR FOR NON ERODIBLE BED (FINITE VOLUMES SHEMES)
00105 !| CALFA          |<->| COSINUS OF THE ANGLE BETWEEN MEAN FLOW AND TRANSPORT
00106 !| COEFPN         |<->| CORRECTION OF TRANSORT FOR SLOPING BED EFFECT
00107 !| CONST_ALAYER   |-->| CONSTANT ACTIVE LAYER THICKNESS OR NOT
00108 !| D90            |---| D90
00109 !| DEBUG          |-->| FLAG FOR DEBUGGING
00110 !| DM             |-->| SEDIMENT GRAIN DIAMETER
00111 !| DTS            |<->| TIME STEP FOR SUSPENSION
00112 !| EBOR           |<->| BOUNDARY CONDITION FOR BED EVOLUTION (DIRICHLET)
00113 !| ELAY           |<->| THICKNESS OF SURFACE LAYER
00114 !| ELAY0          |<->| ACTIVE LAYER THICKNESS
00115 !| ENTET          |-->| LOGICAL, IF YES INFORMATION IS GIVEN ON MASS CONSERVATION
00116 !| FLBCLA         |-->| BLOCK OF FLUXES AT BOUNDARY FOR EACH CLASS
00117 !| GRAV           |-->| ACCELERATION OF GRAVITY
00118 !| HMIN           |-->| MINIMUM VALUE OF WATER DEPTH
00119 !| HN             |-->| WATER DEPTH
00120 !| ICLA           |-->| CLASS NUMBER
00121 !| IELMT          |-->| NUMBER OF ELEMENTS
00122 !| KDDL           |-->| CONVENTION FOR DEGREE OF FREEDOM
00123 !| KDIR           |-->| CONVENTION FOR DIRICHLET POINT
00124 !| KENT           |-->| CONVENTION FOR LIQUID INPUT WITH PRESCRIBED VALUE
00125 !| LCONDIS        |-->| LOGICAL, CONSTANT FLOW DISCHARGE
00126 !| LIMTEC         |<->| TYPE OF BOUNDARY CONDITION
00127 !| LIQBOR         |-->| TYPE OF BOUNDARY CONDITION FOR BEDLOAD DISCHARGE
00128 !| LOADMETH       |-->| (A SUPPRIMER)
00129 !| LS0            |-->| (A SUPPRIMER)
00130 !| MASK           |-->| BLOCK OF MASKS, EVERY ONE FOR A TYPE OF BOUNDARY
00131 !| MASKEL         |-->| MASKING OF ELEMENTS
00132 !| MAXADV         |-->| MAXIMUM NUMBER OF ITERATIONS (IN POSITIVE_DEPTHS)
00133 !| MESH           |<->| MESH STRUCTURE
00134 !| MSK            |-->| IF YES, THERE IS MASKED ELEMENTS
00135 !| NPOIN          |-->| NUMBER OF POINTS
00136 !| NPTFR          |-->| NUMBER OF BOUNDARY POINTS
00137 !| Q              |-->| FLOW DISCHARGE
00138 !| QBOR           |-->| PRESCRIBED BEDLOAD DISCHARGE
00139 !| QS             |<->| EDLOAD TRANSPORT RATE
00140 !| QSX            |<->| SOLID DISCHARGE X
00141 !| QSY            |<->| SOLID DISCHARGE Y
00142 !| S              |-->| VOID STRUCTURE
00143 !| SALFA          |<->| SINUS OF THE ANGLE BETWEEN TRANSPORT RATE AND CURRENT
00144 !| SLOPEFF        |-->| LOGICAL, SLOPING BED EFFECT OR NOT
00145 !| T1             |<->| WORK BIEF_OBJ STRUCTURE
00146 !| T10            |<->| WORK BIEF_OBJ STRUCTURE
00147 !| T11            |<->| WORK BIEF_OBJ STRUCTURE
00148 !| T12            |<->| WORK BIEF_OBJ STRUCTURE
00149 !| T13            |<->| WORK BIEF_OBJ STRUCTURE
00150 !| T2             |<->| WORK BIEF_OBJ STRUCTURE
00151 !| T3             |<->| WORK BIEF_OBJ STRUCTURE
00152 !| T4             |<->| WORK BIEF_OBJ STRUCTURE
00153 !| T5             |<->| WORK BIEF_OBJ STRUCTURE
00154 !| T6             |<->| WORK BIEF_OBJ STRUCTURE
00155 !| T7             |<->| WORK BIEF_OBJ STRUCTURE
00156 !| T8             |<->| WORK BIEF_OBJ STRUCTURE
00157 !| T9             |<->| WORK BIEF_OBJ STRUCTURE
00158 !| UNSV2D         |-->| INVERSE OF INTEGRALS OF TEST FUNCTIONS
00159 !| V2DPAR         |-->| INTEGRAL OF TEST FUNCTIONS, ASSEMBLED IN PARALLEL
00160 !| VCE            |-->| WATER VISCOSITY
00161 !| VF             |-->| LOGICAL, FINITE VOLUMES OR NOT
00162 !| XMVE           |-->| FLUID DENSITY
00163 !| XMVS           |-->| SEDIMENT DENSITY
00164 !| ZFCL           |<->| BED EVOLUTION PER CLASS, DUE TO SUSPENDED SEDIMENT
00165 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00166 !
00167       USE INTERFACE_SISYPHE, EX_BEDLOAD_EVOL => BEDLOAD_EVOL
00168       USE BIEF
00169       IMPLICIT NONE
00170       INTEGER LNG,LU
00171       COMMON/INFO/LNG,LU
00172 !
00173 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00174 !
00175       TYPE(BIEF_OBJ),   INTENT(IN)    :: HN,Q,S,UNSV2D,ELAY,ACLADM
00176       TYPE(BIEF_OBJ),   INTENT(IN)    :: COEFPN,CALFA,SALFA
00177       TYPE(BIEF_OBJ),   INTENT(IN)    :: MASKEL,MASK,V2DPAR
00178       INTEGER,          INTENT(IN)    :: DEBUG,SLOPEFF,NPOIN,NPTFR,ICLA
00179       INTEGER,          INTENT(IN)    :: IELMT,KENT,KDIR,LOADMETH,KDDL
00180       INTEGER,          INTENT(IN)    :: MAXADV
00181       DOUBLE PRECISION, INTENT(IN)    :: DTS,DM,D90,HMIN,LS0
00182       DOUBLE PRECISION, INTENT(IN)    :: GRAV,XMVS,XMVE,VCE,AVA(NPOIN)
00183       LOGICAL,          INTENT(IN)    :: VF,ENTET,MSK
00184       LOGICAL,          INTENT(IN)    :: CONST_ALAYER,LCONDIS
00185       TYPE(BIEF_MESH),  INTENT(INOUT) :: MESH
00186       TYPE(BIEF_OBJ),   INTENT(INOUT) :: QS,EBOR,FLBCLA
00187       TYPE(BIEF_OBJ),   INTENT(INOUT) :: T1, T2, T3, T4, T5, T6, T7
00188       TYPE(BIEF_OBJ),   INTENT(INOUT) :: T8, T9, T10, T11, T12, T13
00189       DOUBLE PRECISION, INTENT(IN)    :: CSF_SABLE
00190       TYPE(BIEF_OBJ),   INTENT(INOUT) :: BREACH, QSX, QSY, ZFCL,LIMTEC
00191       TYPE(BIEF_OBJ),   INTENT(IN)    :: LIQBOR,QBOR
00192 !
00193 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00194 !
00195       INTEGER          :: J
00196       DOUBLE PRECISION, POINTER :: FLULIM(:)
00197 !
00198 !=======================================================================
00199 !                               PROGRAM
00200 !=======================================================================
00201 !
00202 !     POINTER TO A WORK ARRAY
00203 !
00204       FLULIM => MESH%MSEG%X%R(MESH%NSEG+1:2*MESH%NSEG)
00205 !
00206 !     SLOPE EFFECT
00207 !
00208       IF(SLOPEFF.EQ.1) CALL OS('X=XY    ', X=QS , Y=COEFPN)
00209       CALL OS('X=YZ    ', X=QSX, Y=QS, Z=CALFA)
00210       CALL OS('X=YZ    ', X=QSY, Y=QS, Z=SALFA)
00211 !
00212 !     TREATMENT OF NON ERODABLE BOTTOM
00213 !
00214       IF(VF) THEN
00215         IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING BEDLOAD_NERBED_VF'
00216         CALL BEDLOAD_NERBED_VF
00217      &        (MESH,LIMTEC,KDDL,ELAY%R,V2DPAR%R,QSX,QSY,AVA,NPOIN,
00218      &         MESH%NSEG,NPTFR,DTS,QS,T1,T2,T3,BREACH,CSF_SABLE,
00219      &         MESH%NUBO%I,MESH%VNOIN%R)
00220         IF(DEBUG.GT.0) WRITE(LU,*) 'RETURN FROM BEDLOAD_NERBED_VF'
00221         CALL OS('X=YZ    ', X=QSX, Y=QS, Z=CALFA)
00222         CALL OS('X=YZ    ', X=QSY, Y=QS, Z=SALFA)
00223       ENDIF
00224 !
00225 !     SOLVES THE BED-EVOLUTION EQUATION : F.V.
00226 !
00227       IF(VF) THEN
00228         IF(DEBUG.GT.0) WRITE(LU,*) 'CALLING BEDLOAD_SOLVS_VF'
00229         CALL BEDLOAD_SOLVS_VF(MESH,QSX,QSY,LIMTEC,UNSV2D,EBOR,
00230      &                        BREACH,MESH%NSEG,NPTFR,NPOIN,
00231      &                        KENT,KDIR,KDDL,DTS,T10,ZFCL,T11,
00232      &                        CSF_SABLE,FLBCLA%ADR(ICLA)%P,AVA,
00233      &                        LIQBOR,QBOR,MESH%NUBO%I,MESH%VNOIN%R)
00234         IF(DEBUG.GT.0) WRITE(LU,*) 'RETURN FROM BEDLOAD_SOLVS_VF'
00235 !
00236 !     SOLVES THE BED-EVOLUTION EQUATION : F.E.
00237 !
00238       ELSE
00239         DO J=1,NPOIN
00240 !         T13 IS THE SEDIMENT HEIGHT (EXCLUDING VOIDS, SO *CSF_SABLE)
00241           T13%R(J)=AVA(J)*ELAY%R(J)*CSF_SABLE
00242         ENDDO
00243         IF(DEBUG.GT.0) WRITE(LU,*) 'BEDLOAD_SOLVS_FE'
00244         CALL BEDLOAD_SOLVS_FE(MESH,S,EBOR,MASKEL,MASK,
00245      &                        QSX,QSY,IELMT,NPOIN,NPTFR,KENT,KDIR,KDDL,
00246      &                        LIMTEC,DTS,MSK,ENTET,T1,T2,T3,T4,T8,
00247      &                        ZFCL,T12,T13,MESH%GLOSEG%I,
00248      &                        MESH%GLOSEG%DIM1,MESH%MSEG%X,
00249      &                        FLULIM,MESH%NSEG,UNSV2D,CSF_SABLE,ICLA,
00250      &                        FLBCLA%ADR(ICLA)%P,AVA,LIQBOR,QBOR,
00251      &                        MAXADV)
00252         IF(DEBUG.GT.0) WRITE(LU,*) 'END_BEDLOAD_SOLVS_FE'
00253       ENDIF
00254 !
00255 !======================================================================!
00256 !======================================================================!
00257 !
00258       RETURN
00259       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0