Changeset 645


Ignore:
Timestamp:
12/20/17 15:47:20 (6 years ago)
Author:
dubos
Message:

devel/unstructured : OpenMP bugfix

Location:
codes/icosagcm/devel/src/unstructured
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/unstructured/caldyn_unstructured.F90

    r642 r645  
    107107  DBL :: dF_deta, dFu_deta 
    108108  wwuu=0. 
     109  !$OMP BARRIER 
    109110#include "../kernels_unst/caldyn_wflux.k90" 
    110111#include "../kernels_unst/caldyn_dmass.k90" 
     
    112113END SUBROUTINE caldyn_vert 
    113114 
    114 SUBROUTINE compute_coriolis(hflux,theta,qu, convm,dtheta_rhodz,du) 
     115SUBROUTINE compute_coriolis(hflux,theta,qu,Ftheta, convm,dtheta_rhodz,du) 
    115116  FIELD_U     :: hflux, Ftheta, qu, du 
    116117  FIELD_MASS  :: convm 
  • codes/icosagcm/devel/src/unstructured/timestep_unstructured.F90

    r642 r645  
    4141                                 dPhi_fast, dPhi_slow, dW_fast, dW_slow) BINDC(caldyn_unstructured) ! OUT : tendencies 
    4242    DBL, VALUE :: tau 
    43     FIELD_MASS   :: rhodz, drhodz, pk, berni         ! IN, OUT, DIAG 
    44     FIELD_THETA  :: theta_rhodz, dtheta_rhodz, theta ! IN, OUT, DIAG 
    45     FIELD_GEOPOT :: wflux, w, geopot, &              ! DIAG, INOUT 
    46          dPhi_fast, dPhi_slow, dW_fast, dW_slow      ! OUT 
    47     FIELD_U      :: u,du_fast,du_slow,hflux,qu      ! INOUT,OUT,OUT,DIAG 
    48     FIELD_Z      :: qv                               ! DIAG 
    49     FIELD_PS     :: ps,dmass_col,mass_col            ! OUT,OUT,IN (if eta_mass) or OUT,UNUSED,UNUSED (if eta_lag) 
     43    FIELD_MASS   :: rhodz, drhodz, pk, berni          ! IN, OUT, DIAG 
     44    FIELD_THETA  :: theta_rhodz, dtheta_rhodz, theta  ! IN, OUT, DIAG 
     45    FIELD_GEOPOT :: wflux, w, geopot, &               ! DIAG, INOUT 
     46         dPhi_fast, dPhi_slow, dW_fast, dW_slow       ! OUT 
     47    FIELD_U      :: u,du_fast,du_slow,hflux,Ftheta,qu ! INOUT,OUT,OUT,DIAG 
     48    FIELD_Z      :: qv                                ! DIAG 
     49    FIELD_PS     :: ps,dmass_col,mass_col             ! OUT,OUT,IN (if eta_mass) or OUT,UNUSED,UNUSED (if eta_lag) 
    5050    FIELD_UL     :: wwuu 
    5151    DBL          :: time1,time2 
     
    7171       CALL compute_pvort_only(rhodz,u,qv,qu) 
    7272       CALL compute_caldyn_slow_hydro(rhodz,theta,u, berni,hflux,du_slow) 
    73        CALL compute_coriolis(hflux,theta,qu, drhodz,dtheta_rhodz,du_slow) 
     73       CALL compute_coriolis(hflux,theta,qu,Ftheta, drhodz,dtheta_rhodz,du_slow) 
    7474       IF(caldyn_eta == eta_mass) THEN 
    7575          CALL caldyn_vert(drhodz,rhodz,theta,u, dmass_col,wflux,dtheta_rhodz,du_slow,wwuu) 
     
    9191       CALL compute_pvort_only(rhodz,u,qv,qu) 
    9292       CALL compute_caldyn_slow_NH(u,rhodz,geopot,W, hflux,du_slow,dPhi_slow,dW_slow)  
    93        CALL compute_coriolis(hflux,theta,qu, drhodz,dtheta_rhodz,du_slow) 
     93       CALL compute_coriolis(hflux,theta,qu,Ftheta, drhodz,dtheta_rhodz,du_slow) 
    9494       IF(caldyn_eta == eta_mass) THEN 
    9595          CALL caldyn_vert(drhodz,rhodz,theta,u, dmass_col,wflux,dtheta_rhodz,du_slow,wwuu) 
     
    114114    FIELD_MASS   :: rhodz, pk, berni                 ! IN, DIAG 
    115115    FIELD_THETA  :: theta_rhodz, theta               ! IN, DIAG 
    116     FIELD_U      :: u,hflux,qu                       ! INOUT,DIAG 
     116    FIELD_U      :: u,hflux,qu,Ftheta                ! INOUT,DIAG*3 
    117117    FIELD_GEOPOT :: geopot, w, wflux, w_il           ! IN, INOUT, DIAG, DIAG 
    118118    FIELD_Z      :: qv                               ! DIAG 
     
    150150             CALL compute_pvort_only(rhodz,u,qv,qu) 
    151151             CALL compute_caldyn_slow_hydro(rhodz,theta,u, berni,hflux,du_slow(:,:,stage)) 
    152              CALL compute_coriolis(hflux,theta,qu, drhodz(:,:,stage), dtheta_rhodz(:,:,:,stage),du_slow(:,:,stage)) 
     152             CALL compute_coriolis(hflux,theta,qu,Ftheta, drhodz(:,:,stage), dtheta_rhodz(:,:,:,stage),du_slow(:,:,stage)) 
    153153             IF(caldyn_eta == eta_mass) THEN 
    154154                CALL caldyn_vert(drhodz(:,:,stage),rhodz,theta,u, & 
     
    169169             CALL compute_pvort_only(rhodz,u,qv,qu) 
    170170             CALL compute_caldyn_slow_NH(u,rhodz,geopot,W, hflux, du_slow(:,:,stage), dPhi_slow(:,:,stage), dW_slow(:,:,stage)) 
    171              CALL compute_coriolis(hflux,theta,qu, drhodz(:,:,stage),dtheta_rhodz(:,:,:,stage), du_slow(:,:,stage)) 
     171             CALL compute_coriolis(hflux,theta,qu,Ftheta, drhodz(:,:,stage),dtheta_rhodz(:,:,:,stage), du_slow(:,:,stage)) 
    172172             IF(caldyn_eta == eta_mass) THEN 
    173173                CALL caldyn_vert(drhodz(:,:,stage),rhodz,theta,u, & 
Note: See TracChangeset for help on using the changeset viewer.