Ignore:
Timestamp:
Mar 5, 2012, 2:34:44 AM (13 years ago)
Author:
aslmd
Message:

MESOSCALE: debugged idealized crater case to solve problems found by JBM. the problems appeared because crater case forced the model to extrapolate at initialization ; hence the crater was not actually here. solved the problem by setting the input sounding at bottom of crater. at the same time introduced coriolis terms. it is now important to use the pert_coriolis keyword at T to avoid impacting background winds. updated all setting files for TESTCRATER, which now works fine.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_quarter_ss.F

    r143 r559  
    264264         grid%cosa(i,j)     = 1.
    265265         grid%e(i,j)        = 0.
    266          grid%f(i,j)        = 0.         !! MARS: put coriolis here if needed
     266         grid%f(i,j)        = 0.
    267267
    268268      END DO
     
    401401      !    grid%ht(i,j) = hm1*exp(-(( float(i-icm)/xa1)**2))   &
    402402      !               *( (cos(pii*float(i-icm)/xal1))**2 )
    403     write(6,*) '3D hill or crater '
    404     write(6,*) 'height, width ',hm,xa
    405     grid%ht(i,j) = alt_input + hm/(1.+(float(i-icm)/xa)**2+(float(j-jcm)/xa)**2)
     403    IF (hm .gt. 0.) THEN
     404      write(6,*) '3D hill. height, width: ',hm,xa
     405      write(6,*) 'input sounding is out of the mountain'
     406      grid%ht(i,j) = alt_input + hm/(1.+(float(i-icm)/xa)**2+(float(j-jcm)/xa)**2)
     407    ELSE IF (hm .lt. 0.) THEN
     408      write(6,*) '3D crater. height, width: ',hm,xa
     409      write(6,*) 'input sounding is at the bottom of crater'
     410      grid%ht(i,j) = (alt_input - hm) + hm/(1.+(float(i-icm)/xa)**2+(float(j-jcm)/xa)**2)
     411      !! AS: cannot use same formula as hill because it would force ideal.exe to extrapolate
     412      !!       which is not possible given how interp_0 is written
     413    ELSE
     414      write(6,*) 'Nothing. Height is 0. Flat topography'
     415      grid%ht(i,j) = alt_input
     416    ENDIF
    406417  ELSE
    407418    write(6,*) 'linear slope '
    408419    write(6,*) 'height ',hm
    409     grid%ht(i,j) = alt_input + hm * float(i) 
     420    IF (hm .gt. 0.) THEN 
     421      grid%ht(i,j) = alt_input + hm * float(i) 
     422    ELSE IF (hm .lt. 0.) THEN
     423      !! see above, crater case
     424      grid%ht(i,j) = (alt_input - hm) + hm * float(i)
     425    ELSE
     426      write(6,*) 'Nothing. Height is 0. Flat topography'
     427      grid%ht(i,j) = alt_input
     428    ENDIF
    410429  ENDIF
    411430      !!!3D crater   
     
    437456    grid%mars_cice(i,j)=0.
    438457    grid%mars_wice(i,j)=0.
     458    write(6,*) 'NOTE TO SELF. slpx and slpy set to 0 which means no slope insolation.'
    439459    grid%slpx(i,j) = 0.
    440460    grid%slpy(i,j) = 0.
     461    !!! COMMENT THE LINES BELOW IF YOU DON'T WANT CORIOLIS TERMS
     462    !!! cf. doc WRF2008 page 11 for e and f expressions
     463    grid%e(i,j) = 2. * EOMEG * COS(pi*lat_input/180.)
     464    grid%f(i,j) = 2. * EOMEG * SIN(pi*lat_input/180.)
     465    write(6,*) 'CALCULATE CORIOLIS TERM', grid%f(i,j),grid%e(i,j)
    441466!!MARS
    442467  ENDDO
Note: See TracChangeset for help on using the changeset viewer.