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 229 – NEMO

Changeset 229


Ignore:
Timestamp:
2005-03-18T20:44:35+01:00 (19 years ago)
Author:
opalod
Message:

CT : BUGFIX162 : add an initialization of extra-hallo in MPP

Location:
trunk/NEMO/OPA_SRC/SBC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/flx_bulk_daily.h90

    r18 r229  
    1111    
    1212   INTEGER ::          & 
     13      ji, jj,          &  ! loop indices 
    1314      numfl1, numfl2,  &  ! logical units for surface fluxes data 
    14       numfl3,          &  !  
     15      numfl3, numfl4,  &  !  
    1516      nflx1, nflx2,    &  !  first and second record used 
    1617      nflx11, nflx12 , &  ! ??? 
    1718      ndayflx 
    1819 
    19    REAL(wp), DIMENSION(jpi,jpj,2,7) ::   & 
     20   REAL(wp), DIMENSION(jpi,jpj,2,3) ::   & 
    2021      flxdta              ! 2 consecutive set of CLIO/CMAP monthly fluxes 
    2122   !!---------------------------------------------------------------------- 
     
    3536      !!       ORCA FORCED VERSION WITH : 
    3637      !!       Daily climatological NCEP temperature 
    37       !!       monthly climatological CLIO winds, humidity and clouds 
     38      !!       Daily climatological ERS-NCEP winds 
     39      !!       monthly climatological humidity and clouds 
    3840      !!       monthly climatological CMAP precipitation 
    3941      !!       Read several AGCM daily and monthly fluxes file 
     
    7577      REAL(wp), DIMENSION(jpk) ::   zlev           ! ??? 
    7678      CHARACTER(len=45)  ::  & 
    77          clname_n = 'NCEP_1d_0101_0112_tair.nc',   & 
    78          clname_c = 'CLIO_1m_0101_0112_flx.nc' ,   & 
    79          clname_x = 'CMAP_1m_0101_0112_rain.nc' 
     79         clname_n = 'tair_1d.nc',        & 
     80         clname_c = 'hum_cloud_1m.nc',   & 
     81         clname_x = 'rain_1m.nc',        & 
     82         clname_w = 'wspd_1d.nc' 
    8083      !!--------------------------------------------------------------------- 
    8184 
     
    128131                WRITE(numout,*) ' Check in file', clname_n 
    129132             ENDIF 
    130              STOP 'flx.forced.ncep_clio_xie.h' 
     133             STOP 'flx_bulk_daily.h90' 
    131134          ENDIF 
    132135          IF( ipi /= jpidta .AND. ipj /= jpjdta .AND. ipk /= 1 ) THEN 
     
    139142             WRITE(numout,*) ' Check in file', clname_n 
    140143          ENDIF 
    141           STOP 'flx.forced.ncep_clio_xie.h' 
     144          STOP 'flx_bulk_daily.h90' 
    142145       ENDIF 
    143146 
     
    153156             WRITE(numout,*) ' Check in file', clname_c 
    154157          ENDIF 
    155           STOP 'flx.forced.ncep_clio_xie.h' 
     158          STOP 'flx_bulk_daily.h90' 
    156159       ENDIF 
    157160       IF( ipi /= jpidta .AND. ipj /= jpjdta .AND. ipk /= 1 ) THEN 
     
    164167             WRITE(numout,*) ' Check in file', clname_c 
    165168          ENDIF 
    166           STOP 'flx.forced.ncep_clio_xie.h' 
     169          STOP 'flx_bulk_daily.h90' 
    167170       ENDIF 
    168171        
     
    178181             WRITE(numout,*) ' Check in file', clname_x 
    179182          ENDIF 
    180           STOP 'flx.forced.ncep_clio_xie.h' 
     183          STOP 'flx_bulk_daily.h90' 
    181184       ENDIF 
    182185       IF( ipi /= jpidta .AND. ipj /= jpjdta .AND. ipk /= 1 ) THEN 
     
    189192             WRITE(numout,*) ' Check in file', clname_x 
    190193          ENDIF 
    191           STOP 'flx.forced.ncep_clio_xie.h' 
     194          STOP 'flx_bulk_daily.h90' 
     195       ENDIF 
     196 
     197       ! open ERS-NCEP file 
     198       CALL flinopen(clname_w,mig(1),nlci,mjg(1),nlcj,.FALSE.,ipi,ipj & 
     199             ,ipk,zlon,zlat,zlev,itime,istep_n,zdate0,rdt,numfl4) 
     200 
     201       IF( itime /= jpday .AND. itime /= jpday+1 ) THEN 
     202          IF(lwp) THEN 
     203             WRITE(numout,*) ' ' 
     204             WRITE(numout,*) 'problem with time coordinates ' 
     205             WRITE(numout,*) ' itime ',itime,' jpday ',jpday 
     206             WRITE(numout,*) ' Check in file', clname_w 
     207          ENDIF 
     208          STOP 'flx_bulk_daily.h90' 
     209       ENDIF 
     210       IF( ipi /= jpidta .AND. ipj /= jpjdta .AND. ipk /= 1 ) THEN 
     211          IF(lwp) THEN 
     212             WRITE(numout,*) ' ' 
     213             WRITE(numout,*) 'problem with dimensions' 
     214             WRITE(numout,*) ' ipi ',ipi,' jpidta ',jpidta 
     215             WRITE(numout,*) ' ipj ',ipj,' jpjdta ',jpjdta 
     216             WRITE(numout,*) ' ipk ',ipk,' =? 1' 
     217             WRITE(numout,*) ' Check in file', clname_w 
     218          ENDIF 
     219          STOP 'flx_bulk_daily.h90' 
    192220       ENDIF 
    193221 
     
    212240       ! conversion of temperature Kelvin --> Celsius  [rt0=273.15] 
    213241       tatm(:,:) = ( tatm(:,:) - rt0 )  
     242 
     243       ! read wind speed 
     244       CALL flinget(numfl4,'wspd',jpidta,jpjdta,1,jpday,iday, & 
     245          iday,mig(1),nlci,mjg(1),nlcj,vatm(1:nlci,1:nlcj)) 
     246 
     247       IF(lwp) WRITE (numout,*)' Lecture daily wind speed flx :',iday 
     248       IF(lwp) WRITE (numout,*)' ' 
     249 
     250       ! Extra-halo initialization in MPP 
     251       IF( lk_mpp ) THEN 
     252          DO ji = nlci+1, jpi 
     253             tatm(ji,:) = tatm(1,:) 
     254             vatm(ji,:) = vatm(1,:) 
     255          ENDDO 
     256          DO jj = nlcj+1, jpj 
     257             tatm(:,jj) = tatm(:,1) 
     258             vatm(:,jj) = vatm(:,1) 
     259          ENDDO 
     260       ENDIF 
    214261          
    215262    ENDIF 
     
    242289         CALL flinget(numfl2,'socliohu',jpidta,jpjdta,jpk,jpmois,nflx2, & 
    243290            nflx2,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,2,1)) 
    244          ! wind 
    245          CALL flinget(numfl2,'socliowi',jpidta,jpjdta,jpk,jpmois,nflx1, & 
    246             nflx1,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,1,2)) 
    247          CALL flinget(numfl2,'socliowi',jpidta,jpjdta,jpk,jpmois,nflx2, & 
    248             nflx2,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,2,2)) 
     291 
    249292         ! clouds 
    250293         CALL flinget(numfl2,'socliocl',jpidta,jpjdta,jpk,jpmois,nflx1, & 
     294            nflx1,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,1,2)) 
     295         CALL flinget(numfl2,'socliocl',jpidta,jpjdta,jpk,jpmois,nflx2, & 
     296            nflx2,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,2,2)) 
     297 
     298         ! Read monthly precipitations ds flxdta(:,:,1 ou 2,4)  
     299 
     300         CALL flinget(numfl3,'rain',jpidta,jpjdta,jpk,jpmois,nflx1, & 
    251301            nflx1,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,1,3)) 
    252          CALL flinget(numfl2,'socliocl',jpidta,jpjdta,jpk,jpmois,nflx2, & 
     302         CALL flinget(numfl3,'rain',jpidta,jpjdta,jpk,jpmois,nflx2, & 
    253303            nflx2,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,2,3)) 
    254304 
    255          ! Read monthly precipitations ds flxdta(:,:,1 ou 2,4)  
    256  
    257          CALL flinget(numfl3,'rain',jpidta,jpjdta,jpk,jpmois,nflx1, & 
    258             nflx1,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,1,4)) 
    259          CALL flinget(numfl3,'rain',jpidta,jpjdta,jpk,jpmois,nflx2, & 
    260             nflx2,mig(1),nlci,mjg(1),nlcj,flxdta(1:nlci,1:nlcj,2,4)) 
     305         ! Extra-halo initialization in MPP 
     306         IF( lk_mpp ) THEN 
     307            DO ji = nlci+1, jpi 
     308               flxdta(ji,:,1,1) = flxdta(1,:,1,1)   ;   flxdta(ji,:,2,1) = flxdta(1,:,2,1) 
     309               flxdta(ji,:,1,2) = flxdta(1,:,1,2)   ;   flxdta(ji,:,2,2) = flxdta(1,:,2,2) 
     310               flxdta(ji,:,1,3) = flxdta(1,:,1,3)   ;   flxdta(ji,:,2,3) = flxdta(1,:,2,3) 
     311            ENDDO 
     312            DO jj = nlcj+1, jpj 
     313               flxdta(:,jj,1,1) = flxdta(:,1,1,1)   ;   flxdta(:,jj,2,1) = flxdta(:,1,2,1) 
     314               flxdta(:,jj,1,2) = flxdta(:,1,1,2)   ;   flxdta(:,jj,2,2) = flxdta(:,1,2,2) 
     315               flxdta(:,jj,1,3) = flxdta(:,1,1,3)   ;   flxdta(:,jj,2,3) = flxdta(:,1,2,3) 
     316            ENDDO 
     317         ENDIF 
    261318                   
    262319      ENDIF 
     
    269326 
    270327      hatm(:,:) = ( (1.-zxy) * flxdta(:,:,1,1) + zxy  * flxdta(:,:,2,1) )  
    271       vatm(:,:) = ( (1.-zxy) * flxdta(:,:,1,2) + zxy  * flxdta(:,:,2,2) )   
    272       catm(:,:) = ( (1.-zxy )* flxdta(:,:,1,3) + zxy  * flxdta(:,:,2,3) )   
    273       watm(:,:) = ( (1.-zxy) * flxdta(:,:,1,4) + zxy  * flxdta(:,:,2,4) )  
    274  
     328      catm(:,:) = ( (1.-zxy )* flxdta(:,:,1,2) + zxy  * flxdta(:,:,2,2) )   
     329      watm(:,:) = ( (1.-zxy) * flxdta(:,:,1,3) + zxy  * flxdta(:,:,2,3) )  
    275330 
    276331      ! 4. Closing all files 
  • trunk/NEMO/OPA_SRC/SBC/flx_bulk_monthly.h90

    r222 r229  
    1010    
    1111   INTEGER ::          & 
     12      ji, jj,          &  ! loop indices 
    1213      numflx,          &  ! logical unit for surface fluxes data 
    1314      nflx1, nflx2,    &  !  first and second record used 
     
    135136            &          jpmois, 1, 1, mig(1), nlci,   & 
    136137            &          mjg(1), nlcj, flxdta(1:nlci,1:nlcj,1,5) ) 
     138 
     139         ! Extra-halo initialization in MPP 
     140         IF( lk_mpp ) THEN 
     141            DO ji = nlci+1, jpi 
     142               flxdta(ji,:,1,5) = flxdta(1,:,1,5)   ;   flxdta(ji,:,2,5) = flxdta(1,:,2,5) 
     143            ENDDO 
     144            DO jj = nlcj+1, jpj 
     145               flxdta(:,jj,1,5) = flxdta(:,1,1,5)   ;   flxdta(:,jj,2,5) = flxdta(:,1,2,5) 
     146            ENDDO 
     147         ENDIF 
    137148      ENDIF 
    138149 
     
    191202         ENDIF 
    192203 
     204         ! Extra-halo initialization in MPP 
     205         IF( lk_mpp ) THEN 
     206            DO ji = nlci+1, jpi 
     207               flxdta(ji,:,1,1) = flxdta(1,:,1,1)   ;   flxdta(ji,:,2,1) = flxdta(1,:,2,1) 
     208               flxdta(ji,:,1,2) = flxdta(1,:,1,2)   ;   flxdta(ji,:,2,2) = flxdta(1,:,2,2) 
     209               flxdta(ji,:,1,3) = flxdta(1,:,1,3)   ;   flxdta(ji,:,2,3) = flxdta(1,:,2,3) 
     210               flxdta(ji,:,1,4) = flxdta(1,:,1,4)   ;   flxdta(ji,:,2,4) = flxdta(1,:,2,4) 
     211            ENDDO 
     212            DO jj = nlcj+1, jpj 
     213               flxdta(:,jj,1,1) = flxdta(:,1,1,1)   ;   flxdta(:,jj,2,1) = flxdta(:,1,2,1) 
     214               flxdta(:,jj,1,2) = flxdta(:,1,1,2)   ;   flxdta(:,jj,2,2) = flxdta(:,1,2,2) 
     215               flxdta(:,jj,1,3) = flxdta(:,1,1,3)   ;   flxdta(:,jj,2,3) = flxdta(:,1,2,3) 
     216               flxdta(:,jj,1,4) = flxdta(:,1,1,4)   ;   flxdta(:,jj,2,4) = flxdta(:,1,2,4) 
     217            ENDDO 
     218         ENDIF 
     219 
    193220      ENDIF 
    194221 
     
    242269            END DO 
    243270         ENDIF 
     271 
     272         ! Extra-halo initialization in MPP 
     273         IF( lk_mpp ) THEN 
     274            DO ji = nlci+1, jpi 
     275               flxdta(ji,:,1,6) = flxdta(1,:,1,6)   ;   flxdta(ji,:,2,6) = flxdta(1,:,2,6) 
     276               flxdta(ji,:,1,7) = flxdta(1,:,1,7)   ;   flxdta(ji,:,2,7) = flxdta(1,:,2,7) 
     277            ENDDO 
     278            DO jj = nlcj+1, jpj 
     279               flxdta(:,jj,1,6) = flxdta(:,1,1,6)   ;   flxdta(:,jj,2,6) = flxdta(:,1,2,6) 
     280               flxdta(:,jj,1,7) = flxdta(:,1,1,7)   ;   flxdta(:,jj,2,7) = flxdta(:,1,2,7) 
     281            ENDDO 
     282         ENDIF 
    244283          
    245284      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.