Changeset 584


Ignore:
Timestamp:
10/13/17 21:29:09 (7 years ago)
Author:
dubos
Message:

devel : switched indices of 3D vector fields

Location:
codes/icosagcm/devel/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/diagnostics/check_conserve.f90

    r533 r584  
    299299    REAL(rstd),INTENT(INOUT) :: e, s, AAM_mass, AAM_vel, rmsv 
    300300     
    301     REAL(rstd) :: ucenter(iim*jjm,3,llm) 
     301    REAL(rstd) :: ucenter(iim*jjm,llm,3) 
    302302    REAL(rstd) :: ulon(iim*jjm,llm) 
    303303    REAL(rstd) :: ulat(iim*jjm,llm) 
  • codes/icosagcm/devel/src/diagnostics/wind.f90

    r533 r584  
    11MODULE wind_mod 
    2  
    3 CONTAINS 
    4  
    5   SUBROUTINE un2ulonlat(f_u, f_ulon, f_ulat) 
     2  USE omp_para 
    63  USE icosa 
    74  IMPLICIT NONE 
     5  PRIVATE 
     6 
     7  PUBLIC :: compute_wind_centered, compute_wind_centered_lonlat_compound, & 
     8       compute_wind_centered_from_lonlat_compound, compute_wind_perp_from_lonlat_compound, & 
     9       un2ulonlat, ulonlat2un, compute_wind2d_perp_from_lonlat_compound 
     10        
     11CONTAINS 
     12 
     13  SUBROUTINE un2ulonlat(f_u, f_ulon, f_ulat) 
    814    TYPE(t_field), POINTER :: f_u(:) ! IN  : normal velocity components on edges 
    9     TYPE(t_field), POINTER :: f_ulon(:), f_ulat(:) ! OUT : velocity reconstructed at hexagons 
    10      
     15    TYPE(t_field), POINTER :: f_ulon(:), f_ulat(:) ! OUT : velocity reconstructed at hexagons     
    1116    REAL(rstd),POINTER :: u(:,:),  ulon(:,:), ulat(:,:) 
    1217    INTEGER :: ind 
     
    2530 
    2631  SUBROUTINE ulonlat2un(f_ulon, f_ulat,f_u) 
    27   USE icosa 
    28   IMPLICIT NONE 
    2932    TYPE(t_field), POINTER :: f_ulon(:), f_ulat(:) ! IN : velocity reconstructed at hexagons 
    3033    TYPE(t_field), POINTER :: f_u(:) ! OUT  : normal velocity components on edges 
     
    4649  
    4750  SUBROUTINE compute_wind_centered(ue,ucenter) 
    48   USE icosa 
    49   USE omp_para 
    50   IMPLICIT NONE 
    5151  REAL(rstd) :: ue(3*iim*jjm,llm) 
    52   REAL(rstd) :: ucenter(iim*jjm,3,llm) 
     52  REAL(rstd) :: ucenter(iim*jjm,llm,3) 
    5353  INTEGER :: i,j,ij,l     
    5454  
     
    5757        DO i=ii_begin,ii_end 
    5858          ij=(j-1)*iim+i 
    59           ucenter(ij,:,l)=1/Ai(ij)*                                                                                                & 
     59          ! Perot reconstruction based on Gauss' theorem 
     60          ! u = sum( u.edge_normal * edge_length * (edge_midpoint-cell_centroid) ) /cell_area 
     61          ucenter(ij,l,:)=1/Ai(ij)*                                                                                                & 
    6062                        ( ne(ij,right)*ue(ij+u_right,l)*le(ij+u_right)*((xyz_v(ij+z_rdown,:)+xyz_v(ij+z_rup,:))/2-centroid(ij,:))  & 
    6163                         + ne(ij,rup)*ue(ij+u_rup,l)*le(ij+u_rup)*((xyz_v(ij+z_rup,:)+xyz_v(ij+z_up,:))/2-centroid(ij,:))          & 
     
    7274   
    7375 SUBROUTINE compute_wind_on_edge(ue,uedge) 
    74   USE icosa 
    75   USE omp_para 
    76      
    77   IMPLICIT NONE 
    7876  REAL(rstd) :: ue(3*iim*jjm,llm) 
    79   REAL(rstd) :: uedge(3*iim*jjm,3,llm) 
     77  REAL(rstd) :: uedge(3*iim*jjm,llm,3) 
    8078 
    8179  REAL(rstd) :: ut(3*iim*jjm,llm) 
     
    8886        DO i=ii_begin,ii_end 
    8987          ij=(j-1)*iim+i 
    90           uedge(ij+u_right,:,l)=ue(ij+u_right,l)*ep_e(ij+u_right,:)*ne(ij,right) + ut(ij+u_right,l)*et_e(ij+u_right,:)*ne(ij,right)  
    91           uedge(ij+u_lup,:,l)=ue(ij+u_lup,l)*ep_e(ij+u_lup,:)*ne(ij,lup) + ut(ij+u_lup,l)*et_e(ij+u_lup,:)*ne(ij,lup) 
    92           uedge(ij+u_ldown,:,l)=ue(ij+u_ldown,l)*ep_e(ij+u_ldown,:)*ne(ij,ldown) + ut(ij+u_ldown,l)*et_e(ij+u_ldown,:)*ne(ij,ldown) 
     88          uedge(ij+u_right,l,:)=ue(ij+u_right,l)*ep_e(ij+u_right,:)*ne(ij,right) + ut(ij+u_right,l)*et_e(ij+u_right,:)*ne(ij,right)  
     89          uedge(ij+u_lup,l,:)=ue(ij+u_lup,l)*ep_e(ij+u_lup,:)*ne(ij,lup) + ut(ij+u_lup,l)*et_e(ij+u_lup,:)*ne(ij,lup) 
     90          uedge(ij+u_ldown,l,:)=ue(ij+u_ldown,l)*ep_e(ij+u_ldown,:)*ne(ij,ldown) + ut(ij+u_ldown,l)*et_e(ij+u_ldown,:)*ne(ij,ldown) 
    9391        ENDDO 
    9492      ENDDO 
     
    10098  
    10199 SUBROUTINE compute_tangential_compound(ue,ut) 
    102   USE icosa   
    103   USE omp_para 
    104   IMPLICIT NONE 
    105100  REAL(rstd) :: ue(3*iim*jjm,llm) 
    106101  REAL(rstd) :: ut(3*iim*jjm,llm) 
     
    155150 END SUBROUTINE compute_tangential_compound 
    156151  
    157  SUBROUTINE compute_wind_lonlat_compound(u, ulon, ulat) 
    158   USE icosa   
    159   USE omp_para 
    160      
    161   IMPLICIT NONE 
    162   REAL(rstd) :: u(3*iim*jjm,3,llm) 
    163   REAL(rstd) :: ulon(3*iim*jjm,3,llm) 
    164   REAL(rstd) :: ulat(3*iim*jjm,3,llm) 
    165  
    166   INTEGER :: i,j,ij,l      
    167      
     152! SUBROUTINE compute_wind_lonlat_compound(u, ulon, ulat) 
     153!  REAL(rstd) :: u(3*iim*jjm,3,llm) 
     154!  REAL(rstd) :: ulon(3*iim*jjm,3,llm) 
     155!  REAL(rstd) :: ulat(3*iim*jjm,3,llm) 
     156! 
     157!  INTEGER :: i,j,ij,l      
     158!     
     159 
     160!    DO l=ll_begin,ll_end 
     161!      DO j=jj_begin-1,jj_end+1 
     162!        DO i=ii_begin-1,ii_end+1 
     163!          ij=(j-1)*iim+i 
     164!          ulon(ij+u_right,:,l)=sum(u(ij+u_right,:,l)*elon_e(ij+u_right,:))*elon_e(ij+u_right,:)  
     165!          ulon(ij+u_lup,:,l)=sum(u(ij+u_lup,:,l)*elon_e(ij+u_lup,:))*elon_e(ij+u_lup,:) 
     166!          ulon(ij+u_ldown,:,l)=sum(u(ij+u_ldown,:,l)*elon_e(ij+u_ldown,:))*elon_e(ij+u_ldown,:) 
     167!           
     168!          ulat(ij+u_right,:,l)=sum(u(ij+u_right,:,l)*elat_e(ij+u_right,:))*elat_e(ij+u_right,:)  
     169!          ulat(ij+u_lup,:,l)=sum(u(ij+u_lup,:,l)*elat_e(ij+u_lup,:))*elat_e(ij+u_lup,:)  
     170!          ulat(ij+u_ldown,:,l)=sum(u(ij+u_ldown,:,l)*elat_e(ij+u_ldown,:))*elat_e(ij+u_ldown,:)  
     171!           
     172!        ENDDO 
     173!      ENDDO 
     174!    ENDDO 
     175!  
     176! END SUBROUTINE compute_wind_lonlat_compound 
     177  
     178  SUBROUTINE compute_wind_from_lonlat_compound(ulon, ulat, u) 
     179  REAL(rstd) :: u(3*iim*jjm,llm,3) 
     180  REAL(rstd) :: ulon(3*iim*jjm,llm) 
     181  REAL(rstd) :: ulat(3*iim*jjm,llm) 
     182 
     183  INTEGER :: i,j,ij,l      
    168184   
    169185    DO l=ll_begin,ll_end 
     
    171187        DO i=ii_begin-1,ii_end+1 
    172188          ij=(j-1)*iim+i 
    173           ulon(ij+u_right,:,l)=sum(u(ij+u_right,:,l)*elon_e(ij+u_right,:))*elon_e(ij+u_right,:)  
    174           ulon(ij+u_lup,:,l)=sum(u(ij+u_lup,:,l)*elon_e(ij+u_lup,:))*elon_e(ij+u_lup,:) 
    175           ulon(ij+u_ldown,:,l)=sum(u(ij+u_ldown,:,l)*elon_e(ij+u_ldown,:))*elon_e(ij+u_ldown,:) 
    176            
    177           ulat(ij+u_right,:,l)=sum(u(ij+u_right,:,l)*elat_e(ij+u_right,:))*elat_e(ij+u_right,:)  
    178           ulat(ij+u_lup,:,l)=sum(u(ij+u_lup,:,l)*elat_e(ij+u_lup,:))*elat_e(ij+u_lup,:)  
    179           ulat(ij+u_ldown,:,l)=sum(u(ij+u_ldown,:,l)*elat_e(ij+u_ldown,:))*elat_e(ij+u_ldown,:)  
    180            
    181         ENDDO 
    182       ENDDO 
    183     ENDDO 
    184   
    185  END SUBROUTINE compute_wind_lonlat_compound 
    186   
    187   SUBROUTINE compute_wind_from_lonlat_compound(ulon, ulat, u) 
    188   USE icosa   
    189   USE omp_para 
    190      
    191   IMPLICIT NONE 
    192   REAL(rstd) :: u(3*iim*jjm,3,llm) 
    193   REAL(rstd) :: ulon(3*iim*jjm,llm) 
    194   REAL(rstd) :: ulat(3*iim*jjm,llm) 
    195  
    196   INTEGER :: i,j,ij,l      
    197    
    198     DO l=ll_begin,ll_end 
    199       DO j=jj_begin-1,jj_end+1 
    200         DO i=ii_begin-1,ii_end+1 
    201           ij=(j-1)*iim+i 
    202           u(ij+u_right,:,l)=ulon(ij+u_right,l)*elon_e(ij+u_right,:)+ ulat(ij+u_right,l)*elat_e(ij+u_right,:) 
    203           u(ij+u_lup,:,l)=ulon(ij+u_lup,l)*elon_e(ij+u_lup,:) + ulat(ij+u_lup,l)*elat_e(ij+u_lup,:) 
    204           u(ij+u_ldown,:,l)=ulon(ij+u_ldown,l)*elon_e(ij+u_ldown,:) + ulat(ij+u_ldown,l)*elat_e(ij+u_ldown,:) 
     189          u(ij+u_right,l,:)=ulon(ij+u_right,l)*elon_e(ij+u_right,:)+ ulat(ij+u_right,l)*elat_e(ij+u_right,:) 
     190          u(ij+u_lup,l,:)=ulon(ij+u_lup,l)*elon_e(ij+u_lup,:) + ulat(ij+u_lup,l)*elat_e(ij+u_lup,:) 
     191          u(ij+u_ldown,l,:)=ulon(ij+u_ldown,l)*elon_e(ij+u_ldown,:) + ulat(ij+u_ldown,l)*elat_e(ij+u_ldown,:) 
    205192        ENDDO 
    206193      ENDDO 
     
    210197  
    211198  SUBROUTINE compute_wind_centered_from_lonlat_compound(ulon, ulat, u) 
    212   USE icosa   
    213   USE omp_para 
    214      
    215   IMPLICIT NONE 
    216   REAL(rstd) :: u(iim*jjm,3,llm) 
     199  REAL(rstd) :: u(iim*jjm,llm,3) 
    217200  REAL(rstd) :: ulon(iim*jjm,llm) 
    218201  REAL(rstd) :: ulat(iim*jjm,llm) 
    219  
    220202  INTEGER :: i,j,ij,l      
    221203  DO l=ll_begin,ll_end 
     
    223205        DO i=ii_begin-1,ii_end+1 
    224206          ij=(j-1)*iim+i 
    225           u(ij,:,l)=ulon(ij,l)*elon_i(ij,:)+ ulat(ij,l)*elat_i(ij,:) 
    226         ENDDO 
    227       ENDDO 
    228     ENDDO 
    229   
     207          u(ij,l,:)=ulon(ij,l)*elon_i(ij,:)+ ulat(ij,l)*elat_i(ij,:) 
     208        ENDDO 
     209      ENDDO 
     210    ENDDO  
    230211  END SUBROUTINE compute_wind_centered_from_lonlat_compound 
    231212  
    232213  SUBROUTINE compute_wind2D_from_lonlat_compound(ulon, ulat, u) 
    233   USE icosa   
    234    
    235   IMPLICIT NONE 
    236214  REAL(rstd) :: u(3*iim*jjm,3) 
    237215  REAL(rstd) :: ulon(3*iim*jjm) 
     
    252230  
    253231  SUBROUTINE compute_wind_perp_from_lonlat_compound(ulon, ulat, up) 
    254   USE icosa   
    255   USE omp_para 
    256      
    257   IMPLICIT NONE 
    258232  REAL(rstd) :: up(3*iim*jjm,llm) 
    259233  REAL(rstd) :: ulon(3*iim*jjm,llm) 
    260234  REAL(rstd) :: ulat(3*iim*jjm,llm) 
    261   REAL(rstd) :: u(3*iim*jjm,3,llm) 
     235  REAL(rstd) :: u(3*iim*jjm,llm,3) 
    262236 
    263237  INTEGER :: i,j,ij,l      
     
    269243        DO i=ii_begin-1,ii_end+1 
    270244          ij=(j-1)*iim+i 
    271           up(ij+u_right,l)=sum(u(ij+u_right,:,l)*ep_e(ij+u_right,:)) 
    272           up(ij+u_lup,l)=sum(u(ij+u_lup,:,l)*ep_e(ij+u_lup,:)) 
    273           up(ij+u_ldown,l)=sum(u(ij+u_ldown,:,l)*ep_e(ij+u_ldown,:)) 
     245          up(ij+u_right,l)=sum(u(ij+u_right,l,:)*ep_e(ij+u_right,:)) 
     246          up(ij+u_lup,l)=sum(u(ij+u_lup,l,:)*ep_e(ij+u_lup,:)) 
     247          up(ij+u_ldown,l)=sum(u(ij+u_ldown,l,:)*ep_e(ij+u_ldown,:)) 
    274248        ENDDO 
    275249      ENDDO 
     
    279253    
    280254  SUBROUTINE compute_wind2D_perp_from_lonlat_compound(ulon, ulat, up) 
    281   USE icosa   
    282      
    283   IMPLICIT NONE 
    284255  REAL(rstd) :: up(3*iim*jjm) 
    285256  REAL(rstd) :: ulon(3*iim*jjm) 
     
    302273    
    303274 SUBROUTINE compute_wind_centered_lonlat_compound(uc, ulon, ulat) 
    304   USE icosa   
    305   USE omp_para 
    306      
    307   IMPLICIT NONE 
    308   REAL(rstd) :: uc(iim*jjm,3,llm) 
     275  REAL(rstd) :: uc(iim*jjm,llm,3) 
    309276  REAL(rstd) :: ulon(iim*jjm,llm) 
    310277  REAL(rstd) :: ulat(iim*jjm,llm) 
    311278 
    312279  INTEGER :: i,j,ij,l      
    313      
    314    
    315     DO l=ll_begin,ll_end 
    316       DO j=jj_begin,jj_end 
    317         DO i=ii_begin,ii_end 
    318           ij=(j-1)*iim+i 
    319           ulon(ij,l)=sum(uc(ij,:,l)*elon_i(ij,:)) 
    320           ulat(ij,l)=sum(uc(ij,:,l)*elat_i(ij,:))  
     280   
     281    DO l=ll_begin,ll_end 
     282      DO j=jj_begin,jj_end 
     283        DO i=ii_begin,ii_end 
     284          ij=(j-1)*iim+i 
     285          ulon(ij,l)=sum(uc(ij,l,:)*elon_i(ij,:)) 
     286          ulat(ij,l)=sum(uc(ij,l,:)*elat_i(ij,:))  
    321287        ENDDO 
    322288      ENDDO 
     
    326292 
    327293 SUBROUTINE compute_wind_centered_from_wind_lonlat_centered(ulon, ulat,uc) 
    328   USE icosa   
    329   USE omp_para 
    330      
    331   IMPLICIT NONE 
    332294  REAL(rstd) :: ulon(iim*jjm,llm) 
    333295  REAL(rstd) :: ulat(iim*jjm,llm) 
    334   REAL(rstd) :: uc(iim*jjm,3,llm) 
    335  
    336   INTEGER :: i,j,ij,l      
    337      
    338    
    339     DO l=ll_begin,ll_end 
    340       DO j=jj_begin,jj_end 
    341         DO i=ii_begin,ii_end 
    342           ij=(j-1)*iim+i 
    343           uc(ij,:,l)=ulon(ij,l)*elon_i(ij,:)+ulat(ij,l)*elat_i(ij,:) 
     296  REAL(rstd) :: uc(iim*jjm,llm,3) 
     297 
     298  INTEGER :: i,j,ij,l      
     299     
     300   
     301    DO l=ll_begin,ll_end 
     302      DO j=jj_begin,jj_end 
     303        DO i=ii_begin,ii_end 
     304          ij=(j-1)*iim+i 
     305          uc(ij,l,:)=ulon(ij,l)*elon_i(ij,:)+ulat(ij,l)*elat_i(ij,:) 
    344306        ENDDO 
    345307      ENDDO 
     
    348310 END SUBROUTINE compute_wind_centered_from_wind_lonlat_centered 
    349311 
    350  
    351  
    352312 SUBROUTINE compute_wind_perp_from_wind_centered(uc,un) 
    353   USE icosa   
    354   USE omp_para 
    355      
     313 
    356314  IMPLICIT NONE 
    357   REAL(rstd),INTENT(IN)   :: uc(iim*jjm,3,llm) 
     315  REAL(rstd),INTENT(IN)   :: uc(iim*jjm,llm,3) 
    358316  REAL(rstd),INTENT(OUT)  :: un(3*iim*jjm,llm) 
    359317 
     
    365323        DO i=ii_begin,ii_end 
    366324          ij=(j-1)*iim+i 
    367           un(ij+u_right,l) = sum(0.5*(uc(ij,:,l) + uc(ij+t_right,:,l))*ep_e(ij+u_right,:)) 
    368           un(ij+u_lup,l) = sum(0.5*(uc(ij,:,l) + uc(ij+t_lup,:,l))*ep_e(ij+u_lup,:)) 
    369           un(ij+u_ldown,l) = sum(0.5*(uc(ij,:,l) + uc(ij+t_ldown,:,l))*ep_e(ij+u_ldown,:)) 
     325          un(ij+u_right,l) = sum(0.5*(uc(ij,l,:) + uc(ij+t_right,l,:))*ep_e(ij+u_right,:)) 
     326          un(ij+u_lup,l) = sum(0.5*(uc(ij,l,:) + uc(ij+t_lup,l,:))*ep_e(ij+u_lup,:)) 
     327          un(ij+u_ldown,l) = sum(0.5*(uc(ij,l,:) + uc(ij+t_ldown,l,:))*ep_e(ij+u_ldown,:)) 
    370328         ENDDO 
    371329      ENDDO 
     
    376334 
    377335 SUBROUTINE compute_un2ulonlat(un, ulon, ulat) 
    378   USE icosa   
    379      
    380   IMPLICIT NONE 
    381336  REAL(rstd),INTENT(IN)  :: un(3*iim*jjm,llm) 
    382337  REAL(rstd),INTENT(OUT) :: ulon(iim*jjm,llm) 
    383338  REAL(rstd),INTENT(OUT) :: ulat(iim*jjm,llm) 
    384339 
    385   REAL(rstd)             :: uc(iim*jjm,3,llm) 
     340  REAL(rstd)             :: uc(iim*jjm,llm,3) 
    386341     
    387342  CALL compute_wind_centered(un,uc)   
     
    391346 
    392347 SUBROUTINE compute_ulonlat2un(ulon, ulat,un) 
    393   USE icosa   
    394      
    395   IMPLICIT NONE 
    396348  REAL(rstd),INTENT(IN) :: ulon(iim*jjm,llm) 
    397349  REAL(rstd),INTENT(IN) :: ulat(iim*jjm,llm) 
    398350  REAL(rstd),INTENT(OUT)  :: un(3*iim*jjm,llm) 
    399351 
    400   REAL(rstd)             :: uc(iim*jjm,3,llm) 
     352  REAL(rstd)             :: uc(iim*jjm,llm,3) 
    401353     
    402354    CALL compute_wind_centered_from_wind_lonlat_centered(ulon, ulat, uc)   
  • codes/icosagcm/devel/src/physics/physics.f90

    r533 r584  
    247247 
    248248    REAL(rstd) :: p(iim*jjm,llm+1) 
    249     REAL(rstd) :: uc(iim*jjm,3,llm) 
     249    REAL(rstd) :: uc(iim*jjm,llm,3) 
    250250    REAL(rstd) :: ulon(iim*jjm,llm) 
    251251    REAL(rstd) :: ulat(iim*jjm,llm) 
     
    311311    REAL(rstd) :: dulat(iim*jjm,llm) 
    312312    REAL(rstd) :: ue(3*iim*jjm,llm) 
    313     REAL(rstd) :: duc(iim*jjm,3,llm) 
     313    REAL(rstd) :: duc(iim*jjm,llm,3) 
    314314    REAL(rstd) :: dt2, due 
    315315    INTEGER :: i,j,ij,l 
     
    321321        DO i=ii_begin,ii_end 
    322322          ij=(j-1)*iim+i 
    323           due = sum( (duc(ij,:,l) + duc(ij+t_right,:,l))*ep_e(ij+u_right,:) ) 
     323          due = sum( (duc(ij,l,:) + duc(ij+t_right,l,:))*ep_e(ij+u_right,:) ) 
    324324          ue(ij+u_right,l) = ue(ij+u_right,l) + dt2*due 
    325325 
    326           due = sum( (duc(ij,:,l) + duc(ij+t_lup,:,l))*ep_e(ij+u_lup,:) ) 
     326          due = sum( (duc(ij,l,:) + duc(ij+t_lup,l,:))*ep_e(ij+u_lup,:) ) 
    327327          ue(ij+u_lup,l)=ue(ij+u_lup,l) + dt2*due 
    328328 
    329           due = sum( (duc(ij,:,l) + duc(ij+t_ldown,:,l))*ep_e(ij+u_ldown,:) ) 
     329          due = sum( (duc(ij,l,:) + duc(ij+t_ldown,l,:))*ep_e(ij+u_ldown,:) ) 
    330330          ue(ij+u_ldown,l)=ue(ij+u_ldown,l) + dt2*due 
    331331        ENDDO 
  • codes/icosagcm/devel/src/physics/physics_lmdz_generic.F90

    r533 r584  
    7878    CALL allocate_field(f_dq,field_t,type_real,llm,nqtot) 
    7979    CALL allocate_field(f_dps,field_t,type_real) 
    80     CALL allocate_field(f_duc,field_t,type_real,3,llm)     
     80    CALL allocate_field(f_duc,field_t,type_real,llm,3) 
    8181!$OMP END PARALLEL     
    8282 
     
    362362          DO i=ii_begin,ii_end 
    363363            ij=(j-1)*iim+i 
    364             duc(ij,:,l)=dulon(ij,l)*elon_i(ij,:)+dulat(ij,l)*elat_i(ij,:) 
     364            duc(ij,l,:)=dulon(ij,l)*elon_i(ij,:)+dulat(ij,l)*elat_i(ij,:) 
    365365          ENDDO 
    366366        ENDDO 
     
    371371          DO i=ii_begin,ii_end 
    372372            ij=(j-1)*iim+i 
    373             u(ij+u_right,l) = u(ij+u_right,l) + dtphy * sum( 0.5*(duc(ij,:,l) + duc(ij+t_right,:,l))*ep_e(ij+u_right,:) ) 
    374             u(ij+u_lup,l) = u(ij+u_lup,l) + dtphy * sum( 0.5*(duc(ij,:,l) + duc(ij+t_lup,:,l))*ep_e(ij+u_lup,:) ) 
    375             u(ij+u_ldown,l) = u(ij+u_ldown,l) + dtphy*sum( 0.5*(duc(ij,:,l) + duc(ij+t_ldown,:,l))*ep_e(ij+u_ldown,:) ) 
     373            u(ij+u_right,l) = u(ij+u_right,l) + dtphy * sum( 0.5*(duc(ij,l,:) + duc(ij+t_right,l,:))*ep_e(ij+u_right,:) ) 
     374            u(ij+u_lup,l) = u(ij+u_lup,l) + dtphy * sum( 0.5*(duc(ij,l,:) + duc(ij+t_lup,l,:))*ep_e(ij+u_lup,:) ) 
     375            u(ij+u_ldown,l) = u(ij+u_ldown,l) + dtphy*sum( 0.5*(duc(ij,l,:) + duc(ij+t_ldown,l,:))*ep_e(ij+u_ldown,:) ) 
    376376          ENDDO 
    377377        ENDDO 
  • codes/icosagcm/devel/src/time/timeloop_gcm.f90

    r569 r584  
    168168    USE caldyn_mod 
    169169    USE advect_tracer_mod 
     170    USE diagflux_mod 
    170171    USE physics_mod 
    171172    USE mpipara 
     
    213214    CALL check_conserve(f_ps,f_dps,f_u,f_theta_rhodz,f_phis,itau0)   
    214215 
    215     CALL trace_on 
     216    Call trace_on 
    216217 
    217218    IF (xios_output) THEN ! we must call update_calendar before any XIOS output 
     
    298299        
    299300       IF(MOD(it,itau_adv)==0) THEN 
    300           CALL advect_tracer(f_hfluxt,f_wfluxt,f_u, f_q,f_rhodz)  ! update q and rhodz after RK step 
     301          CALL advect_tracer(diagflux_on, f_hfluxt,f_wfluxt,f_u, f_q,f_rhodz,f_qfluxt)  ! update q and rhodz after RK step 
    301302          fluxt_zero=.TRUE. 
    302303          ! FIXME : check that rhodz is consistent with ps 
Note: See TracChangeset for help on using the changeset viewer.