Ignore:
Timestamp:
May 4, 2005, 5:11:29 PM (19 years ago)
Author:
Laurent Fairhead
Message:

Modifications faites à la physique pour la rendre parallele YM
Une branche de travail LMDZ4_par_0 a été créée provisoirement afin de tester
les modifs pleinement avant leurs inclusions dans le tronc principal
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4_par_0/libf/phylmd/readsulfate.F

    r524 r634  
    22! $Header$
    33!
    4       SUBROUTINE readsulfate (r_day, first, sulfate)
    5      
     4      SUBROUTINE readsulfate (r_day, first, sulfate_p)
     5      USE dimphy, klon=>klon2,klon2=>klon
    66      IMPLICIT none
    77     
     
    3434#include "chem.h"     
    3535#include "dimensions.h"     
    36 #include "dimphy.h"     
     36cym#include "dimphy.h"     
    3737#include "temps.h"     
    3838c
    3939c Input:
    4040c ------
    41       REAL*8  r_day                   ! Day of integration
     41      REAL  r_day                   ! Day of integration
    4242      LOGICAL first                 ! First timestep
    4343                                    ! (and therefore initialization necessary)
     
    4545c Output:     
    4646c -------     
    47       REAL*8  sulfate (klon, klev)  ! Mass of sulfate (monthly mean data,
    48                                   !  from file) [ug SO4/m3]
    49 c     
     47c$$$      REAL*8  sulfate_p(klon2,klev)
     48c$$$      REAL*8  sulfate (klon, klev)  ! Mass of sulfate (monthly mean data,
     49c$$$                                  !  from file) [ug SO4/m3]
     50      REAL  sulfate_p(klon2,klev)
     51      REAL  sulfate (klon, klev)  ! Mass of sulfate (monthly mean data,
     52                                  !  from file) [ug SO4/m3]c     
    5053c Local Variables:
    5154c ----------------     
     
    6265      REAL*8 so4_2(iim, jjm+1, klev, 12)   ! The sulfate distributions
    6366     
    64       REAL*8 so4(klon, klev, 12)  ! SO4 in right dimension
    65       SAVE so4
    66       REAL*8 so4_out(klon, klev)
    67       SAVE so4_out
     67cym      REAL*8 so4(klon, klev, 12)  ! SO4 in right dimension
     68cym      SAVE so4
     69cym      REAL*8 so4_out(klon, klev)
     70cym      SAVE so4_out
     71
     72      REAL*8,allocatable,save :: so4(:, :, :)  ! SO4 in right dimension
     73      REAL*8,allocatable,save :: so4_out(:, :)
    6874     
    6975      LOGICAL lnewday
    7076      LOGICAL lonlyone
    7177      PARAMETER (lonlyone=.FALSE.)
    72 
     78      logical,save :: first2=.true.
     79
     80      if (first2) then
     81     
     82        allocate( so4(klon, klev, 12) )
     83        allocate( so4_out(klon, klev))
     84         
     85        first2=.false.
     86       
     87      endif
     88
     89      if (phy_rank==0) then
     90           
    7391      iday = INT(r_day)
    7492     
     
    249267
    250268      ENDIF ! Did I have to do anything (was it a new day?)
    251      
     269
     270      endif   ! phy_rank==0
     271     
     272      call ScatterField(sulfate,sulfate_p,klev)
     273           
    252274      RETURN
    253275      END
     
    261283c-----------------------------------------------------------------------------
    262284     
    263       SUBROUTINE readsulfate_preind (r_day, first, pi_sulfate)
    264      
     285      SUBROUTINE readsulfate_preind (r_day, first, pi_sulfate_p)
     286      USE dimphy, klon=>klon2,klon2=>klon
    265287      IMPLICIT none
    266288     
     
    289311#include "chem.h"     
    290312#include "dimensions.h"     
    291 #include "dimphy.h"     
     313cym#include "dimphy.h"     
    292314#include "temps.h"     
    293315c
    294316c Input:
    295317c ------
    296       REAL*8 r_day                   ! Day of integration
     318      REAL r_day                   ! Day of integration
    297319      LOGICAL first                 ! First timestep
    298320                                    ! (and therefore initialization necessary)
     
    300322c Output:     
    301323c -------     
    302       REAL*8  pi_sulfate (klon, klev)  ! Number conc. sulfate (monthly mean data,
    303                                   !  from file)
     324      REAL pi_sulfate_p (klon2, klev) 
     325      REAL pi_sulfate (klon, klev)  ! Number conc. sulfate
     326                                       ! (monthly mean data,
    304327c     
    305328c Local Variables:
     
    311334      INTEGER im, day1, day2, im2, ismaller
    312335      REAL*8 pi_so4_1(iim, jjm+1, klev, 12)
    313      
    314       REAL*8 pi_so4(klon, klev, 12)  ! SO4 in right dimension
    315       SAVE pi_so4
    316       REAL*8 pi_so4_out(klon, klev)
    317       SAVE pi_so4_out
     336
     337cym      REAL*8 pi_so4(klon, klev, 12)  ! SO4 in right dimension
     338cym      SAVE pi_so4
     339cym      REAL*8 pi_so4_out(klon, klev)
     340cym      SAVE pi_so4_out
     341
     342      REAL*8,allocatable,save :: pi_so4(:, :, :)  ! SO4 in right dimension
     343      REAL*8,allocatable,save :: pi_so4_out(:, :)
     344           
    318345     
    319346      CHARACTER*4 cyear
    320347      LOGICAL lnewday
    321 
     348      logical,save :: first2=.true.
     349
     350      if (first2) then
     351     
     352        allocate( pi_so4(klon, klev, 12) )
     353        allocate( pi_so4_out(klon, klev))
     354         
     355        first2=.false.
     356       
     357      endif
     358
     359      if (phy_rank==0) then
     360   
    322361     
    323362
     
    463502
    464503      ENDIF ! Was this the beginning of a new day?
     504
     505      endif   ! phy_rank==0
     506     
     507      call ScatterField(pi_sulfate,pi_sulfate_p,klev)
     508
     509
    465510      RETURN
    466511      END
Note: See TracChangeset for help on using the changeset viewer.