Changeset 1065 for LMDZ4/trunk/libf


Ignore:
Timestamp:
Dec 17, 2008, 1:33:00 PM (16 years ago)
Author:
Laurent Fairhead
Message:

Diverses corrections: variables locales pour region, choix niveaux verticaux,
variables private
LG/IM

Location:
LMDZ4/trunk/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/phys_output_mod.F90

    r1062 r1065  
    1212  IMPLICIT NONE
    1313
     14  private histdef2d, histdef3d
     15
    1416   integer, parameter                           :: nfiles = 5
    1517   logical, dimension(nfiles), save             :: clef_files
     
    1719   integer, dimension(nfiles), save             :: nid_files
    1820
    19    integer, dimension(nfiles), save            :: nhorim, nvertm
    20    real, dimension(nfiles), save                :: zstophym, zoutm
    21    CHARACTER(len=20), dimension(nfiles), save   :: type_ecri
     21   integer, dimension(nfiles), private, save :: nhorim, nvertm
     22   real, dimension(nfiles), private, save                :: zstophym, zoutm
     23   CHARACTER(len=20), dimension(nfiles), private, save   :: type_ecri
    2224
    2325!   integer, save                     :: nid_hf3d
    24 
    25 !!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    26 !                 entre [lonmin_reg,lonmax_reg] et [latmin_reg,latmax_reg]
    27 
    28   logical, dimension(nfiles), save  :: ok_reglim         = (/ .false., .false., .false., .false., .true. /)
    29   real, dimension(nfiles), save     :: lonmin_reg        = (/ 0., -45., 0., 0., -162. /)
    30   real, dimension(nfiles), save     :: lonmax_reg        = (/ 90., 45., 90., 90., -144. /)
    31   real, dimension(nfiles), save     :: latmin_reg        = (/ 0., -45., 0., 0., 7. /)
    32   real, dimension(nfiles), save     :: latmax_reg        = (/ 90., 90., 90., 90., 21. /)
    3326
    3427!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    3629!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!/ histmth, histday, histhf, histins /)!!!!!!!!!!!!
    3730!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     31
     32  integer, private:: levmin(nfiles) = 1
     33  integer, private:: levmax(nfiles)
    3834
    3935!!! 1D
     
    318314                              ctetaSTD,dtime, presnivs, ok_veget, &
    319315                              ocean, iflag_pbl,ok_mensuel,ok_journe, &
    320                               ok_hf,ok_instan,ok_LES, nid_fil)   
     316                              ok_hf,ok_instan,ok_LES)   
    321317
    322318  USE iophy
     
    349345  character(len=6)                      :: ocean
    350346  CHARACTER(len=3)                      :: ctetaSTD(nbteta)
    351   integer, dimension(nfiles)            :: nid_fil
    352347  real, dimension(nfiles)               :: ecrit_files
    353348  CHARACTER(len=20), dimension(nfiles)  :: name_files
     
    356351  integer                               :: imin_ins, imax_ins
    357352  integer                               :: jmin_ins, jmax_ins
    358   integer, dimension(nfiles)            :: lvlmax_reg
    359 
    360    lvlmax_reg = (/ klev, klev, klev, klev, 17 /)
     353
     354!!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     355!                 entre [lonmin_reg,lonmax_reg] et [latmin_reg,latmax_reg]
     356
     357  logical, dimension(nfiles), save  :: ok_reglim         = (/ .false., .false., .false., .false., .true. /)
     358  real, dimension(nfiles), save     :: lonmin_reg        = (/ 0., -45., 0., 0., -162. /)
     359  real, dimension(nfiles), save     :: lonmax_reg        = (/ 90., 45., 90., 90., -144. /)
     360  real, dimension(nfiles), save     :: latmin_reg        = (/ 0., -45., 0., 0., 7. /)
     361  real, dimension(nfiles), save     :: latmax_reg        = (/ 90., 90., 90., 90., 21. /)
     362
     363   levmax = (/ klev, klev, klev, klev, 17 /)
    361364
    362365   name_files(1) = 'histmth'
     
    409412     if (ok_reglim(iff)) then
    410413
    411         klev = lvlmax_reg(iff)
    412 
    413414        imin_ins=1
    414415        imax_ins=iim
     
    438439              imin_ins,imax_ins-imin_ins+1, &
    439440              jmin_ins,jmax_ins-jmin_ins+1, &
    440               itau_phy,zjulian,dtime,nhorim(iff),nid_fil(iff))
     441              itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff))
    441442!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    442443       else
    443  CALL histbeg_phy(name_files(iff),itau_phy,zjulian,dtime,nhorim(iff),nid_fil(iff))
     444 CALL histbeg_phy(name_files(iff),itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff))
    444445       endif
    445446 
    446       nid_files(iff)=nid_fil(iff)
    447 
    448  CALL histvert(nid_files(iff),"presnivs","Vertical levels","mb",klev, presnivs/100., nvertm(iff))
     447      CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "mb", &
     448           levmax(iff) - levmin(iff) + 1, &
     449           presnivs(levmin(iff):levmax(iff))/100., nvertm(iff))
    449450
    450451!!!!!!!!!!!!! Traitement des champs 3D pour histhf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    785786
    786787         ENDDO !
    787       klev = lvlmax_reg(1)
    788 
    789788      end subroutine phys_output_open
    790789
     
    837836
    838837       if ( flag_var(iff)<=lev_files(iff) ) then
    839  call histdef (nid_files(iff),nomvar,titrevar,unitvar, &
    840                iim,jj_nb,nhorim(iff), klev,1,klev,nvertm(iff), 32, &
    841                type_ecri(iff), zstophym(iff),zoutm(iff))
     838          call histdef (nid_files(iff), nomvar, titrevar, unitvar, &
     839               iim, jj_nb, nhorim(iff), klev, levmin(iff), &
     840               levmax(iff)-levmin(iff)+1, nvertm(iff), 32, type_ecri(iff), &
     841               zstophym(iff), zoutm(iff))
    842842       endif
    843843      end subroutine histdef3d
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r1055 r1065  
    1 !
    2 ! $Header$
    3 !
    41c
    52c#define IO_DEBUG
     
    15351532     &                        ctetaSTD,dtime,presnivs,ok_veget,
    15361533     &                        type_ocean,iflag_pbl,ok_mensuel,ok_journe,
    1537      &                        ok_hf,ok_instan,ok_LES,nid_files)
     1534     &                        ok_hf,ok_instan,ok_LES)
    15381535c$OMP END MASTER
    15391536c$OMP BARRIER
Note: See TracChangeset for help on using the changeset viewer.