Ignore:
Timestamp:
Jul 24, 2017, 5:06:29 PM (8 years ago)
Author:
aslmd
Message:

MESOSCALE. makemeso module_initialize_les module_initialize_real reverted back to r1723 because commit r1724 was based on corrupted versions.

Location:
trunk/MESOSCALE/LMD_MM_MARS
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/MESOSCALE/LMD_MM_MARS/SIMU/RUN/vert_level_python/levspe.py

    r1606 r1746  
    1414#psurf=92.e5 # Venus
    1515psurf=1.212862e6
     16
     17hache = 10.
     18psurf = 610.
     19
     20
    1621print hache, psurf
    1722#read paramlevspe
     23
     24
     25
     26
    1827param=np.loadtxt('paramlevspe')
    1928nlev=param[0]
     
    5261#print ptop
    5362etas=(pressions-ptop)/(psurf-ptop)
    54 etas[nlev-1]=0.
     63etas[int(nlev)-1]=0.
    5564#print etas
    5665press=etas*(psurf-ptop)+ptop
     
    6877np.savetxt('levels',etas)
    6978
    70 plt.figure(figsize=(15, 15))
     79plt.figure(figsize=(12, 6))
    7180plt.subplot(221)
    72 plt.plot(x, etas)
     81plt.plot(x, etas, 'b.')
    7382plt.xlabel('levels')
    7483plt.ylabel('etas')
     
    7685#plt.title('a) NINO3 Sea Surface Temperature (seasonal)')
    7786#plt.hold(False)
     87axes = plt.gca()
     88axes.set_ylim([0,1])
    7889
    7990plt.subplot(222)
    80 plt.plot(x, pseudo)
     91plt.plot(x, pseudo, 'b.')
    8192plt.xlabel('levels')
    8293plt.grid()
    8394plt.ylabel('pseudo-altitude (km)')
     95plt.semilogy()
     96axes = plt.gca()
     97axes.set_ylim([0,60])
     98
    8499
    85100plt3 = plt.subplot(223)
    86 plt.semilogy(x, press)
     101plt.semilogy(x, press, 'b.')
    87102plt.xlabel('levels')
    88103plt.grid()
    89 plt.ylabel('pression (Pa)')
     104plt.ylabel('pressure (Pa)')
    90105
    91106plt4 = plt.subplot(224)
    92 plt.plot(x, res)
     107plt.plot(x, res, 'b.')
    93108plt.xlabel('levels')
    94109plt.grid()
  • trunk/MESOSCALE/LMD_MM_MARS/SIMU/RUN/vert_level_python/paramlevspe

    r1606 r1746  
    33#epsilon augmentation totale en pourcentage de l'ecart max (modifie inflexion). epsilon = 0   : point d'inflexion parfaitement plat. epsilon = 100 : pas de point d'inflexion
    44#elong_cos plus petit rapproche l'inflexion du sol ;; 2/3 parfait pour un nlev divisible par 3
    5 201
    6 280.
    7 0
    8 0.000000044
     561
     660.
     7100
     81.75
  • trunk/MESOSCALE/LMD_MM_MARS/SIMU/namelist.input_full

    r1044 r1746  
    8888 h_sca_adv_order = 5,        !! (*d) Horizontal scalar advection order
    8989 v_sca_adv_order = 3,        !! (*d) Vertical scalar advection order
     90 khdif = 10.,      !! ** direct diffusion for tests (km_opt=1). horizontal diffusion constant (m^2/s)
     91 kvdif = 10.,      !! ** direct diffusion for tests (km_opt=1). vertical diffusion constant (m^2/s)
    9092 /
    9193
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/LES/modif_mars/module_initialize_les.F

    r1724 r1746  
    8686
    8787   INTEGER, PARAMETER :: nl_max = 1000
    88    REAL, DIMENSION(nl_max) :: zk, p_in, theta, Tz, rho, u, v, qv, pd_in
     88   REAL, DIMENSION(nl_max) :: zk, p_in, theta, rho, u, v, qv, pd_in
    8989   INTEGER :: nl_in
    9090
     
    116116 ! for mode 3
    117117 REAL, DIMENSION(nl_max) :: profdustq,profdustn
    118  REAL, DIMENSION(nl_max) :: hrsw,hrlw,hrdyn
    119  REAL, DIMENSION(nl_max) :: trac
    120  REAL, DIMENSION(nl_max) :: prescribed_sw,prescribed_lw,prescribed_dyn
    121  REAL, DIMENSION(nl_max) :: venus_hrdyn
    122  REAL, DIMENSION(nl_max) :: altitude
     118 REAL, DIMENSION(nl_max) :: prescribed_sw,prescribed_lw
    123119!!MARS
    124120
     
    127123      !INTEGER :: hypsometric_opt = 2 ! Wee et al. 2012 correction
    128124
     125character(len=10) :: planet
    129126
    130127#ifdef DM_PARALLEL
    131128#    include <data_calls.inc>
    132129#endif
     130 
     131   call init_planet_constants
    133132
    134133   SELECT CASE ( model_data_order )
     
    173172
    174173
    175    stretch_grid = .false.
     174   !stretch_grid = .false.
    176175!  FOR LES, set stretch to false
    177    !stretch_grid = .true.
     176   stretch_grid = .true.
    178177   delt = 3.
    179178!   z_scale = .50
    180179!   z_scale = .10
    181180!   z_scale = .25
    182 !   z_scale = .1
     181!   z_scale = .15
    183182   pi = 2.*asin(1.0)
    184183   write(6,*) ' pi is ',pi
     
    303302   grid%rdx = 1./config_flags%dx
    304303   grid%rdy = 1./config_flags%dy
     304
    305305!  get the sounding from the ascii sounding file, first get dry sounding and
    306306!  calculate base state
     
    310310  write(6,*) ' getting dry sounding for base state '
    311311
    312   CALL get_sounding( zk, p_in, pd_in, theta, Tz, rho, u, v, qv, dry_sounding, nl_max, nl_in )
     312  CALL get_sounding( zk, p_in, pd_in, theta, rho, u, v, qv, dry_sounding, nl_max, nl_in )
    313313  ENDIF
    314314  CALL wrf_dm_bcast_real( zk , nl_max )
     
    316316  CALL wrf_dm_bcast_real( pd_in , nl_max )
    317317  CALL wrf_dm_bcast_real( theta , nl_max )
    318   CALL wrf_dm_bcast_real( Tz , nl_max )
    319318  CALL wrf_dm_bcast_real( rho , nl_max )
    320319  CALL wrf_dm_bcast_real( u , nl_max )
     
    385384  ENDDO
    386385
    387   xs=ide/2 -25
    388   !xs=ids   -3
    389   !xe=xs + 6
    390   xe=xs + 25
    391   !ys=jde/2 -3
    392   ys=jde/2 -25
    393   !ye=ys + 6
    394   ye=ys + 25
    395   mtn_ht = 1000
     386  xs=ide/2 -3
     387  xs=ids   -3
     388  xe=xs + 6
     389  ys=jde/2 -3
     390  ye=ys + 6
     391  mtn_ht = 500
    396392#ifdef MTN
    397393  DO j=max(ys,jds),min(ye,jde-1)
    398394  DO i=max(xs,ids),min(xe,ide-1)
    399      grid%ht(i,j) = alt_input + mtn_ht * 0.25 * &
     395     grid%ht(i,j) = mtn_ht * 0.25 * &
    400396               ( 1. + COS ( 2*pi/(xe-xs) * ( i-xs ) + pi ) ) * &
    401397               ( 1. + COS ( 2*pi/(ye-ys) * ( j-ys ) + pi ) )
     
    438434      p_level = grid%znu(k)*(p_surf - grid%p_top) + grid%p_top
    439435      grid%pb(i,k,j) = p_level
    440       grid%t_init(i,k,j) = interp_0_log( theta, p_in, p_level, nl_in ) - t0
    441       grid%tz_init(i,k,j) = interp_0_log( Tz, p_in, p_level, nl_in )
     436      grid%t_init(i,k,j) = interp_0( theta, p_in, p_level, nl_in ) - t0
    442437      grid%alb(i,k,j) = (r_d/p1000mb)*(grid%t_init(i,k,j)+t0)*(grid%pb(i,k,j)/p1000mb)**cvpm
    443438    ENDDO
     
    463458  ENDDO
    464459  ENDDO
     460
    465461  IF ( wrf_dm_on_monitor() ) THEN
    466462    write(6,*) ' ptop is ',grid%p_top
     
    472468  write(6,*) ' getting moist sounding for full state '
    473469  dry_sounding = .false.
    474   CALL get_sounding( zk, p_in, pd_in, theta, Tz, rho, u, v, qv, dry_sounding, nl_max, nl_in )
     470  CALL get_sounding( zk, p_in, pd_in, theta, rho, u, v, qv, dry_sounding, nl_max, nl_in )
    475471
    476472  DO J = jts, min(jde-1,jte)
     
    495491      p_level = grid%znu(k)*(pd_surf - grid%p_top) + grid%p_top
    496492
    497       moist(i,k,j,P_QV) = interp_0_log( qv, pd_in, p_level, nl_in )
    498       grid%t_1(i,k,j)          = interp_0_log( theta, pd_in, p_level, nl_in ) - t0
     493      moist(i,k,j,P_QV) = interp_0( qv, pd_in, p_level, nl_in )
     494      grid%t_1(i,k,j)          = interp_0( theta, pd_in, p_level, nl_in ) - t0
    499495      grid%t_2(i,k,j)          = grid%t_1(i,k,j)
    500496     
     
    698694    DO K = 1, kte-1
    699695      p_level = grid%znu(k)*(p_surf - grid%p_top) + grid%p_top
    700       grid%v_1(i,k,j) = interp_0_log( v, p_in, p_level, nl_in )
     696      grid%v_1(i,k,j) = interp_0( v, p_in, p_level, nl_in )
    701697      grid%v_2(i,k,j) = grid%v_1(i,k,j)
    702698    ENDDO
     
    722718    DO K = 1, kte-1
    723719      p_level = grid%znu(k)*(p_surf - grid%p_top) + grid%p_top
    724       grid%u_1(i,k,j) = interp_0_log( u, p_in, p_level, nl_in )
     720      grid%u_1(i,k,j) = interp_0( u, p_in, p_level, nl_in )
    725721      grid%u_2(i,k,j) = grid%u_1(i,k,j)
    726722    ENDDO
     
    851847      DO k=1,kte-1
    852848         p_level = grid%znu(k)*(pd_surf - grid%p_top) + grid%p_top
    853          scalar(its:ite,k,jts:jte,2) = interp_0_log( qv, pd_in, p_level, nl_in )
     849         scalar(its:ite,k,jts:jte,2) = interp_0( qv, pd_in, p_level, nl_in )
    854850         scalar(its:ite,k,jts:jte,3) = 0.
    855851           !! water ice is set to 0 (was put into water vapor when building prof from MCD)
     
    866862      DO k=1,kte-1
    867863         p_level = grid%znu(k)*(pd_surf - grid%p_top) + grid%p_top
    868          scalar(its:ite,k,jts:jte,4) = interp_0_log( profdustq, pd_in, p_level, nl_in )
    869          scalar(its:ite,k,jts:jte,5) = interp_0_log( profdustn, pd_in, p_level, nl_in )
     864         scalar(its:ite,k,jts:jte,4) = interp_0( profdustq, pd_in, p_level, nl_in )
     865         scalar(its:ite,k,jts:jte,5) = interp_0( profdustn, pd_in, p_level, nl_in )
    870866      ENDDO
    871867      print *, "DUST Q", scalar(its,:,jts,4)
     
    886882       DO i = its, ite
    887883         !!! we use Q2 as a vehicle for heating rates! sick!
    888          grid%m_q2(i,k,j) = interp_0_log( profdustq, pd_in, p_level, nl_in ) &
    889                           + interp_0_log( profdustn, pd_in, p_level, nl_in )
     884         grid%m_q2(i,k,j) = interp_0( profdustq, pd_in, p_level, nl_in ) &
     885                          + interp_0( profdustn, pd_in, p_level, nl_in )
    890886       ENDDO
    891887       ENDDO
     
    893889       !print*,k,grid%m_q2(1,k,1)
    894890    ENDDO
    895 
     891    print*,'planet',planet   
    896892    IF (planet.eq."prescribed") Then
    897       call read_hr(hrsw,hrlw,hrdyn,nl_in)
     893      call read_hr(profdustq,profdustn,nl_in)
    898894      open(unit=17,file="prescribed_sw.txt",action="write")
    899895      open(unit=18,file="prescribed_lw.txt",action="write")
    900       open(unit=19,file="prescribed_dyn.txt",action="write")
    901896      DO k=1,kte!-1
    902897        p_level = grid%znu(k)*(pd_surf - grid%p_top) + grid%p_top
    903         prescribed_sw(k) = interp_0_log( hrsw, pd_in, p_level, nl_in )
    904         prescribed_lw(k) = interp_0_log( hrlw, pd_in, p_level, nl_in )
    905         prescribed_dyn(k) = interp_0_log( hrdyn, pd_in, p_level, nl_in )
     898        prescribed_sw(k) = interp_0( profdustq, pd_in, p_level, nl_in )
     899        prescribed_lw(k) = interp_0( profdustn, pd_in, p_level, nl_in )
    906900        write (17,*) prescribed_sw(k)
    907901        write (18,*) prescribed_lw(k)
    908         write (19,*) prescribed_dyn(k)
    909902      ENDDO
    910       close(unit=19)
     903      close(unit=17)
    911904      close(unit=18)
    912       close(unit=17)
    913905    ENDIF
    914    
    915     IF (planet.eq."venus") Then
    916       call read_hr(hrsw,hrlw,hrdyn,nl_in)
    917       open(unit=20,file="venus_hrdyn.txt",action="write")
    918       DO k=1,kte!-1
    919         p_level = grid%znu(k)*(pd_surf - grid%p_top) + grid%p_top
    920         venus_hrdyn(k) = interp_0_log( hrdyn, pd_in, p_level, nl_in )
    921         write (20,*) venus_hrdyn(k)
    922       ENDDO
    923       close(unit=20)
    924     ENDIF
    925 
    926     open(unit=21,file="altitude.txt",action="write")
    927     DO k=1,kte!-1
    928       p_level = grid%znu(k)*(pd_surf - grid%p_top) + grid%p_top
    929       altitude(k) = interp_0_log( zk, pd_in, p_level, nl_in )
    930       write (21,*) altitude(k)
    931     ENDDO
    932     close(unit=21)
    933906
    934907!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    968941!---------------------------------------------------------------------------
    969942
    970       subroutine get_sounding( zk, p, p_dry, theta, Tz, rho, &
     943      subroutine get_sounding( zk, p, p_dry, theta, rho, &
    971944                               u, v, qv, dry, nl_max, nl_in )
    972945      implicit none
     
    974947      integer nl_max, nl_in
    975948      real zk(nl_max), p(nl_max), theta(nl_max), rho(nl_max), &
    976            u(nl_max), v(nl_max), qv(nl_max), p_dry(nl_max),Tz(nl_max)
     949           u(nl_max), v(nl_max), qv(nl_max), p_dry(nl_max)
    977950      logical dry
    978951
     
    11391112          v(k) = v_input(k)
    11401113          qv(k) = qv_input(k)
    1141           Tz(k) = t_therm(k)
    11421114
    11431115        enddo
     
    12261198      implicit none
    12271199      integer n
    1228       real pdustq(n+1),pdustn(n+1)
     1200      real pdustq(n),pdustn(n)
    12291201      logical end_of_file
    12301202
     
    12511223      end subroutine read_dust
    12521224!!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    1253       subroutine read_hr(hr_sw,hr_lw,hr_dyn,n)
     1225      subroutine read_hr(hr_sw,hr_lw,n)
    12541226      implicit none
    12551227      integer n
    1256       real hr_sw(n+1),hr_lw(n+1),hr_dyn(n+1)
     1228      real hr_sw(n),hr_lw(n)
    12571229      logical end_of_file
    12581230
     
    12671239      do while (.not. end_of_file)
    12681240
    1269         read(11,*,end=103) hr_sw(k+1),hr_lw(k+1),hr_dyn(k+1)
    1270         write(*,*) k,hr_sw(k+1),hr_lw(k+1),hr_dyn(k+1)
     1241        read(11,*,end=103) hr_sw(k+1),hr_lw(k+1)
     1242        write(*,*) k,hr_sw(k+1),hr_lw(k+1)
    12711243        k = k+1
    1272         go to 114
     1244        go to 113
    12731245 103    end_of_file = .true.
    12741246 114    continue
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F

    r1724 r1746  
    2121   USE module_soil_pre
    2222   USE module_date_time
    23    use module_init_utilities
    2423#ifdef DM_PARALLEL
    2524   USE module_dm
     
    119118      REAL :: max_dz
    120119
    121       INTEGER , PARAMETER :: nl_max = 1000
    122       INTEGER :: nl_in
     120!      INTEGER , PARAMETER :: nl_max = 1000
    123121!      REAL , DIMENSION(nl_max) :: grid%em_dn
    124       REAL, DIMENSION(nl_max) :: pd_in
    125       REAL, DIMENSION(nl_max) :: profdustq,profdustn
     122
    126123integer::oops1,oops2
    127124
     
    152149      !LOGICAL :: interp_theta = .false. ! Wee et al. 2012 correction
    153150      REAL :: pfu, pfd, phm
    154       REAL :: tpot
     151
    155152
    156153#ifdef DM_PARALLEL
     
    10831080!!END DO
    10841081
    1085 IF ( planet == "mars" ) then
     1082
    10861083!--get vertical size of the GCM input array and allocate new stuff
    1087   sizegcm=SIZE(grid%em_rh_gc(1,:,1))
    1088   ALLOCATE(sig(MIN(ite,ide-1)-its+1,sizegcm, MIN(jte,jde-1)-jts+1))
    1089   !ALLOCATE(ap(MIN(ite,ide-1)-its+1,sizegcm, MIN(jte,jde-1)-jts+1))
    1090   ALLOCATE(bp(MIN(ite,ide-1)-its+1,sizegcm, MIN(jte,jde-1)-jts+1))
    1091 
    1092   DO j = jts , MIN ( jde-1 , jte )
    1093   DO i = its , MIN (ide-1 , ite )
     1084sizegcm=SIZE(grid%em_rh_gc(1,:,1))
     1085ALLOCATE(sig(MIN(ite,ide-1)-its+1,sizegcm, MIN(jte,jde-1)-jts+1))
     1086!ALLOCATE(ap(MIN(ite,ide-1)-its+1,sizegcm, MIN(jte,jde-1)-jts+1))
     1087ALLOCATE(bp(MIN(ite,ide-1)-its+1,sizegcm, MIN(jte,jde-1)-jts+1))
     1088
     1089DO j = jts , MIN ( jde-1 , jte )
     1090DO i = its , MIN (ide-1 , ite )
    10941091
    10951092!!! Define old sigma levels for each column
    1096           sig(i,:,j)=grid%em_p_gc(i,:,j)/grid%em_psfc_gc(i,j)
     1093        sig(i,:,j)=grid%em_p_gc(i,:,j)/grid%em_psfc_gc(i,j)
    10971094
    10981095!!! Compute new sigma levels from old sigma levels with GCM (low-res) and WRF (hi-res) surface pressure
    10991096!!!                        (dimlevs,sigma_gcm, ps_gcm,                ps_hr,         sigma_hr)
    1100           CALL build_sigma_hr(sizegcm,sig(i,:,j),grid%em_psfc_gc(i,j),grid%psfc(i,j),bp(i,:,j))
     1097        CALL build_sigma_hr(sizegcm,sig(i,:,j),grid%em_psfc_gc(i,j),grid%psfc(i,j),bp(i,:,j))
    11011098
    11021099!!! Calculate new pressure levels
    1103           grid%em_pd_gc(i,:,j)=bp(i,:,j)*grid%psfc(i,j)
    1104 
    1105   END DO
    1106   END DO
    1107 
    1108   DEALLOCATE(sig)
    1109   DEALLOCATE(bp)
     1100        grid%em_pd_gc(i,:,j)=bp(i,:,j)*grid%psfc(i,j)
     1101
     1102END DO
     1103END DO
     1104
     1105DEALLOCATE(sig)
     1106DEALLOCATE(bp)
    11101107
    11111108!!****MARS who knows...
    1112   grid%em_rh_gc(:,:,:)=0.
     1109grid%em_rh_gc(:,:,:)=0.
    11131110
    11141111
     
    11161113!grid%em_pd_gc=grid%em_p_gc
    11171114!!****MARS
    1118 ELSE ! VENUS
     1115
    11191116
    11201117
     
    11231120         !!  dry top pressure (constant).
    11241121         !
    1125            CALL p_dts ( grid%em_mu0 , grid%em_intq_gc , grid%psfc , grid%p_top , &
    1126                         ids , ide , jds , jde , 1   , num_metgrid_levels , &
    1127                         ims , ime , jms , jme , 1   , num_metgrid_levels , &
    1128                         its , ite , jts , jte , 1   , num_metgrid_levels )
    1129 ENDIF
    1130 IF ( planet == "mars" ) then
     1122         !CALL p_dts ( grid%em_mu0 , grid%em_intq_gc , grid%psfc , grid%p_top , &
     1123         !             ids , ide , jds , jde , 1   , num_metgrid_levels , &
     1124         !             ims , ime , jms , jme , 1   , num_metgrid_levels , &
     1125         !             its , ite , jts , jte , 1   , num_metgrid_levels )
     1126
    11311127!!****MARS
    1132   DO j = jts , MIN ( jde-1 , jte )
    1133   DO i = its , MIN (ide-1 , ite )
    1134 
    1135      grid%em_mu0(i,j) = grid%psfc(i,j) - grid%p_top
    1136 
    1137   END DO
    1138   END DO
     1128DO j = jts , MIN ( jde-1 , jte )
     1129DO i = its , MIN (ide-1 , ite )
     1130
     1131   grid%em_mu0(i,j) = grid%psfc(i,j) - grid%p_top
     1132
     1133END DO
     1134END DO
    11391135!!****MARS
    1140 ELSE ! VENUS
     1136
    11411137   
    11421138         !!  Compute the dry, hydrostatic surface pressure.
    11431139         !
    1144            CALL p_dhs ( grid%em_pdhs , grid%ht , p00 , t00 , a , &
    1145                         ids , ide , jds , jde , kds , kde , &
    1146                         ims , ime , jms , jme , kms , kme , &
    1147                         its , ite , jts , jte , kts , kte )
    1148 ENDIF
     1140         !CALL p_dhs ( grid%em_pdhs , grid%ht , p00 , t00 , a , &
     1141         !             ids , ide , jds , jde , kds , kde , &
     1142         !             ims , ime , jms , jme , kms , kme , &
     1143         !             its , ite , jts , jte , kts , kte )
    11491144!!****MARS: voir remarques dans la routine
    11501145!!****MARS: dry hydrostatic pressure comes from the GCM ...
     
    22992294IF (( i .EQ. its ) .AND. ( j .EQ. jts )) print *, temp, k
    23002295!!! MODIF WRFV3.1 - parameter tiso
    2301                IF (planet .eq. "mars" ) THEN
    2302                  grid%em_t_init(i,k,j) = temp*(p00/grid%em_pb(i,k,j))**(r_d/cp) - t0
    2303                ELSE
    2304                  grid%em_t_init(i,k,j) = (temp**nu + nu*(TT00**nu)*log((p00/grid%em_pb(i,k,j))**rcp))**(1/nu) -t0
    2305                ENDIF
     2296               grid%em_t_init(i,k,j) = temp*(p00/grid%em_pb(i,k,j))**(r_d/cp) - t0
    23062297               grid%em_alb(i,k,j) = (r_d/p1000mb)*(grid%em_t_init(i,k,j)+t0)*(grid%em_pb(i,k,j)/p1000mb)**cvpm
    23072298            END DO
     
    26102601!!NB: q2 is used for other purpose ...
    26112602
     2603
    26122604!      END IF
    26132605
     
    27882780temp1 = MAX(tiso,t00+A*LOG(grid%em_pb(i,k,j)/p00))
    27892781temp2 = MAX(tiso,t00+A*LOG(           pb_int/p00))
    2790 IF (planet .eq. "mars" ) THEN
    2791   grid%em_t_init(i,k,j) = temp1*(p00/grid%em_pb(i,k,j))**(r_d/cp) - t0
    2792   t_init_int(i,k,j)     = temp2*(p00/pb_int           )**(r_d/cp) - t0
    2793 ELSE
    2794 ENDIF
     2782grid%em_t_init(i,k,j) = temp1*(p00/grid%em_pb(i,k,j))**(r_d/cp) - t0
     2783t_init_int(i,k,j)     = temp2*(p00/pb_int           )**(r_d/cp) - t0
    27952784               grid%em_alb(i,k,j) = (r_d/p1000mb)*(grid%em_t_init(i,k,j)+t0)*(grid%em_pb(i,k,j)/p1000mb)**cvpm
    27962785            END DO
     
    49804969!            temp =             t00 + A*LOG(pb/p00)
    49814970temp = MAX ( tiso, t00 + A*LOG(pb/p00) )
    4982            IF (planet .eq. "mars" ) THEN
    4983               t_init = temp*(p00/pb)**(r_d/cp) - t0
    4984             ELSE
    4985               t_init = (temp**nu + nu*(TT00**nu)*log((p00/pb)**(rcp)))**(1/nu) - t0
    4986             ENDIF
     4971            t_init = temp*(p00/pb)**(r_d/cp) - t0
    49874972            alb(k) = (r_d/p1000mb)*(t_init+t0)*(pb/p1000mb)**cvpm
    49884973         END DO
     
    50205005!            temp =             t00 + A*LOG(pb/p00)
    50215006temp = MAX ( tiso, t00 + A*LOG(pb/p00) )
    5022            IF (planet .eq. "mars" ) THEN
    5023               t_init = temp*(p00/pb)**(r_d/cp) - t0
    5024             ELSE
    5025               t_init = (temp**nu + nu*(TT00**nu)*log((p00/pb)**(rcp)))**(1/nu) -t0
    5026             ENDIF
     5007            t_init = temp*(p00/pb)**(r_d/cp) - t0
    50275008            alb(k) = (r_d/p1000mb)*(t_init+t0)*(pb/p1000mb)**cvpm
    50285009            znw(k+1) = znw(k) - dz*g / ( mub*alb(k) )
     
    50445025!                  temp =             t00 + A*LOG(pb/p00)
    50455026temp = MAX ( tiso, t00 + A*LOG(pb/p00) )
    5046            IF (planet .eq. "mars" ) THEN
    5047               t_init = temp*(p00/pb)**(r_d/cp) - t0
    5048             ELSE
    5049               t_init = (temp**nu + nu*(TT00**nu)*log((p00/pb)**(rcp)))**(1/nu) -t0
    5050             ENDIF
     5027                  t_init = temp*(p00/pb)**(r_d/cp) - t0
    50515028                  alb(k) = (r_d/p1000mb)*(t_init+t0)*(pb/p1000mb)**cvpm
    50525029                  znw(k+1) = znw(k) - dz*g / ( mub*alb(k) )
     
    50755052!               temp =             t00 + A*LOG(pb/p00)
    50765053temp = MAX ( tiso, t00 + A*LOG(pb/p00) )
    5077            IF (planet .eq. "mars" ) THEN
    5078               t_init = temp*(p00/pb)**(r_d/cp) - t0
    5079             ELSE
    5080               t_init = (temp**nu + nu*(TT00**nu)*log((p00/pb)**(rcp)))**(1/nu) -t0
    5081             ENDIF
     5054               t_init = temp*(p00/pb)**(r_d/cp) - t0
    50825055               alb(k) = (r_d/p1000mb)*(t_init+t0)*(pb/p1000mb)**cvpm
    50835056            END DO
     
    57475720      end subroutine build_sigma_hr
    57485721
     5722
     5723
     5724
     5725
    57495726END MODULE module_initialize
    57505727
  • trunk/MESOSCALE/LMD_MM_MARS/makemeso

    r1724 r1746  
    7474# makemeso -p mars_lmd_new   ## choose physics
    7575#             venus_lmd_new
    76 #             generic_lmd_new
    77 #             titan_lmd_new
    7876#
    7977# makemeso -f                ## fresh start [clean -a]
     
    244242      cd ..
    245243
    246      # remove files adapted to parallel GCM and useless for mesoscale
    247      #cd mars_lmd
    248      #cd libf/phymars
    249      #\rm tabfi* soil_settings* phyetat0* phyredem* iostart* writediagfi* mkstat* writediagsoil* eofdump* wstats* inistats* mod_*
    250      #\rm iniphysiq* init_phys_lmdz* comgeomphy* planetwide_mod*
    251      #mv ../dyn3d/control_mod.F90 .
    252      #cd ../..
    253      #cd ..
    254 
    255     else
    256          if [[ "${config}" == "les" ]]
    257          then
    258            #### NB: With physics: LES folder // Without physics : LESnophys_ folder
    259            #### ---- because differences in 'modif' folder ----
    260            #sed s+"PWD/SRC/"+"PWD/SRC/LES$phys/"+g SRC/SCRIPTS/copy_model > copy_model_tmp
    261            sed s+"PWD/SRC/"+"PWD/SRC/LES/"+g SRC/SCRIPTS/copy_model > copy_model_tmp
    262          else
    263            cp SRC/SCRIPTS/copy_model copy_model_tmp
    264          fi   
    265      chmod 755 copy_model_tmp
    266      ./copy_model_tmp
    267      \rm copy_model_tmp
    268      mv zeWRFV2 ${conf_wrf}/WRFV2
    269      cd ${conf_wrf}/WRFV2
    270      cd Registry ; ./Registry.bash ; cd ..
     244     else
     245      cd ${conf_wrf}/WRFV2
     246      cd Registry ; ./Registry.bash ; cd ..
    271247     fi
    272248          #### sparadrap consequent a l'utilisation de copy_model pour les liens
     
    414390                       then
    415391                         sed s+"-lnetcdf"+"-lnetcdf -L../$phys/libo -llmd $NETCDF/lib/libnetcdf.a"+g   configure.wrf > yeah ; mv -f yeah configure.wrf
    416                          #sed s+"O3"+"O3"+g configure.wrf > yeah ; mv -f yeah configure.wrf
    417392                       else
    418393                         sed s+"-lnetcdf"+"-lnetcdf $NETCDF/lib/libnetcdf.a"+g   configure.wrf > yeah ; mv -f yeah configure.wrf
     
    481456                         mv -f yeah configure.wrf ;;
    482457     mpifort_64)     # MPI+IFORT, 64 bits, no nesting / nesting
    483                        echo 9 | ./configure > log_compile 2> log_error
     458                       echo 9 | configure > log_compile 2> log_error
    484459                       sed -f physics.sed configure.wrf > yeah ; mv -f yeah configure.wrf
    485460                       sed s+"-f90=ifort"+" "+g configure.wrf > yeah ; mv -f yeah configure.wrf
     
    492467                             then
    493468                             echo 'DEBUG DEBUG DEBUG DEBUG'
    494                              sed s+"#-g"+" -g -no-ftz -traceback -ftrapuv -fp-stack-check -check"+g configure.wrf > yeah
     469                             sed s+"# -g"+" -g -no-ftz -traceback -ftrapuv -fp-stack-check -check"+g configure.wrf > yeah
    495470                             mv -f yeah configure.wrf
    496471                       fi
     
    512487                         sed s+"mpicc"+"mpicc -DMPI2_SUPPORT"+g configure.wrf > yeah ; mv -f yeah configure.wrf
    513488                         ## !!! NETCDF must be defined
    514                          if [[ "${phys}" != *"void"* ]]
    515                            sed s+"-L../$phys/libo -llmd"+"-L../$phys/libo -llmd $NETCDF/lib/libnetcdf.a $NETCDF/lib/libnetcdff.a"+g configure.wrf > yeah
    516                          else
    517                            sed s+"-lesmf_time"+"-lesmf_time $NETCDF/lib/libnetcdf.a $NETCDFF/lib/libnetcdff.a"+g configure.wrf > yeah
    518                          fi
     489                         sed s+"-L../$phys/libo -llmd"+"-L../$phys/libo -llmd $NETCDF/lib/libnetcdf.a"+g configure.wrf > yeah
    519490                         mv -f yeah configure.wrf
    520491                         #### POUR LE TRAITEMENT PARTICULIERS des NESTS sur iDATAPLEX [cf. module_lmd_driver]
     
    614585    sed s+"LIB_BUNDLED     = "+"LIB_BUNDLED     =    /usr/lib64/liblapack.so  \ "+g configure.wrf > yeah ; mv -f yeah configure.wrf
    615586    #sed s+"RWORDSIZE       =       "+"RWORDSIZE       =       8 # "+g configure.wrf > yeah ; mv -f yeah configure.wrf
    616     #sed s+"PROMOTION       =       -i4"+'PROMOTION       = -real-size "expr 8 \* $(RWORDSIZE)" -i4'+g configure.wrf > yeah ; mv -f yeah configure.wrf
    617     #sed s+"PROMOTION       =       -i4"+"PROMOTION       =       -real_size 64 -i4"+g configure.wrf > yeah ; mv -f yeah configure.wrf
    618587    #sed s+"-DLWORDSIZE=4 "+"-DLWORDSIZE=8 "+g configure.wrf > yeah ; mv -f yeah configure.wrf
    619588    #sed s+"-DIWORDSIZE=4 "+"-DIWORDSIZE=8 "+g configure.wrf > yeah ; mv -f yeah configure.wrf
     
    704673  then
    705674    cd libf/phyvenus
    706   elif [[ "${phys}" == *"generic"* ]]
    707   then
    708     cd libf/phystd
    709   elif [[ "${phys}" == *"titan"* ]]
    710   then
    711     cd libf/phytitan
    712675  fi
    713676  \rm dimphys.h 2> /dev/null
    714   #if [[ "${phys}" == "newphys_" ]]
    715   #then
    716   #  ln -sf ../../meso_dimphys.h_ref . ## ne sert plus !!
    717   #else
    718   if [[ "${phys}" != "newphys_" ]]
     677if [[ "${phys}" == "newphys_" ]]
     678then
     679  ln -sf ../../meso_dimphys.h_ref . ## ne sert plus !!
     680else
     681  if [[ "${phys}" == "mars_lmd" ]]
    719682  then
    720683    physize=$(expr ${physx} \* ${physy})
     
    722685    head -15 dimphys.h
    723686  fi
    724      ### TEST new new phys
     687     #### TEST new new phys
    725688     #if [[ "${phys}" == "newphys_" ]]
    726689     #then
    727690     #  touch gr_fi_dyn.F.lien
    728691     #    ln -sf ../dyn3d/gr_fi_dyn.F .  ## dommage, a corriger
    729      ###############################
    730      ###############################
    731      ###############################
     692     ################################
     693     ################################
     694     ################################
    732695     #fi
    733      ###
    734      ###
     696     ####
     697     ####
    735698  cd ../..
    736699
     
    748711  echo compilation info in:
    749712  echo $PWD/libo/log_compile_phys
    750  
     713
    751714  if [ ${debug} -ne 0 ] 
    752715  then
     
    754717    then
    755718      echo 'DEBUG DEBUG DEBUG DEBUG'
    756       nohup makegcm_${compilo} debug -t ${tra} -p mars -d ${physz} testphys1d | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
     719      nohup makegcm_${compilo} -debug -full -t ${tra} -p mars -d ${physz} testphys1d | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    757720    elif [[ "${phys}" == *"venus"* ]]
    758721    then
    759722      echo 'DEBUG DEBUG DEBUG DEBUG'
    760       nohup ./makelmdz -debug -full -p venus -d 181 rcm1d -arch X64_MESU -cpp MESOSCALE | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    761     elif [[ "${phys}" == *"generic"* ]]
    762     then
    763       echo 'DEBUG DEBUG DEBUG DEBUG'
    764       nohup ./makegcm_ifort -debug -t ${tra} -p std -b 36x32 -d 25 rcm1d | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    765       #nohup ./makegcm_ifort -t ${tra} -p std -b 36x32 -d 25 rcm1d | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
     723      nohup makelmdz -debug -full -p venus -d 181 rcm1d -arch linux-ifort -cpp MESOSCALE | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    766724    fi
    767725  else
    768     if [[ "${phys}" == *"mars"* ]]
     726  if [[ "${phys}" == *"mars"* ]]
    769727    then
    770728      nohup makegcm_${compilo} -t ${tra} -p mars -d ${physz} testphys1d | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    771729    elif [[ "${phys}" == *"venus"* ]]
    772730    then
    773       nohup ./makelmdz -full -p venus -d 51 rcm1d -arch linux-ifort_meso -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys # on /u/ and /planeto/
    774       nohup ./makelmdz -p venus -d 51 rcm1d -arch linux-ifort_meso -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    775       #nohup ./makelmdz -full -p venus -d 51 rcm1d -arch CICLADifort -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys # on CICLAD
    776       #nohup ./makelmdz -p venus -d 51 rcm1d -arch CICLADifort -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    777       #nohup ./makelmdz -full -p venus -d 51 rcm1d -arch X64_MESU -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys #on MESU
    778       #nohup ./makelmdz -p venus -d 51 rcm1d -arch X64_MESU -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    779       #nohup makelmdz -full -p venus -d 51 rcm1d -arch X64_OCCIGEN -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys #on OCCIGEN
    780       #nohup makelmdz -p venus -d 51 rcm1d -arch X64_OCCIGEN -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
     731      nohup makelmdz -full -p venus -d 51 rcm1d -arch linux-ifort -cpp MESOSCALE  | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
    781732    fi
    782733  fi
     
    791742  cd libo
    792743  mkdir temp
    793   if [[ ("${phys}" == *"venus"*) ]]
    794   then
    795     cp -f linux*/*.a temp/ # on /u/ and /planeto/
    796     #cp -f /home/mlefevre/modipsl/lib/libioipsl.a temp/ #on CICLAD
    797     #cp -f X64*/*.a temp #on MESU and OCCIGEN
     744  if [[ "${phys}" == *"venus"* ]]
     745  then
     746    cp -f linux*/*.a temp/
    798747    cp -f ../ioipsl/libioipsl.a temp/
    799748  else
     
    806755   ar x libphymars.a
    807756   ar x libaeronomars.a
    808   elif [[ "${phys}" == *"venus"* ]]
    809   then
     757  else
    810758   ar x libphyvenus.a
    811759   ar x libmisc.a
     
    821769  # finish merge
    822770  cd ..
    823   echo ${phys}
    824771  if [[ "${phys}" == *"new"* ]]
    825772  then
     
    828775      # include modules for interfacing
    829776      mv  *.mod ../inc/
    830     elif  [[ ("${phys}" == *"venus"*)]]
    831     then
    832       mv  ./libo/linux*/*.mod ../inc/ # on /u/ and /planeto/
    833       #mv  ./libo/CICLAD*/*.mod ../inc/ # on CICLAD
    834       #mv  ./libo/X64*/*.mod ../inc/ # on MESU and OCCIGEN
     777    else # [[ "${phys}" == *"venus"* ]]
     778      mv  ./libo/linux*/*.mod ../inc/
    835779      cp -f ./ioipsl/*.mod ../inc/
     780     
    836781    fi
    837782  fi
Note: See TracChangeset for help on using the changeset viewer.