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 7753 for trunk/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90 – NEMO

Ignore:
Timestamp:
2017-03-03T12:46:59+01:00 (7 years ago)
Author:
mocavero
Message:

Reverting trunk to remove OpenMP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90

    r7698 r7753  
    6262      INTEGER ::   ios                 ! Local integer output status for namelist read 
    6363      INTEGER ::   ierror              ! Local integer for memory allocation 
    64       INTEGER ::   ji, jj, jk 
    6564      ! 
    6665      NAMELIST/nam_dia25h/ ln_dia25h 
     
    135134      ! ------------------------- ! 
    136135      cnt_25h = 1  ! sets the first value of sum at timestep 1 (note - should strictly be at timestep zero so before values used where possible)  
    137 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    138          DO jk = 1, jpk 
    139             DO jj = 1, jpj 
    140                DO ji = 1, jpi 
    141                   tn_25h(ji,jj,jk) = tsb(ji,jj,jk,jp_tem) 
    142                   sn_25h(ji,jj,jk) = tsb(ji,jj,jk,jp_sal) 
    143                   sshn_25h(ji,jj) = sshb(ji,jj) 
    144                   un_25h(ji,jj,jk) = ub(ji,jj,jk) 
    145                   vn_25h(ji,jj,jk) = vb(ji,jj,jk) 
    146                   wn_25h(ji,jj,jk) = wn(ji,jj,jk) 
    147                   avt_25h(ji,jj,jk) = avt(ji,jj,jk) 
    148                   avm_25h(ji,jj,jk) = avm(ji,jj,jk) 
    149 # if defined key_zdfgls || defined key_zdftke 
    150                   en_25h(ji,jj,jk) = en(ji,jj,jk) 
     136      tn_25h(:,:,:) = tsb(:,:,:,jp_tem) 
     137      sn_25h(:,:,:) = tsb(:,:,:,jp_sal) 
     138      sshn_25h(:,:) = sshb(:,:) 
     139      un_25h(:,:,:) = ub(:,:,:) 
     140      vn_25h(:,:,:) = vb(:,:,:) 
     141      wn_25h(:,:,:) = wn(:,:,:) 
     142      avt_25h(:,:,:) = avt(:,:,:) 
     143      avm_25h(:,:,:) = avm(:,:,:) 
     144# if defined key_zdfgls || defined key_zdftke 
     145         en_25h(:,:,:) = en(:,:,:) 
    151146#endif 
    152147# if defined key_zdfgls 
    153                   rmxln_25h(ji,jj,jk) = mxln(ji,jj,jk) 
    154 #endif 
    155                END DO 
    156             END DO 
    157          END DO 
     148         rmxln_25h(:,:,:) = mxln(:,:,:) 
     149#endif 
    158150#if defined key_lim3 || defined key_lim2 
    159151         CALL ctl_stop('STOP', 'dia_25h not setup yet to do tidemean ice') 
     
    231223         ENDIF 
    232224 
    233 !$OMP PARALLEL 
    234 !$OMP DO schedule(static) private(jj, ji) 
    235          DO jj = 1, jpj 
    236             DO ji = 1, jpi 
    237                sshn_25h(ji,jj)     = sshn_25h(ji,jj) + sshn (ji,jj) 
    238             END DO 
    239          END DO 
    240 !$OMP END DO NOWAIT 
    241 !$OMP DO schedule(static) private(jk, jj, ji) 
    242          DO jk = 1, jpk 
    243             DO jj = 1, jpj 
    244                DO ji = 1, jpi 
    245                   tn_25h(ji,jj,jk)        = tn_25h(ji,jj,jk) + tsn(ji,jj,jk,jp_tem) 
    246                   sn_25h(ji,jj,jk)        = sn_25h(ji,jj,jk) + tsn(ji,jj,jk,jp_sal) 
    247                   un_25h(ji,jj,jk)        = un_25h(ji,jj,jk) + un(ji,jj,jk) 
    248                   vn_25h(ji,jj,jk)        = vn_25h(ji,jj,jk) + vn(ji,jj,jk) 
    249                   wn_25h(ji,jj,jk)        = wn_25h(ji,jj,jk) + wn(ji,jj,jk) 
    250                   avt_25h(ji,jj,jk)       = avt_25h(ji,jj,jk) + avt(ji,jj,jk) 
    251                   avm_25h(ji,jj,jk)       = avm_25h(ji,jj,jk) + avm(ji,jj,jk) 
    252 # if defined key_zdfgls || defined key_zdftke 
    253                   en_25h(ji,jj,jk)        = en_25h(ji,jj,jk) + en(ji,jj,jk) 
     225         tn_25h(:,:,:)        = tn_25h(:,:,:) + tsn(:,:,:,jp_tem) 
     226         sn_25h(:,:,:)        = sn_25h(:,:,:) + tsn(:,:,:,jp_sal) 
     227         sshn_25h(:,:)        = sshn_25h(:,:) + sshn (:,:) 
     228         un_25h(:,:,:)        = un_25h(:,:,:) + un(:,:,:) 
     229         vn_25h(:,:,:)        = vn_25h(:,:,:) + vn(:,:,:) 
     230         wn_25h(:,:,:)        = wn_25h(:,:,:) + wn(:,:,:) 
     231         avt_25h(:,:,:)       = avt_25h(:,:,:) + avt(:,:,:) 
     232         avm_25h(:,:,:)       = avm_25h(:,:,:) + avm(:,:,:) 
     233# if defined key_zdfgls || defined key_zdftke 
     234         en_25h(:,:,:)        = en_25h(:,:,:) + en(:,:,:) 
    254235#endif 
    255236# if defined key_zdfgls 
    256                   rmxln_25h(ji,jj,jk)      = rmxln_25h(ji,jj,jk) + mxln(ji,jj,jk) 
    257 #endif 
    258                END DO 
    259             END DO 
    260          END DO 
    261 !$OMP END PARALLEL 
     237         rmxln_25h(:,:,:)      = rmxln_25h(:,:,:) + mxln(:,:,:) 
     238#endif 
    262239         cnt_25h = cnt_25h + 1 
    263240 
     
    276253            ENDIF 
    277254 
    278 !$OMP PARALLEL 
    279 !$OMP DO schedule(static) private(jj, ji) 
    280          DO jj = 1, jpj 
    281             DO ji = 1, jpi 
    282                sshn_25h(ji,jj)     = sshn_25h(ji,jj) / 25.0_wp 
    283             END DO 
    284          END DO 
    285 !$OMP END DO NOWAIT 
    286 !$OMP DO schedule(static) private(jk, jj, ji) 
    287          DO jk = 1, jpk 
    288             DO jj = 1, jpj 
    289                DO ji = 1, jpi 
    290                   tn_25h(ji,jj,jk)        = tn_25h(ji,jj,jk) / 25.0_wp 
    291                   sn_25h(ji,jj,jk)        = sn_25h(ji,jj,jk) / 25.0_wp 
    292                   un_25h(ji,jj,jk)        = un_25h(ji,jj,jk) / 25.0_wp 
    293                   vn_25h(ji,jj,jk)        = vn_25h(ji,jj,jk) / 25.0_wp 
    294                   wn_25h(ji,jj,jk)        = wn_25h(ji,jj,jk) / 25.0_wp 
    295                   avt_25h(ji,jj,jk)       = avt_25h(ji,jj,jk) / 25.0_wp 
    296                   avm_25h(ji,jj,jk)       = avm_25h(ji,jj,jk) / 25.0_wp 
    297 # if defined key_zdfgls || defined key_zdftke 
    298                   en_25h(ji,jj,jk)        = en_25h(ji,jj,jk) / 25.0_wp 
     255            tn_25h(:,:,:)        = tn_25h(:,:,:) / 25.0_wp 
     256            sn_25h(:,:,:)        = sn_25h(:,:,:) / 25.0_wp 
     257            sshn_25h(:,:)        = sshn_25h(:,:) / 25.0_wp 
     258            un_25h(:,:,:)        = un_25h(:,:,:) / 25.0_wp 
     259            vn_25h(:,:,:)        = vn_25h(:,:,:) / 25.0_wp 
     260            wn_25h(:,:,:)        = wn_25h(:,:,:) / 25.0_wp 
     261            avt_25h(:,:,:)       = avt_25h(:,:,:) / 25.0_wp 
     262            avm_25h(:,:,:)       = avm_25h(:,:,:) / 25.0_wp 
     263# if defined key_zdfgls || defined key_zdftke 
     264            en_25h(:,:,:)        = en_25h(:,:,:) / 25.0_wp 
    299265#endif 
    300266# if defined key_zdfgls 
    301                   rmxln_25h(ji,jj,jk)       = rmxln_25h(ji,jj,jk) / 25.0_wp 
    302 #endif 
    303                END DO 
    304             END DO 
    305          END DO 
    306 !$OMP END PARALLEL 
     267            rmxln_25h(:,:,:)       = rmxln_25h(:,:,:) / 25.0_wp 
     268#endif 
    307269 
    308270            IF (lwp)  WRITE(numout,*) 'dia_wri_tide : Mean calculated by dividing 25 hour sums and writing output' 
    309271            zmdi=1.e+20 !missing data indicator for masking 
    310272            ! write tracers (instantaneous) 
    311 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    312          DO jk = 1, jpk 
    313             DO jj = 1, jpj 
    314                DO ji = 1, jpi 
    315                   zw3d(ji,jj,jk) = tn_25h(ji,jj,jk)*tmask(ji,jj,jk) + zmdi*(1.0-tmask(ji,jj,jk)) 
    316                END DO 
    317             END DO 
    318          END DO 
     273            zw3d(:,:,:) = tn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    319274            CALL iom_put("temper25h", zw3d)   ! potential temperature 
    320 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    321          DO jk = 1, jpk 
    322             DO jj = 1, jpj 
    323                DO ji = 1, jpi 
    324                   zw3d(ji,jj,jk) = sn_25h(ji,jj,jk)*tmask(ji,jj,jk) + zmdi*(1.0-tmask(ji,jj,jk)) 
    325                END DO 
    326             END DO 
    327          END DO 
     275            zw3d(:,:,:) = sn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    328276            CALL iom_put( "salin25h", zw3d  )   ! salinity 
    329 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    330          DO jj = 1, jpj 
    331             DO ji = 1, jpi 
    332                zw2d(ji,jj) = sshn_25h(ji,jj)*tmask(ji,jj,1) + zmdi*(1.0-tmask(ji,jj,1)) 
    333             END DO 
    334          END DO 
     277            zw2d(:,:) = sshn_25h(:,:)*tmask(:,:,1) + zmdi*(1.0-tmask(:,:,1)) 
    335278            CALL iom_put( "ssh25h", zw2d )   ! sea surface  
    336279 
    337280 
    338281            ! Write velocities (instantaneous) 
    339 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    340          DO jk = 1, jpk 
    341             DO jj = 1, jpj 
    342                DO ji = 1, jpi 
    343                   zw3d(ji,jj,jk) = un_25h(ji,jj,jk)*umask(ji,jj,jk) + zmdi*(1.0-umask(ji,jj,jk)) 
    344                END DO 
    345             END DO 
    346          END DO 
     282            zw3d(:,:,:) = un_25h(:,:,:)*umask(:,:,:) + zmdi*(1.0-umask(:,:,:)) 
    347283            CALL iom_put("vozocrtx25h", zw3d)    ! i-current 
    348 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    349          DO jk = 1, jpk 
    350             DO jj = 1, jpj 
    351                DO ji = 1, jpi 
    352                   zw3d(ji,jj,jk) = vn_25h(ji,jj,jk)*vmask(ji,jj,jk) + zmdi*(1.0-vmask(ji,jj,jk)) 
    353                END DO 
    354             END DO 
    355          END DO 
     284            zw3d(:,:,:) = vn_25h(:,:,:)*vmask(:,:,:) + zmdi*(1.0-vmask(:,:,:)) 
    356285            CALL iom_put("vomecrty25h", zw3d  )   ! j-current 
    357 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    358          DO jk = 1, jpk 
    359             DO jj = 1, jpj 
    360                DO ji = 1, jpi 
    361                   zw3d(ji,jj,jk) = wn_25h(ji,jj,jk)*tmask(ji,jj,jk) + zmdi*(1.0-tmask(ji,jj,jk)) 
    362                END DO 
    363             END DO 
    364          END DO 
     286 
     287            zw3d(:,:,:) = wn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    365288            CALL iom_put("vomecrtz25h", zw3d )   ! k-current 
    366 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    367          DO jk = 1, jpk 
    368             DO jj = 1, jpj 
    369                DO ji = 1, jpi 
    370                   zw3d(ji,jj,jk) = avt_25h(ji,jj,jk)*tmask(ji,jj,jk) + zmdi*(1.0-tmask(ji,jj,jk)) 
    371                END DO 
    372             END DO 
    373          END DO 
     289            zw3d(:,:,:) = avt_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    374290            CALL iom_put("avt25h", zw3d )   ! diffusivity 
    375 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    376          DO jk = 1, jpk 
    377             DO jj = 1, jpj 
    378                DO ji = 1, jpi 
    379                   zw3d(ji,jj,jk) = avm_25h(ji,jj,jk)*tmask(ji,jj,jk) + zmdi*(1.0-tmask(ji,jj,jk)) 
    380                END DO 
    381             END DO 
    382          END DO 
     291            zw3d(:,:,:) = avm_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    383292            CALL iom_put("avm25h", zw3d)   ! viscosity 
    384293#if defined key_zdftke || defined key_zdfgls  
    385 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    386          DO jk = 1, jpk 
    387             DO jj = 1, jpj 
    388                DO ji = 1, jpi 
    389                   zw3d(ji,jj,jk) = en_25h(ji,jj,jk)*tmask(ji,jj,jk) + zmdi*(1.0-tmask(ji,jj,jk)) 
    390                END DO 
    391             END DO 
    392          END DO 
     294            zw3d(:,:,:) = en_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    393295            CALL iom_put("tke25h", zw3d)   ! tke 
    394296#endif 
    395297#if defined key_zdfgls  
    396 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    397          DO jk = 1, jpk 
    398             DO jj = 1, jpj 
    399                DO ji = 1, jpi 
    400                   zw3d(ji,jj,jk) = rmxln_25h(ji,jj,jk)*tmask(ji,jj,jk) + zmdi*(1.0-tmask(ji,jj,jk)) 
    401                END DO 
    402             END DO 
    403          END DO 
     298            zw3d(:,:,:) = rmxln_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 
    404299            CALL iom_put( "mxln25h",zw3d) 
    405300#endif 
    406301 
    407302            ! After the write reset the values to cnt=1 and sum values equal current value  
    408 !$OMP PARALLEL 
    409 !$OMP DO schedule(static) private(jj, ji) 
    410          DO jj = 1, jpj 
    411             DO ji = 1, jpi 
    412                sshn_25h(ji,jj) = sshn (ji,jj) 
    413             END DO 
    414          END DO 
    415 !$OMP END DO NOWAIT 
    416 !$OMP DO schedule(static) private(jk, jj, ji) 
    417          DO jk = 1, jpk 
    418             DO jj = 1, jpj 
    419                DO ji = 1, jpi 
    420                   tn_25h(ji,jj,jk) = tsn(ji,jj,jk,jp_tem) 
    421                   sn_25h(ji,jj,jk) = tsn(ji,jj,jk,jp_sal) 
    422                   un_25h(ji,jj,jk) = un(ji,jj,jk) 
    423                   vn_25h(ji,jj,jk) = vn(ji,jj,jk) 
    424                   wn_25h(ji,jj,jk) = wn(ji,jj,jk) 
    425                   avt_25h(ji,jj,jk) = avt(ji,jj,jk) 
    426                   avm_25h(ji,jj,jk) = avm(ji,jj,jk) 
    427 # if defined key_zdfgls || defined key_zdftke 
    428                   en_25h(ji,jj,jk) = en(ji,jj,jk) 
     303            tn_25h(:,:,:) = tsn(:,:,:,jp_tem) 
     304            sn_25h(:,:,:) = tsn(:,:,:,jp_sal) 
     305            sshn_25h(:,:) = sshn (:,:) 
     306            un_25h(:,:,:) = un(:,:,:) 
     307            vn_25h(:,:,:) = vn(:,:,:) 
     308            wn_25h(:,:,:) = wn(:,:,:) 
     309            avt_25h(:,:,:) = avt(:,:,:) 
     310            avm_25h(:,:,:) = avm(:,:,:) 
     311# if defined key_zdfgls || defined key_zdftke 
     312            en_25h(:,:,:) = en(:,:,:) 
    429313#endif 
    430314# if defined key_zdfgls 
    431                   rmxln_25h(ji,jj,jk) = mxln(ji,jj,jk) 
    432 #endif 
    433                END DO 
    434             END DO 
    435          END DO 
    436 !$OMP END PARALLEL 
     315            rmxln_25h(:,:,:) = mxln(:,:,:) 
     316#endif 
    437317            cnt_25h = 1 
    438318            IF (lwp)  WRITE(numout,*) 'dia_wri_tide : After 25hr mean write, reset sum to current value and cnt_25h to one for overlapping average',cnt_25h 
Note: See TracChangeset for help on using the changeset viewer.