*=*=*=*= addfi.html =*=*=*=*
SUBROUTINE addfi(nq, pdt, leapf, forward, S pucov, pvcov, ph, pq , pext, S pdufi, pdvfi, pdhfi,pdqfi, pdpfi) IMPLICIT NONE c c ... Auteurs : F.Hourdin, P.Le Van, Z.X.Li ... c c======================================================================= c c Addition of the physical tendencies c c Interface : c ----------- c c Input : c ------- c pdt time step of integration c leapf logical c forward logical c pucov(ip1jmp1,llm) first conponent of the covariant velocity c pvcov(ip1ip1jm,llm) second conponent of the covariant velocity c ph(ip1jmp1,llm) potential temperature c pts(ip1jmp1,llm) surface temperature c pdufi(ip1jmp1,llm) | c pdvfi(ip1jm,llm) | respective c pdhfi(ip1jmp1) | tendencies c pdtsfi(ip1jmp1) | c c Output : c -------- c pucov c pvcov c ph c pts c c c======================================================================= c c----------------------------------------------------------------------- c c 0. Declarations : c ------------------ c #include "dimensions.h" #include "paramet.h" #include "comconst.h" #include "comgeom.h" c c Arguments : c ----------- c INTEGER nq REAL pdt c REAL pvcov(ip1jm,llm),pucov(ip1jmp1,llm),ph(ip1jmp1,llm) REAL pq(ip1jmp1,llm,nq),pext(ip1jmp1) c REAL pdvfi(ip1jm,llm),pdufi(ip1jmp1,llm) REAL pdqfi(ip1jmp1,llm,nq),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1) c logical leapf,forward c c c Local variables : c ----------------- c INTEGER j,k,iq REAL seuil_vap, seuil_liq, qtest PARAMETER (seuil_vap=1.0e-10) ! seuil pour l'eau vapeur PARAMETER (seuil_liq=1.0e-11) ! seuil pour l'eau liquide c c c Il est souhaitable mais non obligatoire que les valeurs des 2 c parametres seuil_vap, seuil_liq soient pareilles a celles qui c sont utilisees dans la routine INTEGRD . c----------------------------------------------------------------------- DO k = 1,llm DO j = 1,ip1jmp1 ph(j,k)= ph(j,k) + pdhfi(j,k) * pdt ENDDO ENDDO DO k = 1,llm DO j = iip2,ip1jm pucov(j,k)= pucov(j,k) + pdufi(j,k) * pdt ENDDO ENDDO DO k = 1,llm DO j = 1,ip1jm pvcov(j,k)= pvcov(j,k) + pdvfi(j,k) * pdt ENDDO ENDDO c ###### P. Le Van ( Modif 18/12/94, 25/01/96 ) ####### c DO j = 1,ip1jmp1 pext(j) = pext(j) + pdpfi(j) * pdt ENDDO c DO iq = 1, nq IF( iq.EQ.1 ) THEN qtest = seuil_vap ELSE qtest = seuil_liq ENDIF DO k = 1,llm DO j = 1,ip1jmp1 pq(j,k,iq)= pq(j,k,iq) + pdqfi(j,k,iq) * pdt pq(j,k,iq)= AMAX1( pq(j,k,iq), qtest ) ENDDO ENDDO ENDDO RETURN END