SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/oi_acsolw.F90
Go to the documentation of this file.
00001 SUBROUTINE OI_ACSOLW (KST,KNBPT,&
00002 !-----------------------------------------------------------------------
00003 ! - INPUT  1D
00004    PARG,PD2,PWS,PIVEG,PSAB,&
00005 ! - INPUT  LOGIQUE
00006    LDHMT,&
00007 ! - OUTPUT 1D .
00008    PWFC,PWPMX,PWSAT,PWSMX,PWWILT)  
00009   
00010 
00011 !**** *ACSOLW  * - DETERMINATION DES CONTENUS EN EAU CARACTERISTIQUES DU SOL
00012 
00013 !     Sujet.
00014 !     ------
00015 
00016 !     - ROUTINE DE CALCUL INTERMEDIAIRE.
00017 !       DETERMINATION DES CONTENUS EN EAU CARACTERISTIQUES DU SOL.
00018 
00019 !    SUR MER      (PITM=0. , PIVEG=NTVMER    )
00020 !       wwilt=0.        wfc=1.        wsat=1.
00021 !    SUR BANQUISE (PITM=1. , PIVEG=NTVGLA*1.1) (MODE CLIMAT SEULEMENT)
00022 !       wwilt=0.        wfc=1.        wsat=1.
00023 !    SUR GLACIER  (PITM=1. , PIVEG=NTVGLA    )
00024 !       wwilt=f1(arg)   wfc=f2(arg)   wsat=wfc
00025 !    SUR TERRE    (PITM=1. , AUTRES PIVEG    )
00026 !       wwilt=f1(arg)   wfc=f2(arg)   wsat=f3(sab)
00027 
00028 !**   Interface.
00029 !     ----------
00030 !        *CALL* *ACSOLW*
00031 
00032 !-----------------------------------------------------------------------
00033 ! WARNING: THE ENGLISH VERSION OF VARIABLES' NAMES IS TO BE READ IN THE
00034 !          "APLPAR" CODE.
00035 !-----------------------------------------------------------------------
00036 
00037 ! -   ARGUMENTS D'ENTREE.
00038 !     -------------------
00039 
00040 ! - NOM DES PARAMETRES DE DIMENSIONNEMENT DE LA PHYSIQUE.
00041 
00042 ! KST      : INDICE DE DEPART DES BOUCLES VECTORISEES SUR L'HORIZONT..
00043 ! KNBPT      : INDICE DE FIN DES BOUCLES VECTORISEES SUR L'HORIZONTALE.
00044 
00045 
00046 ! - NOM DES CLES LOGIQUES
00047 
00048 ! LDHMT      : CALCULS REDUITS (POUR L'ANALYSE OU FULL-POS)
00049 !              SEULS LES TABLEAUX (*) SONT UTILISES/CALCULES EN E/S
00050 
00051 ! - NOM DES VARIABLES DE LA PHYSIQUE (PAR ORDRE ALPHABETIQUE DANS CHAQUE
00052 !   CATEGORIE).
00053 
00054 ! - 1D (GEOGRAPHIQUE) .
00055 
00056 ! PARG (*)   : POURCENTAGE D'ARGILE DANS LA MAILLE.
00057 ! PD2        : EPAISSEUR DU RESERVOIR PROFOND.
00058 ! PWS (*)    : CONTENU EN EAU SUPERFICIEL (pour identification NATURE)
00059 ! PIVEG      : TYPE DE SURFACE (MER, BANQUISE OU GLACIER, TERRE).
00060 ! PSAB       : POURCENTAGE DE SABLE DANS LA MAILLE.
00061 
00062 !-----------------------------------------------------------------------
00063 
00064 ! -   ARGUMENTS DE SORTIE.
00065 !     --------------------
00066 
00067 ! - NOM DES VARIABLES DE LA PHYSIQUE (PAR ORDRE ALPHABETIQUE DANS CHAQUE
00068 !   CATEGORIE).
00069 
00070 ! - 1D (DIAGNOSTIQUE) .
00071 
00072 ! PWFC   (*) : TENEUR EN EAU A LA CAPACITE AUX CHAMPS.
00073 ! PWPMX      : TENEUR EN EAU MAXIMALE DU RESERVOIR PROFOND.
00074 ! PWSAT      : TENEUR EN EAU A LA SATURATION
00075 ! PWSMX      : TENEUR EN EAU MAXIMALE DU RESERVOIR DE SURFACE.
00076 ! PWWILT (*) : TENEUR EN EAU CORRESPONDANT AU POINT DE FLETRISSEMENT.
00077 
00078 !-----------------------------------------------------------------------
00079 
00080 ! -   ARGUMENTS IMPLICITES.
00081 !     ---------------------
00082 
00083 ! COMMON/YOMPHY1/
00084 ! the common that contains the parameters for the land surface part of the 
00085 ! physics of the model
00086 !-----------------------------------------------------------------------
00087 
00088 !     Externes.
00089 !     ---------
00090 
00091 !     Methode.
00092 !     --------
00093 
00094 !     Auteur.
00095 !     -------
00096 !        99-02, D. Giard, d'apres ACSOL
00097 
00098 !     Modifications.
00099 !     --------------
00100 !-----------------------------------------------------------------------
00101 !
00102 !  
00103 USE MODD_ASSIM, ONLY : NTVGLA, G1WSAT, G2WSAT, EWFC, GWFC, EWWILT, GWWILT, RD1, REPS2
00104 USE MODD_CSTS,  ONLY : XRHOLW
00105 USE MODD_SURF_PAR, ONLY : XUNDEF
00106 !
00107 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00108 USE PARKIND1  ,ONLY : JPRB
00109 !
00110 IMPLICIT NONE
00111 !  
00112 INTEGER    :: KNBPT, KST
00113 INTEGER    :: JROF
00114 !
00115 REAL    ,INTENT(IN)    :: PARG(KNBPT)
00116 REAL    ,INTENT(IN)    :: PD2(KNBPT)
00117 REAL    ,INTENT(IN)    :: PWS(KNBPT)
00118 REAL    ,INTENT(IN)    :: PIVEG(KNBPT) 
00119 REAL    ,INTENT(IN)    :: PSAB(KNBPT)
00120 !
00121 REAL    ,INTENT(OUT)   :: PWFC(KNBPT) 
00122 REAL    ,INTENT(OUT)   :: PWPMX(KNBPT) 
00123 REAL    ,INTENT(OUT)   :: PWSAT(KNBPT) 
00124 REAL    ,INTENT(OUT)   :: PWSMX(KNBPT) 
00125 REAL    ,INTENT(OUT)   :: PWWILT(KNBPT)
00126 !
00127 REAL    :: ZARG, ZSAB
00128 !
00129 LOGICAL    :: LDHMT
00130 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00131 !
00132 !  ** initialization of the parameters of the land surface part of 
00133 !  ** the physics of the model
00134 !
00135 !     ------------------------------------------------------------------
00136 !     I - CALCULS REDUITS DANS LE CAS LDHMT=.TRUE.
00137 !         ----------------------------------------
00138 !         REDUCED COMPUTATIONS IN CASE LDHMT=.T.
00139 !         --------------------------------------
00140 !
00141 ! ** WFC , WWILT **
00142 !
00143 IF (LHOOK) CALL DR_HOOK('OI_ACSOLW',0,ZHOOK_HANDLE)
00144 DO JROF=KST,KNBPT
00145   IF ( PWS(JROF) == XUNDEF ) THEN
00146     PWWILT(JROF) = 0.0
00147     PWFC  (JROF) = 1.0
00148   ELSE
00149     ZARG = MAX(REPS2,PARG(JROF))
00150     PWWILT(JROF) = GWWILT*(ZARG**EWWILT)
00151     PWFC  (JROF) = GWFC*(ZARG**EWFC)
00152   ENDIF
00153 ENDDO
00154 !
00155 IF (LDHMT .AND. LHOOK) CALL DR_HOOK('OI_ACSOLW',1,ZHOOK_HANDLE)
00156 IF (LDHMT) RETURN
00157 !
00158 !     ------------------------------------------------------------------
00159 !     II - CALCUL DES AUTRES CHAMPS
00160 !          ------------------------
00161 !          COMPUTING OTHER FIELDS
00162 !          ----------------------
00163 !
00164 DO JROF=KST,KNBPT
00165 !
00166 ! ** CAS DE LA BANQUISE EN MODE CLIMAT - SEA-ICE - (CLIMAT) **
00167 !
00168   IF ( NINT(10.*PIVEG(JROF)) == (10*NTVGLA+1) ) THEN
00169     PWWILT(JROF) = 0.0
00170     PWFC  (JROF) = 1.0
00171   ENDIF
00172 !
00173 ! ** WSAT **
00174 !
00175   IF ( PWS(JROF) == XUNDEF .OR. NINT(PIVEG(JROF))==NTVGLA ) THEN
00176     PWSAT(JROF) = PWFC(JROF)
00177   ELSE
00178     ZSAB = MAX(REPS2,PSAB(JROF))
00179     PWSAT(JROF) = G1WSAT*ZSAB+G2WSAT
00180   ENDIF
00181 !
00182 ! **  WSMX , WPMX **
00183 !
00184   PWPMX(JROF) = PWSAT(JROF)*PD2(JROF)*XRHOLW
00185   PWSMX(JROF) = PWSAT(JROF)*RD1*XRHOLW
00186 !
00187 ENDDO
00188 IF (LHOOK) CALL DR_HOOK('OI_ACSOLW',1,ZHOOK_HANDLE)
00189 END SUBROUTINE OI_ACSOLW