- Timestamp:
- Nov 17, 2025, 3:50:06 PM (6 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd/coef_diff_turb_mod.f90
r5296 r5868 17 17 ycoefm, ycoefh ,yq2, yeps, ydrgpro) 18 18 19 USE dimphy 19 USE dimphy, ONLY : klev 20 USE mod_grid_phy_lmdz, ONLY: klon_glo 20 21 USE indice_sol_mod 21 22 USE print_control_mod, ONLY: prt_level, lunout … … 34 35 REAL, INTENT(IN) :: dtime 35 36 INTEGER, INTENT(IN) :: nsrf, knon 36 INTEGER, DIMENSION(k lon), INTENT(IN) :: ni37 REAL, DIMENSION(k lon,klev+1), INTENT(IN) :: ypaprs38 REAL, DIMENSION(k lon,klev), INTENT(IN) :: ypplay39 REAL, DIMENSION(k lon,klev), INTENT(IN) :: yu, yv40 REAL, DIMENSION(k lon,klev), INTENT(IN) :: yq, yt41 REAL, DIMENSION(k lon), INTENT(IN) :: yts, yqsurf42 REAL, DIMENSION(k lon), INTENT(IN) :: ycdragm37 INTEGER, DIMENSION(knon), INTENT(IN) :: ni 38 REAL, DIMENSION(knon,klev+1), INTENT(IN) :: ypaprs 39 REAL, DIMENSION(knon,klev), INTENT(IN) :: ypplay 40 REAL, DIMENSION(knon,klev), INTENT(IN) :: yu, yv 41 REAL, DIMENSION(knon,klev), INTENT(IN) :: yq, yt 42 REAL, DIMENSION(knon), INTENT(IN) :: yts, yqsurf 43 REAL, DIMENSION(knon), INTENT(IN) :: ycdragm 43 44 !FC 44 REAL, DIMENSION(k lon,klev), INTENT(IN) :: ydrgpro45 REAL, DIMENSION(knon,klev), INTENT(IN) :: ydrgpro 45 46 46 47 47 48 ! InOutput arguments 48 49 !**************************************************************************************** 49 REAL, DIMENSION(k lon,klev+1), INTENT(INOUT):: yq250 REAL, DIMENSION(knon,klev+1), INTENT(INOUT):: yq2 50 51 51 52 ! Output arguments 52 53 !**************************************************************************************** 53 REAL, DIMENSION(k lon,klev+1), INTENT(OUT) :: yeps54 REAL, DIMENSION(k lon,klev), INTENT(OUT) :: ycoefh55 REAL, DIMENSION(k lon,klev), INTENT(OUT) :: ycoefm54 REAL, DIMENSION(knon,klev+1), INTENT(OUT) :: yeps 55 REAL, DIMENSION(knon,klev), INTENT(OUT) :: ycoefh 56 REAL, DIMENSION(knon,klev), INTENT(OUT) :: ycoefm 56 57 57 58 ! Other local variables 58 59 !**************************************************************************************** 59 60 INTEGER :: k, i, j 60 REAL, DIMENSION(k lon,klev) :: ycoefm0, ycoefh0, yzlay, yteta61 REAL, DIMENSION(k lon,klev+1) :: yzlev, q2diag, ykmm, ykmn, ykmq62 REAL, DIMENSION(k lon) :: yustar61 REAL, DIMENSION(knon,klev) :: ycoefm0, ycoefh0, yzlay, yteta 62 REAL, DIMENSION(knon,klev+1) :: yzlev, q2diag, ykmm, ykmn, ykmq 63 REAL, DIMENSION(knon) :: yustar 63 64 64 65 ykmm = 0 !ym missing init … … 161 162 ! Mais ca fait planter le replay. 162 163 ! En attendant une réécriture, on a joute des if (Fredho) 163 if ( klon>1 .or. (klon==1 .and. knon==1) ) then 164 165 if ( klon_glo>1 .or. (klon_glo==1 .and. knon==1) ) then 164 166 CALL ustarhb(knon,klev,knon,yu,yv,ycdragm, yustar) 165 167 endif … … 171 173 ! iflag_pbl peut etre utilise comme longuer de melange 172 174 IF (iflag_pbl.GE.31) THEN 173 if ( klon>1 .or. (klon==1 .and. knon==1) ) then 175 176 if ( klon_glo>1 .or. (klon_glo==1 .and. knon==1) ) then 174 177 CALL vdif_kcay(knon,klev,knon,dtime,RG,RD,ypaprs,yt, & 175 178 yzlev,yzlay,yu,yv,yteta, & … … 236 239 INTEGER, INTENT(IN) :: knon, nsrf 237 240 REAL, INTENT(IN) :: ksta, ksta_ter 238 REAL, DIMENSION(k lon), INTENT(IN) :: ts239 REAL, DIMENSION(k lon,klev+1), INTENT(IN) :: paprs240 REAL, DIMENSION(k lon,klev), INTENT(IN) :: pplay241 REAL, DIMENSION(k lon,klev), INTENT(IN) :: u, v, t, q242 REAL, DIMENSION(k lon), INTENT(IN) :: qsurf243 244 REAL, DIMENSION(k lon,klev), INTENT(OUT) :: pcfm, pcfh241 REAL, DIMENSION(knon), INTENT(IN) :: ts 242 REAL, DIMENSION(knon,klev+1), INTENT(IN) :: paprs 243 REAL, DIMENSION(knon,klev), INTENT(IN) :: pplay 244 REAL, DIMENSION(knon,klev), INTENT(IN) :: u, v, t, q 245 REAL, DIMENSION(knon), INTENT(IN) :: qsurf 246 247 REAL, DIMENSION(knon,klev), INTENT(OUT) :: pcfm, pcfh 245 248 246 249 ! 247 250 ! Local variables: 248 251 ! 249 INTEGER, DIMENSION(k lon) :: itop ! numero de couche du sommet de la couche limite252 INTEGER, DIMENSION(knon) :: itop ! numero de couche du sommet de la couche limite 250 253 ! 251 254 ! Quelques constantes et options: … … 278 281 ! Variables locales: 279 282 INTEGER i, k !IM 120704 280 REAL zgeop(k lon,klev)281 REAL zmgeom(k lon)282 REAL zri(k lon)283 REAL zl2(k lon)283 REAL zgeop(knon,klev) 284 REAL zmgeom(knon) 285 REAL zri(knon) 286 REAL zl2(knon) 284 287 REAL zdphi, zdu2, ztvd, ztvu, zcdn 285 288 REAL zscf … … 517 520 ! 518 521 INTEGER, INTENT(IN) :: knon, nsrf 519 REAL, DIMENSION(k lon, klev+1), INTENT(IN) :: paprs520 REAL, DIMENSION(k lon, klev), INTENT(IN) :: pplay521 REAL, DIMENSION(k lon, klev), INTENT(IN) :: t(klon,klev)522 523 REAL, DIMENSION(k lon, klev), INTENT(OUT) :: pcfm, pcfh522 REAL, DIMENSION(knon, klev+1), INTENT(IN) :: paprs 523 REAL, DIMENSION(knon, klev), INTENT(IN) :: pplay 524 REAL, DIMENSION(knon, klev), INTENT(IN) :: t(klon,klev) 525 526 REAL, DIMENSION(knon, klev), INTENT(OUT) :: pcfm, pcfh 524 527 ! 525 528 ! Quelques constantes et options:
Note: See TracChangeset
for help on using the changeset viewer.
