Changeset 5820 for LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.f90
- Timestamp:
- Sep 17, 2025, 2:50:16 PM (2 months ago)
- File:
-
- 1 edited
-
LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.f90 (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_ratqs_main.f90
r5816 r5820 1 !$gpum horizontal klon ngrid 1 2 MODULE lmdz_ratqs_main 3 PRIVATE 4 5 LOGICAL, SAVE :: first=.TRUE. ! fisrt call to ratqs_main 6 !$OMP THREADPRIVATE(first) 7 8 REAL, SAVE :: resolmax 9 10 REAL, SAVE, ALLOCATABLE :: resol(:) 11 !$OMP THREADPRIVATE(resol) 12 13 PUBLIC ratqs_main_first, ratqs_main 2 14 3 15 CONTAINS 16 17 SUBROUTINE ratqs_main_first(klon, cell_area) 18 19 IMPLICIT NONE 20 INTEGER, INTENT(in) :: klon 21 REAL, DIMENSION(klon), INTENT(in) :: cell_area 22 INTEGER :: i 23 24 IF (first) THEN 25 ALLOCATE(resol(klon)) 26 resolmax=sqrt(maxval(cell_area)) 27 DO i=1,klon 28 resol(i) = sqrt(cell_area(i)) 29 END DO 30 first = .FALSE. 31 END IF 32 33 END SUBROUTINE ratqs_main_first 4 34 5 35 SUBROUTINE ratqs_main(klon,klev,nbsrf,prt_level,lunout, & … … 45 75 logical, dimension(klon,klev),intent(in) :: ptconv 46 76 real, dimension(klon,klev),intent(in) :: rnebcon0th,clwcon0th 47 real, dimension(klon,klev),intent(in) :: wake_deltaq,wake_s 77 real, dimension(klon,klev),intent(in) :: wake_deltaq 78 real, dimension(klon),intent(in) :: wake_s 48 79 real, dimension(klon,nbsrf),intent(in) :: t2m,q2m 49 80 real, dimension(klon), intent(in) :: cell_area … … 62 93 real facteur,zfratqs1,zfratqs2 63 94 real, dimension(klon,klev) :: ratqs_hetero_,ratqs_oro_,ratqs_tke_ 64 real resol,resolmax,fact95 real, dimension(klon) :: fact 65 96 66 97 !------------------------------------------------------------------------- … … 163 194 ! Audran, Meryl, Lea, Gwendal and Etienne 164 195 ! April 2023 165 resolmax=sqrt(maxval(cell_area))166 196 do k=1,klev 167 197 do i=1,klon 168 resol=sqrt(cell_area(i)) 169 fact=sqrt(resol/resolmax) 170 ratqss(i,k)=ratqsbas*fact+0.5*(ratqshaut-ratqsbas)*fact & 198 fact(i) = sqrt(resol(i)/resolmax) 199 ratqss(i,k)=ratqsbas*fact(i)+0.5*(ratqshaut-ratqsbas)*fact(i) & 171 200 *( tanh( (ratqsp0-pplay(i,k))/ratqsdp) + 1.) 172 201 enddo
Note: See TracChangeset
for help on using the changeset viewer.
