| Directory: | ./ |
|---|---|
| File: | dyn/groupe.f |
| Date: | 2022-01-11 19:19:34 |
| Exec | Total | Coverage | |
|---|---|---|---|
| Lines: | 25 | 27 | 92.6% |
| Branches: | 19 | 24 | 79.2% |
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | ! | ||
| 2 | ! $Header$ | ||
| 3 | ! | ||
| 4 | 480 | subroutine groupe(pext,pbaru,pbarv,pbarum,pbarvm,wm) | |
| 5 | |||
| 6 | use comconst_mod, only: ngroup | ||
| 7 | |||
| 8 | implicit none | ||
| 9 | |||
| 10 | c sous-programme servant a fitlrer les champs de flux de masse aux | ||
| 11 | c poles en "regroupant" les mailles 2 par 2 puis 4 par 4 etc. au fur | ||
| 12 | c et a mesure qu'on se rapproche du pole. | ||
| 13 | c | ||
| 14 | c en entree: pext, pbaru et pbarv | ||
| 15 | c | ||
| 16 | c en sortie: pbarum,pbarvm et wm. | ||
| 17 | c | ||
| 18 | c remarque, le wm est recalcule a partir des pbaru pbarv et on n'a donc | ||
| 19 | c pas besoin de w en entree. | ||
| 20 | |||
| 21 | include "dimensions.h" | ||
| 22 | include "paramet.h" | ||
| 23 | include "comgeom2.h" | ||
| 24 | |||
| 25 | ! integer ngroup | ||
| 26 | ! parameter (ngroup=3) | ||
| 27 | |||
| 28 | |||
| 29 | real pbaru(iip1,jjp1,llm),pbarv(iip1,jjm,llm) | ||
| 30 | real pext(iip1,jjp1,llm) | ||
| 31 | |||
| 32 | real pbarum(iip1,jjp1,llm),pbarvm(iip1,jjm,llm) | ||
| 33 | real wm(iip1,jjp1,llm) | ||
| 34 | |||
| 35 | real zconvm(iip1,jjp1,llm),zconvmm(iip1,jjp1,llm) | ||
| 36 | |||
| 37 | real uu | ||
| 38 | |||
| 39 | integer i,j,l | ||
| 40 | |||
| 41 | logical firstcall,groupe_ok | ||
| 42 | save firstcall,groupe_ok | ||
| 43 | |||
| 44 | data firstcall/.true./ | ||
| 45 | data groupe_ok/.true./ | ||
| 46 | |||
| 47 | if (iim==1) then | ||
| 48 | groupe_ok=.false. | ||
| 49 | endif | ||
| 50 | |||
| 51 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 479 times.
|
480 | if (firstcall) then |
| 52 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if (groupe_ok) then |
| 53 |
3/6✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
1 | if(mod(iim,2**ngroup).ne.0) stop'probleme du nombre de point' |
| 54 | endif | ||
| 55 | 1 | firstcall=.false. | |
| 56 | endif | ||
| 57 | |||
| 58 | |||
| 59 | c Champs 1D | ||
| 60 | |||
| 61 | 480 | call convflu(pbaru,pbarv,llm,zconvm) | |
| 62 | |||
| 63 | 480 | call scopy(ijp1llm,zconvm,1,zconvmm,1) | |
| 64 | 480 | call scopy(ijmllm,pbarv,1,pbarvm,1) | |
| 65 | |||
| 66 |
1/2✓ Branch 0 taken 480 times.
✗ Branch 1 not taken.
|
480 | if (groupe_ok) then |
| 67 | 480 | call groupeun(jjp1,llm,zconvmm) | |
| 68 | 480 | call groupeun(jjm,llm,pbarvm) | |
| 69 | |||
| 70 | c Champs 3D | ||
| 71 |
2/2✓ Branch 0 taken 480 times.
✓ Branch 1 taken 18720 times.
|
19200 | do l=1,llm |
| 72 |
2/2✓ Branch 0 taken 580320 times.
✓ Branch 1 taken 18720 times.
|
599520 | do j=2,jjm |
| 73 | 580320 | uu=pbaru(iim,j,l) | |
| 74 |
2/2✓ Branch 0 taken 18570240 times.
✓ Branch 1 taken 580320 times.
|
19150560 | do i=1,iim |
| 75 | 18570240 | uu=uu+pbarvm(i,j,l)-pbarvm(i,j-1,l)-zconvmm(i,j,l) | |
| 76 | 19150560 | pbarum(i,j,l)=uu | |
| 77 | c zconvm(i,j,l ) = xflu(i-1,j,l)-xflu(i,j,l)+ | ||
| 78 | c * yflu(i,j,l)-yflu(i,j-1,l) | ||
| 79 | enddo | ||
| 80 | 599040 | pbarum(iip1,j,l)=pbarum(1,j,l) | |
| 81 | enddo | ||
| 82 | enddo | ||
| 83 | |||
| 84 | else | ||
| 85 | ✗ | pbarum(:,:,:)=pbaru(:,:,:) | |
| 86 | ✗ | pbarvm(:,:,:)=pbarv(:,:,:) | |
| 87 | endif | ||
| 88 | |||
| 89 | c integration de la convergence de masse de haut en bas ...... | ||
| 90 | do l=1,llm | ||
| 91 | 480 | do j=1,jjp1 | |
| 92 | do i=1,iip1 | ||
| 93 | zconvmm(i,j,l)=zconvmm(i,j,l) | ||
| 94 | enddo | ||
| 95 | enddo | ||
| 96 | enddo | ||
| 97 |
2/2✓ Branch 0 taken 18240 times.
✓ Branch 1 taken 480 times.
|
18720 | do l = llm-1,1,-1 |
| 98 |
2/2✓ Branch 0 taken 601920 times.
✓ Branch 1 taken 18240 times.
|
620640 | do j=1,jjp1 |
| 99 |
2/2✓ Branch 0 taken 19863360 times.
✓ Branch 1 taken 601920 times.
|
20483520 | do i=1,iip1 |
| 100 | 20465280 | zconvmm(i,j,l)=zconvmm(i,j,l)+zconvmm(i,j,l+1) | |
| 101 | enddo | ||
| 102 | enddo | ||
| 103 | enddo | ||
| 104 | |||
| 105 | 480 | CALL vitvert(zconvmm,wm) | |
| 106 | |||
| 107 | 480 | return | |
| 108 | end | ||
| 109 | |||
| 110 |