Skip to content
Snippets Groups Projects
condi3dtrac_EGIS_2.f 5.35 KiB
Newer Older
Pierre NOLL's avatar
Pierre NOLL committed
!                    ****************************
                     SUBROUTINE USER_CONDI3D_TRAC
!                    ****************************
!
!
!***********************************************************************
! TELEMAC3D
!***********************************************************************
! 
! Lecture de la couche TM pour la définition des cc initiales (sinon,
! selon zone géographique).
!
! Modifié par rapport au fichier du CEREMA pour décaler l'indice des 
! traceur COH1 et COH2, plus 2 et 3 resp. mais 6 et 7 maintenant.
!
! 7 traceurs simulés : S,T,O2,L,NH4,COH1,COH2
!
! On précise aussi les conditions initiales pour T, O2, L et NH4
! car le couplage avec GAIA efface les valeurs données dans le T3DCAS
!
!***********************************************************************
!brief    USER INITIALISES TRACER(S)
!
!history  C.-T. PHAM (LNHE)
!+        24/03/2017
!+        V7P3
!+   Creation from not splitted CONDIM
!+   Called by CONDIM
!
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
      USE BIEF
      USE INTERFACE_TELEMAC3D, EX_USER_CONDI3D_TRAC => USER_CONDI3D_TRAC
      USE DECLARATIONS_TELEMAC3D
	    USE DECLARATIONS_GAIA, ONLY: GAI_FILES,GAIGEO
!
      IMPLICIT NONE
	  
      INTEGER I,NP,J,IBORD
	   DOUBLE PRECISION flow0
	   DOUBLE PRECISION TMS(NPOIN2)
	   CHARACTER*16 NAME
	      LOGICAL OK

!*** Modif EGIS ********************************************************
!
! Indices à modifier selon modules intégrés
!
       INTEGER,PARAMETER :: ICOH1=6,ICOH2=7
!
!*** Fin modif EGIS ****************************************************
	  
!	     CALL BIEF_ALLVEC(1,SEDMIX,'SEDMIX  ',2,1,2,MESH)
!        ALLOCATE(W(NPOIN),STAT=ERR)
       NAME='TM              ' 
!
!!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
!     REMOVE THIS RETURN IF YOU WANT TO ENTER INTO THIS USER SUBROUTINE
!      IF (.TRUE.) RETURN
!
!!-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
!
!======================================================================!
!
!     EXAMPLE 1: DEFAULT CASE: NO STRATIFICATION = ONLY ONE STRATUM 100 M DEEP
        print *, 'coucou init compo'
           CALL READ_BIN_2D
     &     (TMS,NAME,0.d0,GAI_FILES(GAIGEO)%LU,
     &	        'SERAFIN ',NPOIN2,OK,0.d0)
!
!-----------------------------------------------------------------------
!
!     INITIALISES TRACERS
!
!*** Modif EGIS ********************************************************
!
!   Initialisation de T, O2, L, NH4
       CALL OS( 'X=C     ', X=TA%ADR(2)%P, C=10.D0)
	   CALL OS( 'X=C     ', X=TA%ADR(3)%P, C=8.D0)
       CALL OS( 'X=C     ', X=TA%ADR(4)%P, C=0.0D0)
       CALL OS( 'X=C     ', X=TA%ADR(5)%P, C=0.0D0)
!      DO I=1,NTRAC
!        CALL OS( 'X=C     ', X=TA%ADR(I)%P, C=TRAC0(I))
!		 write(LU,*) I,TRAC0(I)
!      ENDDO	  
!
!    suite CEREMA
!         
      IF(NTRAC.GT.0) THEN
!        DO I=1,1
!          CALL OS( 'X=C     ', X=TA%ADR(I)%P, C=TRAC0(I))
		    DO J=1,NPOIN2
		       DO NP=1,NPLAN
                IBORD= (NP-1)*NPOIN2+J

         if (Y(J).ge.6520000) then
		  
!       maritime                
!               TA%ADR(2)%P%R(IBORD)= 0.
!				TA%ADR(3)%P%R(IBORD) = 0.
                TA%ADR(ICOH1)%P%R(IBORD)= 0.
				TA%ADR(ICOH2)%P%R(IBORD) = 0.
        elseif(X(J).le.380000.and.Y(J).le.6520000) then!
                TA%ADR(ICOH1)%P%R(IBORD)= 0.
				TA%ADR(ICOH2)%P%R(IBORD)= 0.
        elseif (X(J).le.390000 .and.Y(J).ge.6478000)  then
!               TA%ADR(2)%P%R(IBORD) = 0.75
!		        TA%ADR(3)%P%R(IBORD) = 0.75
                TA%ADR(ICOH1)%P%R(IBORD) = 0.75
		        TA%ADR(ICOH2)%P%R(IBORD) = 0.75
        elseif (X(J).le.420000.and.Y(J).ge.6478000) then 
!       Dordogne aval	 
!               TA%ADR(2)%P%R(IBORD) = 1.25
!		        TA%ADR(3)%P%R(IBORD) = 1.25
                TA%ADR(ICOH1)%P%R(IBORD) = 1.25
		        TA%ADR(ICOH2)%P%R(IBORD) = 1.25
        elseif (Y(J).ge.6462000.and.Y(J).le.6478000) then
!       Dordogne aval	 
!               TA%ADR(2)%P%R(IBORD) = 1.25
!		        TA%ADR(3)%P%R(IBORD) = 1.25
                TA%ADR(ICOH1)%P%R(IBORD) = 1.25
		        TA%ADR(ICOH2)%P%R(IBORD) = 1.25			
		    elseif (Y(J).le.6462000.and.Y(J).ge.6432000) then
!		        TA%ADR(2)%P%R(IBORD) = 1.25
!		        TA%ADR(3)%P%R(IBORD) = 1.25
                TA%ADR(ICOH1)%P%R(IBORD) = 1.25
		        TA%ADR(ICOH2)%P%R(IBORD) = 1.25
        else
! !      Garonne amont		
!               TA%ADR(2)%P%R(IBORD) = 0
!		        TA%ADR(3)%P%R(IBORD) = 0.
                TA%ADR(ICOH1)%P%R(IBORD) = 0
		        TA%ADR(ICOH2)%P%R(IBORD) = 0.
        endif
		
!		   print *, 'TMS',TMS(J)
		   if(TMS(J).gt.200) then
!		        TA%ADR(2)%P%R(IBORD) = 50
!				elseif(TMS(J).gt.10) then
!				TA%ADR(2)%P%R(IBORD) = 2.5
!				TA%ADR(3)%P%R(IBORD) = 2.5
                TA%ADR(ICOH1)%P%R(IBORD) = 2.5
				TA%ADR(ICOH2)%P%R(IBORD) = 2.5
!				 elseif(X(J).le.6520000) then
!				 TA%ADR(2)%P%R(IBORD) = 5
!				else
!				TA%ADR(2)%P%R(IBORD) = 0.
				
				
		  endif
       ENDDO

      ENDDO
!        ENDDO
      ENDIF
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
      RETURN
      END