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 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/SBC/sbcflx.F90 – NEMO

Ignore:
Timestamp:
2020-09-14T17:40:34+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2195:update to trunk 13461

Location:
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@13382        sette 
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/SBC/sbcflx.F90

    r10425 r13463  
    3838 
    3939   !! * Substitutions 
    40 #  include "vectopt_loop_substitute.h90" 
     40#  include "do_loop_substitute.h90" 
    4141   !!---------------------------------------------------------------------- 
    4242   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    9191      IF( kt == nit000 ) THEN                ! First call kt=nit000   
    9292         ! set file information 
    93          REWIND( numnam_ref )              ! Namelist namsbc_flx in reference namelist : Files for fluxes 
    9493         READ  ( numnam_ref, namsbc_flx, IOSTAT = ios, ERR = 901) 
    95 901      IF( ios /= 0 )   CALL ctl_nam ( ios , 'namsbc_flx in reference namelist', lwp ) 
     94901      IF( ios /= 0 )   CALL ctl_nam ( ios , 'namsbc_flx in reference namelist' ) 
    9695 
    97          REWIND( numnam_cfg )              ! Namelist namsbc_flx in configuration namelist : Files for fluxes 
    9896         READ  ( numnam_cfg, namsbc_flx, IOSTAT = ios, ERR = 902 ) 
    99 902      IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_flx in configuration namelist', lwp ) 
     97902      IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_flx in configuration namelist' ) 
    10098         IF(lwm) WRITE ( numond, namsbc_flx )  
    10199         ! 
    102100         !                                         ! check: do we plan to use ln_dm2dc with non-daily forcing? 
    103          IF( ln_dm2dc .AND. sn_qsr%nfreqh /= 24 )   & 
     101         IF( ln_dm2dc .AND. sn_qsr%freqh /= 24. )   & 
    104102            &   CALL ctl_stop( 'sbc_blk_core: ln_dm2dc can be activated only with daily short-wave forcing' )  
    105103         ! 
     
    131129         ELSE                  ;   qsr(:,:) =          sf(jp_qsr)%fnow(:,:,1) 
    132130         ENDIF 
    133          DO jj = 1, jpj                                           ! set the ocean fluxes from read fields 
    134             DO ji = 1, jpi 
    135                utau(ji,jj) = sf(jp_utau)%fnow(ji,jj,1) 
    136                vtau(ji,jj) = sf(jp_vtau)%fnow(ji,jj,1) 
    137                qns (ji,jj) = sf(jp_qtot)%fnow(ji,jj,1) - sf(jp_qsr)%fnow(ji,jj,1) 
    138                emp (ji,jj) = sf(jp_emp )%fnow(ji,jj,1) 
    139             END DO 
    140          END DO 
     131         DO_2D( 1, 1, 1, 1 ) 
     132            utau(ji,jj) = sf(jp_utau)%fnow(ji,jj,1) 
     133            vtau(ji,jj) = sf(jp_vtau)%fnow(ji,jj,1) 
     134            qns (ji,jj) = sf(jp_qtot)%fnow(ji,jj,1) - sf(jp_qsr)%fnow(ji,jj,1) 
     135            emp (ji,jj) = sf(jp_emp )%fnow(ji,jj,1) 
     136         END_2D 
    141137         !                                                        ! add to qns the heat due to e-p 
    142138         qns(:,:) = qns(:,:) - emp(:,:) * sst_m(:,:) * rcp        ! mass flux is at SST 
     
    147143         !                                                        ! module of wind stress and wind speed at T-point 
    148144         zcoef = 1. / ( zrhoa * zcdrag ) 
    149          DO jj = 2, jpjm1 
    150             DO ji = fs_2, fs_jpim1   ! vect. opt. 
    151                ztx = utau(ji-1,jj  ) + utau(ji,jj)  
    152                zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
    153                zmod = 0.5 * SQRT( ztx * ztx + zty * zty ) 
    154                taum(ji,jj) = zmod 
    155                wndm(ji,jj) = SQRT( zmod * zcoef ) 
    156             END DO 
    157          END DO 
     145         DO_2D( 0, 0, 0, 0 ) 
     146            ztx = utau(ji-1,jj  ) + utau(ji,jj)  
     147            zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
     148            zmod = 0.5 * SQRT( ztx * ztx + zty * zty ) 
     149            taum(ji,jj) = zmod 
     150            wndm(ji,jj) = SQRT( zmod * zcoef ) 
     151         END_2D 
    158152         taum(:,:) = taum(:,:) * tmask(:,:,1) ; wndm(:,:) = wndm(:,:) * tmask(:,:,1) 
    159          CALL lbc_lnk( 'sbcflx', taum(:,:), 'T', 1. )   ;   CALL lbc_lnk( 'sbcflx', wndm(:,:), 'T', 1. ) 
     153         CALL lbc_lnk( 'sbcflx', taum(:,:), 'T', 1.0_wp )   ;   CALL lbc_lnk( 'sbcflx', wndm(:,:), 'T', 1.0_wp ) 
    160154 
    161155         IF( nitend-nit000 <= 100 .AND. lwp ) THEN                ! control print (if less than 100 time-step asked) 
Note: See TracChangeset for help on using the changeset viewer.