SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
cholsl.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 SUBROUTINE cholsl(N,A,P,B,X)
6 
7  USE yomhook ,ONLY : lhook, dr_hook
8  USE parkind1 ,ONLY : jprb
9 
10  IMPLICIT NONE
11 
12  INTEGER, INTENT(IN) :: n
13  REAL, DIMENSION (N,N), INTENT(IN) :: a
14  REAL, DIMENSION (N), INTENT(IN) :: p,b
15  REAL, DIMENSION (N), INTENT(INOUT) :: x
16  INTEGER :: i
17  REAL(KIND=JPRB) :: zhook_handle
18 
19  IF (lhook) CALL dr_hook('CHOLSL',0,zhook_handle)
20 
21  DO i=1,n
22  x(i) = (b(i) - dot_product(a(i,1:i-1),x(1:i-1)))/p(i)
23  ENDDO
24  DO i=n,1,-1
25  x(i) = (x(i) - dot_product(a(i+1:n,i),x(i+1:n)))/p(i)
26  ENDDO
27 
28  IF (lhook) CALL dr_hook('CHOLSL',1,zhook_handle)
29 
30 END SUBROUTINE cholsl
subroutine cholsl(N, A, P, B, X)
Definition: cholsl.F90:5