source: LMDZ6/trunk/libf/phylmd/evappot.f90 @ 5833

Last change on this file since 5833 was 5812, checked in by rkazeroni, 2 months ago

For GPU porting of evappot routine:

  • Put routine into module (speeds up source-to-source transformation)
  • Add "horizontal" comment to specify possible names of horizontal variables
  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 1.1 KB
Line 
1!$gpum horizontal klon
2MODULE evappot_mod
3  PRIVATE
4
5  PUBLIC evappot
6
7  CONTAINS
8
9SUBROUTINE evappot(klon,nbsrf,ftsol,pplay,cdragh,  &
10       &    t_seri,q_seri,u_seri,v_seri,evap_pot)
11
12USE yoethf_mod_h
13USE yomcst_mod_h
14IMPLICIT NONE
15
16
17INCLUDE "FCTTRE.h"
18
19
20INTEGER :: klon, nbsrf
21REAL, DIMENSION(klon,nbsrf) :: ftsol,evap_pot
22REAL, DIMENSION(klon) :: pplay,t_seri,wind,q_seri,u_seri,v_seri,cdragh
23
24INTEGER :: nsrf,i
25REAL, DIMENSION(klon,nbsrf) :: qsat_ftsol
26REAL, DIMENSION(klon) :: rhos, norme_u
27REAL :: t_coup
28
29      t_coup=234.   ! Quelle horreur !!!!!
30
31DO nsrf = 1, nbsrf
32   DO i = 1, klon
33      IF (ftsol(i,nsrf).LT.t_coup) THEN
34         qsat_ftsol(i,nsrf) = qsats(ftsol(i,nsrf))/pplay(i)
35      ELSE
36         qsat_ftsol(i,nsrf) = qsatl(ftsol(i,nsrf))/pplay(i)
37      ENDIF
38   ENDDO
39ENDDO
40! ========================================================== c
41! Calcul de l'evaporation Potentielle
42
43
44rhos(:) = pplay(:)/(RD*t_seri(:))
45norme_u(:)=1.+sqrt(u_seri(:)*u_seri(:)+v_seri(:)*v_seri(:))
46DO nsrf = 1, nbsrf
47  evap_pot(:,nsrf)=rhos(:)*cdragh(:)*norme_u(:)*(qsat_ftsol(:,nsrf)-q_seri(:))
48ENDDO
49RETURN
50
51END SUBROUTINE evappot
52
53END MODULE evappot_mod
Note: See TracBrowser for help on using the repository browser.