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
RevLine 
[5812]1!$gpum horizontal klon
2MODULE evappot_mod
3  PRIVATE
4
5  PUBLIC evappot
6
7  CONTAINS
8
[1724]9SUBROUTINE evappot(klon,nbsrf,ftsol,pplay,cdragh,  &
10       &    t_seri,q_seri,u_seri,v_seri,evap_pot)
11
[5284]12USE yoethf_mod_h
[5285]13USE yomcst_mod_h
[1724]14IMPLICIT NONE
15
[5274]16
[4593]17INCLUDE "FCTTRE.h"
[1724]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
[5390]51END SUBROUTINE evappot
[5812]52
53END MODULE evappot_mod
Note: See TracBrowser for help on using the repository browser.