source: codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/libf/dyn3dpar/init_gcm_lmdz.F @ 264

Last change on this file since 264 was 264, checked in by milmd, 10 years ago

Architecture files and some modifications to compile and run on ada.

File size: 19.8 KB
Line 
1!
2! $Id: gcm.F 1446 2010-10-22 09:27:25Z emillour $
3!
4c
5c
6      SUBROUTINE init_gcm_lmdz(nbp,nproc,distrib_icosa,latfi,lonfi,
7     &                          airefi)
8!     &                         airefi,day_length)
9
10#ifdef CPP_IOIPSL
11      USE IOIPSL
12#endif
13
14
15      USE mod_const_mpi, ONLY: init_const_mpi
16      USE parallel_lmdz
17      USE infotrac
18      USE mod_interface_dyn_phys
19      USE mod_hallo
20      USE Bands
21      USE getparam
22      USE filtreg_mod
23      USE control_mod, only: planet_type,nday,day_step,iperiod,iphysiq,
24     &                       raz_date,anneeref,starttime,dayref,
25     &                       ok_dyn_ins,ok_dyn_ave,iecri,periodav,
26     &                       less1day,fractday,ndynstep,nsplit_phys
27      use cpdet_mod, only: ini_cpdet
28
29
30#ifdef INCA
31! Only INCA needs these informations (from the Earth's physics)
32      USE indice_sol_mod
33#endif
34
35! Ehouarn: the following are needed with (parallel) physics:
36#ifdef CPP_PHYS
37      USE mod_grid_phy_lmdz
38      USE mod_phys_lmdz_para, ONLY : klon_mpi_para_nb
39      USE mod_phys_lmdz_omp_data, ONLY: klon_omp 
40      USE dimphy
41      USE comgeomphy
42#endif
43      IMPLICIT NONE
44      INTEGER, INTENT(IN) :: nbp
45      INTEGER, INTENT(IN) :: nproc
46      INTEGER, INTENT(IN) :: distrib_icosa(nproc)
47      REAL, INTENT(IN) :: latfi(nbp)
48      REAL, INTENT(IN) :: lonfi(nbp)
49      REAL, INTENT(IN) :: airefi(nbp)
50!      INTEGER, INTENT(IN) :: day_length
51
52      REAL :: zcufi(nbp)
53      REAL :: zcvfi(nbp)
54
55c      ......   Version  du 10/01/98    ..........
56
57c             avec  coordonnees  verticales hybrides 
58c   avec nouveaux operat. dissipation * ( gradiv2,divgrad2,nxgraro2 )
59
60c=======================================================================
61c
62c   Auteur:  P. Le Van /L. Fairhead/F.Hourdin
63c   -------
64c
65c   Objet:
66c   ------
67c
68c   GCM LMD nouvelle grille
69c
70c=======================================================================
71c
72c  ... Dans inigeom , nouveaux calculs pour les elongations  cu , cv
73c      et possibilite d'appeler une fonction f(y)  a derivee tangente
74c      hyperbolique a la  place de la fonction a derivee sinusoidale.
75c  ... Possibilite de choisir le schema pour l'advection de
76c        q  , en modifiant iadv dans traceur.def  (MAF,10/02) .
77c
78c      Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99)
79c      Pour Van-Leer iadv=10
80c
81c-----------------------------------------------------------------------
82c   Declarations:
83c   -------------
84
85#include "dimensions.h"
86#include "paramet.h"
87#include "comconst.h"
88#include "comdissnew.h"
89#include "comvert.h"
90#include "comgeom.h"
91#include "logic.h"
92#include "temps.h"
93!!!!!!!!!!!#include "control.h"
94#include "ener.h"
95#include "description.h"
96#include "serre.h"
97!#include "com_io_dyn.h"
98#include "iniprint.h"
99#include "tracstoke.h"
100#ifdef INCA
101! Only INCA needs these informations (from the Earth's physics)
102#include "indicesol.h"
103#endif
104
105
106      REAL zdtvr
107
108c   variables dynamiques
109      REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants
110      REAL teta(ip1jmp1,llm)                 ! temperature potentielle
111      REAL, ALLOCATABLE, DIMENSION(:,:,:):: q! champs advectes
112      REAL ps(ip1jmp1)                       ! pression  au sol
113c      REAL p (ip1jmp1,llmp1  )               ! pression aux interfac.des couches
114c      REAL pks(ip1jmp1)                      ! exner au  sol
115c      REAL pk(ip1jmp1,llm)                   ! exner au milieu des couches
116c      REAL pkf(ip1jmp1,llm)                  ! exner filt.au milieu des couches
117      REAL masse(ip1jmp1,llm)                ! masse d'air
118      REAL phis(ip1jmp1)                     ! geopotentiel au sol
119c      REAL phi(ip1jmp1,llm)                  ! geopotentiel
120c      REAL w(ip1jmp1,llm)                    ! vitesse verticale
121
122c variables dynamiques intermediaire pour le transport
123
124c   variables pour le fichier histoire
125      REAL dtav      ! intervalle de temps elementaire
126
127      REAL time_0
128
129      LOGICAL lafin
130c      INTEGER ij,iq,l,i,j
131      INTEGER i,j
132
133
134      real time_step, t_wrt, t_ops
135
136
137      LOGICAL call_iniphys
138      data call_iniphys/.true./
139
140c      REAL alpha(ip1jmp1,llm),beta(ip1jmp1,llm)
141c+jld variables test conservation energie
142c      REAL ecin(ip1jmp1,llm),ecin0(ip1jmp1,llm)
143C     Tendance de la temp. potentiel d (theta)/ d t due a la 
144C     tansformation d'energie cinetique en energie thermique
145C     cree par la dissipation
146c      REAL dhecdt(ip1jmp1,llm)
147c      REAL vcont(ip1jm,llm),ucont(ip1jmp1,llm)
148c      REAL      d_h_vcol, d_qt, d_qw, d_ql, d_ec
149c      CHARACTER (len=15) :: ztit
150c-jld
151
152
153      character (len=80) :: dynhist_file, dynhistave_file
154      character (len=20) :: modname
155      character (len=80) :: abort_message
156! locales pour gestion du temps
157      INTEGER :: an, mois, jour
158      REAL :: heure
159
160
161c-----------------------------------------------------------------------
162c    variables pour l'initialisation de la physique :
163c    ------------------------------------------------
164      INTEGER ngridmx
165      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
166!      REAL zcufi(ngridmx),zcvfi(ngridmx)
167!      REAL latfi(ngridmx),lonfi(ngridmx)
168!      REAL airefi(ngridmx)
169!      SAVE latfi, lonfi, airefi
170     
171      INTEGER :: ierr
172
173
174c-----------------------------------------------------------------------
175c   Initialisations:
176c   ----------------
177
178      abort_message = 'last timestep reached'
179      modname = 'gcm'
180      descript = 'Run GCM LMDZ'
181      lafin    = .FALSE.
182      dynhist_file = 'dyn_hist'
183      dynhistave_file = 'dyn_hist_ave'
184
185
186
187c----------------------------------------------------------------------
188c  lecture des fichiers gcm.def ou run.def
189c  ---------------------------------------
190c
191! Ehouarn: dump possibility of using defrun
192!#ifdef CPP_IOIPSL
193      CALL conf_gcm( 99, .TRUE. )
194!#else
195!      CALL defrun( 99, .TRUE. , clesphy0 )
196!#endif
197c
198c
199c------------------------------------
200c   Initialisation partie parallele
201c------------------------------------
202
203      CALL init_const_mpi
204!      call init_parallel
205      call ini_getparam("out.def")
206!      call Read_Distrib
207
208#ifdef CPP_PHYS
209!        CALL init_phys_lmdz(iim,jjp1,llm,mpi_size,distrib_phys)
210!        CALL Init_Phys_lmdz(iim,jjp1,llm,nproc,distrib_icosa)
211#endif
212!      CALL set_bands
213!#ifdef CPP_PHYS
214!      CALL Init_interface_dyn_phys
215!#endif
216!      CALL barrier
217
218!      if (mpi_rank==0) call WriteBands
219!      call SetDistrib(jj_Nb_Caldyn)
220
221!c$OMP PARALLEL
222!      call Init_Mod_hallo
223!c$OMP END PARALLEL
224
225#ifdef CPP_PHYS
226!c$OMP PARALLEL
227!      call initcomgeomphy
228!c$OMP END PARALLEL
229#endif
230
231!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
232! Initialisation de XIOS
233!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
234
235
236c
237c Initialisations pour Cp(T) Venus
238      call ini_cpdet
239c
240c-----------------------------------------------------------------------
241c   Choix du calendrier
242c   -------------------
243
244c      calend = 'earth_365d'
245
246#ifdef CPP_IOIPSL
247      if (calend == 'earth_360d') then
248        call ioconf_calendar('360d')
249        write(lunout,*)'CALENDRIER CHOISI: Terrestre a 360 jours/an'
250      else if (calend == 'earth_365d') then
251        call ioconf_calendar('noleap')
252        write(lunout,*)'CALENDRIER CHOISI: Terrestre a 365 jours/an'
253      else if (calend == 'earth_366d') then
254        call ioconf_calendar('gregorian')
255        write(lunout,*)'CALENDRIER CHOISI: Terrestre bissextile'
256      else if (calend == 'titan') then
257!        call ioconf_calendar('titan')
258        write(lunout,*)'CALENDRIER CHOISI: Titan'
259        abort_message = 'A FAIRE...'
260        call abort_gcm(modname,abort_message,1)
261      else if (calend == 'venus') then
262!        call ioconf_calendar('venus')
263        write(lunout,*)'CALENDRIER CHOISI: Venus'
264        abort_message = 'A FAIRE...'
265        call abort_gcm(modname,abort_message,1)
266      else
267        abort_message = 'Mauvais choix de calendrier'
268        call abort_gcm(modname,abort_message,1)
269      endif
270#endif
271c-----------------------------------------------------------------------
272
273      IF (type_trac == 'inca') THEN
274#ifdef INCA
275         call init_const_lmdz(
276     $        nbtr,anneeref,dayref,
277     $        iphysiq,day_step,nday, 
278     $        nbsrf, is_oce,is_sic,
279     $        is_ter,is_lic)
280
281         call init_inca_para(
282     $        iim,jjm+1,llm,klon_glo,mpi_size,
283     $        distrib_phys,COMM_LMDZ)
284#endif
285      END IF
286
287c-----------------------------------------------------------------------
288c   Initialisation des traceurs
289c   ---------------------------
290c  Choix du nombre de traceurs et du schema pour l'advection
291c  dans fichier traceur.def, par default ou via INCA
292      call infotrac_init
293
294c Allocation de la tableau q : champs advectes   
295      ALLOCATE(q(ip1jmp1,llm,nqtot))
296
297c-----------------------------------------------------------------------
298c   Lecture de l'etat initial :
299c   ---------------------------
300
301c  lecture du fichier start.nc
302!      if (read_start) then
303!      ! we still need to run iniacademic to initialize some
304!      ! constants & fields, if we run the 'newtonian' or 'SW' cases:
305!        if (iflag_phys.ne.1) then
306!          CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
307!        endif
308!
309!        CALL dynetat0("start.nc",vcov,ucov,
310!     &              teta,q,masse,ps,phis, time_0)
311!       
312!        ! Load relaxation fields (simple nudging). AS 09/2013
313!        ! ---------------------------------------------------
314!        if (planet_type.eq."generic") then
315!         if (ok_guide) then
316!           CALL relaxetat0("relax.nc")
317!         endif
318!        endif
319 
320c       write(73,*) 'ucov',ucov
321c       write(74,*) 'vcov',vcov
322c       write(75,*) 'teta',teta
323c       write(76,*) 'ps',ps
324c       write(77,*) 'q',q
325
326!      endif ! of if (read_start)
327
328c le cas echeant, creation d un etat initial
329      IF (prt_level > 9) WRITE(lunout,*)
330     .              'GCM: AVANT iniacademic AVANT AVANT AVANT AVANT'
331      if (.not.read_start) then
332         CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0)
333      endif
334
335
336c-----------------------------------------------------------------------
337c   Lecture des parametres de controle pour la simulation :
338c   -------------------------------------------------------
339c  on recalcule eventuellement le pas de temps
340      call conf_planete
341      dtvr    = daysec/REAL(day_step)
342      zdtvr=dtvr
343      CALL iniconst
344      CALL inigeom
345      CALL inifilr
346
347      IF(MOD(day_step,iperiod).NE.0) THEN
348        abort_message = 
349     .  'Il faut choisir un nb de pas par jour multiple de iperiod'
350        call abort_gcm(modname,abort_message,1)
351      ENDIF
352
353      IF(MOD(day_step,iphysiq).NE.0) THEN
354        abort_message = 
355     * 'Il faut choisir un nb de pas par jour multiple de iphysiq'
356        call abort_gcm(modname,abort_message,1)
357      ENDIF
358
359      zdtvr    = daysec/REAL(day_step)
360        IF(dtvr.NE.zdtvr) THEN
361         WRITE(lunout,*)
362     .    'WARNING!!! changement de pas de temps',dtvr,'>',zdtvr
363        ENDIF
364
365C
366C on remet le calendrier à zero si demande
367c
368      IF (start_time /= starttime) then
369        WRITE(lunout,*)' GCM: Attention l''heure de depart lue dans le'
370     &,' fichier restart ne correspond pas à celle lue dans le run.def'
371        IF (raz_date == 1) then
372          WRITE(lunout,*)'Je prends l''heure lue dans run.def'
373          start_time = starttime
374        ELSE
375          call abort_gcm("gcm", "'Je m''arrete'", 1)
376        ENDIF
377      ENDIF
378      IF (raz_date == 1) THEN
379        annee_ref = anneeref
380        day_ref = dayref
381        day_ini = dayref
382        itau_dyn = 0
383        itau_phy = 0
384        time_0 = 0.
385        write(lunout,*)
386     .   'GCM: On reinitialise a la date lue dans gcm.def'
387      ELSE IF (annee_ref .ne. anneeref .or. day_ref .ne. dayref) THEN
388        write(lunout,*)
389     .  'GCM: Attention les dates initiales lues dans le fichier'
390        write(lunout,*)
391     .  ' restart ne correspondent pas a celles lues dans '
392        write(lunout,*)' gcm.def'
393        write(lunout,*)' annee_ref=',annee_ref," anneeref=",anneeref
394        write(lunout,*)' day_ref=',day_ref," dayref=",dayref
395        write(lunout,*)' Pas de remise a zero'
396      ENDIF
397
398c      if (annee_ref .ne. anneeref .or. day_ref .ne. dayref) then
399c        write(lunout,*)
400c     .  'GCM: Attention les dates initiales lues dans le fichier'
401c        write(lunout,*)
402c     .  ' restart ne correspondent pas a celles lues dans '
403c        write(lunout,*)' gcm.def'
404c        write(lunout,*)' annee_ref=',annee_ref," anneeref=",anneeref
405c        write(lunout,*)' day_ref=',day_ref," dayref=",dayref
406c        if (raz_date .ne. 1) then
407c          write(lunout,*)
408c     .    'GCM: On garde les dates du fichier restart'
409c        else
410c          annee_ref = anneeref
411c          day_ref = dayref
412c          day_ini = dayref
413c          itau_dyn = 0
414c          itau_phy = 0
415c          time_0 = 0.
416c          write(lunout,*)
417c     .   'GCM: On reinitialise a la date lue dans gcm.def'
418c        endif
419c      ELSE
420c        raz_date = 0
421c      endif
422
423#ifdef CPP_IOIPSL
424      mois = 1
425      heure = 0.
426! Ce n'est defini pour l'instant que pour la Terre...
427      if (planet_type.eq.'earth') then
428      call ymds2ju(annee_ref, mois, day_ref, heure, jD_ref)
429      jH_ref = jD_ref - int(jD_ref)
430      jD_ref = int(jD_ref)
431
432!      call ioconf_startdate(INT(jD_ref), jH_ref)
433
434      write(lunout,*)'DEBUG'
435      write(lunout,*)'annee_ref, mois, day_ref, heure, jD_ref'
436      write(lunout,*)annee_ref, mois, day_ref, heure, jD_ref
437      call ju2ymds(jD_ref+jH_ref,an, mois, jour, heure)
438      write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure'
439      write(lunout,*)jD_ref+jH_ref,an, mois, jour, heure
440      else
441! A voir pour Titan et Venus
442        jD_ref=0
443        jH_ref=0
444      write(lunout,*)'A VOIR POUR VENUS ET TITAN: jD_ref, jH_ref'
445      write(lunout,*)jD_ref,jH_ref
446      endif ! planet_type
447#else
448! Ehouarn: we still need to define JD_ref and JH_ref
449! and since we don't know how many days there are in a year
450! we set JD_ref to 0 (this should be improved ...)
451      jD_ref=0
452      jH_ref=0
453#endif
454
455      if (iflag_phys.eq.1) then
456      ! these initialisations have already been done (via iniacademic)
457      ! if running in SW or Newtonian mode
458c-----------------------------------------------------------------------
459c   Initialisation des constantes dynamiques :
460c   ------------------------------------------
461        dtvr = zdtvr
462        CALL iniconst
463
464c-----------------------------------------------------------------------
465c   Initialisation de la geometrie :
466c   --------------------------------
467        CALL inigeom
468
469c-----------------------------------------------------------------------
470c   Initialisation du filtre :
471c   --------------------------
472!        CALL inifilr
473      endif ! of if (iflag_phys.eq.1)
474c
475c-----------------------------------------------------------------------
476c   Initialisation de la dissipation :
477c   ----------------------------------
478
479!      CALL inidissip( lstardis, nitergdiv, nitergrot, niterh   ,
480!     *                tetagdiv, tetagrot , tetatemp, vert_prof_dissip)
481
482c-----------------------------------------------------------------------
483c   Initialisation de la physique :
484c   -------------------------------
485
486!      IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100)) THEN
487!         latfi(1)=rlatu(1)
488!         lonfi(1)=0.
489!         zcufi(1) = cu(1)
490!         zcvfi(1) = cv(1)
491!         DO j=2,jjm
492!            DO i=1,iim
493!               latfi((j-2)*iim+1+i)= rlatu(j)
494!               lonfi((j-2)*iim+1+i)= rlonv(i)
495!               zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i)
496!               zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i)
497!            ENDDO
498!         ENDDO
499!         latfi(ngridmx)= rlatu(jjp1)
500!         lonfi(ngridmx)= 0.
501!         zcufi(ngridmx) = cu(ip1jm+1)
502!         zcvfi(ngridmx) = cv(ip1jm-iim)
503!
504!         ! build airefi(), mesh area on physics grid
505!         CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)
506!         ! Poles are single points on physics grid
507!         airefi(1)=airefi(1)*iim
508!         airefi(ngridmx)=airefi(ngridmx)*iim
509
510! Physics
511#ifdef CPP_PHYS
512!         CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys,
513!     &                latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp,
514!     &                iflag_phys)
515
516!         zcufi(nbp)=1.
517!         zcvfi(nbp)=1.
518
519!        PRINT*,'daysec=',daysec
520!        PRINT*,'day_length=',day_length
521!        IF (daysec /= day_length) THEN
522!               PRINT*,'daysec different de day_length'
523!               daysec=day_length
524!        ENDIF
525
526!         CALL iniphysiq(klon_glo,llm,daysec,day_ini,dtphys/nsplit_phys,
527!     &                latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp,
528!     &                iflag_phys)
529
530#endif
531         call_iniphys=.false.
532!      ENDIF ! of IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100))
533
534
535c-----------------------------------------------------------------------
536c   Initialisation des dimensions d'INCA :
537c   --------------------------------------
538      IF (type_trac == 'inca') THEN
539#ifdef INCA
540!$OMP PARALLEL
541         CALL init_inca_dim(klon_omp,llm,iim,jjm,
542     $        rlonu,rlatu,rlonv,rlatv)
543!$OMP END PARALLEL
544#endif
545      END IF
546
547c-----------------------------------------------------------------------
548c   Initialisation des I/O :
549c   ------------------------
550
551
552      if (nday>=0) then ! standard case
553        day_end=day_ini+nday
554      else ! special case when nday <0, run -nday dynamical steps
555        day_end=day_ini-nday/day_step
556      endif
557      if (less1day) then
558        day_end=day_ini+floor(time_0+fractday)
559      endif
560      if (ndynstep.gt.0) then
561        day_end=day_ini+floor(time_0+float(ndynstep)/float(day_step))
562      endif
563     
564      WRITE(lunout,'(a,i7,a,i7)')
565     &             "run from day ",day_ini,"  to day",day_end
566
567#ifdef CPP_IOIPSL
568! Ce n'est defini pour l'instant que pour la Terre...
569      if (planet_type.eq.'earth') then
570      call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure)
571      write (lunout,301)jour, mois, an
572      call ju2ymds(jD_ref + day_end - day_ref, an, mois, jour, heure)
573      write (lunout,302)jour, mois, an
574      else
575! A voir pour Titan et Venus
576      write(lunout,*)'A VOIR POUR VENUS/TITAN: separation en annees...'
577      endif ! planet_type
578
579 301  FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4)
580 302  FORMAT('1'/,15x,'    au ', i2,'/',i2,'/',i4)
581#endif
582
583      if (planet_type=="mars") then
584         ! For Mars we transmit day_ini
585        CALL dynredem0_p("restart.nc", day_ini, phis)
586      else
587        CALL dynredem0_p("restart.nc", day_end, phis)
588      endif
589      ecripar = .TRUE.
590
591#ifdef CPP_IOIPSL
592      time_step = zdtvr
593      IF (mpi_rank==0) then
594        if (ok_dyn_ins) then
595        ! initialize output file for instantaneous outputs
596        ! t_ops = iecri * daysec ! do operations every t_ops
597        t_ops =((1.0*iecri)/day_step) * daysec 
598        t_wrt = daysec ! iecri * daysec ! write output every t_wrt
599!        CALL inithist(day_ref,annee_ref,time_step,
600!     &                  t_ops,t_wrt)
601        endif
602
603        IF (ok_dyn_ave) THEN
604          ! initialize output file for averaged outputs
605          t_ops = iperiod * time_step ! do operations every t_ops
606          t_wrt = periodav * daysec   ! write output every t_wrt
607!          CALL initdynav(day_ref,annee_ref,time_step,
608!     &                   t_ops,t_wrt)
609!         CALL initdynav_p(dynhistave_file,day_ref,annee_ref,time_step,
610!     .        t_ops, t_wrt, histaveid)
611        END IF
612      ENDIF
613      dtav = iperiod*dtvr/daysec
614#endif
615! #endif of #ifdef CPP_IOIPSL
616
617c  Choix des frequences de stokage pour le offline
618c      istdyn=day_step/4     ! stockage toutes les 6h=1jour/4
619c      istdyn=day_step/12     ! stockage toutes les 2h=1jour/12
620      istdyn=day_step/4     ! stockage toutes les 6h=1jour/12
621      istphy=istdyn/iphysiq     
622
623
624c
625c-----------------------------------------------------------------------
626c   Integration temporelle du modele :
627c   ----------------------------------
628
629c       write(78,*) 'ucov',ucov
630c       write(78,*) 'vcov',vcov
631c       write(78,*) 'teta',teta
632c       write(78,*) 'ps',ps
633c       write(78,*) 'q',q
634
635!c$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/,/logici/,/logicl/)
636!      CALL leapfrog_p(ucov,vcov,teta,ps,masse,phis,q,
637!     .              time_0)
638!c$OMP END PARALLEL
639
640
641      END
642
Note: See TracBrowser for help on using the repository browser.