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 7698 for trunk/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90 – NEMO

Ignore:
Timestamp:
2017-02-18T10:02:03+01:00 (7 years ago)
Author:
mocavero
Message:

update trunk with OpenMP parallelization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90

    r6416 r7698  
    115115          
    116116         !  Computation of ice albedo (free of snow) 
    117          WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ;   zalb(:,:,:) = ralb_im 
    118          ELSE WHERE                                              ;   zalb(:,:,:) = ralb_if 
    119          END  WHERE 
     117!$OMP PARALLEL DO schedule(static) private(jl,jj,ji) 
     118         DO jl = 1, ijpl 
     119            DO jj = 1, jpj 
     120               DO ji = 1, jpi 
     121                  IF ( ph_snw(ji,jj,jl) == 0._wp .AND. pt_ice(ji,jj,jl) >= rt0_ice ) THEN 
     122                     zalb(ji,jj,jl) = ralb_im 
     123                  ELSE 
     124                     zalb(ji,jj,jl) = ralb_if 
     125                  END IF 
     126               END DO 
     127            END DO 
     128         END DO 
    120129       
    121130         WHERE     ( 1.5  < ph_ice                     )  ;  zalb_it = zalb 
     
    126135         ELSE WHERE                                       ;  zalb_it = 0.1    + 3.6    * ph_ice 
    127136         END WHERE 
    128       
     137!$OMP PARALLEL 
     138!$OMP DO schedule(static) private(jl, jj, ji,zswitch,zalb_sf,zalb_sm,zalb_st) 
    129139         DO jl = 1, ijpl 
    130140            DO jj = 1, jpj 
     
    156166         END DO 
    157167 
    158          pa_ice_os(:,:,:) = pa_ice_cs(:,:,:) + rcloud       ! Oberhuber correction for overcast sky 
     168!$OMP DO schedule(static) private(jl, jj, ji)      
     169         DO jl = 1, ijpl 
     170            DO jj = 1, jpj 
     171               DO ji = 1, jpi 
     172                  pa_ice_os(ji,jj,jl) = pa_ice_cs(ji,jj,jl) + rcloud       ! Oberhuber correction for overcast sky 
     173               END DO 
     174            END DO 
     175         END DO 
     176!$OMP END PARALLEL 
    159177 
    160178      !------------------------------------------ 
     
    193211         z1_c2 = 1. / 0.03 
    194212         !  Computation of the snow/ice albedo 
     213!$OMP PARALLEL DO schedule(static) private(jl, jj, ji,zswitch,zalb_sf,zalb_sm,zalb_st)      
    195214         DO jl = 1, ijpl 
    196215            DO jj = 1, jpj 
     
    230249      !! 
    231250      REAL(wp) :: zcoef  
     251      INTEGER  ::   ji, jj                                   ! dummy loop indices 
    232252      !!---------------------------------------------------------------------- 
    233253      ! 
    234254      zcoef = 0.05 / ( 1.1 * rmue**1.4 + 0.15 )   ! Parameterization of Briegled and Ramanathan, 1982 
    235       pa_oce_cs(:,:) = zcoef  
    236       pa_oce_os(:,:) = 0.06                       ! Parameterization of Kondratyev, 1969 and Payne, 1972 
     255!$OMP PARALLEL DO schedule(static) private(jj, ji)      
     256      DO jj = 1, jpj 
     257         DO ji = 1, jpi 
     258            pa_oce_cs(ji,jj) = zcoef  
     259            pa_oce_os(ji,jj) = 0.06                       ! Parameterization of Kondratyev, 1969 and Payne, 1972 
     260         END DO 
     261      END DO 
    237262      ! 
    238263   END SUBROUTINE albedo_oce 
Note: See TracChangeset for help on using the changeset viewer.