Changeset 1279 for LMDZ4/trunk/libf/filtrez
- Timestamp:
- Dec 10, 2009, 10:02:56 AM (15 years ago)
- Location:
- LMDZ4/trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk
- Property svn:mergeinfo changed
/LMDZ4/branches/LMDZ4-dev merged: 1150-1162,1164-1193,1195-1231,1234-1235,1237-1240,1242-1274,1276
- Property svn:mergeinfo changed
-
LMDZ4/trunk/libf/filtrez/filtreg.F
r1146 r1279 112 112 113 113 IF( iaire.EQ.1 ) THEN 114 sdd1_type = type_sdd u115 sdd2_type = type_unsdd u114 sdd1_type = type_sddv 115 sdd2_type = type_unsddv 116 116 ELSE 117 sdd1_type = type_unsdd u118 sdd2_type = type_sdd u117 sdd1_type = type_unsddv 118 sdd2_type = type_sddv 119 119 ENDIF 120 120 -
LMDZ4/trunk/libf/filtrez/filtreg_mod.F90
r1146 r1279 7 7 8 8 SUBROUTINE inifilr 9 USE mod_filtre_fft 9 10 ! 10 11 ! ... H. Upadhyaya, O.Sharma ... … … 519 520 ENDDO 520 521 522 IF (use_filtre_fft) THEN 523 CALL Init_filtre_fft(coefilu,modfrstu,jfiltnu,jfiltsu, & 524 coefilv,modfrstv,jfiltnv,jfiltsv) 525 ENDIF 526 521 527 ! ................................................................... 522 528 -
LMDZ4/trunk/libf/filtrez/mod_fft_mkl.F90
r986 r1279 74 74 ierr = DftiSetValue(FFT_Handle,DFTI_PLACEMENT,DFTI_NOT_INPLACE) 75 75 ierr = DftiSetValue(FFT_Handle, DFTI_INPUT_DISTANCE, vsize+inc) 76 ierr = DftiSetValue(FFT_Handle, DFTI_OUTPUT_DISTANCE, vsize/2+1)76 ierr = DftiSetValue(FFT_Handle, DFTI_OUTPUT_DISTANCE, (vsize/2+1)*2) 77 77 ierr = DftiCommitDescriptor( FFT_Handle ) 78 78 ! Forward_handle(nb_vect)%IsAllocated=.TRUE. … … 114 114 ierr = DftiSetValue(FFT_Handle,DFTI_BACKWARD_SCALE,scale_factor) 115 115 ierr = DftiSetValue(FFT_Handle,DFTI_PLACEMENT,DFTI_NOT_INPLACE) 116 ierr = DftiSetValue(FFT_Handle, DFTI_INPUT_DISTANCE, vsize/2+1)116 ierr = DftiSetValue(FFT_Handle, DFTI_INPUT_DISTANCE, (vsize/2+1)*2) 117 117 ierr = DftiSetValue(FFT_Handle, DFTI_OUTPUT_DISTANCE, vsize+inc) 118 118 ierr = DftiCommitDescriptor( FFT_Handle ) -
LMDZ4/trunk/libf/filtrez/mod_fft_wrapper.F90
r986 r1279 19 19 INTEGER,INTENT(IN) :: nb_vect 20 20 REAL,INTENT(IN) :: vect(vsize+inc,nb_vect) 21 COMPLEX ,INTENT(INOUT) :: TF_vect(vsize/2+1,nb_vect)21 COMPLEX*16,INTENT(INOUT) :: TF_vect(vsize/2+1,nb_vect) 22 22 23 23 STOP "wrapper fft : une FFT doit etre specifiee a l'aide d'une clee CPP, sinon utiliser le filtre classique" … … 29 29 INTEGER,INTENT(IN) :: nb_vect 30 30 REAL,INTENT(INOUT) :: vect(vsize+inc,nb_vect) 31 COMPLEX ,INTENT(IN ) :: TF_vect(vsize/2+1,nb_vect)31 COMPLEX*16,INTENT(IN ) :: TF_vect(vsize/2+1,nb_vect) 32 32 33 33 STOP "wrapper fft : une FFT doit etre specifiee a l'aide d'une clee CPP, sinon utiliser le filtre classique" -
LMDZ4/trunk/libf/filtrez/mod_filtre_fft.F90
r994 r1279 118 118 119 119 REAL :: vect(iim+inc,jj_end-jj_begin+1,nbniv) 120 COMPLEX :: TF_vect(iim/2+1,jj_end-jj_begin+1,nbniv) 120 ! REAL :: vect_test(iim+inc,jj_end-jj_begin+1,nbniv) 121 COMPLEX*16 :: TF_vect(iim/2+1,jj_end-jj_begin+1,nbniv) 122 ! COMPLEX*16 :: TF_vect_test(iim/2+1,jj_end-jj_begin+1,nbniv) 121 123 INTEGER :: nb_vect 122 124 INTEGER :: i,j,l … … 142 144 CALL FFT_forward(vect,TF_vect,nb_vect) 143 145 146 ! CALL FFT_forward(vect,TF_vect_test,nb_vect) 147 ! PRINT *,"XXXXXXXXXXXXX Filtre_u_FFT xxxxxxxxxxxx" 148 ! DO j=1,jj_end-jj_begin+1 149 ! DO i=1,iim/2+1 150 ! PRINT *,"====",i,j,"----->",TF_vect_test(i,j,1) 151 ! ENDDO 152 ! ENDDO 153 144 154 DO l=1,ll_nb 145 155 DO j=1,jj_end-jj_begin+1 … … 149 159 ENDDO 150 160 ENDDO 151 161 152 162 CALL FFT_backward(TF_vect,vect,nb_vect) 153 163 ! CALL FFT_backward(TF_vect_test,vect_test,nb_vect) 164 154 165 ! PRINT *,"XXXXXXXXXXXXX Filtre_u_FFT xxxxxxxxxxxx" 155 166 ! DO j=1,jj_end-jj_begin+1 156 ! DO i=1,iim 157 ! PRINT *,"====",j,"----->",(vect_tmp(i,j,1)-vect(i,j,1))/ & 158 ! ((vect_tmp(i,j,1)+vect(i,j,1))*0.5+1e-30) 159 ! ENDDO 167 ! DO i=1,iim 168 ! PRINT *,"====",i,j,"----->",vect_test(i,j,1) 169 ! ENDDO 160 170 ! ENDDO 161 171 162 172 ll_nb=0 163 173 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 189 199 190 200 REAL :: vect(iim+inc,jj_end-jj_begin+1,nbniv) 191 COMPLEX 201 COMPLEX*16 :: TF_vect(iim/2+1,jj_end-jj_begin+1,nbniv) 192 202 INTEGER :: nb_vect 193 203 INTEGER :: i,j,l … … 250 260 REAL,INTENT(INOUT) :: vect_inout(iim+1,nlat,nbniv) 251 261 252 253 COMPLEX 262 REAL :: vect(iim+inc,jj_end-jj_begin+1,nbniv) 263 COMPLEX*16 :: TF_vect(iim/2+1,jj_end-jj_begin+1,nbniv) 254 264 INTEGER :: nb_vect 255 265 INTEGER :: i,j,l
Note: See TracChangeset
for help on using the changeset viewer.