Changeset 1650 for trunk/LMDZ.COMMON/libf/dyn3dpar
- Timestamp:
- Jan 25, 2017, 4:02:54 PM (8 years ago)
- Location:
- trunk/LMDZ.COMMON/libf/dyn3dpar
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F90
r1572 r1650 24 24 USE logic_mod, ONLY: tidal,purmats,ok_guide,read_start,iflag_phys,iflag_trac, & 25 25 ok_strato,ok_gradsfile,ok_limit,ok_etat0,moyzon_mu,moyzon_ch, & 26 fxyhypb,ysinus 26 fxyhypb,ysinus,read_orop 27 27 USE serre_mod, ONLY: clon,clat,grossismx,grossismy,dzoomx,dzoomy, & 28 28 alphax,alphay,taux,tauy … … 53 53 ! ------ 54 54 55 CHARACTER ch1*72,ch2*72,ch3*72,ch4*1256 55 REAL clonn,clatt,grossismxx,grossismyy 57 56 REAL dzoomxx,dzoomyy, tauxx,tauyy 58 57 LOGICAL fxyhypbb, ysinuss 59 INTEGER i60 58 character(len=*),parameter :: modname="conf_gcm" 61 59 character (len=80) :: abort_message … … 638 636 ok_etat0 = .TRUE. 639 637 CALL getin('ok_etat0',ok_etat0) 638 639 !Config Key = read_orop 640 !Config Desc = lecture du fichier de params orographiques sous maille 641 !Config Def = f 642 !Config Help = lecture fichier plutot que grid_noro 643 644 read_orop = .FALSE. 645 CALL getin('read_orop',read_orop) 640 646 641 647 !---------------------------------------- … … 995 1001 write(lunout,*)' ok_limit = ', ok_limit 996 1002 write(lunout,*)' ok_etat0 = ', ok_etat0 1003 write(lunout,*)' read_orop = ', read_orop 997 1004 if (planet_type=="titan") then 998 1005 write(lunout,*)' moyzon_mu = ', moyzon_mu -
trunk/LMDZ.COMMON/libf/dyn3dpar/guide_p_mod.F90
r1422 r1650 38 38 39 39 REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE :: alpha_u,alpha_v 40 REAL, ALLOCATABLE, DIMENSION(: ), PRIVATE, SAVE :: alpha_T,alpha_Q40 REAL, ALLOCATABLE, DIMENSION(:, :), PRIVATE, SAVE :: alpha_T,alpha_Q 41 41 REAL, ALLOCATABLE, DIMENSION(:), PRIVATE, SAVE :: alpha_P,alpha_pcor 42 42 … … 68 68 SUBROUTINE guide_init 69 69 70 USE control_mod 70 USE control_mod, ONLY: day_step 71 71 USE serre_mod, ONLY: grossismx 72 72 … … 237 237 ALLOCATE(alpha_v(ip1jm), stat = error) 238 238 IF (error /= 0) CALL abort_gcm(modname,abort_message,1) 239 ALLOCATE(alpha_T(i p1jmp1), stat = error)239 ALLOCATE(alpha_T(iip1, jjp1), stat = error) 240 240 IF (error /= 0) CALL abort_gcm(modname,abort_message,1) 241 ALLOCATE(alpha_Q(i p1jmp1), stat = error)241 ALLOCATE(alpha_Q(iip1, jjp1), stat = error) 242 242 IF (error /= 0) CALL abort_gcm(modname,abort_message,1) 243 243 ALLOCATE(alpha_P(ip1jmp1), stat = error) … … 339 339 USE parallel_lmdz 340 340 USE control_mod 341 USE com vert_mod, ONLY: ap,bp,preff,presnivs,pressure_exner342 USE com const_mod, ONLY: daysec,dtvr,kappa,cpp341 USE comconst_mod, ONLY: daysec, dtvr, cpp, kappa 342 USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner 343 343 344 344 IMPLICIT NONE … … 618 618 619 619 USE comconst_mod, ONLY: pi 620 620 621 621 IMPLICIT NONE 622 622 … … 706 706 USE mod_hallo 707 707 USE Bands 708 USE com vert_mod, ONLY: ap,bp,preff,pressure_exner709 USE com const_mod, ONLY: kappa,cpp708 USE comconst_mod, ONLY: cpp, kappa 709 USE comvert_mod, ONLY: preff, pressure_exner, bp, ap 710 710 IMPLICIT NONE 711 711 … … 1098 1098 ! Calcul des constantes de rappel alpha (=1/tau) 1099 1099 1100 USE comconst_mod, ONLY: pi1101 USE serre_mod, ONLY: clon,clat,grossismx,grossismy1102 1100 use comconst_mod, only: pi 1101 use serre_mod, only: clat, clon, grossismx, grossismy 1102 1103 1103 implicit none 1104 1104 … … 1813 1813 SUBROUTINE guide_out(varname,hsize,vsize,field,factt) 1814 1814 USE parallel_lmdz 1815 USE comconst_mod, ONLY: pi 1815 1816 USE comvert_mod, ONLY: presnivs 1816 USE comconst_mod, ONLY: pi 1817 use netcdf95, only: nf95_def_var, nf95_put_var 1818 use netcdf, only: nf90_float 1819 1817 1820 IMPLICIT NONE 1818 1821 … … 1833 1836 INTEGER :: nid, id_lonu, id_lonv, id_latu, id_latv, id_tim, id_lev 1834 1837 INTEGER :: vid_lonu,vid_lonv,vid_latu,vid_latv,vid_cu,vid_cv,vid_lev 1835 INTEGER :: vid_au,vid_av 1838 INTEGER :: vid_au,vid_av, varid_alpha_t, varid_alpha_q 1836 1839 INTEGER :: l 1837 1840 INTEGER, DIMENSION (3) :: dim3 … … 1871 1874 ierr=NF_DEF_VAR(nid,"au",NF_FLOAT,2,(/id_lonu,id_latu/),vid_au) 1872 1875 ierr=NF_DEF_VAR(nid,"av",NF_FLOAT,2,(/id_lonv,id_latv/),vid_av) 1876 call nf95_def_var(nid, "alpha_T", nf90_float, (/id_lonv, id_latu/), & 1877 varid_alpha_t) 1878 call nf95_def_var(nid, "alpha_q", nf90_float, (/id_lonv, id_latu/), & 1879 varid_alpha_q) 1873 1880 1874 1881 ierr=NF_ENDDEF(nid) … … 1898 1905 ierr = NF_PUT_VAR_REAL(nid,vid_av,alpha_v) 1899 1906 #endif 1907 call nf95_put_var(nid, varid_alpha_t, alpha_t) 1908 call nf95_put_var(nid, varid_alpha_q, alpha_q) 1900 1909 ! -------------------------------------------------------------------- 1901 1910 ! Cr�ation des variables sauvegard�es -
trunk/LMDZ.COMMON/libf/dyn3dpar/logic_mod.F90
r1593 r1650 1 ! 2 ! $Id: $ 3 ! 1 4 MODULE logic_mod 2 5 3 6 IMPLICIT NONE 4 7 5 LOGICAL purmats,forward,leapf,apphys,statcl,conser, & 6 & apdiss,apdelq,saison,ecripar,fxyhypb,ysinus & 7 & ,read_start,ok_guide,ok_strato,tidal,ok_gradsfile & 8 & ,ok_limit,ok_etat0 9 logical hybrid ! vertical coordinate is hybrid if true (sigma otherwise) 10 ! (only used if disvert_type==2) 11 logical moyzon_mu,moyzon_ch ! used for zonal averages in Titan 8 LOGICAL purmats ! true if time stepping is purely Matsuno scheme 9 ! false implies Matsuno-Leapfrog time stepping scheme 10 LOGICAL forward ! true if during forward phase of Matsuno step 11 LOGICAL leapf ! true if during a leapfrog time stepping step 12 LOGICAL apphys ! true if during a time step when physics will be called 13 LOGICAL statcl 14 LOGICAL conser 15 LOGICAL apdiss ! true if during a time step when dissipation will be called 16 LOGICAL apdelq 17 LOGICAL saison 18 LOGICAL ecripar 19 LOGICAL fxyhypb ! true if using hyperbolic function discretization 20 ! for latitudinal grid 21 LOGICAL ysinus ! true if using sine function discretiation 22 ! for latitudinal grid 23 LOGICAL read_start ! true if reading a start.nc file to initialize fields 24 LOGICAL ok_guide ! true if nudging 25 LOGICAL ok_strato 26 LOGICAL tidal ! true if adding tidal forces (for Titan) 27 LOGICAL ok_gradsfile 28 LOGICAL ok_limit ! true for boundary conditions file creation (limit.nc) 29 LOGICAL ok_etat0 ! true for initial states creation (start.nc, startphy.nc) 30 LOGICAL read_orop ! true for sub-cell scales orographic params read in file 31 LOGICAL hybrid ! vertical coordinate is hybrid if true (sigma otherwise) 32 ! (only used if disvert_type==2) 33 LOGICAL moyzon_mu,moyzon_ch ! used for zonal averages in Titan 12 34 13 integer iflag_phys,iflag_trac 35 INTEGER iflag_phys ! type of physics to call: 0 none, 1: phy*** package, 36 ! 2: Held & Suarez, 101-200: aquaplanets & terraplanets 37 INTEGER iflag_trac 14 38 15 39 !$OMP THREADPRIVATE(purmats,forward,leapf,apphys,statcl,conser, & 16 17 18 !$OMP ok_limit,ok_etat0)40 !$OMP apdiss,apdelq,saison,ecripar,fxyhypb,ysinus, & 41 !$OMP read_start,ok_guide,ok_strato,tidal,ok_gradsfile, & 42 !$OMP ok_limit,ok_etat0,hybrid,moyzon_mu,moyzon_ch) 19 43 !$OMP THREADPRIVATE(iflag_phys,iflag_trac) 20 44 21 !BE CAREFUL: when adding a threadprivate variable in this module 22 ! do not forget to add it to copyin clause of gcm.F (before CALL leapfrog_p) 45 !WARNING: when adding a threadprivate variable in this module 46 ! do not forget to add it to the copyin clause when opening an OpenMP 47 ! parallel section. e.g. in gcm before call leapfrog_loc 23 48 24 49 END MODULE logic_mod -
trunk/LMDZ.COMMON/libf/dyn3dpar/temps_mod.F90
r1422 r1650 3 3 IMPLICIT NONE 4 4 5 ! jD_ref = jour julien de la date de reference (lancement de l'experience) 6 ! hD_ref = "heure" julienne de la date de reference 5 INTEGER itaufin ! total number of dynamical steps for the run 6 INTEGER itau_dyn 7 INTEGER itau_phy 8 INTEGER day_ini ! initial day # of simulation sequence 9 INTEGER day_end ! final day # ; i.e. day # when this simulation ends 10 INTEGER annee_ref 11 INTEGER day_ref 12 REAL dt ! (dynamics) time step (changes if doing Matsuno or LF step) 13 REAL jD_ref ! reference julian day date (beginning of experiment) 14 REAL jH_ref ! reference julian "hour" of reference julian date 15 REAL start_time 16 CHARACTER (len=10) :: calend ! calendar type 7 17 8 INTEGER itaufin ! total number of dynamical steps for the run 9 INTEGER itau_dyn, itau_phy 10 INTEGER day_ini ! initial day # of simulation sequence 11 INTEGER day_end ! final day # ; i.e. day # when this simulation ends 12 INTEGER annee_ref 13 INTEGER day_ref 14 REAL dt ! (dynamics) time step (changes if doing Matsuno or LF step) 15 REAL jD_ref, jH_ref, start_time 16 CHARACTER (len=10) :: calend 18 ! Additionnal Mars stuff: 19 REAL hour_ini ! initial fraction of day of simulation sequence (0=<hour_ini<1) 17 20 18 ! Additionnal Mars stuff: 19 real hour_ini ! initial fraction of day of simulation sequence (0=<hour_ini<1) 21 !$OMP THREADPRIVATE(dt,jD_ref,jH_ref,start_time,hour_ini, & 22 !$OMP day_ini,day_end,annee_ref,day_ref,itau_dyn,itau_phy,itaufin,& 23 !$OMP calend) 20 24 21 !$OMP THREADPRIVATE(dt,jD_ref,jH_ref,start_time,hour_ini, & 22 !$OMP day_ini,day_end,annee_ref,day_ref,itau_dyn,itau_phy,itaufin, & 23 !$OMP calend) 24 25 !BE CAREFUL: when adding a threadprivate variable in this module 26 ! do not forget to add it to copyin clause of gcm.F (before CALL leapfrog_p) 25 !WARNING: when adding a threadprivate variable in this module 26 ! do not forget to add it to the copyin clause when opening an OpenMP 27 ! parallel section. e.g. in gcm before call leapfrog_loc and/or 28 ! possibly in iniphysiq 27 29 28 30 END MODULE temps_mod
Note: See TracChangeset
for help on using the changeset viewer.