Changeset 2125 for LMDZ5/trunk/libf
- Timestamp:
- Sep 24, 2014, 1:14:19 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dyn3dmem/mod_filtreg_p.F
r1907 r2125 6 6 & ifiltre, iaire, griscal ,iter) 7 7 USE parallel_lmdz, only : OMP_CHUNK 8 USE mod_filtre_fft_loc 9 USE timer_filtre 10 11 USE filtreg_mod 8 USE mod_filtre_fft_loc, ONLY: use_filtre_fft, filtre_u_fft, 9 & filtre_v_fft, filtre_inv_fft 10 USE timer_filtre, ONLY: init_timer, start_timer, stop_timer 11 12 USE filtreg_mod, ONLY: matrinvn, matrinvs, matriceun, matriceus, 13 & matricevn, matricevs 12 14 13 15 IMPLICIT NONE … … 57 59 #include "coefils.h" 58 60 c 59 INTEGER jjb,jje,ibeg,iend,nlat,nbniv,ifiltre,iter 61 INTEGER,INTENT(IN) :: jjb,jje,ibeg,iend,nlat,nbniv,ifiltre,iter 62 INTEGER,INTENT(IN) :: iaire 63 LOGICAL,INTENT(IN) :: griscal 64 REAL,INTENT(INOUT) :: champ( iip1,jjb:jje,nbniv) 65 60 66 INTEGER i,j,l,k 61 67 INTEGER iim2,immjm 62 68 INTEGER jdfil1,jdfil2,jffil1,jffil2,jdfil,jffil 63 64 REAL champ( iip1,jjb:jje,nbniv) 65 66 LOGICAL griscal 67 INTEGER hemisph, iaire 68 69 INTEGER hemisph 69 70 REAL :: champ_fft(iip1,jjb:jje,nbniv) 70 REAL :: champ_in(iip1,jjb:jje,nbniv)71 ! REAL :: champ_in(iip1,jjb:jje,nbniv) 71 72 72 73 LOGICAL,SAVE :: first=.TRUE. … … 216 217 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 217 218 #else 218 champ_fft( :,j,1:nbniv_loc)=219 & matmul(matrinvn( :,:,j),220 & champ_loc( :iim,j,1:nbniv_loc))219 champ_fft(1:iim,j,1:nbniv_loc)= 220 & matmul(matrinvn(1:iim,1:iim,j), 221 & champ_loc(1:iim,j,1:nbniv_loc)) 221 222 #endif 222 223 ENDDO … … 230 231 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 231 232 #else 232 champ_fft( :,j,1:nbniv_loc)=233 & matmul(matriceun( :,:,j),234 & champ_loc( :iim,j,1:nbniv_loc))233 champ_fft(1:iim,j,1:nbniv_loc)= 234 & matmul(matriceun(1:iim,1:iim,j), 235 & champ_loc(1:iim,j,1:nbniv_loc)) 235 236 #endif 236 237 ENDDO … … 244 245 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 245 246 #else 246 champ_fft( :,j,1:nbniv_loc)=247 & matmul(matricevn( :,:,j),248 & champ_loc( :iim,j,1:nbniv_loc))247 champ_fft(1:iim,j,1:nbniv_loc)= 248 & matmul(matricevn(1:iim,1:iim,j), 249 & champ_loc(1:iim,j,1:nbniv_loc)) 249 250 #endif 250 251 ENDDO … … 262 263 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 263 264 #else 264 champ_fft( :,j,1:nbniv_loc)=265 & matmul(matrinvs( :,:,j-jfiltsu+1),266 & champ_loc( :iim,j,1:nbniv_loc))265 champ_fft(1:iim,j,1:nbniv_loc)= 266 & matmul(matrinvs(1:iim,1:iim,j-jfiltsu+1), 267 & champ_loc(1:iim,j,1:nbniv_loc)) 267 268 #endif 268 269 ENDDO … … 277 278 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 278 279 #else 279 champ_fft( :,j,1:nbniv_loc)=280 & matmul(matriceus( :,:,j-jfiltsu+1),281 & champ_loc( :iim,j,1:nbniv_loc))280 champ_fft(1:iim,j,1:nbniv_loc)= 281 & matmul(matriceus(1:iim,1:iim,j-jfiltsu+1), 282 & champ_loc(1:iim,j,1:nbniv_loc)) 282 283 #endif 283 284 ENDDO … … 292 293 & champ_fft(1,j,1), iip1*(jje-jjb+1)) 293 294 #else 294 champ_fft( :,j,1:nbniv_loc)=295 & matmul(matricevs( :,:,j-jfiltsv+1),296 & champ_loc( :iim,j,1:nbniv_loc))295 champ_fft(1:iim,j,1:nbniv_loc)= 296 & matmul(matricevs(1:iim,1:iim,j-jfiltsv+1), 297 & champ_loc(1:iim,j,1:nbniv_loc)) 297 298 #endif 298 299 ENDDO … … 344 345 DO l = 1, nbniv 345 346 DO j = jdfil,jffil 347 ! add redundant longitude 346 348 champ( iip1,j,l ) = champ( 1,j,l ) 347 349 ENDDO … … 406 408 DO j=jdfil,jffil 407 409 ! champ_FFT( iip1,j,l ) = champ_FFT( 1,j,l ) 410 ! add redundant longitude 408 411 champ( iip1,j,l ) = champ( 1,j,l ) 409 412 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.