Ignore:
Timestamp:
May 26, 2011, 5:17:33 PM (13 years ago)
Author:
Laurent Fairhead
Message:

Necessary modifications to use the model in an aquaplanet or terraplanet configuration


Modifications nécessaires pour l'utilisation du moèle en configuration aquaplanète
ou terraplanète

Dans la dynamique:
Changement pour le paramètre iflag_phys:

auparavant : 0 pas de physique, 1 phyique, 2 rappel
ici on ajoute iflag_phys>=100 pour les aqua et terra

Du coup, dans leapfrog.F et gcm.F on appelle la physique si
iflag_phys=1.or.iflag_phys>=100
Dans iniacademic, on initialise si iflag_phys>=2 au lieu de =2
Dans gcm.F, on appelle en plus iniaqua (sous une clef CPP_EARTH)
Dans iniacademic, on met ps=108080 pour les aqua et terra pour répondre
à une specification CFMIP.

Dans la physique:
On ajoute phyaqua.F qui contient :
iniaqua : initialise les startphy.nc et limit.nc pour la phyique
zenang_an : calcule un ensolleillement moyen sur l'année en fonction de

la latiude (A. Campoy).

profil_sst : qui calcule différents profils latitudinaux de SSTs.
writelim : écrit le fichier limit.nc

Dans physiq.F
On ajoute la possibilité d'appeller un calcul d'ensoleillement moyen
sur l'année quand solarlong0=1000.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/physiq.F

    r1527 r1529  
    18811881     &    write(lunout,*)'Longitude solaire ',zlongi,solarlong0,dist
    18821882
     1883
     1884!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1885! Calcul de l'ensoleillement :
     1886! ============================
     1887! Pour une solarlong0=1000., on calcule un ensoleillement moyen sur
     1888! l'annee a partir d'une formule analytique.
     1889! Cet ensoleillement est symmétrique autour de l'équateur et
     1890! non nul aux poles.
     1891      IF (abs(solarlong0-1000.)<1.e-4) then
     1892         call zenang_an(cycle_diurne,jH_cur,rlat,rlon,rmu0,fract)
     1893      ELSE
    18831894!  Avec ou sans cycle diurne
    1884       IF (cycle_diurne) THEN
    1885         zdtime=dtime*REAL(radpas) ! pas de temps du rayonnement (s)
    1886         CALL zenang(zlongi,jH_cur,zdtime,rlat,rlon,rmu0,fract)
    1887       ELSE
    1888         CALL angle(zlongi, rlat, fract, rmu0)
     1895         IF (cycle_diurne) THEN
     1896           zdtime=dtime*REAL(radpas) ! pas de temps du rayonnement (s)
     1897           CALL zenang(zlongi,jH_cur,zdtime,rlat,rlon,rmu0,fract)
     1898         ELSE
     1899           CALL angle(zlongi, rlat, fract, rmu0)
     1900         ENDIF
    18891901      ENDIF
    18901902
Note: See TracChangeset for help on using the changeset viewer.