- Timestamp:
- Sep 17, 2025, 2:50:16 PM (2 months ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 3 edited
-
lmdz_ratqs_main.f90 (modified) (4 diffs)
-
lmdz_ratqs_multi.f90 (modified) (1 diff)
-
physiq_mod.F90 (modified) (2 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 -
LMDZ6/trunk/libf/phylmd/lmdz_ratqs_multi.f90
r5390 r5820 58 58 59 59 ! local 60 LOGICAL :: klein = .false.61 LOGICAL :: klein_conv = .true.62 REAL :: taup0 = 7000063 REAL :: taudp = 50064 integer :: lev_out =1060 LOGICAL, PARAMETER :: klein = .false. 61 LOGICAL, PARAMETER :: klein_conv = .true. 62 REAL, PARAMETER :: taup0 = 70000 63 REAL, PARAMETER :: taudp = 500 64 integer :: lev_out 65 65 REAL, DIMENSION (klon,klev) :: zmasse,entr0,detr0,detraincv,dqp,detrain_p,q0,qd0,tau_diss 66 66 REAL, DIMENSION (klon,klev+1) :: fm0 -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r5819 r5820 99 99 USE lmdz_blowing_snow_ini, ONLY : blowing_snow_ini , qbst_bs 100 100 USE lmdz_lscp_ini, ONLY : lscp_ini 101 USE lmdz_ratqs_main, ONLY : ratqs_main 101 USE lmdz_ratqs_main, ONLY : ratqs_main, ratqs_main_first 102 102 USE lmdz_ratqs_ini, ONLY : ratqs_ini 103 103 USE lmdz_cloud_optics_prop_ini, ONLY : cloud_optics_prop_ini … … 3931 3931 ENDDO 3932 3932 3933 CALL ratqs_main_first(klon, cell_area) 3933 3934 CALL ratqs_main(klon,klev,nbsrf,prt_level,lunout, & 3934 3935 iflag_ratqs,iflag_con,iflag_cld_th,pdtphys, &
Note: See TracChangeset
for help on using the changeset viewer.
