Ignore:
Timestamp:
Jul 24, 2024, 1:27:51 PM (8 weeks ago)
Author:
abarral
Message:

Rename modules in misc from *_mod > lmdz_*
Turn description.h into lmdz_description.f90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writedynav_loc.f90

    r5113 r5114  
    1 
    21! $Id: writedynav_p.F 1279 2009-12-10 09:02:56Z fairhead $
    32
    4 SUBROUTINE writedynav_loc( time, vcov, ucov,teta,ppk,phi,q, &
    5         masse,ps,phis)
     3SUBROUTINE writedynav_loc(time, vcov, ucov, teta, ppk, phi, q, &
     4        masse, ps, phis)
    65
    76  ! This routine needs IOIPSL
     
    109  USE misc_mod
    1110  USE infotrac, ONLY: nqtot
    12   use com_io_dyn_mod, ONLY: histaveid,histvaveid,histuaveid
     11  use com_io_dyn_mod, ONLY: histaveid, histvaveid, histuaveid
    1312  USE comconst_mod, ONLY: cpp
    1413  USE temps_mod, ONLY: itau_dyn
     14  USE lmdz_description, ONLY: descript
    1515
    1616  IMPLICIT NONE
     
    4545  include "paramet.h"
    4646  include "comgeom.h"
    47   include "description.h"
    4847  include "iniprint.h"
    4948
     
    5251  !
    5352
    54   REAL :: vcov(ijb_v:ije_v,llm),ucov(ijb_u:ije_u,llm)
    55   REAL :: teta(ijb_u:ije_u,llm),phi(ijb_u:ije_u,llm)
    56   REAL :: ppk(ijb_u:ije_u,llm)
    57   REAL :: ps(ijb_u:ije_u),masse(ijb_u:ije_u,llm)
     53  REAL :: vcov(ijb_v:ije_v, llm), ucov(ijb_u:ije_u, llm)
     54  REAL :: teta(ijb_u:ije_u, llm), phi(ijb_u:ije_u, llm)
     55  REAL :: ppk(ijb_u:ije_u, llm)
     56  REAL :: ps(ijb_u:ije_u), masse(ijb_u:ije_u, llm)
    5857  REAL :: phis(ijb_u:ije_u)
    59   REAL :: q(ijb_u:ije_u,llm,nqtot)
     58  REAL :: q(ijb_u:ije_u, llm, nqtot)
    6059  integer :: time
    6160
     
    6463  !   Variables locales
    6564  !
    66   INTEGER,SAVE,ALLOCATABLE :: ndex2d(:),ndexu(:),ndexv(:)
     65  INTEGER, SAVE, ALLOCATABLE :: ndex2d(:), ndexu(:), ndexv(:)
    6766  INTEGER :: iq, ii, ll
    68   REAL,SAVE,ALLOCATABLE :: tm(:,:)
    69   REAL,SAVE,ALLOCATABLE :: vnat(:,:),unat(:,:)
     67  REAL, SAVE, ALLOCATABLE :: tm(:, :)
     68  REAL, SAVE, ALLOCATABLE :: vnat(:, :), unat(:, :)
    7069  logical :: ok_sync
    7170  integer :: itau_w
    72   integer :: ijb,ije,jjn
    73   LOGICAL,SAVE :: first=.TRUE.
    74 !$OMP THREADPRIVATE(first)
     71  integer :: ijb, ije, jjn
     72  LOGICAL, SAVE :: first = .TRUE.
     73  !$OMP THREADPRIVATE(first)
    7574
    7675  !
     
    8079
    8180  IF (first) THEN
    82 !$OMP BARRIER
    83 !$OMP MASTER
    84     ALLOCATE(unat(ijb_u:ije_u,llm))
    85     ALLOCATE(vnat(ijb_v:ije_v,llm))
    86     ALLOCATE(tm(ijb_u:ije_u,llm))
    87     ALLOCATE(ndex2d(ijnb_u*llm))
    88     ALLOCATE(ndexu(ijnb_u*llm))
    89     ALLOCATE(ndexv(ijnb_v*llm))
     81    !$OMP BARRIER
     82    !$OMP MASTER
     83    ALLOCATE(unat(ijb_u:ije_u, llm))
     84    ALLOCATE(vnat(ijb_v:ije_v, llm))
     85    ALLOCATE(tm(ijb_u:ije_u, llm))
     86    ALLOCATE(ndex2d(ijnb_u * llm))
     87    ALLOCATE(ndexu(ijnb_u * llm))
     88    ALLOCATE(ndexv(ijnb_v * llm))
    9089    ndex2d = 0
    9190    ndexu = 0
    9291    ndexv = 0
    93 !$OMP END MASTER
    94 !$OMP BARRIER
    95     first=.FALSE.
     92    !$OMP END MASTER
     93    !$OMP BARRIER
     94    first = .FALSE.
    9695  ENDIF
    9796
     
    108107  !
    109108
    110 !$OMP BARRIER
    111 !$OMP MASTER
    112   ijb=ij_begin
    113   ije=ij_end
    114   jjn=jj_nb
    115 
    116   CALL histwrite(histuaveid, 'u', itau_w, unat(ijb:ije,:), &
    117         iip1*jjn*llm, ndexu)
    118 !$OMP END MASTER
     109  !$OMP BARRIER
     110  !$OMP MASTER
     111  ijb = ij_begin
     112  ije = ij_end
     113  jjn = jj_nb
     114
     115  CALL histwrite(histuaveid, 'u', itau_w, unat(ijb:ije, :), &
     116          iip1 * jjn * llm, ndexu)
     117  !$OMP END MASTER
    119118
    120119  !
    121120  !  Vents V
    122121  !
    123   ije=ij_end
    124   if (pole_sud) jjn=jj_nb-1
    125   if (pole_sud) ije=ij_end-iip1
    126 !$OMP BARRIER
    127 !$OMP MASTER
    128   CALL histwrite(histvaveid, 'v', itau_w, vnat(ijb:ije,:), &
    129         iip1*jjn*llm, ndexv)
    130 !$OMP END MASTER
     122  ije = ij_end
     123  if (pole_sud) jjn = jj_nb - 1
     124  if (pole_sud) ije = ij_end - iip1
     125  !$OMP BARRIER
     126  !$OMP MASTER
     127  CALL histwrite(histvaveid, 'v', itau_w, vnat(ijb:ije, :), &
     128          iip1 * jjn * llm, ndexv)
     129  !$OMP END MASTER
    131130
    132131
     
    134133  !  Temperature potentielle moyennee
    135134  !
    136   ijb=ij_begin
    137   ije=ij_end
    138   jjn=jj_nb
    139 !$OMP MASTER
    140   CALL histwrite(histaveid, 'theta', itau_w, teta(ijb:ije,:), &
    141         iip1*jjn*llm, ndexu)
    142 !$OMP END MASTER
     135  ijb = ij_begin
     136  ije = ij_end
     137  jjn = jj_nb
     138  !$OMP MASTER
     139  CALL histwrite(histaveid, 'theta', itau_w, teta(ijb:ije, :), &
     140          iip1 * jjn * llm, ndexu)
     141  !$OMP END MASTER
    143142
    144143  !
     
    146145  !
    147146
    148 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    149   do ll=1,llm
     147  !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     148  do ll = 1, llm
    150149    do ii = ijb, ije
    151       tm(ii,ll) = teta(ii,ll) * ppk(ii,ll)/cpp
     150      tm(ii, ll) = teta(ii, ll) * ppk(ii, ll) / cpp
    152151    enddo
    153152  enddo
    154 !$OMP ENDDO
    155 
    156 !$OMP MASTER
    157   CALL histwrite(histaveid, 'temp', itau_w, tm(ijb:ije,:), &
    158         iip1*jjn*llm, ndexu)
    159 !$OMP END MASTER
     153  !$OMP ENDDO
     154
     155  !$OMP MASTER
     156  CALL histwrite(histaveid, 'temp', itau_w, tm(ijb:ije, :), &
     157          iip1 * jjn * llm, ndexu)
     158  !$OMP END MASTER
    160159
    161160
     
    163162  !  Geopotentiel
    164163  !
    165 !$OMP MASTER
    166   CALL histwrite(histaveid, 'phi', itau_w, phi(ijb:ije,:), &
    167         iip1*jjn*llm, ndexu)
    168 !$OMP END MASTER
     164  !$OMP MASTER
     165  CALL histwrite(histaveid, 'phi', itau_w, phi(ijb:ije, :), &
     166          iip1 * jjn * llm, ndexu)
     167  !$OMP END MASTER
    169168
    170169
     
    183182  !  Masse
    184183  !
    185 !$OMP MASTER
    186    CALL histwrite(histaveid, 'masse', itau_w, masse(ijb:ije,:), &
    187          iip1*jjn*llm, ndexu)
    188 !$OMP END MASTER
     184  !$OMP MASTER
     185  CALL histwrite(histaveid, 'masse', itau_w, masse(ijb:ije, :), &
     186          iip1 * jjn * llm, ndexu)
     187  !$OMP END MASTER
    189188
    190189
     
    192191  !  Pression au sol
    193192  !
    194 !$OMP MASTER
    195 
    196    CALL histwrite(histaveid, 'ps', itau_w, ps(ijb:ije), &
    197          iip1*jjn, ndex2d)
    198 !$OMP END MASTER
     193  !$OMP MASTER
     194
     195  CALL histwrite(histaveid, 'ps', itau_w, ps(ijb:ije), &
     196          iip1 * jjn, ndex2d)
     197  !$OMP END MASTER
    199198
    200199  !
    201200  !  Geopotentiel au sol
    202201  !
    203 !$OMP MASTER
    204     ! CALL histwrite(histaveid, 'phis', itau_w, phis(ijb:ije),
     202  !$OMP MASTER
     203  ! CALL histwrite(histaveid, 'phis', itau_w, phis(ijb:ije),
    205204  ! .                 iip1*jjn, ndex2d)
    206 !$OMP END MASTER
     205  !$OMP END MASTER
    207206
    208207  !
    209208  !  Fin
    210209  !
    211 !$OMP MASTER
     210  !$OMP MASTER
    212211  if (ok_sync) then
    213       CALL histsync(histaveid)
    214       CALL histsync(histvaveid)
    215       CALL histsync(histuaveid)
     212    CALL histsync(histaveid)
     213    CALL histsync(histvaveid)
     214    CALL histsync(histuaveid)
    216215  ENDIF
    217 !$OMP END MASTER
     216  !$OMP END MASTER
    218217end subroutine writedynav_loc
Note: See TracChangeset for help on using the changeset viewer.