Changeset 4060 for trunk/LMDZ.MARS/libf
- Timestamp:
- Feb 10, 2026, 11:19:31 AM (3 weeks ago)
- Location:
- trunk/LMDZ.MARS/libf/phymars
- Files:
-
- 1 deleted
- 4 edited
-
callkeys_mod.F90 (modified) (4 diffs)
-
conf_phys.F (modified) (8 diffs)
-
eofdump_mod.F90 (deleted)
-
lwxn.F (modified) (17 diffs)
-
physiq_mod.F (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/callkeys_mod.F90
r4054 r4060 10 10 logical,save :: season,diurnal,calllott,calllott_nonoro 11 11 !$OMP THREADPRIVATE(season,diurnal,calllott,calllott_nonoro) 12 logical,save :: calleofdump13 !$OMP THREADPRIVATE(calleofdump)14 12 logical,save :: callnirco2,callnlte,callthermos,callconduct 15 13 !$OMP THREADPRIVATE(callnirco2,callnlte,callthermos,callconduct) … … 21 19 !$OMP THREADPRIVATE(callyamada4,callatke) 22 20 logical,save :: callemis 23 logical,save :: callg2d 24 !$OMP THREADPRIVATE(callemis,callg2d) 25 logical,save :: linear ! ?!? 26 !$OMP THREADPRIVATE(linear) 21 !$OMP THREADPRIVATE(callemis) 27 22 logical,save :: gwd_convective_source 28 23 !$OMP THREADPRIVATE(gwd_convective_source) … … 30 25 real,save :: semi ! ?!? 31 26 !$OMP THREADPRIVATE(semi) 32 real,save :: alphan ! ?!?33 !$OMP THREADPRIVATE(alphan)34 27 real,save :: fixed_euv_value 35 28 !$OMP THREADPRIVATE(fixed_euv_value) … … 56 49 integer,save :: ilwn 57 50 !$OMP THREADPRIVATE(ilwd,ilwb,ilwn) 58 integer,save :: ncouche59 !$OMP THREADPRIVATE(ncouche)60 51 integer,save :: solvarmod ! model for solar EUV variation 61 52 !$OMP THREADPRIVATE(solvarmod) -
trunk/LMDZ.MARS/libf/phymars/conf_phys.F
r4058 r4060 46 46 & ads_massive_ice 47 47 use nonoro_gwd_mix_mod, only: calljliu_gwimix 48 use lwxn_mod, only: lwxn_linear, lwxn_alphan, lwxn_ncouche 48 49 use callkeys_mod, only: startphy_file, activice, activeco2ice, 49 & alphan,calladj, callatke, callcond,50 & calladj, callatke, callcond, 50 51 & callconduct, calldifv, callemis, 51 & calle ofdump, calleuv, callg2d, calllott,52 & calleuv, calllott, 52 53 & calllott_nonoro, callmoldiff, callmolvis, 53 54 & callnirco2, callnlte, callrad, callrichsl, … … 61 62 & euveff, fixed_euv_value, hdo, hdofrac, 62 63 & iaervar, ilwb, ilwd, ilwn, iradia, 63 & linear, latentheat_surfwater, microphys, 64 & meteo_flux, ncouche, nircorr, nltemodel, 64 & latentheat_surfwater, microphys, 65 & meteo_flux, 66 & nircorr, nltemodel, 65 67 & photochem, poreice_tifeedback, rayleigh, 66 68 & rdstorm, refill_watercap, satindexco2, … … 87 89 real :: albedo_perennialco2_north, albedo_perennialco2_south 88 90 91 logical :: callg2d ! obsolete unused flag... (but could be read from radia.def ?) 92 89 93 CHARACTER ch1*12 90 94 #ifndef MESOSCALE … … 187 191 write(*,*) " diagsoil = ",diagsoil 188 192 189 write(*,*) "Save EOF profiles in file 'profiles' for ",190 & "Climate Database?"191 calleofdump=.false. ! default value192 call getin_p("calleofdump",calleofdump)193 write(*,*) " calleofdump = ",calleofdump194 195 193 write(*,*) "Dust scenario: 1=constant dust (read from startfi", 196 194 & " or set as tauvis); 2=Viking scenario; =3 MGS scenario,", 197 195 & "=6 cold (low dust) scenario; =7 warm (high dust) scenario ", 198 & "=24,25 ... 30 :Mars Year 24, ... or 30 from TES assimilation" 199 iaervar=3 ! default value 196 & "=8 climatology scenario (our best guess of a standard Mars)", 197 & "=24,25 ... 36,37 : Mars Year 24, ... 37 from observed dust" 198 iaervar=8 ! default value 200 199 call getin_p("iaervar",iaervar) 201 200 write(*,*) " iaervar = ",iaervar … … 418 417 write(*,*)" iradia = ",iradia 419 418 420 421 write(*,*)"Output of the exchange coefficient mattrix ?",422 & "(for diagnostics only)"423 callg2d=.false. ! default value424 call getin_p("callg2d",callg2d)425 write(*,*)" callg2d = ",callg2d426 419 427 420 write(*,*)"Rayleigh scattering : (should be .false. for now)" … … 1300 1293 ilwn=1 !2 1301 1294 ilwb=1 !2 1302 l inear=.true.1303 ncouche=31304 alphan=0.41295 lwxn_linear=.true. 1296 lwxn_ncouche=3 1297 lwxn_alphan=0.4 1305 1298 semi=0 1306 1299 … … 1329 1322 1330 1323 READ(99,fmt='(a)') ch1 1331 READ(99,*) l inear1332 WRITE(*,8000) ch1,l inear1324 READ(99,*) lwxn_linear 1325 WRITE(*,8000) ch1,lwxn_linear 1333 1326 1334 1327 READ(99,fmt='(a)') ch1 1335 READ(99,*) ncouche1336 WRITE(*,8001) ch1, ncouche1328 READ(99,*) lwxn_ncouche 1329 WRITE(*,8001) ch1,lwxn_ncouche 1337 1330 1338 1331 READ(99,fmt='(a)') ch1 1339 READ(99,*) alphan1340 WRITE(*,*) ch1, alphan1332 READ(99,*) lwxn_alphan 1333 WRITE(*,*) ch1,lwxn_alphan 1341 1334 1342 1335 READ(99,fmt='(a)') ch1 … … 1361 1354 call bcast(ilwd) 1362 1355 call bcast(ilwn) 1363 call bcast(l inear)1364 call bcast( ncouche)1365 call bcast( alphan)1356 call bcast(lwxn_linear) 1357 call bcast(lwxn_ncouche) 1358 call bcast(lwxn_alphan) 1366 1359 call bcast(ilwb) 1367 1360 call bcast(callg2d) -
trunk/LMDZ.MARS/libf/phymars/lwxn.F
r3757 r4060 2 2 3 3 implicit none 4 5 logical,save :: lwxn_linear 6 !$OMP THREADPRIVATE(lwxn_linear) 7 real,save :: lwxn_alphan 8 !$OMP THREADPRIVATE(lwxn_alphan) 9 integer,save :: lwxn_ncouche 10 !$OMP THREADPRIVATE(lwxn_ncouche) 11 4 12 5 13 contains … … 53 61 c sublayer 3 54 62 c ----------------------------- nj=4 55 c sublayer ncouche56 c *********************************************************** ni=nj= ncouche+157 c sublayer ncouche63 c sublayer lwxn_ncouche 64 c *********************************************************** ni=nj=lwxn_ncouche+1 65 c sublayer lwxn_ncouche 58 66 c ----------------------------- ni=4 59 67 c sublayer 3 … … 78 86 use dimradmars_mod, only: ndlo2, nuco2, ndlon, nflev 79 87 use yomlw_h, only: nlaylte, xi, xi_ground, xi_emis 80 use callkeys_mod, only: linear, alphan, ncouche81 88 use lwtt_mod, only: lwtt 82 89 implicit none … … 135 142 c -------------- 136 143 137 jk= ncouche+1144 jk=lwxn_ncouche+1 138 145 do ja = 1 ,nuco2 139 146 do jl = 1 , kdlon … … 147 154 enddo 148 155 149 if (l inear) then150 151 do nlmd = 1 , ncouche152 cn(nlmd)=(1.0/ ncouche)153 cb(nlmd)=( ncouche-nlmd+0.5)/ncouche156 if (lwxn_linear) then 157 158 do nlmd = 1 ,lwxn_ncouche 159 cn(nlmd)=(1.0/lwxn_ncouche) 160 cb(nlmd)=(lwxn_ncouche-nlmd+0.5)/lwxn_ncouche 154 161 c print*,nlmd,cb(nlmd),cn(nlmd) 155 162 enddo … … 157 164 else 158 165 159 do nlmd = 1 , ncouche-1160 cn(nlmd)=(1- alphan)*alphan**(nlmd-1)161 cb(nlmd)=0.5*(1+ alphan)*alphan**(nlmd-1)162 enddo 163 cn( ncouche)=alphan**(ncouche-1)164 cb( ncouche)=0.5*alphan**(ncouche-1)166 do nlmd = 1 ,lwxn_ncouche-1 167 cn(nlmd)=(1-lwxn_alphan)*lwxn_alphan**(nlmd-1) 168 cb(nlmd)=0.5*(1+lwxn_alphan)*lwxn_alphan**(nlmd-1) 169 enddo 170 cn(lwxn_ncouche)=lwxn_alphan**(lwxn_ncouche-1) 171 cb(lwxn_ncouche)=0.5*lwxn_alphan**(lwxn_ncouche-1) 165 172 166 173 endif 167 174 168 175 c test 169 if (nmax .LT. ncouche) then176 if (nmax .LT. lwxn_ncouche) then 170 177 print*,'!!!!! ATTENTION !!!!! ' 171 178 print*,'probleme dans lwxn.F' 172 print*,' nmax=',nmax,' < ncouche=',ncouche179 print*,' nmax=',nmax,' < lwxn_ncouche=',lwxn_ncouche 173 180 call exit(1) 174 181 endif … … 190 197 . / aer_t(jl,ja,jk+1) 191 198 192 do nlmd=1, ncouche199 do nlmd=1,lwxn_ncouche 193 200 zu_i(jl,ja,nlmd)=cn(nlmd)*zu_layer_i(jl,ja) 194 201 zup_i(jl,ja,nlmd)=cn(nlmd)*zup_layer_i(jl,ja) … … 203 210 . / aer_t(jl,ja,jk+2) 204 211 205 do nlmd=1, ncouche212 do nlmd=1,lwxn_ncouche 206 213 zu_j(jl,ja,nlmd)=cn(nlmd)*zu_layer_j(jl,ja) 207 214 zup_j(jl,ja,nlmd)=cn(nlmd)*zup_layer_j(jl,ja) … … 216 223 c ------------------------------------ 217 224 218 do ni = 1 , ncouche+1225 do ni = 1 ,lwxn_ncouche+1 219 226 220 227 do ja = 1 ,nuco2 … … 224 231 zt_aer(jl,ja)=1. 225 232 226 do nlmd=ni, ncouche+1233 do nlmd=ni,lwxn_ncouche+1 227 234 zu(jl,ja)=zu(jl,ja)+zu_i(jl,ja,nlmd) 228 235 zup(jl,ja)=zup(jl,ja)+zup_i(jl,ja,nlmd) … … 236 243 do ja = 1 ,nuco2 237 244 do jl = 1 , kdlon 238 trans(jl,ja,ni, ncouche+1)=zt_co2(jl,ja)*zt_aer(jl,ja)245 trans(jl,ja,ni,lwxn_ncouche+1)=zt_co2(jl,ja)*zt_aer(jl,ja) 239 246 enddo 240 247 enddo … … 260 267 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 261 268 262 do nj = 1 , ncouche+1269 do nj = 1 ,lwxn_ncouche+1 263 270 264 271 do ja = 1 ,nuco2 … … 268 275 zt_aer(jl,ja)=1. 269 276 270 do nlmd=nj, ncouche+1277 do nlmd=nj,lwxn_ncouche+1 271 278 zu(jl,ja)=zu(jl,ja)+zu_j(jl,ja,nlmd) 272 279 zup(jl,ja)=zup(jl,ja)+zup_j(jl,ja,nlmd) … … 280 287 do ja = 1 ,nuco2 281 288 do jl = 1 , kdlon 282 trans(jl,ja, ncouche+1,nj)=zt_co2(jl,ja)*zt_aer(jl,ja)289 trans(jl,ja,lwxn_ncouche+1,nj)=zt_co2(jl,ja)*zt_aer(jl,ja) 283 290 enddo 284 291 enddo … … 313 320 enddo 314 321 315 do ni = 1 , ncouche322 do ni = 1 ,lwxn_ncouche 316 323 do ja = 1 ,nuco2 317 324 do jl = 1 , kdlon 318 325 319 326 ksi(jl,ja,jk)=ksi(jl,ja,jk) + 320 . ( trans(jl,ja,ni+1, ncouche+1)321 . - trans(jl,ja,ni, ncouche+1)327 . ( trans(jl,ja,ni+1,lwxn_ncouche+1) 328 . - trans(jl,ja,ni,lwxn_ncouche+1) 322 329 . - trans(jl,ja,ni+1,1) 323 330 . + trans(jl,ja,ni,1) ) … … 329 336 enddo 330 337 331 do nj = 1 , ncouche338 do nj = 1 ,lwxn_ncouche 332 339 do ja = 1 ,nuco2 333 340 do jl = 1 , kdlon 334 341 335 342 ksi(jl,ja,jk)=ksi(jl,ja,jk) + 336 . ( trans(jl,ja, ncouche+1,nj+1)343 . ( trans(jl,ja,lwxn_ncouche+1,nj+1) 337 344 . - trans(jl,ja,1,nj+1) 338 . - trans(jl,ja, ncouche+1,nj)345 . - trans(jl,ja,lwxn_ncouche+1,nj) 339 346 . + trans(jl,ja,1,nj) ) 340 347 . * (cb(nj)*dp(jl,jk+1)) * 2 … … 369 376 enddo 370 377 371 do ni = 1 , ncouche378 do ni = 1 ,lwxn_ncouche 372 379 do ja = 1 ,nuco2 373 380 do jl = 1 , kdlon 374 381 375 382 xi_ground(ig0+jl,ja) = xi_ground(ig0+jl,ja) 376 . + ( trans(jl,ja,ni+1, ncouche+1)377 . -trans(jl,ja,ni, ncouche+1))383 . + ( trans(jl,ja,ni+1,lwxn_ncouche+1) 384 . -trans(jl,ja,ni,lwxn_ncouche+1)) 378 385 . * 2 * cb(ni) 379 386 enddo -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r4058 r4060 109 109 use phyetat0_mod, only: phyetat0, tab_cntrl_mod 110 110 use wstats_mod, only: callstats, wstats, mkstats 111 use eofdump_mod, only: eofdump112 111 USE vertical_layers_mod, ONLY: ap,bp,aps,bps,presnivs,pseudoalt 113 112 USE mod_phys_lmdz_omp_data, ONLY: is_omp_master … … 137 136 use callkeys_mod, only: calladj, calltherm, callatke, calldifv 138 137 use callkeys_mod, only: callrichsl, tke_heat_flux 139 use callkeys_mod, only: calllott, calllott_nonoro , calleofdump138 use callkeys_mod, only: calllott, calllott_nonoro 140 139 use callkeys_mod, only: callrad, callnlte, callnirco2, nircorr 141 140 use callkeys_mod, only: diurnal, season, iradia, nltemodel … … 190 189 c - "startfi", "histfi" (if it's time) 191 190 c - Saving statistics (if "callstats = .true.") 192 c - Dumping eof (if "calleofdump = .true.")193 191 c - Output any needed variables in "diagfi" 194 192 c 11. Diagnostic: mass conservation of tracers … … 3195 3193 ENDIF 3196 3194 3197 c (Store EOF for Mars Climate database software)3198 IF (calleofdump) THEN3199 CALL eofdump(ngrid, nlayer, zu, zv, zt, rho, ps)3200 ENDIF3201 3195 #endif 3202 3196 !endif of ifndef MESOSCALE
Note: See TracChangeset
for help on using the changeset viewer.
