Changeset 2333 for LMDZ5/trunk/libf/dynlonlat_phylonlat/calfis_loc.F
- Timestamp:
- Jul 22, 2015, 4:14:51 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dynlonlat_phylonlat/calfis_loc.F
r2239 r2333 38 38 #ifdef CPP_PARA 39 39 USE parallel_lmdz,ONLY:omp_chunk,using_mpi,jjb_u,jje_u,jjb_v,jje_v 40 $ ,jj_begin_dyn=>jj_begin,jj_end_dyn=>jj_end 40 41 USE Write_Field 41 42 Use Write_field_p … … 154 155 REAL,ALLOCATABLE,SAVE :: zphi(:,:),zphis(:) 155 156 c 156 REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:) 157 REAL zrot(iip1,jjb_v:jje_v,llm) ! AdlC May 2014 158 REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:) 157 159 REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:) 158 160 c … … 173 175 REAL,ALLOCATABLE,SAVE :: zufi_omp(:,:) 174 176 REAL,ALLOCATABLE,SAVE :: zvfi_omp(:,:) 177 REAL,ALLOCATABLE,SAVE :: zrfi_omp(:,:) 175 178 REAL,ALLOCATABLE,SAVE :: ztfi_omp(:,:) 176 179 REAL,ALLOCATABLE,SAVE :: zqfi_omp(:,:,:) … … 206 209 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp, 207 210 c$OMP+ presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp, 208 c$OMP+ z qfi_omp,zdufi_omp,zdvfi_omp,211 c$OMP+ zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp, 209 212 c$OMP+ zdtfi_omp,zdqfi_omp,zdpsrf_omp,flxwfi_omp, 210 213 c$OMP+ zdufic_omp,zdvfic_omp,zdtfic_omp,zdqfic_omp) … … 233 236 integer :: k,kstart,kend 234 237 INTEGER :: offset 238 INTEGER :: jjb,jje 235 239 236 240 LOGICAL tracerdyn … … 259 263 ALLOCATE(zplev(klon,llm+1),zplay(klon,llm)) 260 264 ALLOCATE(zphi(klon,llm),zphis(klon)) 261 ALLOCATE(zufi(klon,llm), zvfi(klon,llm) )265 ALLOCATE(zufi(klon,llm), zvfi(klon,llm),zrfi(klon,llm)) 262 266 ALLOCATE(ztfi(klon,llm),zqfi(klon,llm,nqtot)) 263 267 ALLOCATE(pcvgu(klon,llm), pcvgv(klon,llm)) … … 431 435 c$OMP END DO NOWAIT 432 436 433 c 46.champ v: 437 c 438 C Alvaro de la Camara (May 2014) 439 C 46.1 Calcul de la vorticite et passage sur la grille physique 440 C -------------------------------------------------------------- 441 442 jjb=jj_begin_dyn-1 443 jje=jj_end_dyn+1 444 if (is_north_pole) jjb=1 445 if (is_south_pole) jje=jjm 446 447 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 448 449 DO l=1,llm 450 do i=1,iim 451 do j=jjb,jje 452 zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l) 453 $ + pucov(i,j+1,l) - pucov(i,j,l)) 454 $ / (cu(i,j)+cu(i,j+1)) 455 $ / (cv(i+1,j)+cv(i,j)) *4 456 enddo 457 enddo 458 ENDDO 459 460 461 c 46.2champ v: 434 462 c ----------- 435 463 … … 443 471 zvfi(ig0,l)= 0.5 *( pvcov(i,j-1,l)/cv(i,j-1) 444 472 $ + pvcov(i,j,l)/cv(i,j) ) 473 if (j==1 .OR. j==jjp1) then ! AdlC MAY 2014 474 zrfi(ig0,l) = 0 ! AdlC MAY 2014 475 else 476 if(i==1)then 477 zrfi(ig0,l)= 0.25 *(zrot(iim,j-1,l)+zrot(iim,j,l) 478 $ +zrot(1,j-1,l)+zrot(1,j,l)) ! AdlC MAY 2014 479 else 480 zrfi(ig0,l)= 0.25 *(zrot(i-1,j-1,l)+zrot(i-1,j,l) 481 $ +zrot(i,j-1,l)+zrot(i,j,l)) ! AdlC MAY 2014 482 endif 483 endif 484 445 485 446 486 ENDDO … … 469 509 zufi(1,l) = SSUM(iim,zcos,1)/pi 470 510 zvfi(1,l) = SSUM(iim,zsin,1)/pi 511 zrfi(1,l) = 0. 471 512 472 513 ENDDO … … 496 537 zufi(klon,l) = SSUM(iim,zcos,1)/pi 497 538 zvfi(klon,l) = SSUM(iim,zsin,1)/pi 539 zrfi(klon,l) = 0. 498 540 ENDDO 499 541 c$OMP END DO NOWAIT … … 531 573 allocate(zufi_omp(klon,llm)) 532 574 allocate(zvfi_omp(klon,llm)) 575 allocate(zrfi_omp(klon,llm)) ! LG Ari 2014 533 576 allocate(ztfi_omp(klon,llm)) 534 577 allocate(zqfi_omp(klon,llm,nqtot)) … … 591 634 do l=1,llm 592 635 do i=1,klon 636 zrfi_omp(i,l)=zrfi(offset+i,l) 637 enddo 638 enddo 639 640 do l=1,llm 641 do i=1,klon 593 642 ztfi_omp(i,l)=ztfi(offset+i,l) 594 643 enddo … … 674 723 . zufi_omp, 675 724 . zvfi_omp, 725 . zrfi_omp, 676 726 . ztfi_omp, 677 727 . zqfi_omp,
Note: See TracChangeset
for help on using the changeset viewer.