- Timestamp:
- Jul 24, 2024, 4:23:34 PM (2 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bilan_dyn_loc.f90
r5116 r5117 13 13 USE parallel_lmdz 14 14 USE mod_hallo 15 usemisc_mod15 USE misc_mod 16 16 USE write_field_loc 17 17 USE comconst_mod, ONLY: cpp, pi … … 56 56 ! ======= 57 57 58 integer,SAVE :: icum,ncum58 INTEGER,SAVE :: icum,ncum 59 59 !$OMP THREADPRIVATE(icum,ncum) 60 60 LOGICAL,SAVE :: first=.TRUE. … … 76 76 parameter (ifile=4) 77 77 78 integer,PARAMETER :: itemp=1,igeop=2,iecin=3,iang=4,iu=578 INTEGER,PARAMETER :: itemp=1,igeop=2,iecin=3,iang=4,iu=5 79 79 INTEGER,PARAMETER :: iovap=6,iun=7 80 integer,PARAMETER :: i_sortie=181 82 real,SAVE :: time=0.83 integer,SAVE :: itau=0.80 INTEGER,PARAMETER :: i_sortie=1 81 82 REAL,SAVE :: time=0. 83 INTEGER,SAVE :: itau=0. 84 84 !$OMP THREADPRIVATE(time,itau) 85 85 … … 95 95 96 96 ! champ contenant les scalaires advectés. 97 real,SAVE,ALLOCATABLE :: Q(:,:,:,:)97 REAL,SAVE,ALLOCATABLE :: Q(:,:,:,:) 98 98 99 99 ! champs cumulés 100 real,SAVE,ALLOCATABLE :: ps_cum(:,:)101 real,SAVE,ALLOCATABLE :: masse_cum(:,:,:)102 real,SAVE,ALLOCATABLE :: flux_u_cum(:,:,:)103 real,SAVE,ALLOCATABLE :: flux_v_cum(:,:,:)104 real,SAVE,ALLOCATABLE :: Q_cum(:,:,:,:)105 real,SAVE,ALLOCATABLE :: flux_uQ_cum(:,:,:,:)106 real,SAVE,ALLOCATABLE :: flux_vQ_cum(:,:,:,:)107 real,SAVE,ALLOCATABLE :: flux_wQ_cum(:,:,:,:)108 real,SAVE,ALLOCATABLE :: dQ(:,:,:,:)100 REAL,SAVE,ALLOCATABLE :: ps_cum(:,:) 101 REAL,SAVE,ALLOCATABLE :: masse_cum(:,:,:) 102 REAL,SAVE,ALLOCATABLE :: flux_u_cum(:,:,:) 103 REAL,SAVE,ALLOCATABLE :: flux_v_cum(:,:,:) 104 REAL,SAVE,ALLOCATABLE :: Q_cum(:,:,:,:) 105 REAL,SAVE,ALLOCATABLE :: flux_uQ_cum(:,:,:,:) 106 REAL,SAVE,ALLOCATABLE :: flux_vQ_cum(:,:,:,:) 107 REAL,SAVE,ALLOCATABLE :: flux_wQ_cum(:,:,:,:) 108 REAL,SAVE,ALLOCATABLE :: dQ(:,:,:,:) 109 109 110 110 … … 125 125 data ctrs/' ','TOT','MMC','TRS','STN'/ 126 126 127 real,SAVE,ALLOCATABLE :: zvQ(:,:,:,:),zvQtmp(:,:)128 real,SAVE,ALLOCATABLE :: zavQ(:,:,:),psiQ(:,:,:)129 real,SAVE,ALLOCATABLE :: zmasse(:,:),zamasse(:)130 131 real,SAVE,ALLOCATABLE :: zv(:,:),psi(:,:)127 REAL,SAVE,ALLOCATABLE :: zvQ(:,:,:,:),zvQtmp(:,:) 128 REAL,SAVE,ALLOCATABLE :: zavQ(:,:,:),psiQ(:,:,:) 129 REAL,SAVE,ALLOCATABLE :: zmasse(:,:),zamasse(:) 130 131 REAL,SAVE,ALLOCATABLE :: zv(:,:),psi(:,:) 132 132 133 133 INTEGER :: i,j,l,iQ … … 139 139 CHARACTER(LEN=10) :: infile 140 140 141 integer, save :: fileid141 INTEGER, save :: fileid 142 142 INTEGER :: thoriid, zvertiid 143 143 … … 153 153 INTEGER :: zan, dayref 154 154 ! 155 real,SAVE,ALLOCATABLE :: rlong(:),rlatg(:)155 REAL,SAVE,ALLOCATABLE :: rlong(:),rlatg(:) 156 156 INTEGER :: jjb,jje,jjn,ijb,ije 157 157 type(Request),SAVE :: Req … … 173 173 ! Initialisation 174 174 !===================================================================== 175 if(adjust) return175 IF (adjust) return 176 176 177 177 time=time+dt_app 178 178 itau=itau+1 179 179 180 if(first) THEN180 IF (first) THEN 181 181 !$OMP BARRIER 182 182 !$OMP MASTER … … 223 223 ! ncum est la frequence de stokage en pas de temps 224 224 ncum=dt_cum/dt_app 225 if(abs(ncum*dt_app-dt_cum)>1.e-5*dt_app) THEN225 IF (abs(ncum*dt_app-dt_cum)>1.e-5*dt_app) THEN 226 226 WRITE(lunout,*) & 227 227 'Pb : le pas de cumule doit etre multiple du pas' … … 358 358 359 359 !$OMP END MASTER 360 endif360 ENDIF 361 361 362 362 … … 419 419 Q_cum(:,jjb:jje,l,:)=0. 420 420 flux_uQ_cum(:,jjb:jje,l,:)=0. 421 if(pole_sud) jje=jj_end-1421 IF (pole_sud) jje=jj_end-1 422 422 flux_v_cum(:,jjb:jje,l)=0. 423 423 flux_vQ_cum(:,jjb:jje,l,:)=0. 424 424 ENDDO 425 425 !$OMP END DO NOWAIT 426 endif426 ENDIF 427 427 428 428 IF (prt_level > 5) & … … 447 447 !$OMP END DO NOWAIT 448 448 449 if(pole_sud) jje=jj_end-1449 IF (pole_sud) jje=jj_end-1 450 450 451 451 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 499 499 jjb=jj_begin 500 500 jje=jj_end 501 if(pole_sud) jje=jj_end-1501 IF (pole_sud) jje=jj_end-1 502 502 503 503 do iQ=1,nQ … … 582 582 ! PAS DE TEMPS D'ECRITURE 583 583 !===================================================================== 584 if(icum==ncum) THEN584 IF (icum==ncum) THEN 585 585 !===================================================================== 586 586 … … 647 647 jjb=jj_begin 648 648 jje=jj_end 649 if(pole_sud) jje=jj_end-1649 IF (pole_sud) jje=jj_end-1 650 650 651 651 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 670 670 jjb=jj_begin 671 671 jje=jj_end 672 if(pole_sud) jje=jj_end-1672 IF (pole_sud) jje=jj_end-1 673 673 674 674 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 717 717 jjb=jj_begin 718 718 jje=jj_end 719 if(pole_sud) jje=jj_end-1719 IF (pole_sud) jje=jj_end-1 720 720 721 721 zvQ=0. … … 776 776 ! sorties proprement dites 777 777 !$OMP MASTER 778 if(i_sortie==1) THEN778 IF (i_sortie==1) THEN 779 779 jjb=jj_begin 780 780 jje=jj_end 781 781 jjn=jj_nb 782 if(pole_sud) jje=jj_end-1783 if(pole_sud) jjn=jj_nb-1782 IF (pole_sud) jje=jj_end-1 783 IF (pole_sud) jjn=jj_nb-1 784 784 do iQ=1,nQ 785 785 do itr=1,ntr … … 801 801 jjn*llm,ndex3d) 802 802 803 endif803 ENDIF 804 804 805 805 … … 832 832 !///////////////////////////////////////////////////////////////////// 833 833 icum=0 !/////////////////////////////////////// 834 endif ! icum.eq.ncum !///////////////////////////////////////834 ENDIF ! icum.EQ.ncum !/////////////////////////////////////// 835 835 !///////////////////////////////////////////////////////////////////// 836 836 !=====================================================================
Note: See TracChangeset
for help on using the changeset viewer.