Changeset 561 for trunk


Ignore:
Timestamp:
Mar 5, 2012, 6:03:06 PM (13 years ago)
Author:
acolaitis
Message:

Thermals. Added a second instance of subtimestep variation depending on global timestep. Without active clouds without active dust, going from 48 to 96 timestep per days can be compensated in the thermals by cutting the subtimestep from 35 to 10. Resulting thermal structure is better, the model is also observed to be more stable. In this configuration, the cost of doubling the timestep is of 10% only.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/calltherm_interface.F90

    r544 r561  
    7777      REAL d_u_the(ngridmx,nlayermx),d_v_the(ngridmx,nlayermx)
    7878      REAL dq2_the(ngridmx,nlayermx)
    79       INTEGER isplit,nsplit_thermals
    80       REAL r_aspect_thermals
     79      INTEGER isplit
     80      INTEGER,SAVE :: nsplit_thermals
     81      REAL, SAVE :: r_aspect_thermals
    8182      REAL fact
    8283      REAL zfm_therm(ngridmx,nlayermx+1),zdt
     
    191192! **********************************************************************
    192193
    193 !         r_aspect_thermals     ! ultimately conrols the amount of mass going through the thermals
    194                                 ! decreasing it increases the thermals effect. Tests at gcm resolution
    195                                 ! shows that too low values destabilize the model
    196                                 ! when changing this value, one should check that the surface layer model
    197                                 ! outputs the correct Cd*u and Ch*u through changing the gustiness coefficient beta
    198 
     194!         r_aspect_thermals     ! Mainly control the shape of the temperature profile
     195                                ! in the surface layer. Decreasing it goes toward
     196                                ! a convective-adjustment like profile.
     197!         nsplit_thermals       ! Sub-timestep for the thermals. Very dependant on the
     198                                ! chosen timestep for the radiative transfer.
     199                                ! It is recommended to run with 96 timestep per day and
     200                                ! iradia = 1., configuration in which thermals can run
     201                                ! very well with a sub-timestep of 10.
     202         IF (firstcall) THEN
    199203#ifdef MESOSCALE
    200          !! valid for timesteps < 200s
    201          nsplit_thermals=2
    202          r_aspect_thermals=0.7
     204            !! valid for timesteps < 200s
     205            nsplit_thermals=4
     206            r_aspect_thermals=0.7
    203207#else
    204          nsplit_thermals=35
    205          r_aspect_thermals=1.5
     208            IF ((ptimestep .lt. 3699.*24./96.) .and. (iradia .eq. 1)) THEN
     209               nsplit_thermals=10
     210            ELSE
     211               nsplit_thermals=35
     212            ENDIF
     213            r_aspect_thermals=1.5
    206214#endif
    207          call getin("nsplit_thermals",nsplit_thermals)
    208          call getin("r_aspect_thermals",r_aspect_thermals)
     215            call getin("nsplit_thermals",nsplit_thermals)
     216            call getin("r_aspect_thermals",r_aspect_thermals)
     217         ENDIF
    209218
    210219! **********************************************************************
Note: See TracChangeset for help on using the changeset viewer.