Changeset 5159 for LMDZ6/branches/Amaury_dev/libf/filtrez
- Timestamp:
- Aug 2, 2024, 9:58:25 PM (5 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/filtrez
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/filtrez/lmdz_coefils.f90
r5106 r5159 2 2 ! replacement for coefils.h 3 3 MODULE lmdz_coefils 4 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 4 5 IMPLICIT NONE; PRIVATE 5 INCLUDE "dimensions.h" 6 6 7 PUBLIC jfiltnu, jfiltsu, jfiltnv, jfiltsv, sddu, sddv, unsddu, unsddv, coefilu, coefilv, & 7 8 modfrstu, modfrstv, eignfnu, eignfnv, coefilu2, coefilv2 -
LMDZ6/branches/Amaury_dev/libf/filtrez/lmdz_filtre_fft.F90
r5134 r5159 16 16 SUBROUTINE init_filtre_fft(coeffu,modfrstu,jfiltnu,jfiltsu,coeffv,modfrstv,jfiltnv,jfiltsv) 17 17 USE lmdz_fft 18 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 18 19 IMPLICIT NONE 19 INCLUDE 'dimensions.h' 20 20 21 REAL, INTENT(IN) :: coeffu(iim,jjm) 21 22 INTEGER,INTENT(IN) :: modfrstu(jjm) … … 122 123 USE parallel_lmdz,ONLY: OMP_CHUNK 123 124 #endif 125 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 124 126 IMPLICIT NONE 125 INCLUDE 'dimensions.h' 127 126 128 INTEGER,INTENT(IN) :: nlat 127 129 INTEGER,INTENT(IN) :: jj_begin … … 182 184 USE parallel_lmdz,ONLY: OMP_CHUNK 183 185 #endif 186 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 184 187 IMPLICIT NONE 185 INCLUDE 'dimensions.h' 188 186 189 INTEGER,INTENT(IN) :: nlat 187 190 INTEGER,INTENT(IN) :: jj_begin … … 243 246 USE parallel_lmdz,ONLY: OMP_CHUNK 244 247 #endif 248 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 245 249 IMPLICIT NONE 246 INCLUDE 'dimensions.h' 250 247 251 INTEGER,INTENT(IN) :: nlat 248 252 INTEGER,INTENT(IN) :: jj_begin -
LMDZ6/branches/Amaury_dev/libf/filtrez/lmdz_filtre_fft_loc.F90
r5134 r5159 13 13 SUBROUTINE Init_filtre_fft(coeffu, modfrstu, jfiltnu, jfiltsu, coeffv, modfrstv, jfiltnv, jfiltsv) 14 14 USE lmdz_fft 15 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 15 16 IMPLICIT NONE 16 INCLUDE 'dimensions.h' 17 17 18 REAL, INTENT(IN) :: coeffu(iim, jjm) 18 19 INTEGER, INTENT(IN) :: modfrstu(jjm) … … 110 111 USE parallel_lmdz,ONLY: OMP_CHUNK 111 112 #endif 113 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 112 114 IMPLICIT NONE 113 INCLUDE 'dimensions.h' 115 114 116 INTEGER, INTENT(IN) :: jjb 115 117 INTEGER, INTENT(IN) :: jje … … 190 192 USE parallel_lmdz,ONLY: OMP_CHUNK 191 193 #endif 194 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 192 195 IMPLICIT NONE 193 INCLUDE 'dimensions.h' 196 194 197 INTEGER, INTENT(IN) :: jjb 195 198 INTEGER, INTENT(IN) :: jje … … 251 254 USE parallel_lmdz,ONLY: OMP_CHUNK 252 255 #endif 256 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 253 257 IMPLICIT NONE 254 INCLUDE 'dimensions.h' 258 255 259 INTEGER, INTENT(IN) :: jjb 256 260 INTEGER, INTENT(IN) :: jje -
LMDZ6/branches/Amaury_dev/libf/filtrez/lmdz_filtreg.F90
r5158 r5159 2 2 3 3 MODULE lmdz_filtreg 4 USE lmdz_paramet 4 5 IMPLICIT NONE; PRIVATE 5 6 PUBLIC matriceun, matriceus, matricevn, matricevs, matrinvn, matrinvs, & … … 13 14 SUBROUTINE filtreg(champ, nlat, nbniv, ifiltre, iaire, & 14 15 griscal, iter) 16 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 15 17 USE lmdz_coefils, ONLY: jfiltnu, jfiltnv, jfiltsu, jfiltsv, sddu, sddv, unsddu, unsddv, modfrstv, modfrstu 16 18 17 19 !======================================================================= 18 ! 20 19 21 ! Auteur: P. Le Van 07/10/97 20 22 ! ------ 21 ! 23 22 24 ! Objet: filtre matriciel longitudinal ,avec les matrices precalculees 23 25 ! pour l'operateur Filtre . 24 26 ! ------ 25 ! 27 26 28 ! Arguments: 27 29 ! ---------- 28 ! 30 29 31 ! nblat nombre de latitudes a filtrer 30 32 ! nbniv nombre de niveaux verticaux a filtrer … … 35 37 ! +2 Filtre directe 36 38 ! -2 Filtre inverse 37 ! 39 38 40 ! iaire 1 si champ intensif 39 41 ! 2 si champ extensif (pondere par les aires) 40 ! 42 41 43 ! iter 1 filtre simple 42 ! 44 43 45 !======================================================================= 44 ! 45 ! 46 47 46 48 ! Variable Intensive 47 49 ! ifiltre = 1 filtre directe 48 50 ! ifiltre =-1 filtre inverse 49 ! 51 50 52 ! Variable Extensive 51 53 ! ifiltre = 2 filtre directe 52 54 ! ifiltre =-2 filtre inverse 55 53 56 ! 54 ! 55 INCLUDE "dimensions.h" 56 INCLUDE "paramet.h" 57 58 57 59 58 60 INTEGER :: nlat, nbniv, ifiltre, iter … … 326 328 327 329 SUBROUTINE inifgn(dv) 328 ! 330 329 331 ! ... H.Upadyaya , O.Sharma ... 330 ! 332 331 333 USE lmdz_coefils, ONLY: sddv, sddu, unsddu, unsddv, eignfnv, eignfnu 332 334 USE lmdz_ssum_scopy, ONLY: ssum 333 335 USE lmdz_comgeom 334 336 337 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 338 USE lmdz_paramet 335 339 IMPLICIT NONE 336 340 337 INCLUDE "dimensions.h" 338 INCLUDE "paramet.h" 341 342 339 343 340 344 REAL :: vec(iim, iim), vec1(iim, iim) … … 347 351 imm1 = iim - 1 348 352 pi = 2. * ASIN(1.) 349 ! 353 350 354 DO i = 1, iim 351 355 dlonu(i) = xprimu(i) … … 359 363 unsddv(i) = 1. / sddv(i) 360 364 END DO 361 ! 365 362 366 DO j = 1, iim 363 367 DO i = 1, iim … … 368 372 END DO 369 373 END DO 370 ! 371 ! 374 375 372 376 eignfnv(1, 1) = -1. 373 377 eignfnv(iim, 1) = 1. … … 386 390 END DO 387 391 END DO 388 ! 392 389 393 DO j = 1, iim 390 394 DO i = 1, iim … … 398 402 ENDDO 399 403 400 ! 404 401 405 CALL jacobi(vec, iim, iim, dv, eignfnv, nrot) 402 406 CALL acc(eignfnv, d, iim) 403 407 CALL eigen_sort(dv, eignfnv, iim, iim) 404 ! 408 405 409 CALL jacobi(vec1, iim, iim, du, eignfnu, nrot) 406 410 CALL acc(eignfnu, d, iim) … … 408 412 409 413 !c ancienne version avec appels IMSL 410 ! 414 411 415 ! CALL MXM(eignfnu,iim,eignfnv,iim,vec,iim) 412 416 ! CALL MXM(eignfnv,iim,eignfnu,iim,vec1,iim) … … 414 418 ! CALL acc(eignfnv,d,iim) 415 419 ! CALL eigen(eignfnv,dv) 416 ! 420 417 421 ! CALL EVCSF(iim,vec1,iim,du,eignfnu,iim) 418 422 ! CALL acc(eignfnu,d,iim) … … 587 591 USE lmdz_coefils, ONLY: modfrstv, modfrstu, jfiltnu, jfiltnv, coefilu, coefilv, & 588 592 coefilu2, coefilv2, eignfnv, eignfnu, jfiltsu, jfiltsv 593 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 589 594 USE lmdz_comgeom 595 USE lmdz_paramet 590 596 591 597 ! ... H. Upfiltreg_modadhyaya, O.Sharma ... … … 595 601 ! Correction le 28/10/97 P. Le Van . 596 602 ! ------------------------------------------------------------------- 597 INCLUDE "dimensions.h"598 INCLUDE "paramet.h"599 603 600 604 REAL dlonu(iim), dlatu(jjm)
Note: See TracChangeset
for help on using the changeset viewer.