Changeset 3218


Ignore:
Timestamp:
Feb 16, 2024, 9:15:46 AM (10 months ago)
Author:
flefevre
Message:

VENUS: bug fix in Jeans escape (wrong index for H and H2) + some cosmetics

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/moldiff_red.F90

    r2836 r3218  
    106106
    107107! Initializations at first call
     108
    108109      if (firstcall) then
    109110
    110 ! Liste des especes qui sont diffuses si elles sont presentes
    111 
    112         ListeDiff(1)='co2'
    113         ListeDiff(2)='o'
    114         ListeDiff(3)='n2'
    115         ListeDiff(4)='ar'
    116         ListeDiff(5)='co'
    117         ListeDiff(6)='h2'
    118         ListeDiff(7)='h'
    119         ListeDiff(8)='d2'
    120         ListeDiff(9)='hd'
    121         ListeDiff(10)='d'
    122         ListeDiff(11)='o2'
    123         ListeDiff(12)='h2o'
    124         ListeDiff(13)='o3'
    125         ListeDiff(14)='n'
    126         ListeDiff(15)='he'
    127         ListeDiff(16)='n2d'
    128         i_esc_h=1000
    129         i_esc_h2=1000
    130 
    131 ! On regarde quelles especes diffusables sont presentes
    132 
    133         ncompdiff=0
    134         indic_diff(1:nq)=0
    135        
    136         do nn=1,nq
    137 
    138         do n=1,nb_esp_diff
    139         if (ListeDiff(n) .eq. tname(nn)) then
    140         indic_diff(nn)=1
    141         if (tname(nn) .eq. 'h') i_esc_h=n
    142         if (tname(nn) .eq. 'h2') i_esc_h2=n
    143         endif
    144         enddo
    145 
    146         if (indic_diff(nn) .eq. 1) then
    147         print*,'specie ', tname(nn), 'diffused in moldiff_red'
    148         ncompdiff=ncompdiff+1
    149         endif
    150         enddo
    151         print*,'number of diffused species:',ncompdiff
    152         allocate(gcmind(ncompdiff))
    153         allocate(mol_tr(ncompdiff))
    154 
    155 !   Store gcm indexes in gcmind and molar masses in mol_tr
    156         n=0
    157         do nn=1,nq
    158         if (indic_diff(nn) .eq. 1) then
    159         n=n+1
    160         gcmind(n)=nn
    161         mol_tr(n) = M_tr(nn)
    162         endif
    163         enddo
    164 
    165 !       print*,'gcmind' ,gcmind
    166 !       STOP
     111!        list of diffused species (if present)
     112
     113         ListeDiff(1)  = 'co2'
     114         ListeDiff(2)  = 'o'
     115         ListeDiff(3)  = 'n2'
     116         ListeDiff(4)  = 'ar'
     117         ListeDiff(5)  = 'co'
     118         ListeDiff(6)  = 'h2'
     119         ListeDiff(7)  = 'h'
     120         ListeDiff(8)  = 'd2'
     121         ListeDiff(9)  = 'hd'
     122         ListeDiff(10) = 'd'
     123         ListeDiff(11) = 'o2'
     124         ListeDiff(12) = 'h2o'
     125         ListeDiff(13) = 'o3'
     126         ListeDiff(14) = 'n'
     127         ListeDiff(15) = 'he'
     128         ListeDiff(16) = 'n2d'
     129
     130         i_esc_h  = 1000
     131         i_esc_h2 = 1000
     132
     133!        search for species that can be diffused
     134
     135         ncompdiff = 0
     136         indic_diff(1:nq) = 0
     137
     138         do nn = 1,nq
     139            do n = 1,nb_esp_diff
     140               if (ListeDiff(n) == tname(nn)) then
     141                  indic_diff(nn) = 1
     142               end if
     143            end do
     144
     145            if (indic_diff(nn) == 1) then
     146               print*,'species ', tname(nn), 'diffused in moldiff_red'
     147               ncompdiff = ncompdiff + 1
     148            end if
     149         end do
     150
     151         print*,'number of diffused species:',ncompdiff
     152         allocate(gcmind(ncompdiff))
     153         allocate(mol_tr(ncompdiff))
     154
     155!        store gcm indexes in gcmind and molar masses in mol_tr
     156
     157         n = 0
     158         do nn = 1,nq
     159            if (indic_diff(nn) == 1) then
     160               n = n + 1
     161               gcmind(n) = nn
     162               mol_tr(n) = M_tr(nn)
     163               if (tname(nn) == 'h') i_esc_h = n
     164               if (tname(nn) == 'h2') i_esc_h2 = n
     165            end if
     166         end do
     167
    167168! find vertical index above which diffusion is computed
    168169
Note: See TracChangeset for help on using the changeset viewer.