Ignore:
Timestamp:
12/08/17 15:08:49 (6 years ago)
Author:
dubos
Message:

devel : introduced kernels for caldyn_vert (optional)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/dynamics/caldyn_kernels_base.F90

    r612 r624  
    180180    REAL(rstd),INTENT(INOUT) :: dtheta_rhodz(iim*jjm,llm,nqdyn) 
    181181    REAL(rstd),INTENT(OUT) :: dps(iim*jjm) 
     182    INTEGER, PARAMETER :: caldyn_vert_cons=1, caldyn_vert_variant=caldyn_vert_cons 
    182183 
    183184    ! temporary variable     
    184185    INTEGER :: i,j,ij,l,iq 
    185     REAL(rstd) :: p_ik, exner_ik 
     186    REAL(rstd) :: p_ik, exner_ik, dF_deta, dFu_deta 
    186187    INTEGER    :: ij_omp_begin, ij_omp_end 
    187188 
     
    190191    CALL distrib_level(ij_begin,ij_end, ij_omp_begin,ij_omp_end) 
    191192 
    192     !    REAL(rstd) :: wwuu(iim*3*jjm,llm+1) ! tmp var, don't know why but gain 30% on the whole code in opemp 
    193     ! need to be understood 
    194  
    195     !    wwuu=wwuu_out 
    196     CALL trace_start("compute_caldyn_vert") 
     193    IF(dysl_caldyn_vert) THEN 
     194#define mass_bl(ij,l) bp(ij) 
     195#define dmass_col(ij) dps(ij) 
     196#include "../kernels_hex/caldyn_wflux.k90" 
     197#include "../kernels_hex/caldyn_vert.k90" 
     198#undef mass_bl 
     199#undef dmass_col 
     200    ELSE 
    197201 
    198202    !$OMP BARRIER    
    199203!!! cumulate mass flux convergence from top to bottom 
    200     !  IF (is_omp_level_master) THEN 
    201204    DO  l = llm-1, 1, -1 
    202        !    IF (caldyn_conserv==energy) CALL test_message(req_qu)  
    203  
    204 !!$OMP DO SCHEDULE(STATIC)  
    205205       !DIR$ SIMD 
    206206       DO ij=ij_omp_begin,ij_omp_end          
     
    212212    !$OMP BARRIER 
    213213    ! FLUSH on convm 
    214 !!!!!!!!!!!!!!!!!!!!!!!!! 
    215  
    216     ! compute dps 
     214    ! compute dmass_col 
    217215    IF (is_omp_first_level) THEN 
    218216       !DIR$ SIMD 
     
    277275    ENDDO 
    278276 
    279     !  DO l=ll_beginp1,ll_end 
    280     !!DIR$ SIMD 
    281     !      DO ij=ij_begin,ij_end          
    282     !        wwuu_out(ij+u_right,l) = wwuu(ij+u_right,l) 
    283     !        wwuu_out(ij+u_lup,l)   = wwuu(ij+u_lup,l) 
    284     !        wwuu_out(ij+u_ldown,l) = wwuu(ij+u_ldown,l) 
    285     !     ENDDO 
    286     !   ENDDO 
     277    END IF ! dysl 
    287278 
    288279    CALL trace_end("compute_caldyn_vert") 
Note: See TracChangeset for help on using the changeset viewer.