BASIC COURSE PRISM (author: M. Sigmond, michaelsigmond@hotmail.com) Contents 0. Manuals 1. PRISM-versie 2. Directory-tree 3. Source 4. Compileren 5. Runnen 6. Namcouple 7. Specificaties van het werkende systeem 8. Inputfiles en resoluties 9. Lengte van de runs 10. Bekijken outputdata APPENDIX A: koppelingsconfiguraties APPENDIX B: belangrijke koppelingsparamters 0. Manuals Deze manual is te vinden in: SIGMOND/PRISMbase/DOC_MS op de kelder-account van teras. In deze directory zijn ook de directories ECHAM_manuals en PRISM_manuals te vinden, waarin alle 'officiele' manuals staan die ik heb verzameld. In DOC_MICHAEL_DETAILS staan worddocumenten met (niet-volledige) details over het systeem. 1. PRISM-versies De laatste bij mij bekende versie van PRISM is op dit moment (20041012) versie 2.2. Echter, wij gebruiken versie 2.1. Details: zie DOC_MICHAEL_DETAILS hoofdstuk 1.1. 2. Directory-tree De hoofdirectory voor het door ons aangepaste prismversie is SIGMOND/PRISMbase. Tree van belangrijke dirs: PRISMbase --> DOC_MS --> PRISM --> MIPS --> bin --> src --> lib --> mod --> echam5 --> mpi-om --> toyche --> toyoce --> toyatm --> util --> compile --> frames --> running --> frames --> adjunct_files --> experiments --> -->scripts -->input (--> work) 3. Source Te vinden in PRISM/src/mod//src, waar : echam5, mpi-om, toyche, toyatm of toyoce. In PRISM/src/mod//src/OLD staan een aantal directories beginnend met een nummer. In deze directories staan files die veranderd zijn tov de originele source-code. Door in src/ eerst de oorspronkelijke files (uit src_original) te zetten, en vervolgens de files uit src/OLD/_src../ eroverheen te kopieren, heb je een werkende sourcecode. Als er in src/OLD/_src een include directory staat, moet hetzelfde gedaan worden voor de files die daar in staan (copieer deze naar PRISM/src/mod//include). Beschrijving van de verschillende versies van toychem en echam: zie DOC_MICHAEL_DETAILS hoofdstuk 5. Belangrijkste files in ECHAM-code: mo_couple.f90 : module met subroutines die te maken hebben met de oasis-koppeling radiation.f90 : plaats waar ozonwaardes toegekend worden (zo3) mo_knmi_chem.f90: door mij gemaakte module waarin een zgn. memorystream voor ozon (naam:chem) gemaakt is (zie ook 10. bekijken van outputdata) Opmerking over TM: De sourcecode van TM staat op de vanvelth-account. In onze werkend gekoppeld systeem is TOYCHEM gekoppeld aan OASIS, maar zijn in TOYCHEM calls gemaakt naar TM5. In de Makefile is te zien dat TM5 gelinkt is als een library. Als je dus iets wilt veranderen in de TM5 code, moet je dat op de vanvelth account doen. Compileer dit, en her- compileer vervolgens TOYCHEM. 4. Compileren Voor het juist compileren van de modellen en libraries moeten correcte modules geladen worden. Deze worden geladen door het sourcen van SIGMOND/.michael_cshrc belangrijke files: PRISM/util/compile/frames: Create_comp_libs.frm en Create_comp_models.frm PRISM/src/mod/ : Comp_.p1 PRISM/util : Comp_libs.p1 MIPS/bin : executables Create_comp_models.frm : creeert het compileerscript voor model . Script wordt gezet in PRISM/src/mod/ en heeft de naam Comp_.p1. Comp_.p1 clean: cleant de compilatie Comp_.p1 : standaard compilatie Comp_libs.p1 compileert de libraries. Executables komen in MIPS/bin. 5. Runnen Met het script PRISM/util/running/frames/Create_TASKS.frm kan een runscipt gegenereerd worden. Hierbij is een van de koppelconfiguraties beschreven in appendix A, en is de naam van het experiment (NB: maximaal aantal karakters ven expname is 3!). Het script moet 2 keer aangeroepen worden. 1e keer: PRISM/util/runing/frames/setup/setup__ wordt gemaakt, welke nog ge-edit kan worden. 2e keer: - PRISM/experiments/ wordt aangemaakt - het runscript PRISM/experiments//RUN__ wordt gecreerd - de basisversie van namelist van oasis (namcouple zie 6) wordt gekopieerd van PRISM/util/running/adjunct_files/oasis3 naar PRISM/experiments//input In het runscript staan alle voor de koppeling van belang zijnde paramters (zie appendix B) Het runscript wordt gegenereerd door het invoegen van files uit /util/running/frames/include(_p1). Als je koppelingsparamters wilt veranderen kan dat op 2 manieren a) ad hoc door het editten van het runscript b) editten van include files. Dit is aan te raden als je de standandaard waarden van koppelings- parameters wilt veranderen. RUN__ kan zowel in de voorgrond, maar ook als batchjob gedraaid worden (submitten met bsub < ). Verschillende acties worden uitgevoerd door het runscript: - uit PRISM/data/ wordt de tar-file met initialfiles gecopieerd naar experiments/, welke wordt uitpakt naar experiments//input/. - De workdirectory experiments//work wordt aangemaakt - De basis namcouple file uit input/oasis3 wordt ingevuld met parameters gespecifeerd in het runscript en gekopieerd naar experiments//work/namcouple - De run wordt opgestart In de workdirectory verschijnen enkele interessante files: atmout, cheout: outputfiles van ECHAM en TOYCHE (zie 9) namelist.echam: namelist van ECHAM. 6. De namelist van OASIS: namcouple Zie ook: PRISM-documentatie. Zoals hierboven beschreven staan de basisversies van een bij een koppelings configuratie namcouple files in /util/running/adjunct_files/oasis3, wordt deze door de Create_tasks gecopieerd naar experiments//input/oasis3, en wordt hij ingevuld door het runscript. Het eerste gedeelte van namcouple beschrijft de modelconfiguratie (nr. processoren, namen executables etc.) Het tweede gedeelte staat per uit te wisselen variabele oa de namen in source en target modellen, de koppelingstijdstap etc. 7. Specificaties van het werkende systeem (20041012). ECHAM versie: T31L39 (MA-versie) TM5 is gekoppeld door een call naar TM5-routines in TOYCHEM. Daarom heet de koppelingsconfiguratie nog ECTOY. 3D-velden worden in ECHAM in 2D arrays gestopt, verzonden en in TOYCHE weer in 3D-arrays gestored. ECHAM --> TM: ztp: sferisch harmonische veld van temperatuur (levels 1:nlev) en gronddruk (level nlev+1). zvo: idem voor vorticiteit (levels 1:nlev) en gronddruk op het vorige uitwisselingstijdstip (level nlev+1) (details: zie echam5/src/mo_couple.f90) zd: idem voor divergentie (levels 1:nlev) narray=10= het aantal 2d velden nodig om het gehele sferisch harmonische 3D te storen. narray= nsp*2*nlev/(nlon*nlat), met nsp= aantal sh coefficienten (=(t+1)*(t+2)/2, met t= truncatie=31) nlon= 96, nlat=48 (regelmatig Gaussische 24 grid behorend bij T31) TM --> ECHAM: O3. Omdat ozon een lat-lon veld is, worden er nlev 2D velden overgestuurd. De tijdparamters zijn nu zo ingesteld dat ECHAM en TM sequentieel draaien, dwz ECHAM begint te rekenen van t=0 tot t=6h-nadt. Divergentie, vorticiteit, temperatuur en gronddruk op dat tijdstip worden gestuurd naar t=0 van TOYCHEM (=t=3 uur van TM5). Vervolgens gaat TOYCHEM (~TM) rekenen tot t=6h-ncdt (TM-tijd 9h-ncdt). Het TM-ozonveld van dat tijdstip wordt in toychem geinterpoleerd naar het Gaussisch lat-lon rooster van ECHAM en verzonden naar t=6h van ECHAM. ECHAM rekent met deze ozonwaarden van t=6 tot t=12h-nadt, etc. De ECHAM ozonwaarden tussen t=0 en t=6h zijn geen TM-waarden (die zijn nog niet bekend), maar de ECHAM5 klimatologie (Fortuin-Kelder). Wil je het systeem concurrend draaien, moet je de laga2c, lagc2a en nmseq parameters aanpassen (zie PRISM-manual). 8. Inputfiles en resoluties (zie ook 2.5 en 3.6 uit DOC_MICHAEL_DETAILS). Standaard PRISM-resoluties van ECHAM zijn T21L19, T63L31 en T106L31 (allen lage, niet-middle atmosphere versies). Voor deze resoluties bestaan er standaard prism initial fields. Echter, wij willen de MA-versie draaien (top: 0.01 hPa ~ 85 km). Minimale horizonale resolutie hiervoor is T31. T31L39 initial files zijn verkregen uit Hamburg. De namen zijn aangepast tot prism-standaards. Vanwege een mismatch tussen MPI-OM land-seamask en het land-sea mask van de uit Hamburg gekregen ECHAM initialfiles krijg je problemen als je het oceaanmodel meekoppelt met de MA-versie van ECHAM. Daarom runnen we het ectoy systeem (dus zonder oceaan; echamcode is aangepast; als lcouple=true is er een koppeling met oceaan, als ccouple=true --> koppeling met chemie). Ook T42L39 ECHAM initialfiles zijn gekregen uit Hamburg, alleen de namen zijn nog niet aangepast, de files staan in: SIGMOND/ECHAM_ARCHIEF/ECHAM5_HAM/INIFILES/TARS. Als je de resolutie verandert moeten ook een aantal parameters in de source van toychem veranderd worden. (nlon,nlat, nsp, evt. nlev), en moet je kijken of narray nog steeds 10 blijft. Als deze verandert, moet ook jpfldin (in che.F90) en de namcouple basefile veranderd worden. 9. lengte van runs Configuraties zijn alleen nog getest voor de 1e maand, waarin de modellen dus sequentieel draaien. In toychem/che.F90 is er een parameter ndays die je nog handmatig moet aanpassen als het aantal dagen in een maand niet 31 is. De lengte van een run van het oceaanmodel kan alleen in aantal maanden opgegeven worden (zie DOC_MICHAEL_DETAILS hoofdstuk 3.2) 10. Bekijken van outputdata (zie ook DOC_MICHAEL_DETAILS hoofdstuk 1.3) Outputfiles (mixfiles) van TM5 (hdf) komen in de workdirectory (PRISM/experiments//work) en kan met hiphop gevisualiseerd worden. Outputfiles van ECHAM5 komen ook in de workdirectory. naam: __yyymm.dd.nc: alle variabelen opgegeven in de namelist worden weggeschreven met de frequentie putdata (zie namlist.echam5, standaard: 24 uur). Divergentie, vorticiteit, temperatuur en gronddruk worden spectraal weggeschreven. De ECHAM afterburner zet deze spectrale data om in lat-lon wind- en temperatuurvelden. Runjob van de afterburner: SIGMOND/AFTERBURNER/RUN/after.t.test. Details afterburner: zie http: www.knmi.nl/onderzk/CKO/agcm/afterburner.html (of: SIGMOND/AFTERBURNER/overview.html). Data kunnen elke tijdstap of maandgemiddeld en op druklevels of modellevels weggeschreven worden. Opgemerkt moet worden dat de resulterende netcdf-file niet goed wordt gevisualiseerd door hiphop als de data op druklevels weggeschreven worden. Ik heb wel een programmaatje geschreven die de netcdf-file met drukleveldata, converteert naar files die correct met GrADs worden gevisualiseerd. De echam-code is aangepast zdd velden van verschillende tracers makkelijk weggeschreven kunnen worden. mo_knmi_chem.f90 is een door mij gemaakte module waarin een zgn. memorystream voor ozon (naam:chem) gemaakt is. Hierdoor komt in de workdirectory ook een file __yyymm.dd_chem.nc te staan, waarin elke 24 uur het ozonveld (ECHAM naam: O3out(lon,lev,lat) weggeschreven wordt. APPENDIX A: model configuraties: TOYCLIM: toyatm + toyoce + toyche ECHO : echam5 + mpi-om ECHOTOY: echam5 + mpi-om + toyche ECTOY : echam5 + toyche (~TM) APPENDIX B: belangrijke koppelingsparamters: nadt, nodt, ncdt: interne tijdstappen van resp. het atmosfeer, oceaan en chemiemodel Dtc2a, Dta2c : koppelingstijdstap chemistry-to-atmosphere en atmosphere-to-chemistry Dto2a, Dta2o : idem voor ocean-atmosphere LAGc2a, Laga2c, Laga2o en Lago2a worden berekend uit de bovenstaande parameters