Changeset 4052
- Timestamp:
- Dec 26, 2021, 10:27:36 PM (3 years ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/dynetat0.f90
r4050 r4052 137 137 ! Rayleigh distillation law. 138 138 iName = tracers(iq)%iso_iName 139 IF(.NOT.ok_isotopes .OR. iName<=0) CYCLE 139 140 iZone = tracers(iq)%iso_iZone 140 141 iPhase= tracers(iq)%iso_iPhase 141 142 iqParent = tracers(iq)%iqParent 142 IF(ok_isotopes .AND. iName>0) THEN 143 IF(iZone==0) q(:,:,:,iq) = q(:,:,:,iqParent)*tnat(iName) & 144 *(q(:,:,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.) 145 IF(iZone==1) q(:,:,:,iq) = q(:,:,:,iqiso(iso_indnum(iq),iPhase)) 146 END IF 143 IF(iZone==0) q(:,:,:,iq) = q(:,:,:,iqParent)*tnat(iName) & 144 *(q(:,:,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.) 145 IF(iZone==1) q(:,:,:,iq) = q(:,:,:,iqiso(iso_indnum(iq),iPhase)) 147 146 END DO 148 147 -
LMDZ6/trunk/libf/dyn3d/iniacademic.F90
r4050 r4052 278 278 do iq=1,nqtot 279 279 q(:,:,iq)=0. 280 ! IF(tracers(iq)%name == 'H2O'//phases_sep//'g') q(:,:,iq)=1.e-10 281 ! IF(tracers(iq)%name == 'H2O'//phases_sep//'l') q(:,:,iq)=1.e-15 280 282 IF(tracers(iq)%name == 'H2Ov') q(:,:,iq)=1.e-10 281 283 IF(tracers(iq)%name == 'H2Ol') q(:,:,iq)=1.e-15 … … 284 286 ! distill de Rayleigh très simplifiée 285 287 iName = tracers(iq)%iso_iName 288 if (.NOT.ok_isotopes .OR. iName <= 0) CYCLE 286 289 iZone = tracers(iq)%iso_iZone 287 290 iPhase= tracers(iq)%iso_iPhase 288 291 iqParent = tracers(iq)%iqParent 289 if (ok_isotopes .AND. iName > 0) then 290 if (iZone == 0) q(:,:,iq) = q(:,:,iqParent)*tnat(iName) & 291 *(q(:,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1) 292 if (iZone == 1) q(:,:,iq) = q(:,:,iqiso(iso_indnum(iq),iPhase)) 293 endif !if (ok_isotopes) then 294 292 if (iZone == 0) q(:,:,iq) = q(:,:,iqParent)*tnat(iName) & 293 *(q(:,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1) 294 if (iZone == 1) q(:,:,iq) = q(:,:,iqiso(iso_indnum(iq),iPhase)) 295 295 enddo 296 296 else -
LMDZ6/trunk/libf/dyn3d/vlsplt.F
r4050 r4052 464 464 enddo 465 465 enddo 466 do ifils=1,tracers(iq)%nq Descen466 do ifils=1,tracers(iq)%nqChilds 467 467 iq2=tracers(iq)%iqDescen(ifils) 468 468 call vlx(Ratio,pente_max,masseq,u_mq,iq2) … … 1015 1015 enddo 1016 1016 1017 do ifils=1,tracers(iq)%nq Descen1017 do ifils=1,tracers(iq)%nqChilds 1018 1018 iq2=tracers(iq)%iqDescen(ifils) 1019 1019 call vlz(Ratio,pente_max,masseq,wq,iq2) -
LMDZ6/trunk/libf/dyn3d/vlspltqs.F
r4050 r4052 786 786 ! CRisi: appel récursif de l'advection sur les fils. 787 787 ! Il faut faire ça avant d'avoir mis à jour q et masse 788 !write(*,*) 'vlyqs 689: iq,nq Desc(iq)=',iq,tracers(iq)%nqDescen788 !write(*,*) 'vlyqs 689: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds 789 789 790 790 do ifils=1,tracers(iq)%nqDescen -
LMDZ6/trunk/libf/dyn3d_common/infotrac.F90
r4051 r4052 734 734 enddo !do iq=1,nqtot 735 735 tracers(:)%gen0Name = ancestor(tracers) !--- Name of the first generation ancestor 736 tracers(:)%isAdvected = tracers(:)%iadv > 0 737 ! tracers(:)%isH2Ofamily = delPhase(tracers(:)%gen0Name) == 'H2O' 738 tracers(:)%isH2Ofamily = [(tracers(iq)%gen0Name(1:3) == 'H2O', iq=1, nqtot)] 736 739 737 740 -
LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90
r4050 r4052 174 174 ! Rayleigh distillation las. 175 175 iName = tracers(iq)%iso_iName 176 IF(.NOT.ok_isotopes .OR. iName <= 0) CYCLE 176 177 iZone = tracers(iq)%iso_iZone 177 178 iPhase= tracers(iq)%iso_iPhase 178 179 iqParent = tracers(iq)%iqParent 179 IF(ok_isotopes .AND. iName>0) THEN 180 IF(iZone==0) q(:,:,iq) = q(:,:,iqParent)*tnat(iName) & 181 & *(q(:,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.) 182 IF(iZone==1) q(:,:,iq) = q(:,:,iqiso(iso_indnum(iq),iPhase)) 183 END IF 180 IF(iZone==0) q(:,:,iq) = q(:,:,iqParent)*tnat(iName) & 181 & *(q(:,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1.) 182 IF(iZone==1) q(:,:,iq) = q(:,:,iqiso(iso_indnum(iq),iPhase)) 184 183 END DO 185 184 DEALLOCATE(q_glo) -
LMDZ6/trunk/libf/dyn3dmem/iniacademic_loc.F90
r4050 r4052 284 284 do iq=1,nqtot 285 285 q(ijb_u:ije_u,:,iq)=0. 286 ! IF(tracers(iq)%name == 'H2O'//Phases_sep//'g') q(ijb_u:ije_u,:,iq)=1.e-10 287 ! IF(tracers(iq)%name == 'H2O'//phases_sep//'l') q(ijb_u:ije_u,:,iq)=1.e-15 286 288 if (tracers(iq)%name == 'H2Ov') q(ijb_u:ije_u,:,iq)=1.e-10 287 289 if (tracers(iq)%name == 'H2Ol') q(ijb_u:ije_u,:,iq)=1.e-15 … … 290 292 ! distill de Rayleigh très simplifiée 291 293 iName = tracers(iq)%iso_iName 294 if (.NOT.ok_isotopes .OR. iName <= 0) CYCLE 292 295 iZone = tracers(iq)%iso_iZone 293 296 iPhase= tracers(iq)%iso_iPhase 294 297 iqParent = tracers(iq)%iqParent 295 if (ok_isotopes .AND. iName > 0) then 296 if (iZone == 0) q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat(iName) & 297 *(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1) 298 if (iZone == 1) q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqiso(iso_indnum(iq),iPhase)) 299 endif !if (ok_isotopes) then 300 298 if (iZone == 0) q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqParent)*tnat(iName) & 299 *(q(ijb_u:ije_u,:,iqParent)/30.e-3)**(alpha_ideal(iName)-1) 300 if (iZone == 1) q(ijb_u:ije_u,:,iq) = q(ijb_u:ije_u,:,iqiso(iso_indnum(iq),iPhase)) 301 301 enddo 302 302 else -
LMDZ6/trunk/libf/dyn3dmem/vlsplt_loc.F
r4050 r4052 726 726 ! CRisi: appel récursif de l'advection sur les fils. 727 727 ! Il faut faire ça avant d'avoir mis à jour q et masse 728 !write(*,*) 'vly 689: iq,nq Desc(iq)=',iq,tracers(iq)%nqDescen728 !write(*,*) 'vly 689: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds 729 729 730 730 ijb=ij_begin-2*iip1 -
LMDZ6/trunk/libf/dyn3dmem/vlspltgen_loc.F
r4050 r4052 346 346 SELECT CASE(tracers(iq)%iadv) 347 347 CASE(0); CYCLE 348 CASE(10); call vly_loc(zq,pente_max,zm,mv,iq)348 CASE(10); call vly_loc(zq,pente_max,zm,mv, iq) 349 349 CASE(14); call vlyqs_loc(zq,pente_max,zm,mv,qsat,iq) 350 350 CASE DEFAULT -
LMDZ6/trunk/libf/dyn3dmem/vlspltqs_loc.F
r4050 r4052 264 264 c$OMP END DO NOWAIT 265 265 266 cym ATTENTION ICI en OpenMP reduction pas forcement n écessaire266 cym ATTENTION ICI en OpenMP reduction pas forcement necessaire 267 267 cym IF(n0.gt.1) THEN 268 268 cym IF(n0.gt.0) THEN … … 335 335 c$OMP END DO NOWAIT 336 336 337 ! CRisi: appel r écursif de l'advection sur les fils.338 ! Il faut faire ça avant d'avoir mis àjour q et masse339 !write(*,*) 'vlspltqs 336: iq,ijb_x, iqDescen(iq)=',340 ! & iq,ijb_x,tracers(iq)% iqDescen337 ! CRisi: appel recursif de l'advection sur les fils. 338 ! Il faut faire ca avant d'avoir mis a jour q et masse 339 !write(*,*) 'vlspltqs 336: iq,ijb_x,nqChilds(iq)=', 340 ! & iq,ijb_x,tracers(iq)%nqChilds 341 341 342 342 do ifils=1,tracers(iq)%nqDescen … … 356 356 c$OMP END DO NOWAIT 357 357 enddo 358 do ifils=1,tracers(iq)%nq Descen358 do ifils=1,tracers(iq)%nqChilds 359 359 iq2=tracers(iq)%iqDescen(ifils) 360 360 !write(*,*) 'vlxqs 349: on appelle vlx pour iq2=',iq2 … … 727 727 c$OMP END DO NOWAIT 728 728 729 ! CRisi: appel r écursif de l'advection sur les fils.730 ! Il faut faire ça avant d'avoir mis àjour q et masse731 !write(*,*) 'vlyqs 689: iq, iqDescen(iq)=',iq,tracers(iq)%iqDescen729 ! CRisi: appel recursif de l'advection sur les fils. 730 ! Il faut faire ca avant d'avoir mis a jour q et masse 731 !write(*,*) 'vlyqs 689: iq,nqChilds(iq)=',iq,tracers(iq)%nqChilds 732 732 733 733 ijb=ij_begin-2*iip1 … … 748 748 DO l=1,llm 749 749 ! modif des bornes: CRisi 16 nov 2020 750 ! d'abord masse avec bornes corrig ées750 ! d'abord masse avec bornes corrigees 751 751 DO ij=ijbm,ijem 752 752 !MVals: veiller a ce qu'on n'ait pas de denominateur nul … … 767 767 c$OMP END DO NOWAIT 768 768 enddo 769 do ifils=1,tracers(iq)%nq Descen769 do ifils=1,tracers(iq)%nqChilds 770 770 iq2=tracers(iq)%iqDescen(ifils) 771 771 !write(lunout,*) 'vly: appel recursiv vly iq2=',iq2 -
LMDZ6/trunk/libf/phylmd/infotrac_phy.F90
r4050 r4052 145 145 146 146 CHARACTER(LEN=30) :: modname="init_infotrac_phy" 147 INTEGER :: iq148 147 149 148 nqtot=nqtot_ … … 153 152 nqtottr=nqtottr_ 154 153 ALLOCATE(tracers(nqtot)); tracers(:) = tracers_(:) 155 tracers(:)%isAdvected = tracers(:)%iadv > 0156 ! tracers(:)%isH2Ofamily = delPhase(tracers(:)%gen0Name) == 'H2O'157 tracers(:)%isH2Ofamily = [(tracers(iq)%gen0Name(1:3) == 'H2O', iq=1, nqtot)]158 154 #ifdef CPP_StratAer 159 155 nbtr_bin=nbtr_bin_ … … 209 205 ALLOCATE(index_trac(ntraceurs_zone,niso)) 210 206 index_trac(:,:)=index_trac_(:,:) 211 212 ALLOCATE(itr_indice(nqtottr))213 itr_indice(:)=itr_indice_(:)214 207 ENDIF ! of IF(ok_isotopes) 208 209 ALLOCATE(itr_indice(nqtottr)) 210 itr_indice(:)=itr_indice_(:) 215 211 216 212 END SUBROUTINE init_infotrac_phy -
LMDZ6/trunk/libf/phylmdiso/infotrac_phy.F90
r4050 r4052 205 205 ALLOCATE(index_trac(ntraceurs_zone,niso)) 206 206 index_trac(:,:)=index_trac_(:,:) 207 208 207 ENDIF ! of IF(ok_isotopes) 209 208 210 211 209 ALLOCATE(itr_indice(nqtottr)) 210 itr_indice(:)=itr_indice_(:) 212 211 213 212 write(*,*) 'infotrac_phy 207: nqtottr=',nqtottr
Note: See TracChangeset
for help on using the changeset viewer.