Changeset 5481
- Timestamp:
- Jan 16, 2025, 8:14:15 PM (6 hours ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d_common/infotrac.f90
r5475 r5481 78 78 ! | nqChildren | Number of childs (1st generation only) | nqfils | 1:nqtot | 79 79 ! | iadv | Advection scheme number | iadv | 1,2,10-20(exc.15,19),30| 80 ! | isAdvected | Advected tracers flag (.TRUE. if iadv >= 0) | / | nqtrue .TRUE. values |81 ! | isInPhysics | Tracers not extracted from the main table in physics | / | nqtottr .TRUE. values |82 80 ! | iso_iGroup | Isotopes group index in isotopes(:) | / | 1:nbIso | 83 81 ! | iso_iName | Isotope name index in isotopes(iso_iGroup)%trac(:) | iso_indnum | 1:niso | … … 260 258 261 259 !============================================================================================================================== 262 ! 3) Determine the advection scheme choice for water and tracers "iadv" and the field s long name, isAdvected.260 ! 3) Determine the advection scheme choice for water and tracers "iadv" and the field "long name". 263 261 ! iadv = 1 "LMDZ-specific humidity transport" (for H2O vapour) LMV 264 262 ! iadv = 2 backward (for H2O liquid) BAK … … 278 276 !============================================================================================================================== 279 277 ALLOCATE(ttr(nqtot)) 280 jq = nqtrue+1 ; tracers(:)%iadv = -1278 jq = nqtrue+1 281 279 DO iq = 1, nqtrue 282 280 t1 => tracers(iq) … … 289 287 IF(iad == -1) CALL abort_gcm(modname, msg1, 1) 290 288 291 !--- SET FIELDS longName , iadv, isAdvected, isInPhysics289 !--- SET FIELDS longName and iadv 292 290 t1%longName = t1%name; IF(iad > 0) t1%longName=TRIM(t1%name)//descrq(iad) 293 291 t1%iadv = iad 294 t1%isAdvected = iad >= 0295 t1%isInPhysics= delPhase(t1%gen0Name) /= 'H2O' .OR. t1%component /= 'lmdz' !=== MORE EXCEPTIONS ? CO2i, SURSAT CLOUD H2O296 292 ttr(iq) = t1 297 293 … … 307 303 ttr(jq+1:jq+nm)%longName = [ (TRIM(t1%longName)//'-'//TRIM(suff(im)), im=1, nm) ] 308 304 ttr(jq+1:jq+nm)%iadv = [ (-iad, im=1, nm) ] 309 ttr(jq+1:jq+nm)%isAdvected = [ (.FALSE., im=1, nm) ]310 305 jq = jq + nm 311 306 END DO -
LMDZ6/trunk/libf/dynphy_lonlat/calfis.f90
r5285 r5481 279 279 itr=0 280 280 DO iq=1,nqtot 281 IF( .NOT.tracers(iq)%isAdvected) CYCLE281 IF(tracers(iq)%iadv < 0) CYCLE 282 282 itr = itr + 1 283 283 DO l=1,llm … … 597 597 itr = 0 598 598 DO iq=1,nqtot 599 IF( .NOT.tracers(iq)%isAdvected) CYCLE599 IF(tracers(iq)%iadv < 0) CYCLE 600 600 itr = itr + 1 601 601 DO l=1,llm -
LMDZ6/trunk/libf/dynphy_lonlat/calfis_loc.F90
r5367 r5481 356 356 itr = 0 357 357 DO iq=1,nqtot 358 IF( .NOT.tracers(iq)%isAdvected) CYCLE358 IF(tracers(iq)%iadv < 0) CYCLE 359 359 itr = itr + 1 360 360 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 1059 1059 itr = 0 1060 1060 DO iq=1,nqtot 1061 IF( .NOT.tracers(iq)%isAdvected) CYCLE1061 IF(tracers(iq)%iadv < 0) CYCLE 1062 1062 itr = itr + 1 1063 1063 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) -
LMDZ6/trunk/libf/misc/readTracFiles_mod.f90
r5393 r5481 61 61 INTEGER :: nqChildren = 0 !--- Number of children (first generation) 62 62 INTEGER :: iadv = 10 !--- Advection scheme used 63 LOGICAL :: isAdvected = .FALSE. !--- "true" tracers: iadv > 0. COUNT(isAdvected )=nqtrue64 63 LOGICAL :: isInPhysics = .TRUE. !--- "true" tracers: in tr_seri. COUNT(isInPhysics)=nqtottr 65 64 INTEGER :: iso_iGroup = 0 !--- Isotopes group index in isotopes(:) … … 185 184 ! * The "keys" component (of type keys_type) is in principle enough to store everything we could need. 186 185 ! But some variables are stored as direct-access keys to make the code more readable and because they are used often. 187 ! * Most of the direct-access keys are set in this module, but some are not (longName, iadv , isAdvectedfor now).186 ! * Most of the direct-access keys are set in this module, but some are not (longName, iadv and isInPhysicsfor now). 188 187 ! * Some of the direct-access keys must be updated (using the routine "setDirectKeys") is a subset of "tracers(:)" 189 188 ! is extracted: the indexes are no longer valid for a subset (examples: iqParent, iqDescen). -
LMDZ6/trunk/libf/misc/wxios_mod.F90
r5310 r5481 188 188 ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs 189 189 DO iq = 1, nqtot 190 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE190 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 191 191 dn = 'd'//TRIM(tracers(iq)%name)//'_' 192 192 … … 241 241 ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs 242 242 DO iq = 1, nqtot 243 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE243 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 244 244 245 245 unt = "kg m-2" -
LMDZ6/trunk/libf/phydev/infotrac_phy.f90
r5268 r5481 32 32 TYPE(keys_type) :: keys !--- <key>=<val> pairs vector 33 33 INTEGER :: iadv = 10 !--- Advection scheme used 34 LOGICAL :: isAdvected = .FALSE. !--- "true" tracers: iadv > 0. COUNT(isAdvected )=nqtrue35 34 LOGICAL :: isInPhysics = .TRUE. !--- "true" tracers: in tr_seri. COUNT(isInPhysics)=nqtottr 36 35 INTEGER :: iso_iGroup = 0 !--- Isotopes group index in isotopes(:) -
LMDZ6/trunk/libf/phylmd/infotrac_phy.F90
r5475 r5481 80 80 ! | nqDescen | Number of the descendants (all generations) | nqdesc | 1:nqtot | 81 81 ! | nqChildren | Number of childs (1st generation only) | nqfils | 1:nqtot | 82 ! | isAdvected | Advected tracers flag (.TRUE. if iadv >= 0) | / | nqtrue .TRUE. values | 83 ! | isInPhysics | Tracers not extracted from the main table in physics | / | nqtottr .TRUE. values | 82 ! | isInPhysics | Advected tracers from the main table kept in physics | / | nqtottr .TRUE. values | 84 83 ! | iso_iGroup | Isotopes group index in isotopes(:) | / | 1:nbIso | 85 84 ! | iso_iName | Isotope name index in isotopes(iso_iGroup)%trac(:) | iso_indnum | 1:niso | … … 284 283 285 284 !============================================================================================================================== 286 ! 3) Determine the advection scheme ; needed to compute the full tracers list, the long names , nqtot and %isAdvected285 ! 3) Determine the advection scheme ; needed to compute the full tracers list, the long names and nqtot 287 286 !============================================================================================================================== 288 287 ALLOCATE(ttr(nqtot)) 289 jq = nqtrue+1 ; tracers(:)%iadv = -1288 jq = nqtrue+1 290 289 DO iq = 1, nqtrue 291 290 t1 => tracers(iq) … … 298 297 IF(iad == -1) CALL abort_physic(modname, msg1, 1) 299 298 300 !--- SET FIELDS longName, is Advected, isInPhysics299 !--- SET FIELDS longName, isInPhysics 301 300 t1%longName = t1%name; IF(iad > 0) t1%longName=TRIM(t1%name)//descrq(iad) 302 t1%isAdvected = iad >= 0 303 t1%isInPhysics= delPhase(t1%gen0Name) /= 'H2O' .OR. t1%component /= 'lmdz' !=== MORE EXCEPTIONS ? CO2i, SURSAT CLOUD H2O 301 t1%isInPhysics= iad >= 0 .AND. (delPhase(t1%gen0Name) /= 'H2O' .OR. t1%component /= 'lmdz') 304 302 ttr(iq) = t1 305 303 … … 314 312 ttr(jq+1:jq+nm)%parent = [ (TRIM(t1%parent) //'-'//TRIM(suff(im)), im=1, nm) ] 315 313 ttr(jq+1:jq+nm)%longName = [ (TRIM(t1%longName)//'-'//TRIM(suff(im)), im=1, nm) ] 316 ttr(jq+1:jq+nm)%isAdvected = [ (.FALSE., im=1, nm) ]317 314 ttr(jq+1:jq+nm)%isInPhysics = [ (.FALSE., im=1, nm) ] 318 315 jq = jq + nm … … 383 380 t => tracers 384 381 CALL msg('Information stored in '//TRIM(modname)//': ', modname) 385 IF(dispTable('isssssssssiiiiiiii', ['iq ', 'name', 'lNam', 'g0Nm', 'prnt', 'type', 'phas', 'comp', & 386 'isPh', 'isAd', 'iGen', 'iqPr', 'nqDe', 'nqCh', 'iGrp', 'iNam', 'iZon', 'iPha'], & 387 cat(t%name, t%longName, t%gen0Name, t%parent, t%type, t%phase, t%component, & 388 bool2str(t%isInPhysics), bool2str(t%isAdvected)), & 382 IF(dispTable('issssssssiiiiiiii', ['iq ', 'name', 'lNam', 'g0Nm', 'prnt', 'type', 'phas', 'comp', & 383 'isPh', 'iGen', 'iqPr', 'nqDe', 'nqCh', 'iGrp', 'iNam', 'iZon', 'iPha'], & 384 cat(t%name, t%longName, t%gen0Name, t%parent, t%type, t%phase, t%component, bool2str(t%isInPhysics)),& 389 385 cat([(iq, iq=1, nqtot)], t%iGeneration, t%iqParent, t%nqDescen, t%nqChildren, t%iso_iGroup, & 390 386 t%iso_iName, t%iso_iZone, t%iso_iPhase), nColMax=maxTableWidth, nHead=2, sub=modname)) & -
LMDZ6/trunk/libf/phylmd/phyetat0_mod.f90
r5310 r5481 525 525 it = 0 526 526 DO iq = 1, nqtot 527 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE527 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 528 528 it = it+1 529 529 tname = tracers(iq)%name -
LMDZ6/trunk/libf/phylmd/phyredem.f90
r5296 r5481 356 356 it = 0 357 357 DO iq = 1, nqtot 358 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE358 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 359 359 it = it+1 360 360 CALL put_field(pass,"trs_"//tracers(iq)%name, "", trs(:, it)) -
LMDZ6/trunk/libf/phylmd/phys_output_mod.F90
r5473 r5481 513 513 itr = 0; itrb = 0 514 514 DO iq = 1, nqtot 515 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE515 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 516 516 itr = itr + 1 517 517 dn = 'd'//TRIM(tracers(iq)%name)//'_' … … 638 638 639 639 ! DO iq=1,nqtot 640 ! IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE640 ! IF(.NOT.tracers(iq)%isInPhysics) CYCLE 641 641 ! WRITE(*,'(a,i1,a,10i3)')'trac(',iq,')%flag = ',o_trac(iq)%flag 642 642 ! WRITE(*,'(a,i1,a)')'trac(',iq,')%name = '//TRIM(o_trac(iq)%name) -
LMDZ6/trunk/libf/phylmd/traclmdz_mod.f90
r5285 r5481 261 261 it = 0 262 262 DO iq = 1, nqtot 263 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE263 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 264 264 it = it+1 265 265 ! Test if tracer is zero everywhere. … … 310 310 311 311 USE yomcst_mod_h 312 USE dimphy312 USE dimphy 313 313 USE infotrac_phy, ONLY: nbtr, pbl_flg 314 314 USE strings_mod, ONLY: int2str -
LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90
r5310 r5481 549 549 it = 0 550 550 DO iq = 1, nqtot 551 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE551 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 552 552 it = it+1 553 553 tname = tracers(iq)%name -
LMDZ6/trunk/libf/phylmdiso/phyredem.F90
r5296 r5481 370 370 it = 0 371 371 DO iq = 1, nqtot 372 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE372 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 373 373 it = it+1 374 374 CALL put_field(pass,"trs_"//tracers(iq)%name, "", trs(:, it))
Note: See TracChangeset
for help on using the changeset viewer.