AbsLight

From GHER

Jump to: navigation, search

Abslight est un module permettant d'inclure l'absorption de la lumière de la colonne d'eau (flag de compilation -DAbsLight pour l'activer)

I(z)=I_0 ( a e^(-n_1*z)+(1-a) e ^ (-n_2*z))


LightAbslightA --> a LightAbslightg1 --> 1/n_1 LightAbslightg2 --> 1/n_2

ce module utilise les variables suivantes

COMMON/LightAbs/ LightAbsA, LightAbsg1, LightAbsg2, FltSolar, FltSolarn,LightAbsFrac,LightAbsType




==

In INITIAL.H

#ifdef ABSLight
!  Parameters for water classification - default Jerlov type I
     LightAbsA=0.58
     LightAbsg1=0.35
     LightAbsg2=23.0
#endif
#ifdef ABSLight
      if (presentInitValue(NAMEFI,'LightAbsA')) then
        call getInitValue(NAMEFI,'LightAbsA',LightAbsA)
     endif
     if (presentInitValue(NAMEFI,'LightAbsg1')) then
        call getInitValue(NAMEFI,'LightAbsg1',LightAbsg1)
     endif
     if (presentInitValue(NAMEFI,'LightAbsg2')) then
        call getInitValue(NAMEFI,'LightAbsg2',LightAbsg2)
     endif
#endif


LightAbsFrac(i,j,k) est la fraction du rayonnement incident absorbée entre la cellule i j k et celle d'en dessous (différence entre ce qu'ele recoit et ce que celle d'en dessous reçoit)

#ifdef ABSLight
     do k=1,maxt
     do j=1,jmax
     do i=1,imax
      LightAbsFrac(i,j,k) = &
             (   LightAbsA *exp(gridZI(i,j,k+1)/LightAbsg1)+&
              (1-LightAbsA)*exp(gridZI(i,j,k+1)/LightAbsg2))&
              - &
             (   LightAbsA *exp(gridZI(i,j,k)/LightAbsg1)+&
              (1-LightAbsA)*exp(gridZI(i,j,k)/LightAbsg2))
     end do
     end do
     end do
#endif


 #ifdef ABSLight
      call    
 interfinit(SolarHeatflux,XGRID(1),XGRID(2),YGRID(1),YGRID(3),imax,jmax,FNAME(18),'SolarHeatflux.',ici,-0.25E-6)
       Heatflux%array = Heatflux%array-SolarHeatflux%array
 #endif


==

in solvht

        DO K=2,KSUPI
       DO I=IINF,ISUP-1
         SOURI (I,K) = HTI (I,J,K)*UNSDT
    &   - RNUDG*   ( HTI(I,J,K) - HI(I,J)*TNUD(I,J,K+KMAXII-3) )
    &         * PRENUD(I,J,K+KMAXII-3)
#ifdef ABSLight
    &   - FltSolar(i,j)*LightAbsFrac(i,j,k+kmaxii-3)/dsi(k)
#endif



POURQUOI UN MOINS A LA DERNIERE LIGNE??????

Personal tools