Ignore:
Timestamp:
Jul 23, 2024, 3:29:36 PM (16 months ago)
Author:
abarral
Message:

Handle CPP_INLANDSIS in lmdz_cppkeys_wrapper.F90
Remove obsolete key wrgrads_thermcell, _ADV_HALO, _ADV_HALLO, isminmax
Remove redundant uses of CPPKEY_INCA (thanks acozic)
Remove obsolete misc/write_field.F90
Remove unused ioipsl_* wrappers
Remove calls to WriteField_u with wrong signature
Convert .F -> .[fF]90
(lint) uppercase fortran operators
[note: 1d and iso still broken - working on it]

Location:
LMDZ6/branches/Amaury_dev/libf/dyn3dmem
Files:
37 edited
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/abort_gcm.F

    r5101 r5103  
    66      SUBROUTINE abort_gcm(modname, message, ierr)
    77     
    8 #ifdef CPP_IOIPSL
    98      USE IOIPSL
    10 #else
    11 ! if not using IOIPSL, we still need to use (a local version of) getin_dump
    12       USE ioipsl_getincom
    13 #endif
    149      USE parallel_lmdz
    1510      INCLUDE "iniprint.h"
     
    2823
    2924      write(lunout,*) 'in abort_gcm'
    30 #ifdef CPP_IOIPSL
    3125c$OMP MASTER
    3226      CALL histclo
     
    3630      endif
    3731c$OMP END MASTER
    38 #endif
    3932c     CALL histclo(2)
    4033c     CALL histclo(3)
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/advtrac_loc.f90

    r5101 r5103  
    1212  USE parallel_lmdz
    1313  USE Write_Field_loc
    14   USE Write_Field
    1514  USE Bands
    1615  USE mod_hallo
     
    1918  USE advtrac_mod, ONLY: finmasse
    2019  USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_DEBUGIO
     20  USE strings_mod, ONLY: int2str
    2121
    2222  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bands.F90

    r5101 r5103  
    2626  contains
    2727 
    28   subroutine AllocateBands
     28  SUBROUTINE AllocateBands
    2929    USE parallel_lmdz
    3030    implicit none
     
    3838    allocate(distrib_phys(0:MPI_Size-1))
    3939 
    40   end subroutine AllocateBands
    41  
    42   subroutine Read_distrib
     40  END SUBROUTINE AllocateBands
     41 
     42  SUBROUTINE Read_distrib
    4343    USE parallel_lmdz
    4444    implicit none
     
    100100!      distrib_phys(mpi_size-1) = distrib_phys(mpi_size-1) - (iim-1)
    101101     
    102    end subroutine Read_distrib
     102   END SUBROUTINE Read_distrib
    103103   
    104104   
     
    171171      distrib_physic_bis%ijnb_v=distrib_physic%ijnb_v
    172172     
    173     end subroutine Set_Bands
    174 
    175 
    176     subroutine AdjustBands_caldyn(new_dist)
     173    END SUBROUTINE Set_Bands
     174
     175
     176    SUBROUTINE AdjustBands_caldyn(new_dist)
    177177      use times
    178178      USE parallel_lmdz
     
    239239      CALL create_distrib(jj_nb_caldyn,new_dist)
    240240       
    241     end subroutine AdjustBands_caldyn
     241    END SUBROUTINE AdjustBands_caldyn
    242242   
    243     subroutine AdjustBands_vanleer(new_dist)
     243    SUBROUTINE AdjustBands_vanleer(new_dist)
    244244      use times
    245245      USE parallel_lmdz
     
    308308      CALL create_distrib(jj_nb_vanleer,new_dist)
    309309         
    310     end subroutine AdjustBands_vanleer
    311 
    312     subroutine AdjustBands_dissip(new_dist)
     310    END SUBROUTINE AdjustBands_vanleer
     311
     312    SUBROUTINE AdjustBands_dissip(new_dist)
    313313      use times
    314314      USE parallel_lmdz
     
    377377      CALL create_distrib(jj_nb_dissip,new_dist)
    378378         
    379     end subroutine AdjustBands_dissip
    380 
    381     subroutine AdjustBands_physic
     379    END SUBROUTINE AdjustBands_dissip
     380
     381    SUBROUTINE AdjustBands_physic
    382382      use times
    383383
     
    434434     END IF
    435435         
    436     end subroutine AdjustBands_physic
    437 
    438     subroutine WriteBands
     436    END SUBROUTINE AdjustBands_physic
     437
     438    SUBROUTINE WriteBands
    439439    USE parallel_lmdz
    440440    implicit none
     
    483483      endif
    484484       
    485     end subroutine WriteBands
     485    END SUBROUTINE WriteBands
    486486 
    487487  end module Bands
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bernoui_loc.F

    r5086 r5103  
    6868       
    6969        CALL filtreg_p( pbern,jjb_u,jje_u,jjb,jje, jjp1, llm,
    70      &                  2,1, .true., 1 )
     70     &                  2,1, .TRUE., 1 )
    7171c
    7272c-----------------------------------------------------------------------
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bilan_dyn_loc.F

    r5101 r5103  
    1010c             vQ..A=Cp T + L * ...
    1111
    12 #ifdef CPP_IOIPSL
    1312      USE IOIPSL
    14 #endif
    1513      USE parallel_lmdz
    1614      USE mod_hallo
     
    222220        icum=0
    223221c       initialisation des fichiers
    224         first=.false.
     222        first=.FALSE.
    225223c   ncum est la frequence de stokage en pas de temps
    226224        ncum=dt_cum/dt_app
     
    311309
    312310c   Declarations des champs avec dimension verticale
    313 c      print*,'1HISTDEF'
     311c      PRINT*,'1HISTDEF'
    314312      do iQ=1,nQ
    315313         do itr=1,ntr
     
    322320         enddo
    323321c   Declarations pour les fonctions de courant
    324 c      print*,'2HISTDEF'
     322c      PRINT*,'2HISTDEF'
    325323          CALL histdef(fileid,'psi'//nom(iQ)
    326324     .      ,'stream fn. '//znoml(itot,iQ),
     
    331329
    332330c   Declarations pour les champs de transport d'air
    333 c      print*,'3HISTDEF'
     331c      PRINT*,'3HISTDEF'
    334332      CALL histdef(fileid, 'masse', 'masse',
    335333     .             'kg', 1, jjn, thoriid, llm, 1, llm, zvertiid,
     
    339337     .             32, 'ave(X)', dt_cum, dt_cum)
    340338c   Declarations pour les fonctions de courant
    341 c      print*,'4HISTDEF'
     339c      PRINT*,'4HISTDEF'
    342340          CALL histdef(fileid,'psi','stream fn. MMC ','mega t/s',
    343341     .      1,jjn,thoriid,llm,1,llm,zvertiid,
     
    346344
    347345c   Declaration des champs 1D de transport en latitude
    348 c      print*,'5HISTDEF'
     346c      PRINT*,'5HISTDEF'
    349347      do iQ=1,nQ
    350348         do itr=2,ntr
     
    356354
    357355
    358 c      print*,'8HISTDEF'
     356c      PRINT*,'8HISTDEF'
    359357               CALL histend(fileid)
    360358
     
    687685!$OMP BARRIER
    688686
    689 c     print*,'3OK'
     687c     PRINT*,'3OK'
    690688c   --------------------------------------------------------------
    691689c   calcul de la moyenne zonale du transport :
     
    728726            zvQtmp(:,l)=0.
    729727            do j=jjb,jje
    730 c              print*,'j,l,iQ=',j,l,iQ
     728c              PRINT*,'j,l,iQ=',j,l,iQ
    731729c   Calcul des moyennes zonales du transort total et de zvQtmp
    732730               do i=1,iim
     
    739737                  zvQ(j,l,iave,iQ)=zvQ(j,l,iave,iQ)+zqy
    740738               enddo
    741 c              print*,'aOK'
     739c              PRINT*,'aOK'
    742740c   Decomposition
    743741               zvQ(j,l,iave,iQ)=zvQ(j,l,iave,iQ)/zmasse(j,l)
     
    775773!$OMP BARRIER
    776774
    777 c     print*,'4OK'
     775c     PRINT*,'4OK'
    778776c   sorties proprement dites
    779777!$OMP MASTER     
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/call_dissip_mod.f90

    r5101 r5103  
    107107    CALL suspend_timer(timer_caldyn)
    108108
    109     !       print*,'Entree dans la dissipation : Iteration No ',true_itau
     109    !       PRINT*,'Entree dans la dissipation : Iteration No ',true_itau
    110110    !   calcul de l'energie cinetique avant dissipation
    111111    !       print *,'Passage dans la dissipation'
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/conf_gcm.F90

    r5101 r5103  
    22! $Id$
    33
    4 SUBROUTINE conf_gcm( tapedef, etatinit )
     4SUBROUTINE conf_gcm( tapedef, etatinit )conf_gcm
    55
    66  USE control_mod
    7 #ifdef CPP_IOIPSL
    87  USE IOIPSL
    9 #else
    10   ! if not using IOIPSL, we still need to use (a local version of) getin
    11   USE ioipsl_getincom
    12 #endif
    138  USE misc_mod
    149  USE mod_filtre_fft, ONLY: use_filtre_fft
     
    10196  ENDIF
    10297
    103   adjust=.false.
     98  adjust=.FALSE.
    10499  CALL getin('adjust',adjust)
    105100
     
    186181  !Config  Def  = n
    187182  !Config  Help = Reinit des variables de controle
    188   resetvarc = .false.
     183  resetvarc = .FALSE.
    189184  CALL getin('resetvarc',resetvarc)
    190185
     
    257252  !Config  Def  = n
    258253  !Config  Help = output dynamics diagnostics in Grads-readable 'dyn.dat' file
    259   output_grads_dyn=.false.
     254  output_grads_dyn=.FALSE.
    260255  CALL getin('output_grads_dyn',output_grads_dyn)
    261256
     
    358353
    359354  ! mode_top_bound : fields towards which sponge relaxation will be done:
    360   ! top_bound sponge: only active if ok_strato=.true. and iflag_top_bound!=0
     355  ! top_bound sponge: only active if ok_strato=.TRUE. and iflag_top_bound!=0
    361356  !                   iflag_top_bound=0 for no sponge
    362357  !                   iflag_top_bound=1 for sponge over 4 topmost layers
     
    409404  !Config  Help = y: intialize dynamical fields using a 'start.nc' file
    410405  !               n: fields are initialized by 'iniacademic' routine
    411   read_start= .true.
     406  read_start= .TRUE.
    412407  CALL getin('read_start',read_start)
    413408
     
    515510     !Config  Desc = Fonction  hyperbolique
    516511     !Config  Def  = y
    517      !Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
     512     !Config  Help = Fonction  f(y)  hyperbolique  si = .TRUE.
    518513     !Config         sinon  sinusoidale
    519514     fxyhypbb = .TRUE.
     
    605600        !Config  Desc = Fonction en Sinus
    606601        !Config  Def  = y
    607         !Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
     602        !Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .TRUE.
    608603        !Config         sinon y = latit.
    609604        ysinuss = .TRUE.
     
    800795     !Config  Desc = Fonction  hyperbolique
    801796     !Config  Def  = y
    802      !Config  Help = Fonction  f(y)  hyperbolique  si = .true. 
     797     !Config  Help = Fonction  f(y)  hyperbolique  si = .TRUE.
    803798     !Config         sinon  sinusoidale
    804799     fxyhypb = .TRUE.
     
    841836     !Config  Desc = Fonction en Sinus
    842837     !Config  Def  = y
    843      !Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .true.
     838     !Config  Help = Fonction  f(y) avec y = Sin(latit.) si = .TRUE.
    844839     !Config         sinon y = latit.
    845840     ysinus = .TRUE.
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dteta1_loc.F

    r5086 r5103  
    8484     
    8585      CALL filtreg_p( dteta,jjb_u,jje_u,jjb,jje,jjp1, llm,
    86      &                2, 2, .true., 1)
     86     &                2, 2, .TRUE., 1)
    8787     
    8888     
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynredem_loc.F90

    r5101 r5103  
    44! Write the NetCDF restart file (initialization).
    55!-------------------------------------------------------------------------------
    6 #ifdef CPP_IOIPSL
    76  USE IOIPSL
    8 #endif
    97  USE parallel_lmdz
    108  USE mod_hallo
     
    5351  IF(mpi_rank/=0) RETURN
    5452
    55 #ifdef CPP_IOIPSL
    5653  CALL ymds2ju(annee_ref, 1, iday_end, 0.0, zjulian)
    5754  CALL ju2ymds(zjulian, yyears0, mmois0, jjour0, hours)
    58 #else
    59 ! set yyears0, mmois0, jjour0 to 0,1,1 (hours is not used)
    60   yyears0=0
    61   mmois0=1
    62   jjour0=1
    63 #endif       
    6455
    6556  tab_cntrl(:)  = 0.
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/exner_hyb_loc_m.F90

    r5101 r5103  
    5656
    5757    INTEGER ije, ijb, jje, jjb
    58     logical, save :: firstcall = .true.
     58    logical, save :: firstcall = .TRUE.
    5959    !$OMP THREADPRIVATE(firstcall)
    6060    character(len = *), parameter :: modname = "exner_hyb_loc"
     
    7676      endif ! of if (llm.eq.1)
    7777
    78       firstcall = .false.
     78      firstcall = .FALSE.
    7979    endif ! of if (firstcall)
    8080
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/exner_milieu_loc_m.F90

    r5101 r5103  
    5151
    5252    INTEGER ije,ijb,jje,jjb
    53     logical,save :: firstcall=.true.
     53    logical,save :: firstcall=.TRUE.
    5454    !$OMP THREADPRIVATE(firstcall)
    5555    character(len=*),parameter :: modname="exner_milieu_loc"
     
    6969       endif ! of if (llm.eq.1)
    7070
    71        firstcall=.false.
     71       firstcall=.FALSE.
    7272    endif ! of if (firstcall)
    7373
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/friction_loc.F

    r5101 r5103  
    66      USE parallel_lmdz
    77      USE control_mod
    8 #ifdef CPP_IOIPSL
    98      USE IOIPSL
    10 #else
    11 ! if not using IOIPSL, we still need to use (a local version of) getin
    12       USE ioipsl_getincom
    13 #endif
    149      USE comconst_mod, ONLY: pi
    1510      IMPLICIT NONE
     
    4540      INTEGER  i,j,l
    4641      REAL,PARAMETER :: cfric=1.e-5
    47       LOGICAL,SAVE :: firstcall=.true.
     42      LOGICAL,SAVE :: firstcall=.TRUE.
    4843      INTEGER,SAVE :: friction_type=1
    4944      CHARACTER(len=20) :: modname="friction_p"
     
    6156          CALL abort_gcm(modname,abort_message,42)
    6257        endif
    63         firstcall=.false.
     58        firstcall=.FALSE.
    6459      ENDIF
    6560!$OMP END SINGLE COPYPRIVATE(friction_type,firstcall)
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/gcm.F90

    r5101 r5103  
    44PROGRAM gcm
    55
    6 #ifdef CPP_IOIPSL
    76  USE IOIPSL
    8 #endif
    97
    108  USE mod_const_mpi, ONLY: init_const_mpi
     
    175173  !      calend = 'earth_365d'
    176174
    177 #ifdef CPP_IOIPSL
    178175  if (calend == 'earth_360d') then
    179176     CALL ioconf_calendar('360_day')
     
    192189     CALL abort_gcm(modname,abort_message,1)
    193190  endif
    194 #endif
    195191
    196192
     
    326322  !      endif
    327323
    328 #ifdef CPP_IOIPSL
    329324  mois = 1
    330325  heure = 0.
     
    341336  write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure'
    342337  write(lunout,*)jD_ref+jH_ref,anref, moisref, jourref, heureref
    343 #else
    344   ! Ehouarn: we still need to define JD_ref and JH_ref
    345   ! and since we don't know how many days there are in a year
    346   ! we set JD_ref to 0 (this should be improved ...)
    347   jD_ref=0
    348   jH_ref=0
    349 #endif
    350338
    351339  if (iflag_phys==1) then
     
    390378300 FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//)
    391379
    392 #ifdef CPP_IOIPSL
    393380  CALL ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure)
    394381  write (lunout,301)jour, mois, an
     
    397384301 FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4)
    398385302 FORMAT('1'/,15x,'    au ', i2,'/',i2,'/',i4)
    399 #endif
    400386
    401387  !-----------------------------------------------------------------------
     
    428414  ecripar = .TRUE.
    429415
    430 #define CPP_IOIPSL
    431 #ifdef CPP_IOIPSL
    432416  time_step = zdtvr
    433417     if (ok_dyn_ins) then
    434418        ! initialize output file for instantaneous outputs
    435419        ! t_ops = iecri * daysec ! do operations every t_ops
    436         t_ops =((1.0*iecri)/day_step) * daysec 
     420        t_ops =((1.0*iecri)/day_step) * daysec
    437421        t_wrt = daysec ! iecri * daysec ! write output every t_wrt
    438422        CALL inithist_loc(day_ref,annee_ref,time_step, &
     
    440424     endif
    441425
    442      IF (ok_dyn_ave) THEN 
     426     IF (ok_dyn_ave) THEN
    443427        ! initialize output file for averaged outputs
    444428        t_ops = iperiod * time_step ! do operations every t_ops
     
    447431     END IF
    448432  dtav = iperiod*dtvr/daysec
    449 #endif
    450 #undef CPP_IOIPSL
    451433
    452434! setting up DYN3D/XIOS inerface
     
    455437          mois, jour, heure, zdtvr)
    456438  endif
    457 
    458   ! #endif of #ifdef CPP_IOIPSL
    459439
    460440  !-----------------------------------------------------------------------
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/getparam.F90

    r5101 r5103  
    33
    44MODULE getparam
    5 #ifdef CPP_IOIPSL
    65   USE IOIPSL
    7 #else
    8 ! if not using IOIPSL, we still need to use (a local version of) getin
    9    USE ioipsl_getincom
    10 #endif
    116
    127   INTERFACE getpar
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/groupe_loc.f90

    r5101 r5103  
    1 subroutine groupe_loc(pext, pbaru, pbarv, pbarum, pbarvm, wm)
     1SUBROUTINE groupe_loc(pext, pbaru, pbarv, pbarum, pbarvm, wm)
    22  USE parallel_lmdz
    33  USE Write_field_loc
     
    124124
    125125  return
    126 end subroutine groupe_loc
     126END SUBROUTINE groupe_loc
    127127
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/guide_loc_mod.F90

    r5101 r5103  
    9292    CALL ini_getparam("nudging_parameters_out.txt")
    9393! Variables guidees
    94     CALL getpar('guide_u',.true.,guide_u,'guidage de u')
    95     CALL getpar('guide_v',.true.,guide_v,'guidage de v')
    96     CALL getpar('guide_T',.true.,guide_T,'guidage de T')
    97     CALL getpar('guide_P',.true.,guide_P,'guidage de P')
    98     CALL getpar('guide_Q',.true.,guide_Q,'guidage de Q')
    99     CALL getpar('guide_hr',.true.,guide_hr,'guidage de Q par H.R')
    100     CALL getpar('guide_teta',.false.,guide_teta,'guidage de T par Teta')
    101 
    102     CALL getpar('guide_add',.false.,guide_add,'foréage constant?')
    103     CALL getpar('guide_zon',.false.,guide_zon,'guidage moy zonale')
     94    CALL getpar('guide_u',.TRUE.,guide_u,'guidage de u')
     95    CALL getpar('guide_v',.TRUE.,guide_v,'guidage de v')
     96    CALL getpar('guide_T',.TRUE.,guide_T,'guidage de T')
     97    CALL getpar('guide_P',.TRUE.,guide_P,'guidage de P')
     98    CALL getpar('guide_Q',.TRUE.,guide_Q,'guidage de Q')
     99    CALL getpar('guide_hr',.TRUE.,guide_hr,'guidage de Q par H.R')
     100    CALL getpar('guide_teta',.FALSE.,guide_teta,'guidage de T par Teta')
     101
     102    CALL getpar('guide_add',.FALSE.,guide_add,'foréage constant?')
     103    CALL getpar('guide_zon',.FALSE.,guide_zon,'guidage moy zonale')
    104104    if (guide_zon .and. abs(grossismx - 1.) > 0.01) &
    105105         CALL abort_gcm("guide_init", &
     
    117117    CALL getpar('tau_min_P',0.02,tau_min_P,'Cste de rappel min, P')
    118118    CALL getpar('tau_max_P', 10.,tau_max_P,'Cste de rappel max, P')
    119     CALL getpar('gamma4',.false.,gamma4,'Zone sans rappel elargie')
    120     CALL getpar('guide_BL',.true.,guide_BL,'guidage dans C.Lim')
     119    CALL getpar('gamma4',.FALSE.,gamma4,'Zone sans rappel elargie')
     120    CALL getpar('guide_BL',.TRUE.,guide_BL,'guidage dans C.Lim')
    121121    CALL getpar('plim_guide_BL',85000.,plim_guide_BL,'BL top presnivs value')
    122122
    123123! Sauvegarde du forçage
    124     CALL getpar('guide_sav',.false.,guide_sav,'sauvegarde guidage')
     124    CALL getpar('guide_sav',.FALSE.,guide_sav,'sauvegarde guidage')
    125125    CALL getpar('iguide_sav',4,iguide_sav,'freq. sauvegarde guidage')
    126126    ! frequences f>0: fx/jour; f<0: tous les f jours; f=0: 1 seule fois.
     
    134134
    135135! Guidage regional seulement (sinon constant ou suivant le zoom)
    136     CALL getpar('guide_reg',.false.,guide_reg,'guidage regional')
     136    CALL getpar('guide_reg',.FALSE.,guide_reg,'guidage regional')
    137137    CALL getpar('lat_min_g',-90.,lat_min_g,'Latitude mini guidage ')
    138138    CALL getpar('lat_max_g', 90.,lat_max_g,'Latitude maxi guidage ')
     
    154154    CALL getpar('guide_plevs',0,guide_plevs,'niveaux pression fichiers guidage')
    155155    ! Pour compatibilite avec ancienne version avec guide_modele
    156     CALL getpar('guide_modele',.false.,guide_modele,'niveaux pression ap+bp*psol')
     156    CALL getpar('guide_modele',.FALSE.,guide_modele,'niveaux pression ap+bp*psol')
    157157    IF (guide_modele) THEN
    158158        guide_plevs=1
    159159    ENDIF
    160160!FC
    161     CALL getpar('convert_Pa',.true.,convert_Pa,'Convert Pressure levels in Pa')
     161    CALL getpar('convert_Pa',.TRUE.,convert_Pa,'Convert Pressure levels in Pa')
    162162    ! Fin raccord
    163     CALL getpar('ini_anal',.false.,ini_anal,'Etat initial = analyse')
    164     CALL getpar('guide_invertp',.true.,invert_p,'niveaux p inverses')
    165     CALL getpar('guide_inverty',.true.,invert_y,'inversion N-S')
    166     CALL getpar('guide_2D',.false.,guide_2D,'fichier guidage lat-P')
     163    CALL getpar('ini_anal',.FALSE.,ini_anal,'Etat initial = analyse')
     164    CALL getpar('guide_invertp',.TRUE.,invert_p,'niveaux p inverses')
     165    CALL getpar('guide_inverty',.TRUE.,invert_y,'inversion N-S')
     166    CALL getpar('guide_2D',.FALSE.,guide_2D,'fichier guidage lat-P')
    167167
    168168    CALL fin_getparam
     
    23662366 
    23672367!===========================================================================
    2368   subroutine correctbid(iim,nl,x)
     2368  SUBROUTINE correctbid(iim,nl,x)
    23692369    integer iim,nl
    23702370    real x(iim+1,nl)
     
    23762376            if(abs(x(i,l))>1.e10) then
    23772377               zz=0.5*(x(i-1,l)+x(i+1,l))
    2378               print*,'correction ',i,l,x(i,l),zz
     2378              PRINT*,'correction ',i,l,x(i,l),zz
    23792379               x(i,l)=zz
    23802380            endif
     
    23822382     enddo
    23832383     return
    2384   end subroutine correctbid
     2384  END SUBROUTINE correctbid
    23852385
    23862386
     
    23892389!====================================================================
    23902390
    2391 subroutine dump2du(var,varname)
     2391SUBROUTINE dump2du(var,varname)
    23922392use parallel_lmdz
    23932393use mod_hallo
     
    24162416
    24172417    return
    2418     end subroutine dump2du
     2418    END SUBROUTINE dump2du
    24192419
    24202420!====================================================================
    24212421! Ascii debug output. Could be reactivated
    24222422!====================================================================
    2423 subroutine dumpall
     2423SUBROUTINE dumpall
    24242424     implicit none
    24252425     include "dimensions.h"
     
    24312431     CALL dump2du(ugui1(ijb_u:ije_u,1)*sqrt(unscu2(ijb_u:ije_u)),'  ugui1 couche 1')
    24322432     return
    2433 end subroutine dumpall
     2433END SUBROUTINE dumpall
    24342434
    24352435!===========================================================================
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/iniacademic_loc.F90

    r5101 r5103  
    1010  use exner_milieu_m, only: exner_milieu
    1111  USE parallel_lmdz, ONLY: ijb_u, ije_u, ijb_v, ije_v
    12 #ifdef CPP_IOIPSL
    1312  USE IOIPSL, ONLY: getin
    14 #else
    15   ! if not using IOIPSL, we still need to use (a local version of) getin
    16   USE ioipsl_getincom, ONLY: getin
    17 #endif
    1813  USE Write_Field
    1914  USE comconst_mod, ONLY: cpp, kappa, g, daysec, dtvr, pi, im, jm
     
    8378
    8479  REAL zdtvr, tnat, alpha_ideal
    85   LOGICAL,PARAMETER :: tnat1=.true.
     80  LOGICAL,PARAMETER :: tnat1=.TRUE.
    8681 
    8782  character(len=*),parameter :: modname="iniacademic"
     
    9489    write(lunout,*) "You most likely want an aquaplanet initialisation", &
    9590    " (iflag_phys >= 100)"
    96     CALL abort_gcm(modname,"incompatible iflag_phys==1 and read_start==.false.",1)
     91    CALL abort_gcm(modname,"incompatible iflag_phys==1 and read_start==.FALSE.",1)
    9792  endif
    9893 
     
    128123  CALL inifilr
    129124
    130   ! Initialize pressure and mass field if read_start=.false.
     125  ! Initialize pressure and mass field if read_start=.FALSE.
    131126  IF (.NOT. read_start) THEN
    132127    ! allocate global fields:
     
    169164     !------------------------------------------------------------------
    170165
    171      print*,'relief=',minval(relief),maxval(relief),'g=',g
     166     PRINT*,'relief=',minval(relief),maxval(relief),'g=',g
    172167     do j=1,jjp1
    173168        do i=1,iip1
     
    175170        enddo
    176171     enddo
    177      print*,'phis=',minval(phis),maxval(phis),'g=',g
     172     PRINT*,'phis=',minval(phis),maxval(phis),'g=',g
    178173
    179174     CALL pression ( ip1jmp1, ap, bp, ps_glo, p       )
     
    225220     CALL getin('delt_z',delt_z)
    226221     ! Polar vortex
    227      ok_pv=.false.
     222     ok_pv=.FALSE.
    228223     CALL getin('ok_pv',ok_pv)
    229224     phi_pv=-50.            ! Latitude of edge of vortex
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/initdynav_loc.F

    r5101 r5103  
    22! $Id: initdynav_p.F 1279 2009-12-10 09:02:56Z fairhead $
    33
    4       subroutine initdynav_loc(day0,anne0,tstep,t_ops,t_wrt)
    5 
    6 #ifdef CPP_IOIPSL
     4      SUBROUTINE initdynav_loc(day0,anne0,tstep,t_ops,t_wrt)
     5
    76! This routine needs IOIPSL
    87       USE IOIPSL
    9 #endif
    108       USE parallel_lmdz
    119       use Write_field
     
    5654      real tstep, t_ops, t_wrt
    5755
    58 #ifdef CPP_IOIPSL
    5956! This routine needs IOIPSL
    6057C   Variables locales
     
    7875      INTEGER,DIMENSION(2) :: dpl
    7976      INTEGER,DIMENSION(2) :: dhs
    80       INTEGER,DIMENSION(2) :: dhe 
    81      
     77      INTEGER,DIMENSION(2) :: dhe
     78
    8279      INTEGER :: dynhistave_domain_id
    8380      INTEGER :: dynhistvave_domain_id
    8481      INTEGER :: dynhistuave_domain_id
    85      
     82
    8683      if (adjust) return
    8784
     
    9289C
    9390C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
    94 C         
     91C
    9592
    9693      zan = anne0
     
    9895      CALL ymds2ju(zan, 1, dayref, 0.0, zjulian)
    9996      tau0 = itau_dyn
    100      
     97
    10198      do jj = 1, jjp1
    10299        do ii = 1, iip1
     
    109106! Creation de 3 fichiers pour les differentes grilles horizontales
    110107! Restriction de IOIPSL: seulement 2 coordonnees dans le meme fichier
    111 ! Grille Scalaire       
     108! Grille Scalaire
    112109
    113110      jjb=jj_begin
     
    126123      CALL flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
    127124     .                 'box',dynhistave_domain_id)
    128              
     125
    129126      CALL histbeg(dynhistave_file,iip1, rlong(:,1), jjn,
    130127     .             rlat(1,jjb:jje), 1, iip1, 1, jjn,tau0,
     
    143140      IF (pole_sud) jjn=jjn-1
    144141      IF (pole_sud) jje=jje-1
    145      
     142
    146143      do jj = jjb, jje
    147144        do ii = 1, iip1
     
    167164     .             zjulian, tstep, vhoriid,
    168165     .             histvaveid,dynhistvave_domain_id)
    169      
     166
    170167! Grille U
    171168
     
    192189      CALL flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
    193190     .                 'box',dynhistuave_domain_id)
    194              
     191
    195192      CALL histbeg(dynhistuave_file,iip1, rlong(:,1), jjn,
    196193     .             rlat(1,jjb:jje), 1, iip1, 1, jjn,tau0,
    197194     .             zjulian, tstep, uhoriid,
    198195     .             histuaveid,dynhistuave_domain_id)
    199      
    200      
     196
     197
    201198C
    202199C  Appel a histvert pour la grille verticale
     
    281278      CALL histend(histuaveid)
    282279      CALL histend(histvaveid)
    283 #else
    284       write(lunout,*)'initdynav_loc: Needs IOIPSL to function'
    285 #endif
    286 ! #endif of #ifdef CPP_IOIPSL
    287280      end
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/initfluxsto_p.F

    r5101 r5103  
    22! $Id$
    33
    4       subroutine initfluxsto_p
     4      SUBROUTINE initfluxsto_p
    55     .  (infile,tstep,t_ops,t_wrt,
    66     .                    fileid,filevid,filedid)
    77
    8 #ifdef CPP_IOIPSL
    98! This routine needs IOIPSL
    109       USE IOIPSL
    11 #endif
    1210       USE parallel_lmdz
    1311       use Write_field
     
    5856      integer fileid, filevid,filedid
    5957
    60 #ifdef CPP_IOIPSL
    6158! This routine needs IOIPSL
    6259C   Variables locales
     
    8380      INTEGER,DIMENSION(2) :: dpl
    8481      INTEGER,DIMENSION(2) :: dhs
    85       INTEGER,DIMENSION(2) :: dhe 
    86      
     82      INTEGER,DIMENSION(2) :: dhe
     83
    8784      INTEGER :: dynu_domain_id
    8885      INTEGER :: dynv_domain_id
     
    9491      str='q  '
    9592      ctrac = 'traceur   '
    96       ok_sync = .true.
     93      ok_sync = .TRUE.
    9794C
    9895C  Appel a histbeg: creation du fichier netcdf et initialisations diverses
    99 C         
     96C
    10097
    10198      zan = annee_ref
     
    103100      CALL ymds2ju(zan, 1, idayref, 0.0, zjulian)
    104101      tau0 = itau_dyn
    105        
     102
    106103        do jj = 1, jjp1
    107104        do ii = 1, iip1
     
    125122      CALL flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
    126123     .                 'box',dynu_domain_id)
    127        
     124
    128125      CALL histbeg(trim(infile),iip1, rlong(:,1), jjn, rlat(1,jjb:jje),
    129126     .             1, iip1, 1, jjn, tau0, zjulian, tstep, uhoriid,
     
    131128C
    132129C  Creation du fichier histoire pour la grille en V (oblige pour l'instant,
    133 C  IOIPSL ne permet pas de grilles avec des nombres de point differents dans 
     130C  IOIPSL ne permet pas de grilles avec des nombres de point differents dans
    134131C  un meme fichier)
    135132
     
    158155      CALL flio_dom_set(mpi_size,mpi_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe,
    159156     .                 'box',dynv_domain_id)
    160      
     157
    161158      CALL histbeg('fluxstokev',iip1, rlong(:,1), jjn, rlat(1,jjb:jje),
    162159     .             1, iip1, 1, jjn,tau0, zjulian, tstep, vhoriid,
    163160     .             filevid,dynv_domain_id)
    164        
     161
    165162      rl(1,1) = 1.
    166      
     163
    167164      if (mpi_rank==0) then
    168          
     165
    169166        CALL histbeg('defstoke.nc', 1, rl, 1, rl,
    170167     .               1, 1, 1, 1,
    171168     .               tau0, zjulian, tstep, dhoriid, filedid)
    172      
     169
    173170      endif
    174171C
     
    188185      CALL histhori(fileid, iip1, rlong(:,jjb:jje),jjn,rlat(:,jjb:jje),
    189186     .             'scalar','Grille points scalaires', thoriid)
    190        
     187
    191188C
    192189C  Appel a histvert pour la grille verticale
     
    208205C
    209206C  Appels a histdef pour la definition des variables a sauvegarder
    210        
     207
    211208        CALL histdef(fileid, "phis", "Surface geop. height", "-",
    212209     .                iip1,jjn,thoriid, 1,1,1, -99, 32,
     
    216213     .                iip1,jjn,thoriid, 1,1,1, -99, 32,
    217214     .                "once", t_ops, t_wrt)
    218        
     215
    219216        if (mpi_rank==0) then
    220        
     217
    221218        CALL histdef(filedid, "dtvr", "tps dyn", "s",
    222219     .                1,1,dhoriid, 1,1,1, -99, 32,
    223220     .                "once", t_ops, t_wrt)
    224        
     221
    225222         CALL histdef(filedid, "istdyn", "tps stock", "s",
    226223     .                1,1,dhoriid, 1,1,1, -99, 32,
    227224     .                "once", t_ops, t_wrt)
    228          
     225
    229226         CALL histdef(filedid, "istphy", "tps stock phy", "s",
    230227     .                1,1,dhoriid, 1,1,1, -99, 32,
     
    233230        endif
    234231C
    235 C Masse 
     232C Masse
    236233C
    237234      CALL histdef(fileid, 'masse', 'Masse', 'kg',
     
    239236     .             32, 'inst(X)', t_ops, t_wrt)
    240237C
    241 C  Pbaru 
     238C  Pbaru
    242239C
    243240      CALL histdef(fileid, 'pbaru', 'flx de masse zonal', 'kg m/s',
     
    246243
    247244C
    248 C  Pbarv 
     245C  Pbarv
    249246C
    250247      if (pole_sud) jjn=jj_nb-1
    251      
     248
    252249      CALL histdef(filevid, 'pbarv', 'flx de masse mer', 'kg m/s',
    253250     .             iip1, jjn, vhoriid, llm, 1, llm, zvertiid,
    254251     .             32, 'inst(X)', t_ops, t_wrt)
    255252C
    256 C  w 
     253C  w
    257254C
    258255      if (pole_sud) jjn=jj_nb
     
    270267
    271268C
    272 C Geopotentiel 
     269C Geopotentiel
    273270C
    274271      CALL histdef(fileid, 'phi', 'geopotentiel instantane', '-',
     
    286283        if (mpi_rank==0) CALL histsync(filedid)
    287284      endif
    288        
    289 #else
    290       write(lunout,*)'initfluxsto_p: Needs IOIPSL to function'
    291 #endif
    292 ! #endif of #ifdef CPP_IOIPSL
     285
    293286      return
    294287      end
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/inithist_loc.F90

    r5101 r5103  
    11! $Id: initdynav_p.F 1279 2009-12-10 09:02:56Z fairhead $
    22
    3 subroutine inithist_loc(day0, anne0, tstep, t_ops, t_wrt)
    4 
    5 #ifdef CPP_IOIPSL
     3SUBROUTINE inithist_loc(day0, anne0, tstep, t_ops, t_wrt)
     4
    65  ! This routine needs IOIPSL
    76   USE IOIPSL
    8 #endif
    97  USE parallel_lmdz
    108  use Write_field
     
    5351  real :: tstep, t_ops, t_wrt
    5452
    55 #ifdef CPP_IOIPSL
    5653  ! This routine needs IOIPSL
    5754  !   Variables locales
     
    280277  CALL histend(histuid)
    281278  CALL histend(histvid)
    282 #else
    283   write(lunout, *)'inithist_loc: Needs IOIPSL to function'
    284 #endif
    285   ! #endif of #ifdef CPP_IOIPSL
    286 end subroutine inithist_loc
     279END SUBROUTINE  inithist_loc
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/integrd_loc.F

    r5101 r5103  
    1515      USE comvert_mod, ONLY: ap, bp
    1616      USE temps_mod, ONLY: dt
     17      USE strings_mod, ONLY: int2str
    1718     
    1819      IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/leapfrog_loc.F90

    r5101 r5103  
    99  USE mod_hallo
    1010  USE Bands
    11   USE Write_Field
     11  USE strings_mod, ONLY: int2str
    1212  USE Write_Field_p
    1313  USE vampir
     
    3939          xios_set_current_context, &
    4040          using_xios
    41   USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_DEBUGIO
     41  USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_DEBUGIO
    4242
    4343  IMPLICIT NONE
     
    153153  LOGICAL :: first, callinigrads
    154154
    155   data callinigrads/.true./
     155  data callinigrads/.TRUE./
    156156  character(len = 10) :: string10
    157157
     
    182182  PARAMETER (testita = 9)
    183183
    184   logical, parameter :: flag_verif = .false.
     184  logical, parameter :: flag_verif = .FALSE.
    185185
    186186  ! declaration liees au parallelisme
     
    211211  iapptrac = 0
    212212  AdjustCount = 0
    213   lafin = .false.
     213  lafin = .FALSE.
    214214
    215215  if (nday>=0) then
     
    224224
    225225  itau = 0
    226   physic = .true.
    227   if (iflag_phys==0.or.iflag_phys==2) physic = .false.
     226  physic = .TRUE.
     227  if (iflag_phys==0.or.iflag_phys==2) physic = .FALSE.
    228228  CALL init_nan
    229229  CALL leapfrog_allocate
     
    317317  CALL check_isotopes(q, ijb_u, ije_u, 'leapfrog 321')
    318318
    319 #ifdef CPP_IOIPSL
    320319  if (ok_guide) then
    321320    CALL guide_main(itau,ucov,vcov,teta,q,masse,ps)
    322321!$OMP BARRIER
    323322  endif
    324 #endif
    325323
    326324
     
    402400  ItCount = ItCount + 1
    403401  if (MOD(ItCount, 1)==1) then
    404     debug = .true.
     402    debug = .TRUE.
    405403  else
    406     debug = .false.
     404    debug = .FALSE.
    407405  endif
    408406  !$OMP END MASTER
     
    451449  ! supress dissipation step
    452450  if (llm==1) then
    453     apdiss = .false.
     451    apdiss = .FALSE.
    454452  endif
    455453
     
    808806    if (FirstPhysic) then
    809807      ok_start_timer = .TRUE.
    810       FirstPhysic = .false.
     808      FirstPhysic = .FALSE.
    811809    endif
    812810    !$OMP END MASTER
     
    820818    if (FirstPhysic) then
    821819      ok_start_timer = .TRUE.
    822       FirstPhysic = .false.
     820      FirstPhysic = .FALSE.
    823821    endif
    824822    !$OMP END MASTER
     
    952950      ! ! set ok_guide to false to avoid extra output
    953951      ! ! in following forward step
    954       ok_guide = .false.
     952      ok_guide = .FALSE.
    955953    endif
    956954
    957     IF (CPPKEY_INCA) THEN
    958955      IF (ANY(type_trac == ['inca', 'inco'])) THEN
    959956        CALL finalize_inca
     
    965962        !$OMP END MASTER
    966963      ENDIF
    967     END IF
    968964#ifdef REPROBUS
    969965     if (type_trac == 'repr') CALL finalize_reprobus
     
    10111007      !$OMP END MASTER
    10121008
    1013       IF (CPPKEY_INCA) THEN
    10141009        IF (ANY(type_trac == ['inca', 'inco'])) THEN
    10151010          CALL finalize_inca
     
    10211016          !$OMP END MASTER
    10221017        ENDIF
    1023       END IF
    10241018#ifdef REPROBUS
    10251019          if (type_trac == 'repr') CALL finalize_reprobus
     
    10521046      !$OMP BARRIER
    10531047
    1054 #ifdef CPP_IOIPSL
    10551048         IF (ok_dynzon) THEN
    10561049
     
    10641057                   ucov,teta,pk,phi,q,masse,ps,phis)
    10651058          ENDIF
    1066 #endif
    10671059
    10681060    ENDIF
     
    10841076        !$OMP BARRIER
    10851077
    1086 #ifdef CPP_IOIPSL
    10871078         if (ok_dyn_ins) then
    10881079             CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q, &
    10891080                   masse,ps,phis)
    10901081         endif
    1091 #endif
    10921082
    10931083        IF (ok_dyn_xios) THEN
     
    11161106        ! ! set ok_guide to false to avoid extra output
    11171107        ! ! in following forward step
    1118         ok_guide = .false.
     1108        ok_guide = .FALSE.
    11191109      endif
    11201110
     
    11801170        !$OMP END MASTER
    11811171
    1182         IF (CPPKEY_INCA) THEN
    11831172          IF (ANY(type_trac == ['inca', 'inco'])) THEN
    11841173            CALL finalize_inca
     
    11901179            !$OMP END MASTER
    11911180          ENDIF
    1192 
    1193         END IF
    11941181#ifdef REPROBUS
    11951182             if (type_trac == 'repr') CALL finalize_reprobus
     
    12161203        ENDIF
    12171204
    1218 #ifdef CPP_IOIPSL
    12191205          ! ! Ehouarn: re-compute geopotential for outputs
    12201206!$OMP BARRIER
     
    12331219                   ucov,teta,pk,phi,q,masse,ps,phis)
    12341220           ENDIF
    1235 #endif
    12361221
    12371222      ENDIF ! of IF(MOD(itau,iperiod).EQ.0 .OR. itau.EQ.itaufin)
     
    12461231
    12471232
    1248 #ifdef CPP_IOIPSL
    12491233          if (ok_dyn_ins) then
    12501234             CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q, &
    12511235                   masse,ps,phis)
    12521236          endif ! of if (ok_dyn_ins)
    1253 #endif
    12541237
    12551238        IF (ok_dyn_xios) THEN
     
    12721255          ! ! set ok_guide to false to avoid extra output
    12731256          ! ! in following forward step
    1274           ok_guide = .false.
     1257          ok_guide = .FALSE.
    12751258        endif
    12761259
     
    12891272  !$OMP END MASTER
    12901273
    1291   IF (CPPKEY_INCA) THEN
    12921274    IF (ANY(type_trac == ['inca', 'inco'])) THEN
    12931275      CALL finalize_inca
     
    12991281      !$OMP END MASTER
    13001282    ENDIF
    1301   END IF
    13021283#ifdef REPROBUS
    13031284  if (type_trac == 'repr') CALL finalize_reprobus
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/lmdz_call_calfis.F90

    r5101 r5103  
    8181    USE control_mod
    8282    USE write_field_loc
    83     USE write_field
     83    USE strings_mod, ONLY: int2str
    8484    USE comconst_mod, ONLY: dtphys
    8585    USE logic_mod, ONLY: leapf, forward, ok_strato
     
    9393
    9494    INTEGER, INTENT(IN) :: itau ! (time) iteration step number
    95     LOGICAL, INTENT(IN) :: lafin ! .true. if final time step
     95    LOGICAL, INTENT(IN) :: lafin ! .TRUE. if final time step
    9696    REAL, INTENT(INOUT) :: ucov_dyn(ijb_u:ije_u, llm) ! covariant zonal wind
    9797    REAL, INTENT(INOUT) :: vcov_dyn(ijb_v:ije_v, llm) ! covariant meridional wind
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/mod_const_mpi.F90

    r5101 r5103  
    1313    USE lmdz_mpi
    1414
    15 #ifdef CPP_IOIPSL
    1615    USE IOIPSL, ONLY: getin
    17 #else
    18 ! if not using IOIPSL, we still need to use (a local version of) getin
    19     USE ioipsl_getincom, only: getin
    20 #endif
    2116! Use of Oasis-MCT coupler
    2217#ifdef CPP_OMCT
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/mod_hallo.F90

    r5101 r5103  
    6767  contains
    6868
    69   subroutine Init_mod_hallo
     69  SUBROUTINE Init_mod_hallo
    7070  USE dimensions_mod
    7171  USE IOIPSL
     
    9696!$OMP BARRIER
    9797
    98   end subroutine init_mod_hallo
     98  END SUBROUTINE init_mod_hallo
    9999
    100100  SUBROUTINE create_standard_mpi_buffer
     
    137137 
    138138     
    139   subroutine allocate_buffer(Size,Index,Pos)
     139  SUBROUTINE allocate_buffer(Size,Index,Pos)
    140140  implicit none
    141141    integer :: Size
     
    159159    Index=Index_Pos
    160160   
    161   end subroutine allocate_buffer
     161  END SUBROUTINE allocate_buffer
    162162     
    163   subroutine deallocate_buffer(Index)
     163  SUBROUTINE deallocate_buffer(Index)
    164164  implicit none
    165165    integer :: Index
     
    171171    END DO
    172172
    173   end subroutine deallocate_buffer 
    174  
    175   subroutine SetTag(a_request,tag)
     173  END SUBROUTINE  deallocate_buffer
     174 
     175  SUBROUTINE SetTag(a_request,tag)
    176176  implicit none
    177177    type(request):: a_request
     
    179179   
    180180    a_request%tag=tag
    181   end subroutine SetTag
    182  
    183  
    184   subroutine New_Hallo(Field,Stride,NbLevel,offset,size,Ptr_request)
     181  END SUBROUTINE SetTag
     182 
     183 
     184  SUBROUTINE New_Hallo(Field,Stride,NbLevel,offset,size,Ptr_request)
    185185    integer :: Stride
    186186    integer :: NbLevel
     
    212212    NewHallo%offset=offset
    213213   
    214   end subroutine New_Hallo
    215  
    216   subroutine Register_SendField(Field,ij,ll,offset,size,target,a_request)
     214  END SUBROUTINE New_Hallo
     215 
     216  SUBROUTINE Register_SendField(Field,ij,ll,offset,size,target,a_request)
    217217  USE dimensions_mod
    218218  implicit none
     
    228228      CALL New_Hallo(Field,ij,ll,offset,size,Ptr_request)
    229229     
    230    end subroutine Register_SendField     
    231      
    232   subroutine Register_RecvField(Field,ij,ll,offset,size,target,a_request)
     230   END SUBROUTINE  Register_SendField
     231     
     232  SUBROUTINE Register_RecvField(Field,ij,ll,offset,size,target,a_request)
    233233  USE dimensions_mod
    234234  implicit none
     
    245245
    246246     
    247    end subroutine Register_RecvField     
    248  
    249   subroutine Register_SwapField(FieldS,FieldR,ij,ll,jj_Nb_New,a_request)
     247   END SUBROUTINE  Register_RecvField
     248 
     249  SUBROUTINE Register_SwapField(FieldS,FieldR,ij,ll,jj_Nb_New,a_request)
    250250  USE dimensions_mod
    251251      implicit none
     
    291291    enddo
    292292   
    293   end subroutine Register_SwapField   
    294  
    295 
    296  
    297   subroutine Register_SwapFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down,a_request)
     293  END SUBROUTINE  Register_SwapField
     294 
     295
     296 
     297  SUBROUTINE Register_SwapFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down,a_request)
    298298  USE dimensions_mod
    299299 
     
    344344    enddo
    345345   
    346   end subroutine Register_SwapFieldHallo
     346  END SUBROUTINE Register_SwapFieldHallo
    347347
    348348
     
    11471147
    11481148 
    1149   subroutine Register_Hallo(Field,ij,ll,RUp,Rdown,SUp,SDown,a_request)
     1149  SUBROUTINE Register_Hallo(Field,ij,ll,RUp,Rdown,SUp,SDown,a_request)
    11501150  USE dimensions_mod
    11511151  USE lmdz_mpi
     
    12091209      ENDIF
    12101210 
    1211     end subroutine Register_Hallo
    1212 
    1213 
    1214   subroutine Register_Hallo_u(Field,ll,RUp,Rdown,SUp,SDown,a_request)
     1211    END SUBROUTINE Register_Hallo
     1212
     1213
     1214  SUBROUTINE Register_Hallo_u(Field,ll,RUp,Rdown,SUp,SDown,a_request)
    12151215  USE dimensions_mod
    12161216  USE lmdz_mpi
     
    12731273      ENDIF
    12741274 
    1275     end subroutine Register_Hallo_u
    1276 
    1277   subroutine Register_Hallo_v(Field,ll,RUp,Rdown,SUp,SDown,a_request)
     1275    END SUBROUTINE Register_Hallo_u
     1276
     1277  SUBROUTINE Register_Hallo_v(Field,ll,RUp,Rdown,SUp,SDown,a_request)
    12781278  USE dimensions_mod
    12791279  USE lmdz_mpi
     
    13361336      ENDIF
    13371337 
    1338     end subroutine Register_Hallo_v
    1339    
    1340     subroutine SendRequest(a_Request)
     1338    END SUBROUTINE Register_Hallo_v
     1339   
     1340    SUBROUTINE SendRequest(a_Request)
    13411341    USE dimensions_mod
    13421342    USE lmdz_mpi
     
    14541454      enddo
    14551455                       
    1456    end subroutine SendRequest
    1457    
    1458    subroutine WaitRequest(a_Request)
     1456   END SUBROUTINE  SendRequest
     1457   
     1458   SUBROUTINE WaitRequest(a_Request)
    14591459   USE dimensions_mod
    14601460   USE lmdz_mpi
     
    15391539     
    15401540      a_request%tag=1
    1541     end subroutine WaitRequest
     1541    END SUBROUTINE WaitRequest
    15421542     
    1543    subroutine WaitSendRequest(a_Request)
     1543   SUBROUTINE WaitSendRequest(a_Request)
    15441544   USE lmdz_mpi
    15451545   USE dimensions_mod
     
    15871587             
    15881588      a_request%tag=1
    1589     end subroutine WaitSendRequest
    1590    
    1591    subroutine WaitRecvRequest(a_Request)
     1589    END SUBROUTINE WaitSendRequest
     1590   
     1591   SUBROUTINE WaitRecvRequest(a_Request)
    15921592   USE dimensions_mod
    15931593   USE lmdz_mpi
     
    16561656     
    16571657      a_request%tag=1
    1658     end subroutine WaitRecvRequest
    1659    
    1660    
    1661    
    1662     subroutine CopyField(FieldS,FieldR,ij,ll,jj_Nb_New)
     1658    END SUBROUTINE WaitRecvRequest
     1659   
     1660   
     1661   
     1662    SUBROUTINE CopyField(FieldS,FieldR,ij,ll,jj_Nb_New)
    16631663    USE dimensions_mod
    16641664 
     
    16961696
    16971697
    1698   end subroutine CopyField   
    1699 
    1700   subroutine CopyFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down)
     1698  END SUBROUTINE  CopyField
     1699
     1700  SUBROUTINE CopyFieldHallo(FieldS,FieldR,ij,ll,jj_Nb_New,Up,Down)
    17011701  USE dimensions_mod
    17021702 
     
    17361736
    17371737    endif
    1738    end subroutine CopyFieldHallo       
    1739 
    1740    subroutine Gather_field_u(field_loc,field_glo,ll)
     1738   END SUBROUTINE  CopyFieldHallo
     1739
     1740   SUBROUTINE Gather_field_u(field_loc,field_glo,ll)
    17411741   USE dimensions_mod
    17421742   implicit none
     
    17591759!$OMP BARRIER
    17601760
    1761     end subroutine Gather_field_u
    1762        
    1763    subroutine Gather_field_v(field_loc,field_glo,ll)
     1761    END SUBROUTINE Gather_field_u
     1762       
     1763   SUBROUTINE Gather_field_v(field_loc,field_glo,ll)
    17641764   USE dimensions_mod
    17651765   implicit none
     
    17871787!$OMP BARRIER
    17881788
    1789     end subroutine Gather_field_v
     1789    END SUBROUTINE Gather_field_v
    17901790     
    1791    subroutine Scatter_field_u(field_glo,field_loc,ll)
     1791   SUBROUTINE Scatter_field_u(field_glo,field_loc,ll)
    17921792   USE dimensions_mod
    17931793   implicit none
     
    18211821       ENDDO
    18221822
    1823     end subroutine Scatter_field_u
    1824 
    1825    subroutine Scatter_field_v(field_glo,field_loc,ll)
     1823    END SUBROUTINE Scatter_field_u
     1824
     1825   SUBROUTINE Scatter_field_v(field_glo,field_loc,ll)
    18261826   USE dimensions_mod
    18271827   implicit none
     
    18581858       ENDDO
    18591859
    1860     end subroutine Scatter_field_v
     1860    END SUBROUTINE Scatter_field_v
    18611861             
    18621862end module mod_Hallo
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/mod_xios_dyn3dmem.F90

    r5101 r5103  
    138138     REAL, DIMENSION(ij_begin:ij_end) :: Field
    139139     REAL, DIMENSION(iip1,  jj_begin:jj_end) :: NewField
    140       LOGICAL,SAVE :: debuglf=.true.
     140      LOGICAL,SAVE :: debuglf=.TRUE.
    141141!$OMP THREADPRIVATE(debuglf)
    142142     
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/parallel_lmdz.F90

    r5101 r5103  
    55  USE mod_const_mpi
    66  USE lmdz_mpi, ONLY: using_mpi
    7 #ifdef CPP_IOIPSL
    87      use IOIPSL
    9 #else
    10 ! if not using IOIPSL, we still need to use (a local version of) getin
    11       use ioipsl_getincom
    12 #endif   
    138    INTEGER,PARAMETER :: halo_max=3
    149   
    15     LOGICAL,SAVE :: using_omp ! .true. if using OpenMP
    16     LOGICAL,SAVE :: is_master ! .true. if the core is both MPI & OpenMP master
     10    LOGICAL,SAVE :: using_omp ! .TRUE. if using OpenMP
     11    LOGICAL,SAVE :: is_master ! .TRUE. if the core is both MPI & OpenMP master
    1712!$OMP THREADPRIVATE(is_master)
    1813   
     
    8681 contains
    8782 
    88     subroutine init_parallel
     83    SUBROUTINE init_parallel
    8984    USE vampir
    9085    USE lmdz_mpi
     
    240235     
    241236      IF ((mpi_rank==0).and.(omp_rank==0)) THEN
    242         is_master=.true.
     237        is_master=.TRUE.
    243238      ELSE
    244         is_master=.false.
     239        is_master=.FALSE.
    245240      ENDIF
    246241     
    247     end subroutine init_parallel
     242    END SUBROUTINE init_parallel
    248243
    249244    SUBROUTINE create_distrib(jj_nb_new,d)
     
    382377    END SUBROUTINE get_current_distrib
    383378   
    384     subroutine Finalize_parallel
     379    SUBROUTINE Finalize_parallel
    385380    USE lmdz_mpi
    386381    ! ug Pour les sorties XIOS
     
    439434      end if
    440435     
    441     end subroutine Finalize_parallel
    442        
    443     subroutine Pack_Data(Field,ij,ll,row,Buffer)
     436    END SUBROUTINE Finalize_parallel
     437       
     438    SUBROUTINE Pack_Data(Field,ij,ll,row,Buffer)
    444439    implicit none
    445440
     
    462457      enddo
    463458     
    464     end subroutine Pack_data
     459    END SUBROUTINE  Pack_data
    465460     
    466     subroutine Unpack_Data(Field,ij,ll,row,Buffer)
     461    SUBROUTINE Unpack_Data(Field,ij,ll,row,Buffer)
    467462    implicit none
    468463
     
    486481      enddo
    487482     
    488     end subroutine UnPack_data
     483    END SUBROUTINE UnPack_data
    489484
    490485   
     
    501496       
    502497     
    503     subroutine exchange_hallo(Field,ij,ll,up,down)
     498    SUBROUTINE exchange_hallo(Field,ij,ll,up,down)
    504499    USE lmdz_mpi
    505500    USE Vampir
     
    616611      RETURN
    617612     
    618     end subroutine exchange_Hallo
    619    
    620 
    621     subroutine Gather_Field(Field,ij,ll,rank)
     613    END SUBROUTINE exchange_Hallo
     614   
     615
     616    SUBROUTINE Gather_Field(Field,ij,ll,rank)
    622617    USE lmdz_mpi
    623618    implicit none
     
    696691      ENDIF ! using_mpi
    697692     
    698     end subroutine Gather_Field
    699 
    700 
    701     subroutine AllGather_Field(Field,ij,ll)
     693    END SUBROUTINE Gather_Field
     694
     695
     696    SUBROUTINE AllGather_Field(Field,ij,ll)
    702697    USE lmdz_mpi
    703698    implicit none
     
    715710      ENDIF
    716711     
    717     end subroutine AllGather_Field
    718    
    719    subroutine Broadcast_Field(Field,ij,ll,rank)
     712    END SUBROUTINE AllGather_Field
     713   
     714   SUBROUTINE Broadcast_Field(Field,ij,ll,rank)
    720715    USE lmdz_mpi
    721716    implicit none
     
    734729     
    735730      ENDIF
    736     end subroutine Broadcast_Field
     731    END SUBROUTINE Broadcast_Field
    737732       
    738733   
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/times.F90

    r5101 r5103  
    22  integer,private,save :: Last_Count=0
    33  real, private,save :: Last_cpuCount=0
    4   logical, private,save :: AllTimer_IsActive=.false.
     4  logical, private,save :: AllTimer_IsActive=.FALSE.
    55 
    66  integer, parameter :: nb_timer = 4
     
    2424  contains
    2525 
    26   subroutine init_timer
     26  SUBROUTINE init_timer
    2727    USE parallel_lmdz
    2828    implicit none
     
    4646    timer_delta(:,:,:)=0
    4747    timer_state(:)=stopped     
    48   end subroutine init_timer
    49  
    50   subroutine start_timer(no_timer)
     48  END SUBROUTINE init_timer
     49 
     50  SUBROUTINE start_timer(no_timer)
    5151    implicit none
    5252    integer :: no_timer
     
    6565    endif
    6666   
    67   end subroutine start_timer
    68  
    69   subroutine suspend_timer(no_timer)
     67  END SUBROUTINE start_timer
     68 
     69  SUBROUTINE suspend_timer(no_timer)
    7070    implicit none
    7171    integer :: no_timer
     
    8282      timer_running(no_timer)=timer_running(no_timer)+last_time(no_timer)
    8383    endif
    84   end subroutine suspend_timer
    85  
    86   subroutine resume_timer(no_timer)
     84  END SUBROUTINE suspend_timer
     85 
     86  SUBROUTINE resume_timer(no_timer)
    8787    implicit none
    8888    integer :: no_timer
     
    9898    endif
    9999   
    100   end subroutine resume_timer
    101 
    102   subroutine stop_timer(no_timer)
     100  END SUBROUTINE resume_timer
     101
     102  SUBROUTINE stop_timer(no_timer)
    103103    USE parallel_lmdz
    104104    implicit none
     
    133133    endif
    134134   
    135   end subroutine stop_timer
     135  END SUBROUTINE stop_timer
    136136   
    137   subroutine allgather_timer
     137  SUBROUTINE allgather_timer
    138138    USE parallel_lmdz
    139139    USE lmdz_mpi
     
    163163    ENDIF ! using_mpi
    164164   
    165   end subroutine allgather_timer
    166  
    167   subroutine allgather_timer_average
     165  END SUBROUTINE allgather_timer
     166 
     167  SUBROUTINE allgather_timer_average
    168168    USE parallel_lmdz
    169169    USE lmdz_mpi
     
    195195     
    196196    ENDIF  ! using_mpi
    197   end subroutine allgather_timer_average
    198  
    199   subroutine InitTime
     197  END SUBROUTINE allgather_timer_average
     198 
     199  SUBROUTINE InitTime
    200200  implicit none
    201201    integer :: count,count_rate,count_max
     
    207207      Last_Count=count
    208208    endif
    209   end subroutine InitTime
     209  END SUBROUTINE InitTime
    210210 
    211211  function DiffTime()
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/top_bound_loc.F

    r5099 r5103  
    4040! can be toward the average zonal field or just zero (see below).
    4141
    42 ! NB: top_bound sponge is only called from leapfrog if ok_strato=.true.
     42! NB: top_bound sponge is only called from leapfrog if ok_strato=.TRUE.
    4343
    4444! sponge parameters: (loaded/set in conf_gcm.F ; stored in comconst_mod)
     
    7979      REAL,SAVE :: rdamp(llm)
    8080      real,save :: lambda(llm) ! inverse or quenching time scale (Hz)
    81       LOGICAL,SAVE :: first=.true.
     81      LOGICAL,SAVE :: first=.TRUE.
    8282      INTEGER j,l,jjb,jje
    8383
     
    116116           endif
    117117         enddo
    118          first=.false.
     118         first=.FALSE.
    119119c$OMP END MASTER
    120120c$OMP BARRIER
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlsplt_loc.F

    r5101 r5103  
    117117         ENDDO ! l=1,llm
    118118c$OMP END DO NOWAIT
    119 c       print*,'Ok calcul des pentes'
     119c       PRINT*,'Ok calcul des pentes'
    120120
    121121      ELSE ! (pente_max.lt.-1.e-5)
     
    162162      ENDDO
    163163c$OMP END DO NOWAIT
    164 c        print*,'Bouclage en iip1'
     164c        PRINT*,'Bouclage en iip1'
    165165
    166166c   calcul des flux a gauche et a droite
     
    169169c   on cumule le flux correspondant a toutes les mailles dont la masse
    170170c   au travers de la paroi pENDant le pas de temps.
    171 c       print*,'Cumule ....'
     171c       PRINT*,'Cumule ....'
    172172c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    173173        ! on a besoin de masse entre ijb et ije
    174174      DO l=1,llm
    175175       DO ij=ijb,ije-1
    176 c       print*,'masse(',ij,')=',masse(ij,l,iq)
     176c       PRINT*,'masse(',ij,')=',masse(ij,l,iq)
    177177          IF (u_m(ij,l)>0.) THEN
    178178             zdum(ij,l)=1.-u_m(ij,l)/masse(ij,l,iq)
     
    200200      ENDDO
    201201c$OMP END DO NOWAIT
    202 c       print*,'Ok test 1'
     202c       PRINT*,'Ok test 1'
    203203
    204204c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     
    209209      ENDDO
    210210c$OMP END DO NOWAIT
    211 c        print*,'Ok test 2'
     211c        PRINT*,'Ok test 2'
    212212
    213213
     
    292292
    293293c   bouclage en latitude
    294 c       print*,'Avant bouclage en latitude'
     294c       PRINT*,'Avant bouclage en latitude'
    295295c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    296296      DO l=1,llm
     
    442442      EXTERNAL  SSUM
    443443
    444       DATA first/.true./
     444      DATA first/.TRUE./
    445445      DATA temps0,temps1,temps2,temps3,temps4,temps5/0.,0.,0.,0.,0.,0./
    446446      INTEGER ijb,ije
     
    454454      IF(first) THEN
    455455         PRINT*,'Shema  Amont nouveau  appele dans  Vanleer   '
    456          first=.false.
     456         first=.FALSE.
    457457         do i=2,iip1
    458458            coslon(i)=cos(rlonv(i))
     
    954954
    955955      countcfl=0
    956 !     print*,'vlz nouveau'
     956!     PRINT*,'vlz nouveau'
    957957c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    958958      DO l = 2,llm
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlspltgen_loc.F90

    r5101 r5103  
    2424  USE parallel_lmdz
    2525  USE mod_hallo
    26   USE Write_Field_loc
     26  USE write_field_loc, ONLY: WriteField_u, WriteField_v
    2727  USE VAMPIR
    2828  ! ! CRisi: on rajoute variables utiles d'infotrac
     
    3131  USE comconst_mod, ONLY: cpp
    3232  USE logic_mod, ONLY: adv_qsat_liq
    33   USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_DEBUGIO
    3433  IMPLICIT NONE
    3534
     
    170169  ENDDO
    171170
    172   ! CALL SCOPY(ijp1llm,q,1,zq,1)
    173   ! CALL SCOPY(ijp1llm,masse,1,zm,1)
    174 
    175171  ijb = ij_begin
    176172  ije = ij_end
     
    185181  ENDDO
    186182
    187   IF (CPPKEY_DEBUGIO) THEN
    188     CALL WriteField_u('mu', mu)
    189     CALL WriteField_v('mv', mv)
    190     CALL WriteField_u('mw', mw)
    191     CALL WriteField_u('qsat', qsat)
    192   END IF
    193 
    194183  ! ! verif temporaire
    195184  ijb = ij_begin
     
    202191    IF(tracers(iq)%parent /= 'air') CYCLE
    203192    ! !write(*,*) 'vlspltgen 192: iq,iadv=',iq,tracers(iq)%iadv
    204     IF (CPPKEY_DEBUGIO) THEN
    205       CALL WriteField_u('zq', zq(:, :, iq))
    206       CALL WriteField_u('zm', zm(:, :, iq))
    207     END IF
    208193    SELECT CASE(tracers(iq)%iadv)
    209194    CASE(0); CYCLE
    210195    CASE(10)
    211 #ifdef _ADV_HALO
    212   ! CRisi: on ajoute les nombres de fils et tableaux des fils
    213   ! On suppose qu'on ne peut advecter les fils que par le schéma 10.
    214       CALL vlx_loc(zq,pente_max,zm,mu, &
    215             ij_begin,ij_begin+2*iip1-1,iq)
    216       CALL vlx_loc(zq,pente_max,zm,mu, &
    217             ij_end-2*iip1+1,ij_end,iq)
    218 #else
    219196      CALL vlx_loc(zq, pente_max, zm, mu, &
    220197              ij_begin, ij_end, iq)
    221 #endif
    222198
    223199      !$OMP MASTER
     
    237213      !$OMP END MASTER
    238214    CASE(14)
    239 #ifdef _ADV_HALO
    240       CALL vlxqs_loc(zq,pente_max,zm,mu, &
    241             qsat,ij_begin,ij_begin+2*iip1-1,iq)
    242       CALL vlxqs_loc(zq,pente_max,zm,mu, &
    243             qsat,ij_end-2*iip1+1,ij_end,iq)
    244 #else
    245215      CALL vlxqs_loc(zq, pente_max, zm, mu, &
    246216              qsat, ij_begin, ij_end, iq)
    247 #endif
    248217
    249218      !$OMP MASTER
     
    295264    CASE(0); CYCLE
    296265    CASE(10)
    297 #ifdef _ADV_HALLO
    298       CALL vlx_loc(zq,pente_max,zm,mu, &
    299             ij_begin+2*iip1,ij_end-2*iip1,iq)
    300 #endif
    301266    CASE(14)
    302 #ifdef _ADV_HALLO
    303       CALL vlxqs_loc(zq,pente_max,zm,mu, &
    304             qsat,ij_begin+2*iip1,ij_end-2*iip1,iq)
    305 #endif
    306267    CASE DEFAULT
    307268      CALL abort_gcm("vlspltgen_p", "schema non parallelise", 1)
     
    336297  do iq = 1, nqtot
    337298    IF(tracers(iq)%parent /= 'air') CYCLE
    338     ! !write(*,*) 'vlspltgen 321: iq=',iq
    339     IF (CPPKEY_DEBUGIO) THEN
    340       CALL WriteField_u('zq', zq(:, :, iq))
    341       CALL WriteField_u('zm', zm(:, :, iq))
    342     END IF
    343299
    344300    SELECT CASE(tracers(iq)%iadv)
     
    356312  do iq = 1, nqtot
    357313    IF(tracers(iq)%parent /= 'air') CYCLE
    358     ! !write(*,*) 'vlspltgen 349: iq=',iq
    359     IF (CPPKEY_DEBUGIO) THEN
    360       CALL WriteField_u('zq', zq(:, :, iq))
    361       CALL WriteField_u('zm', zm(:, :, iq))
    362     END IF
    363314    SELECT CASE(tracers(iq)%iadv)
    364315    CASE(0); CYCLE
    365316    CASE(10, 14)
    366317      !$OMP BARRIER
    367 #ifdef _ADV_HALLO
    368       CALL vlz_loc(zq,pente_max,zm,mw, &
    369             ij_begin,ij_begin+2*iip1-1,iq)
    370       CALL vlz_loc(zq,pente_max,zm,mw, &
    371             ij_end-2*iip1+1,ij_end,iq)
    372 #else
    373318      CALL vlz_loc(zq, pente_max, zm, mw, &
    374319              ij_begin, ij_end, iq)
    375 #endif
    376320      !$OMP BARRIER
    377321
     
    421365    CASE(10, 14)
    422366      !$OMP BARRIER
    423 
    424 #ifdef _ADV_HALLO
    425       CALL vlz_loc(zq,pente_max,zm,mw, &
    426             ij_begin+2*iip1,ij_end-2*iip1,iq)
    427 #endif
    428 
    429       !$OMP BARRIER
    430367    CASE DEFAULT
    431368      CALL abort_gcm("vlspltgen_p", "schema non parallelise", 1)
     
    457394  do iq = 1, nqtot
    458395    IF(tracers(iq)%parent /= 'air') CYCLE
    459     ! !write(*,*) 'vlspltgen 449: iq=',iq
    460     IF (CPPKEY_DEBUGIO) THEN
    461       CALL WriteField_u('zq', zq(:, :, iq))
    462       CALL WriteField_u('zm', zm(:, :, iq))
    463     END IF
    464396    SELECT CASE(tracers(iq)%iadv)
    465397    CASE(0); CYCLE
     
    476408  do iq = 1, nqtot
    477409    IF(tracers(iq)%parent /= 'air') CYCLE
    478     ! !write(*,*) 'vlspltgen 477: iq=',iq
    479     IF (CPPKEY_DEBUGIO) THEN
    480       CALL WriteField_u('zq', zq(:, :, iq))
    481       CALL WriteField_u('zm', zm(:, :, iq))
    482     END IF
    483410    SELECT CASE(tracers(iq)%iadv)
    484411    CASE(0); CYCLE
     
    498425  ijb = ij_begin
    499426  ije = ij_end
    500   ! !write(*,*) 'vlspltgen_loc 557'
    501   !$OMP BARRIER
    502 
    503   ! !write(*,*) 'vlspltgen_loc 559'
     427  !$OMP BARRIER
     428
    504429  DO iq = 1, nqtot
    505     ! !write(*,*) 'vlspltgen_loc 561, iq=',iq
    506     IF (CPPKEY_DEBUGIO) THEN
    507       CALL WriteField_u('zq', zq(:, :, iq))
    508       CALL WriteField_u('zm', zm(:, :, iq))
    509     END IF
    510430    !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    511431    DO l = 1, llm
     
    517437    ENDDO
    518438    !$OMP END DO NOWAIT
    519     ! !write(*,*) 'vlspltgen_loc 575'
    520439
    521440    !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     
    526445    ENDDO
    527446    !$OMP END DO NOWAIT
    528     ! !write(*,*) 'vlspltgen_loc 583'
    529447  ENDDO !DO iq=1,nqtot
    530448
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlspltqs_loc.F

    r5101 r5103  
    440440      INTEGER ifils,iq2 ! CRisi
    441441
    442       DATA first/.true./
     442      DATA first/.TRUE./
    443443      INTEGER ijb,ije
    444444      INTEGER ijbm,ijem
     
    460460         PRINT*,'Shema  Amont nouveau  appele dans  Vanleer   '
    461461         PRINT*,'vlyqs_loc, iq=',iq
    462          first=.false.
     462         first=.FALSE.
    463463         do i=2,iip1
    464464            coslon(i)=cos(rlonv(i))
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/wrgrads.f90

    r5102 r5103  
    1 
    21! $Header$
    32
    4       subroutine wrgrads(if,nl,field,name,titlevar)
    5       implicit none
     3SUBROUTINE wrgrads(if, nl, field, name, titlevar)
     4  implicit none
    65
    7 c   Declarations
    8 c    if indice du fichier
    9 c    nl nombre de couches
    10 c    field   champ
    11 c    name    petit nom
    12 c    titlevar   Titre
     6  !   Declarations
     7  !    if indice du fichier
     8  !    nl nombre de couches
     9  !    field   champ
     10  !    name    petit nom
     11  !    titlevar   Titre
    1312
    14       INCLUDE "gradsdef.h"
     13  INCLUDE "gradsdef.h"
    1514
    16 c   arguments
    17       integer if,nl
    18       real field(imx*jmx*lmx)
    19       character*10 name,file
    20       character*10 titlevar
     15  !   arguments
     16  integer :: if, nl
     17  real :: field(imx * jmx * lmx)
     18  character(len = 10) :: name, file
     19  character(len = 10) :: titlevar
    2120
    22 c   local
     21  !   local
    2322
    24       integer im,jm,lm,i,j,l,iv,iii,iji,iif,ijf
     23  integer :: im, jm, lm, i, j, l, iv, iii, iji, iif, ijf
    2524
    26       logical writectl
     25  logical :: writectl
    2726
     27  writectl = .FALSE.
    2828
    29       writectl=.false.
     29  PRINT*, if, iid(if), jid(if), ifd(if), jfd(if)
     30  iii = iid(if)
     31  iji = jid(if)
     32  iif = ifd(if)
     33  ijf = jfd(if)
     34  im = iif - iii + 1
     35  jm = ijf - iji + 1
     36  lm = lmd(if)
    3037
    31       print*,if,iid(if),jid(if),ifd(if),jfd(if)
    32       iii=iid(if)
    33       iji=jid(if)
    34       iif=ifd(if)
    35       ijf=jfd(if)
    36       im=iif-iii+1
    37       jm=ijf-iji+1
    38       lm=lmd(if)
     38  PRINT*, 'im,jm,lm,name,firsttime(if)'
     39  PRINT*, im, jm, lm, name, firsttime(if)
    3940
    40       print*,'im,jm,lm,name,firsttime(if)'
    41       print*,im,jm,lm,name,firsttime(if)
     41  if(firsttime(if)) then
     42    if(name==var(1, if)) then
     43      firsttime(if) = .FALSE.
     44      ivar(if) = 1
     45      PRINT*, 'fin de l initialiation de l ecriture du fichier'
     46      PRINT*, file
     47      PRINT*, 'fichier no: ', if
     48      PRINT*, 'unit ', unit(if)
     49      PRINT*, 'nvar  ', nvar(if)
     50      PRINT*, 'vars ', (var(iv, if), iv = 1, nvar(if))
     51    else
     52      ivar(if) = ivar(if) + 1
     53      nvar(if) = ivar(if)
     54      var(ivar(if), if) = name
     55      tvar(ivar(if), if) = trim(titlevar)
     56      nld(ivar(if), if) = nl
     57      PRINT*, 'initialisation ecriture de ', var(ivar(if), if)
     58      PRINT*, 'if ivar(if) nld ', if, ivar(if), nld(ivar(if), if)
     59    endif
     60    writectl = .TRUE.
     61    itime(if) = 1
     62  else
     63    ivar(if) = mod(ivar(if), nvar(if)) + 1
     64    if (ivar(if)==nvar(if)) then
     65      writectl = .TRUE.
     66      itime(if) = itime(if) + 1
     67    endif
    4268
    43       if(firsttime(if)) then
    44          if(name==var(1,if)) then
    45             firsttime(if)=.false.
    46             ivar(if)=1
    47          print*,'fin de l initialiation de l ecriture du fichier'
    48          print*,file
    49            print*,'fichier no: ',if
    50            print*,'unit ',unit(if)
    51            print*,'nvar  ',nvar(if)
    52            print*,'vars ',(var(iv,if),iv=1,nvar(if))
    53          else
    54             ivar(if)=ivar(if)+1
    55             nvar(if)=ivar(if)
    56             var(ivar(if),if)=name
    57             tvar(ivar(if),if)=trim(titlevar)
    58             nld(ivar(if),if)=nl
    59             print*,'initialisation ecriture de ',var(ivar(if),if)
    60             print*,'if ivar(if) nld ',if,ivar(if),nld(ivar(if),if)
    61          endif
    62          writectl=.true.
    63          itime(if)=1
    64       else
    65          ivar(if)=mod(ivar(if),nvar(if))+1
    66          if (ivar(if)==nvar(if)) then
    67             writectl=.true.
    68             itime(if)=itime(if)+1
    69          endif
     69    if(var(ivar(if), if)/=name) then
     70      PRINT*, 'Il faut stoker la meme succession de champs a chaque'
     71      PRINT*, 'pas de temps'
     72      PRINT*, 'fichier no: ', if
     73      PRINT*, 'unit ', unit(if)
     74      PRINT*, 'nvar  ', nvar(if)
     75      PRINT*, 'vars ', (var(iv, if), iv = 1, nvar(if))
     76      CALL abort_gcm("wrgrads", "problem", 1)
     77    endif
     78  endif
    7079
    71          if(var(ivar(if),if)/=name) then
    72            print*,'Il faut stoker la meme succession de champs a chaque'
    73            print*,'pas de temps'
    74            print*,'fichier no: ',if
    75            print*,'unit ',unit(if)
    76            print*,'nvar  ',nvar(if)
    77            print*,'vars ',(var(iv,if),iv=1,nvar(if))
    78            CALL abort_gcm("wrgrads","problem",1)
    79          endif
    80       endif
     80  PRINT*, 'ivar(if),nvar(if),var(ivar(if),if),writectl'
     81  PRINT*, ivar(if), nvar(if), var(ivar(if), if), writectl
     82  do l = 1, nl
     83    irec(if) = irec(if) + 1
     84    ! PRINT*,'Ecrit rec=',irec(if),iii,iif,iji,ijf,
     85    !    s (l-1)*imd(if)*jmd(if)+(iji-1)*imd(if)+iii
     86    !    s ,(l-1)*imd(if)*jmd(if)+(ijf-1)*imd(if)+iif
     87    write(unit(if) + 1, rec = irec(if)) &
     88            ((field((l - 1) * imd(if) * jmd(if) + (j - 1) * imd(if) + i) &
     89                    , i = iii, iif), j = iji, ijf)
     90  enddo
     91  if (writectl) then
    8192
    82       print*,'ivar(if),nvar(if),var(ivar(if),if),writectl'
    83       print*,ivar(if),nvar(if),var(ivar(if),if),writectl
    84       do l=1,nl
    85          irec(if)=irec(if)+1
    86 c        print*,'Ecrit rec=',irec(if),iii,iif,iji,ijf,
    87 c    s (l-1)*imd(if)*jmd(if)+(iji-1)*imd(if)+iii
    88 c    s ,(l-1)*imd(if)*jmd(if)+(ijf-1)*imd(if)+iif
    89          write(unit(if)+1,rec=irec(if))
    90      s   ((field((l-1)*imd(if)*jmd(if)+(j-1)*imd(if)+i)
    91      s   ,i=iii,iif),j=iji,ijf)
    92       enddo
    93       if (writectl) then
     93    file = fichier(if)
     94    !   WARNING! on reecrase le fichier .ctl a chaque ecriture
     95    open(unit(if), file = trim(file) // '.ctl' &
     96            , form = 'formatted', status = 'unknown')
     97    write(unit(if), '(a5,1x,a40)') &
     98            'DSET ', '^' // trim(file) // '.dat'
    9499
    95       file=fichier(if)
    96 c   WARNING! on reecrase le fichier .ctl a chaque ecriture
    97       open(unit(if),file=trim(file)//'.ctl'
    98      &         ,form='formatted',status='unknown')
    99       write(unit(if),'(a5,1x,a40)')
    100      &       'DSET ','^'//trim(file)//'.dat'
     100    write(unit(if), '(a12)') 'UNDEF 1.0E30'
     101    write(unit(if), '(a5,1x,a40)') 'TITLE ', title(if)
     102    CALL formcoord(unit(if), im, xd(iii, if), 1., .FALSE., 'XDEF')
     103    CALL formcoord(unit(if), jm, yd(iji, if), 1., .TRUE., 'YDEF')
     104    CALL formcoord(unit(if), lm, zd(1, if), 1., .FALSE., 'ZDEF')
     105    write(unit(if), '(a4,i10,a30)') &
     106            'TDEF ', itime(if), ' LINEAR 02JAN1987 1MO '
     107    write(unit(if), '(a4,2x,i5)') 'VARS', nvar(if)
     108    do iv = 1, nvar(if)
     109      ! PRINT*,'if,var(iv,if),nld(iv,if),nld(iv,if)-1/nld(iv,if)'
     110      ! PRINT*,if,var(iv,if),nld(iv,if),nld(iv,if)-1/nld(iv,if)
     111      write(unit(if), 1000) var(iv, if), nld(iv, if) - 1 / nld(iv, if) &
     112              , 99, tvar(iv, if)
     113    enddo
     114    write(unit(if), '(a7)') 'ENDVARS'
     115    !
     116    1000   format(a5, 3x, i4, i3, 1x, a39)
    101117
    102       write(unit(if),'(a12)') 'UNDEF 1.0E30'
    103       write(unit(if),'(a5,1x,a40)') 'TITLE ',title(if)
    104       CALL formcoord(unit(if),im,xd(iii,if),1.,.false.,'XDEF')
    105       CALL formcoord(unit(if),jm,yd(iji,if),1.,.true.,'YDEF')
    106       CALL formcoord(unit(if),lm,zd(1,if),1.,.false.,'ZDEF')
    107       write(unit(if),'(a4,i10,a30)')
    108      &       'TDEF ',itime(if),' LINEAR 02JAN1987 1MO '
    109       write(unit(if),'(a4,2x,i5)') 'VARS',nvar(if)
    110       do iv=1,nvar(if)
    111 c        print*,'if,var(iv,if),nld(iv,if),nld(iv,if)-1/nld(iv,if)'
    112 c        print*,if,var(iv,if),nld(iv,if),nld(iv,if)-1/nld(iv,if)
    113          write(unit(if),1000) var(iv,if),nld(iv,if)-1/nld(iv,if)
    114      &     ,99,tvar(iv,if)
    115       enddo
    116       write(unit(if),'(a7)') 'ENDVARS'
    117 c
    118 1000  format(a5,3x,i4,i3,1x,a39)
     118    close(unit(if))
    119119
    120       close(unit(if))
     120  endif ! writectl
    121121
    122       endif ! writectl
     122  return
    123123
    124       return
     124END SUBROUTINE wrgrads
    125125
    126       END
    127 
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/write_field_loc.F90

    r5101 r5103  
    1212  contains
    1313 
    14   subroutine write_field1D_u(name,Field)
     14  SUBROUTINE write_field1D_u(name,Field)
    1515    character(len=*)   :: name
    1616    real, dimension(:) :: Field
     
    1818    CALL write_field_u_gen(name,Field,1)
    1919
    20   end subroutine write_field1D_u
     20  END SUBROUTINE write_field1D_u
    2121
    22   subroutine write_field2D_u(name,Field)
     22  SUBROUTINE write_field2D_u(name,Field)
    2323    implicit none
    2424     
     
    3030    CALL write_field_u_gen(name,Field,ll)
    3131   
    32     end subroutine write_field2D_u
     32    END SUBROUTINE write_field2D_u
    3333
    3434
     
    7777
    7878
    79   subroutine write_field1D_v(name,Field)
     79  SUBROUTINE write_field1D_v(name,Field)
    8080    character(len=*)   :: name
    8181    real, dimension(:) :: Field
     
    8383    CALL write_field_v_gen(name,Field,1)
    8484
    85   end subroutine write_field1D_v
     85  END SUBROUTINE write_field1D_v
    8686
    87   subroutine write_field2D_v(name,Field)
     87  SUBROUTINE write_field2D_v(name,Field)
    8888    implicit none
    8989     
     
    9595    CALL write_field_v_gen(name,Field,ll)
    9696   
    97     end subroutine write_field2D_v
     97    END SUBROUTINE write_field2D_v
    9898
    9999
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/write_field_p.F90

    r5101 r5103  
    88  contains
    99 
    10   subroutine write_field1D_p(name,Field)
     10  SUBROUTINE write_field1D_p(name,Field)
    1111    USE parallel_lmdz
    1212    USE write_field
     
    2727    if (MPI_Rank==0) CALL WriteField(name,New_Field)
    2828   
    29     end subroutine write_field1D_p
     29    END SUBROUTINE write_field1D_p
    3030
    31   subroutine write_field2D_p(name,Field)
     31  SUBROUTINE write_field2D_p(name,Field)
    3232    USE parallel_lmdz
    3333    USE write_field
     
    4848   
    4949     
    50   end subroutine write_field2D_p
     50  END SUBROUTINE write_field2D_p
    5151 
    52   subroutine write_field3D_p(name,Field)
     52  SUBROUTINE write_field3D_p(name,Field)
    5353    USE parallel_lmdz
    5454    USE write_field
     
    6868   if (MPI_Rank==0) CALL WriteField(name,New_Field)
    6969   
    70   end subroutine write_field3D_p 
     70  END SUBROUTINE  write_field3D_p
    7171
    7272end module write_field_p
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writedyn_xios.F90

    r5101 r5103  
    6262      integer :: ijb,ije,jjn
    6363      LOGICAL,SAVE :: first=.TRUE.
    64       LOGICAL,SAVE :: debuglf=.true.
     64      LOGICAL,SAVE :: debuglf=.TRUE.
    6565!$OMP THREADPRIVATE(debuglf)
    6666!$OMP THREADPRIVATE(first)
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writedynav_loc.F

    r5101 r5103  
    22! $Id: writedynav_p.F 1279 2009-12-10 09:02:56Z fairhead $
    33
    4       subroutine writedynav_loc( time, vcov, ucov,teta,ppk,phi,q,
     4      SUBROUTINE writedynav_loc( time, vcov, ucov,teta,ppk,phi,q,
    55     .                           masse,ps,phis)
    66
    7 #ifdef CPP_IOIPSL
    87! This routine needs IOIPSL
    98      USE ioipsl
    10 #endif
    119      USE parallel_lmdz
    1210      USE misc_mod
     
    6361
    6462
    65 #ifdef CPP_IOIPSL
    6663! This routine needs IOIPSL
    6764C   Variables locales
     
    7067      INTEGER :: iq, ii, ll
    7168      REAL,SAVE,ALLOCATABLE :: tm(:,:)
    72       REAL,SAVE,ALLOCATABLE :: vnat(:,:),unat(:,:) 
     69      REAL,SAVE,ALLOCATABLE :: vnat(:,:),unat(:,:)
    7370      logical ok_sync
    7471      integer itau_w
     
    8178C
    8279      if (adjust) return
    83      
     80
    8481      IF (first) THEN
    8582!$OMP BARRIER
    8683!$OMP MASTER
    8784        ALLOCATE(unat(ijb_u:ije_u,llm))
    88         ALLOCATE(vnat(ijb_v:ije_v,llm)) 
     85        ALLOCATE(vnat(ijb_v:ije_v,llm))
    8986        ALLOCATE(tm(ijb_u:ije_u,llm))
    9087        ALLOCATE(ndex2d(ijnb_u*llm))
     
    9895        first=.FALSE.
    9996      ENDIF
    100      
     97
    10198      ok_sync = .TRUE.
    10299      itau_w = itau_dyn + time
     
    111108C
    112109
    113 !$OMP BARRIER     
     110!$OMP BARRIER
    114111!$OMP MASTER
    115112      ijb=ij_begin
    116113      ije=ij_end
    117114      jjn=jj_nb
    118      
     115
    119116      CALL histwrite(histuaveid, 'u', itau_w, unat(ijb:ije,:),
    120117     .               iip1*jjn*llm, ndexu)
    121 !$OMP END MASTER     
     118!$OMP END MASTER
    122119
    123120C
     
    128125      if (pole_sud) ije=ij_end-iip1
    129126!$OMP BARRIER
    130 !$OMP MASTER     
     127!$OMP MASTER
    131128      CALL histwrite(histvaveid, 'v', itau_w, vnat(ijb:ije,:),
    132129     .               iip1*jjn*llm, ndexv)
    133 !$OMP END MASTER     
     130!$OMP END MASTER
    134131
    135132
     
    140137      ije=ij_end
    141138      jjn=jj_nb
    142 !$OMP MASTER     
     139!$OMP MASTER
    143140      CALL histwrite(histaveid, 'theta', itau_w, teta(ijb:ije,:),
    144141     .                iip1*jjn*llm, ndexu)
    145 !$OMP END MASTER     
     142!$OMP END MASTER
    146143
    147144C
     
    149146C
    150147
    151 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)       
     148!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    152149      do ll=1,llm
    153150        do ii = ijb, ije
     
    157154!$OMP ENDDO
    158155
    159 !$OMP MASTER     
     156!$OMP MASTER
    160157      CALL histwrite(histaveid, 'temp', itau_w, tm(ijb:ije,:),
    161158     .                iip1*jjn*llm, ndexu)
     
    166163C  Geopotentiel
    167164C
    168 !$OMP MASTER     
     165!$OMP MASTER
    169166      CALL histwrite(histaveid, 'phi', itau_w, phi(ijb:ije,:),
    170167     .                iip1*jjn*llm, ndexu)
     
    175172C  Traceurs
    176173C
    177 !!$OMP MASTER     
     174!!$OMP MASTER
    178175!        DO iq=1,nqtot
    179176!          CALL histwrite(histaveid, tracers(iq)%longName, itau_w, &
     
    186183C  Masse
    187184C
    188 !$OMP MASTER     
     185!$OMP MASTER
    189186       CALL histwrite(histaveid, 'masse', itau_w, masse(ijb:ije,:),
    190187     .                iip1*jjn*llm, ndexu)
     
    195192C  Pression au sol
    196193C
    197 !$OMP MASTER     
     194!$OMP MASTER
    198195
    199196       CALL histwrite(histaveid, 'ps', itau_w, ps(ijb:ije),
     
    204201C  Geopotentiel au sol
    205202C
    206 !$OMP MASTER     
     203!$OMP MASTER
    207204!       CALL histwrite(histaveid, 'phis', itau_w, phis(ijb:ije),
    208205!     .                 iip1*jjn, ndex2d)
     
    212209C  Fin
    213210C
    214 !$OMP MASTER     
     211!$OMP MASTER
    215212      if (ok_sync) then
    216213          CALL histsync(histaveid)
     
    219216      ENDIF
    220217!$OMP END MASTER
    221 #else
    222       write(lunout,*)'writedynav_loc: Needs IOIPSL to function'
    223 #endif
    224 ! #endif of #ifdef CPP_IOIPSL
    225218      end
  • LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writehist_loc.F

    r5101 r5103  
    22! $Id: writedynav_p.F 1279 2009-12-10 09:02:56Z fairhead $
    33
    4       subroutine writehist_loc( time, vcov, ucov,teta,ppk,phi,q,
     4      SUBROUTINE writehist_loc( time, vcov, ucov,teta,ppk,phi,q,
    55     .                          masse,ps,phis)
    66
    7 #ifdef CPP_IOIPSL
    87! This routine needs IOIPSL
    98      USE ioipsl
    10 #endif
    119      USE parallel_lmdz
    1210      USE misc_mod
     
    6361
    6462
    65 #ifdef CPP_IOIPSL
    6663! This routine needs IOIPSL
    6764C   Variables locales
     
    7067      INTEGER :: iq, ii, ll
    7168      REAL,SAVE,ALLOCATABLE :: tm(:,:)
    72       REAL,SAVE,ALLOCATABLE :: vnat(:,:),unat(:,:) 
     69      REAL,SAVE,ALLOCATABLE :: vnat(:,:),unat(:,:)
    7370      logical ok_sync
    7471      integer itau_w
     
    8178C
    8279      if (adjust) return
    83      
     80
    8481      IF (first) THEN
    8582!$OMP BARRIER
    8683!$OMP MASTER
    8784        ALLOCATE(unat(ijb_u:ije_u,llm))
    88         ALLOCATE(vnat(ijb_v:ije_v,llm)) 
     85        ALLOCATE(vnat(ijb_v:ije_v,llm))
    8986        ALLOCATE(tm(ijb_u:ije_u,llm))
    9087        ALLOCATE(ndex2d(ijnb_u*llm))
     
    9895        first=.FALSE.
    9996      ENDIF
    100      
     97
    10198      ok_sync = .TRUE.
    10299      itau_w = itau_dyn + time
     
    111108C
    112109
    113 !$OMP BARRIER     
     110!$OMP BARRIER
    114111!$OMP MASTER
    115112      ijb=ij_begin
    116113      ije=ij_end
    117114      jjn=jj_nb
    118      
     115
    119116      CALL histwrite(histuid, 'u', itau_w, unat(ijb:ije,:),
    120117     .               iip1*jjn*llm, ndexu)
    121 !$OMP END MASTER     
     118!$OMP END MASTER
    122119
    123120C
     
    128125      if (pole_sud) ije=ij_end-iip1
    129126!$OMP BARRIER
    130 !$OMP MASTER     
     127!$OMP MASTER
    131128      CALL histwrite(histvid, 'v', itau_w, vnat(ijb:ije,:),
    132129     .               iip1*jjn*llm, ndexv)
    133 !$OMP END MASTER     
     130!$OMP END MASTER
    134131
    135132
     
    140137      ije=ij_end
    141138      jjn=jj_nb
    142 !$OMP MASTER     
     139!$OMP MASTER
    143140      CALL histwrite(histid, 'theta', itau_w, teta(ijb:ije,:),
    144141     .                iip1*jjn*llm, ndexu)
    145 !$OMP END MASTER     
     142!$OMP END MASTER
    146143
    147144C
     
    149146C
    150147
    151 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK)       
     148!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    152149      do ll=1,llm
    153150        do ii = ijb, ije
     
    157154!$OMP ENDDO
    158155
    159 !$OMP MASTER     
     156!$OMP MASTER
    160157      CALL histwrite(histid, 'temp', itau_w, tm(ijb:ije,:),
    161158     .                iip1*jjn*llm, ndexu)
     
    166163C  Geopotentiel
    167164C
    168 !$OMP MASTER     
     165!$OMP MASTER
    169166      CALL histwrite(histid, 'phi', itau_w, phi(ijb:ije,:),
    170167     .                iip1*jjn*llm, ndexu)
     
    175172C  Traceurs
    176173C
    177 !!$OMP MASTER     
     174!!$OMP MASTER
    178175!        DO iq=1,nqtot
    179176!          CALL histwrite(histid, tracers(iq)%longName, itau_w,
     
    186183C  Masse
    187184C
    188 !$OMP MASTER     
     185!$OMP MASTER
    189186       CALL histwrite(histid, 'masse', itau_w, masse(ijb:ije,:),
    190187     .                iip1*jjn*llm, ndexu)
     
    195192C  Pression au sol
    196193C
    197 !$OMP MASTER     
     194!$OMP MASTER
    198195       CALL histwrite(histid, 'ps', itau_w, ps(ijb:ije),
    199196     .                 iip1*jjn, ndex2d)
     
    203200C  Geopotentiel au sol
    204201C
    205 !$OMP MASTER     
     202!$OMP MASTER
    206203!       CALL histwrite(histid, 'phis', itau_w, phis(ijb:ije),
    207204!     .                 iip1*jjn, ndex2d)
     
    211208C  Fin
    212209C
    213 !$OMP MASTER     
     210!$OMP MASTER
    214211      if (ok_sync) then
    215212        CALL histsync(histid)
     
    218215      endif
    219216!$OMP END MASTER
    220 #else
    221       write(lunout,*)'writehist_loc: Needs IOIPSL to function'
    222 #endif
    223 ! #endif of #ifdef CPP_IOIPSL
    224217      end
Note: See TracChangeset for help on using the changeset viewer.