Changeset 3198 for LMDZ6/trunk/libf/phylmd/acama_gwd_rando_m.F90
- Timestamp:
- Feb 12, 2018, 1:24:03 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/acama_gwd_rando_m.F90
r2665 r3198 20 20 use dimphy, only: klon, klev 21 21 use assert_m, only: assert 22 USE ioipsl_getin_p_mod, ONLY : getin_p 23 USE vertical_layers_mod, ONLY : presnivs 24 22 25 include "YOMCST.h" 23 26 include "clesphys.h" … … 111 114 REAL BV(KLON, KLEV + 1) ! Brunt Vaisala freq. (BVF) at 1/2 levels 112 115 REAL BVSEC ! Security to avoid negative BVF 116 117 REAL, DIMENSION(klev+1) ::HREF 118 LOGICAL, SAVE :: gwd_reproductibilite_mpiomp=.true. 119 LOGICAL, SAVE :: firstcall = .TRUE. 120 !$OMP THREADPRIVATE(firstcall,gwd_reproductibilite_mpiomp) 121 122 CHARACTER (LEN=20) :: modname='flott_gwd_rando' 123 CHARACTER (LEN=80) :: abort_message 124 125 126 127 IF (firstcall) THEN 128 ! Cle introduite pour resoudre un probleme de non reproductibilite 129 ! Le but est de pouvoir tester de revenir a la version precedenete 130 ! A eliminer rapidement 131 CALL getin_p('gwd_reproductibilite_mpiomp',gwd_reproductibilite_mpiomp) 132 IF (NW+4*(NA-1)+NA>=KLEV) THEN 133 abort_message = 'NW+3*NA>=KLEV Probleme pour generation des ondes' 134 CALL abort_physic (modname,abort_message,1) 135 ENDIF 136 firstcall=.false. 137 ! CALL iophys_ini 138 ENDIF 113 139 114 140 !----------------------------------------------------------------- … … 205 231 ! Launching altitude 206 232 233 IF (gwd_reproductibilite_mpiomp) THEN 234 ! Reprend la formule qui calcule PH en fonction de PP=play 235 DO LL = 2, KLEV 236 HREF(LL) = EXP((LOG(presnivs(LL)) + LOG(presnivs(LL - 1))) / 2.) 237 end DO 238 HREF(KLEV + 1) = 0. 239 HREF(1) = 2. * presnivs(1) - HREF(2) 240 ELSE 241 HREF(1:KLEV)=PH(KLON/2,1:KLEV) 242 ENDIF 243 207 244 LAUNCH=0 208 245 LTROP =0 209 246 DO LL = 1, KLEV 210 IF ( PH(KLON / 2, LL) / PH(KLON / 2,1) > XLAUNCH) LAUNCH = LL247 IF (HREF(LL) / HREF(1) > XLAUNCH) LAUNCH = LL 211 248 ENDDO 212 249 DO LL = 1, KLEV 213 IF ( PH(KLON / 2, LL) / PH(KLON / 2,1) > XTROP) LTROP = LL250 IF (HREF(LL) / HREF(1) > XTROP) LTROP = LL 214 251 ENDDO 252 !LAUNCH=22 ; LTROP=33 253 ! print*,'LAUNCH=',LAUNCH,'LTROP=',LTROP 254 215 255 216 256 ! PRINT *,'LAUNCH IN ACAMARA:',LAUNCH … … 293 333 294 334 JW = 0 295 DO JP = 1, NP 296 DO JK = 1, NK 297 DO JO = 1, NO 298 JW = JW + 1 335 DO JW = 1, NW 299 336 ! Angle 300 337 DO II = 1, KLON … … 340 377 ! RUW0(JW, II) = RUWFRT 341 378 ENDDO 342 end DO343 end DO344 379 end DO 345 380
Note: See TracChangeset
for help on using the changeset viewer.