Ignore:
Timestamp:
09/21/17 18:18:47 (7 years ago)
Author:
dubos
Message:

devel : Fix OpenMP for NH

File:
1 edited

Legend:

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

    r539 r558  
    125125 
    126126#ifdef CPP_DYSL 
    127 !#if 0 
    128127#include "../kernels/compute_NH_geopot.k90" 
    129128#else 
    130  
    131129!    FIXME : vertical OpenMP parallelism will not work 
    132130    
     
    266264  END SUBROUTINE compute_NH_geopot 
    267265 
    268   SUBROUTINE compute_caldyn_solver(tau,rhodz,theta,pk, geopot,W, dPhi,dW,du) 
     266  SUBROUTINE compute_caldyn_solver(tau,rhodz,theta,pk, geopot,W, m_il,pres, dPhi,dW,du) 
    269267    REAL(rstd),INTENT(IN) :: tau ! "solve" Phi-tau*dPhi/dt = Phi_rhs 
    270268    REAL(rstd),INTENT(IN)    :: rhodz(iim*jjm,llm) 
     
    273271    REAL(rstd),INTENT(INOUT) :: geopot(iim*jjm,llm+1) 
    274272    REAL(rstd),INTENT(INOUT) :: W(iim*jjm,llm+1) ! OUT if tau>0 
     273    REAL(rstd),INTENT(OUT)   :: m_il(iim*jjm,llm+1)        ! rhodz averaged to interfaces 
     274    REAL(rstd),INTENT(OUT)   :: pres(iim*jjm,llm)          ! pressure 
    275275    REAL(rstd),INTENT(OUT)   :: dW(iim*jjm,llm+1) 
    276276    REAL(rstd),INTENT(OUT)   :: dPhi(iim*jjm,llm+1) 
    277277    REAL(rstd),INTENT(OUT)   :: du(3*iim*jjm,llm) 
    278278 
    279     REAL(rstd) :: m_il(iim*jjm,llm+1)        ! rhodz averaged to interfaces 
    280     REAL(rstd) :: pres(iim*jjm,llm)          ! pressure 
    281     REAL(rstd) :: berni(iim*jjm,llm)             ! (W/m_il)^2 
     279    REAL(rstd) :: berni(iim*jjm,llm)         ! (W/m_il)^2 
    282280    REAL(rstd) :: gamma, rho_ij, T_ij, X_ij, Y_ij, vreff, Rd, Cvd 
    283281    INTEGER    :: ij, l 
     
    288286 
    289287#ifdef CPP_DYSL 
    290 !#if 0 
     288!$OMP BARRIER 
    291289#include "../kernels/caldyn_solver.k90" 
     290!$OMP BARRIER 
    292291#else 
    293292#define BERNI(ij) berni(ij,1) 
     
    517516 
    518517#ifdef CPP_DYSL 
    519 !#if 0 
    520518#include "../kernels/coriolis.k90" 
    521519#else 
     
    675673 
    676674#ifdef CPP_DYSL 
    677 !#if 0 
    678675#define BERNI(ij,l) berni(ij,l) 
    679676#include "../kernels/caldyn_slow_hydro.k90" 
     
    733730  END SUBROUTINE compute_caldyn_slow_hydro 
    734731 
    735   SUBROUTINE compute_caldyn_slow_NH(u,rhodz,Phi,W, hflux,du,dPhi,dW) 
     732  SUBROUTINE compute_caldyn_slow_NH(u,rhodz,Phi,W, F_el,gradPhi2,w_il, hflux,du,dPhi,dW) 
    736733    REAL(rstd),INTENT(IN)  :: u(3*iim*jjm,llm)    ! prognostic "velocity" 
    737734    REAL(rstd),INTENT(IN)  :: rhodz(iim*jjm,llm)  ! rho*dz 
     
    744741    REAL(rstd),INTENT(OUT) :: dPhi(iim*jjm,llm+1) 
    745742 
    746     REAL(rstd) :: w_il(3*iim*jjm,llm+1) ! Wil/mil 
     743    REAL(rstd) :: w_il(iim*jjm,llm+1) ! Wil/mil 
    747744    REAL(rstd) :: F_el(3*iim*jjm,llm+1) ! NH mass flux 
    748     REAL(rstd) :: GradPhi2(3*iim*jjm,llm+1) ! grad_Phi**2 
     745    REAL(rstd) :: gradPhi2(iim*jjm,llm+1) ! grad_Phi**2 
    749746    REAL(rstd) :: DePhil(3*iim*jjm,llm+1) ! grad(Phi) 
    750747     
     
    765762 
    766763#ifdef CPP_DYSL 
     764!$OMP BARRIER 
    767765#include "../kernels/caldyn_slow_NH.k90" 
     766!$OMP BARRIER 
    768767#else 
    769768    DO l=ll_begin, ll_endp1 ! compute on l levels (interfaces) 
Note: See TracChangeset for help on using the changeset viewer.