New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 6748 for branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90 – NEMO

Ignore:
Timestamp:
2016-06-28T11:53:56+02:00 (8 years ago)
Author:
mocavero
Message:

GYRE hybrid parallelization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r6387 r6748  
    157157      CALL iom_put(  "sst", tsn(:,:,1,jp_tem) )    ! surface temperature 
    158158      IF ( iom_use("sbt") ) THEN 
     159!$OMP PARALLEL DO schedule(static) private(jj, ji, jkbot) 
    159160         DO jj = 1, jpj 
    160161            DO ji = 1, jpi 
     
    169170      CALL iom_put(  "sss", tsn(:,:,1,jp_sal) )    ! surface salinity 
    170171      IF ( iom_use("sbs") ) THEN 
     172!$OMP PARALLEL DO schedule(static) private(jj, ji, jkbot) 
    171173         DO jj = 1, jpj 
    172174            DO ji = 1, jpi 
     
    180182      IF ( iom_use("taubot") ) THEN                ! bottom stress 
    181183         z2d(:,:) = 0._wp 
     184!$OMP PARALLEL DO schedule(static) private(jj, ji, zztmpx,zztmpy) 
    182185         DO jj = 2, jpjm1 
    183186            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    197200      CALL iom_put(  "ssu", un(:,:,1)         )    ! surface i-current 
    198201      IF ( iom_use("sbu") ) THEN 
     202!$OMP PARALLEL DO schedule(static) private(jj, ji, jkbot) 
    199203         DO jj = 1, jpj 
    200204            DO ji = 1, jpi 
     
    209213      CALL iom_put(  "ssv", vn(:,:,1)         )    ! surface j-current 
    210214      IF ( iom_use("sbv") ) THEN 
     215!$OMP PARALLEL DO schedule(static) private(jj, ji,jkbot) 
    211216         DO jj = 1, jpj 
    212217            DO ji = 1, jpi 
     
    222227         ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 
    223228         z2d(:,:) = rau0 * e1e2t(:,:) 
     229!$OMP PARALLEL DO schedule(static) private(jk) 
    224230         DO jk = 1, jpk 
    225             z3d(:,:,jk) = wn(:,:,jk) * z2d(:,:) 
     231            z3d(:,:,jk) = wn(:,:,jk) * z2d(:,:)  
    226232         END DO 
    227233         CALL iom_put( "w_masstr" , z3d )   
     
    237243 
    238244      IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 
     245!$OMP PARALLEL DO schedule(static) private(jj, ji, zztmp, zztmpx, zztmpy) 
    239246         DO jj = 2, jpjm1                                    ! sst gradient 
    240247            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    255262      IF( iom_use("heatc") ) THEN 
    256263         z2d(:,:)  = 0._wp  
     264!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    257265         DO jk = 1, jpkm1 
    258266            DO jj = 1, jpj 
     
    267275      IF( iom_use("saltc") ) THEN 
    268276         z2d(:,:)  = 0._wp  
     277!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    269278         DO jk = 1, jpkm1 
    270279            DO jj = 1, jpj 
     
    279288      IF ( iom_use("eken") ) THEN 
    280289         rke(:,:,jk) = 0._wp                               !      kinetic energy  
     290!$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zztmp, zztmpx, zztmpy) 
    281291         DO jk = 1, jpkm1 
    282292            DO jj = 2, jpjm1 
     
    304314      IF( iom_use("u_masstr") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 
    305315         z3d(:,:,jpk) = 0.e0 
     316!$OMP PARALLEL DO schedule(static) private(jk) 
    306317         DO jk = 1, jpkm1 
    307318            z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * e3u_n(:,:,jk) * umask(:,:,jk) 
     
    312323      IF( iom_use("u_heattr") ) THEN 
    313324         z2d(:,:) = 0.e0  
     325!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    314326         DO jk = 1, jpkm1 
    315327            DO jj = 2, jpjm1 
     
    325337      IF( iom_use("u_salttr") ) THEN 
    326338         z2d(:,:) = 0.e0  
     339!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    327340         DO jk = 1, jpkm1 
    328341            DO jj = 2, jpjm1 
     
    339352      IF( iom_use("v_masstr") .OR. iom_use("v_heattr") .OR. iom_use("v_salttr") ) THEN 
    340353         z3d(:,:,jpk) = 0.e0 
     354!$OMP PARALLEL DO schedule(static) private(jk) 
    341355         DO jk = 1, jpkm1 
    342356            z3d(:,:,jk) = rau0 * vn(:,:,jk) * e1v(:,:) * e3v_n(:,:,jk) * vmask(:,:,jk) 
     
    347361      IF( iom_use("v_heattr") ) THEN 
    348362         z2d(:,:) = 0.e0  
     363!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    349364         DO jk = 1, jpkm1 
    350365            DO jj = 2, jpjm1 
     
    360375      IF( iom_use("v_salttr") ) THEN 
    361376         z2d(:,:) = 0.e0  
     377!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    362378         DO jk = 1, jpkm1 
    363379            DO jj = 2, jpjm1 
Note: See TracChangeset for help on using the changeset viewer.